生产开模统计数据发送

追溯报表开发
tags/yfai-mes-ext-v1.0
jun 1 year ago
parent 4326bbe286
commit f605d49d1d

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRouteDetail;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -18,4 +19,7 @@ public interface IMesCraftRouteDetailService extends IBaseMesService<MesCraftRou
void updateMesCraftRouteDetailBatch(List<MesCraftRouteDetail> mesCraftRouteDetailList);
void deleteMesCraftRouteDetailBatch(String organizeCode, String userName, String craftRouteCode);
@ApiOperation("查找工艺路线")
List<MesCraftRouteDetail> findProdCraftRouteDetail(String organizeCode, String workCenterCode, String partNo);
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesProdCraftRoute;
import io.swagger.annotations.ApiOperation;
/**
* @Description :线
@ -10,4 +11,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProdCraftRoute;
* @Modify:
**/
public interface IMesProdCraftRouteService extends IBaseMesService<MesProdCraftRoute> {
@ApiOperation("工艺路线代码")
String getCraftRouteCode(String organizeCode, String workCenterCode, String partNo);
}

@ -0,0 +1,19 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/6/28 9:20
* @Modify:
**/
public interface IMesProduceSnService extends IBaseMesService<MesProduceSn> {
@ApiOperation(value = "根据条码查询产品条码表")
List<MesProduceSn> findMesProduceSn(String organizeCode, String sn);
}

@ -0,0 +1,19 @@
package cn.estsh.i3plus.ext.mes.api.base;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/6/28 9:20
* @Modify:
**/
public interface IMesProductionRecordService extends IBaseMesService<MesProductionRecord> {
@ApiOperation(value = "根据条码查询设备加工记录表")
List<MesProductionRecord> findMesProductionRecord(String organizeCode, String sn);
}

@ -6,7 +6,11 @@ import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProdRuleReportConditionModel
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* @Description : -
@ -34,4 +38,7 @@ public interface IMesYfReportService {
ResultBean queryMesProdRuleByPager(MesProdRuleReportConditionModel queryReportModel, Pager pager);
ListPager<MesProduceSn> queryMesSuspiciousSnMsgByPager(MesProduceSn mesProduceSn, Pager pager);
@ApiOperation("查询追溯报表")
List<MesTraceabilityReportModel> findTraceabilityReport(MesProduceSn mesProduceSn);
}

@ -0,0 +1,48 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.report;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.impp.framework.base.controller.MesBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description : Mes
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/6/28 14:17
* @Modify:
**/
@Api("Mes业务报表")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/report")
public class MesBusiReportController extends MesBaseController {
@Autowired
private IMesYfReportService mesYfReportService;
@ApiOperation(value = "查询追溯报表", notes = "查询追溯报表")
@GetMapping("/traceability/find")
public ResultBean findTraceabilityReport(MesProduceSn mesProduceSn) {
try {
ValidatorBean.beginValid(mesProduceSn).notNull("productSn", mesProduceSn.getProductSn());
mesProduceSn.setOrganizeCode(AuthUtilExt.getOrganizeCode());
return ResultBean.success("查询成功").setResultList(mesYfReportService.findTraceabilityReport(mesProduceSn));
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -3,18 +3,20 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesCraftRouteDetailService;
import cn.estsh.i3plus.ext.mes.api.base.IMesCraftRouteService;
import cn.estsh.i3plus.ext.mes.api.base.IMesCraftService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProdCraftRouteService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesCraft;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRoute;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRouteDetail;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -44,6 +46,8 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
@Autowired
private IMesCraftService mesCraftService;
@Autowired
private IMesProdCraftRouteService mesProdCraftRouteService;
@Override
protected void setPackQueryBean(MesCraftRouteDetail bean, DdlPackBean packBean) {
@ -143,6 +147,17 @@ public class MesCraftRouteDetailServiceImpl extends BaseMesService<MesCraftRoute
new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}, ddlPackBean);
}
@Override
public List<MesCraftRouteDetail> findProdCraftRouteDetail(String organizeCode, String workCenterCode, String partNo) {
String craftRouteCode = mesProdCraftRouteService.getCraftRouteCode(organizeCode, workCenterCode, partNo);
if(StringUtil.isEmpty(craftRouteCode)){
return null;
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(craftRouteCode,"craftRouteCode",packBean);
return baseRDao.findByHqlWhere(packBean);
}
private void checkCraft(List<MesCraftRouteDetail> mesCraftRouteDetailList, String routeCode) {
//获取工艺路线信息
MesCraftRouteDetail craftRouteDetailFist = mesCraftRouteDetailList.iterator().next();

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProdCraftRouteService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.MesConstWords;
@ -8,6 +9,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesCraftRoute;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProdCraftRoute;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
import cn.estsh.i3plus.pojo.mes.repository.MesCraftRouteRepository;
@ -17,7 +19,10 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
/**
@ -35,6 +40,8 @@ public class MesProdCraftRouteServiceImpl extends BaseMesService<MesProdCraftRou
private MesCraftRouteRepository mesCraftRouteRDao;
@Autowired
private MesWorkCenterRepository mesWorkCenterRDao;
@Autowired
private IMesPartService mesPartService;
@Override
protected void setPackQueryBean(MesProdCraftRoute bean, DdlPackBean packBean) {
@ -45,6 +52,7 @@ public class MesProdCraftRouteServiceImpl extends BaseMesService<MesProdCraftRou
DdlPreparedPack.getStringEqualPack(bean.getPptCode(), "pptCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean);
}
@Override
protected void onInsertBean(MesProdCraftRoute item) {
// 数据校验
@ -149,6 +157,7 @@ public class MesProdCraftRouteServiceImpl extends BaseMesService<MesProdCraftRou
.build();
}
}
@Override
protected void onUpdateBean(MesProdCraftRoute item) {
// 数据校验
@ -253,4 +262,41 @@ public class MesProdCraftRouteServiceImpl extends BaseMesService<MesProdCraftRou
.build();
}
}
@Override
public String getCraftRouteCode(String organizeCode, String workCenterCode, String partNo) {
//按照物料查找工艺路线
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, MesConstWords.PART_NO, packBean);
DdlPreparedPack.getIsNull("pptCode", packBean);
List<MesProdCraftRoute> prodCraftRouteList = baseRDao.findByHqlWhere(packBean);
if (!CollectionUtils.isEmpty(prodCraftRouteList)) {
return prodCraftRouteList.iterator().next().getCraftRouteCode();
}
MesPart partDb = mesPartService.getPartByPartNo(partNo, organizeCode);
if (null == partDb || StringUtils.isEmpty(partDb.getPptCode())) {
return null;
}
//按照物料产品类型查找工艺路线
packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partDb.getPptCode(), "pptCode", packBean);
DdlPreparedPack.getIsNull(MesConstWords.PART_NO, packBean);
prodCraftRouteList = baseRDao.findByHqlWhere(packBean);
if (!CollectionUtils.isEmpty(prodCraftRouteList)) {
return prodCraftRouteList.iterator().next().getCraftRouteCode();
}
//按照产线查找工艺路线
packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, MesConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getIsNull(MesConstWords.PART_NO, packBean);
DdlPreparedPack.getIsNull("pptCode", packBean);
prodCraftRouteList = baseRDao.findByHqlWhere(packBean);
if (!CollectionUtils.isEmpty(prodCraftRouteList)) {
return prodCraftRouteList.iterator().next().getCraftRouteCode();
}
return null;
}
}

@ -0,0 +1,35 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/6/28 9:27
* @Modify:
**/
@Service
@Slf4j
public class MesProduceSnServiceImpl extends BaseMesService<MesProduceSn> implements IMesProduceSnService {
@Override
public List<MesProduceSn> findMesProduceSn(String organizeCode, String sn) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "productSn", packBean);
List<MesProduceSn> produceSnList = baseRDao.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(produceSnList)) {
MesException.throwMesBusiException("条码【%s】信息不存在", sn);
}
return produceSnList;
}
}

@ -0,0 +1,37 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : junsheng.li
* @CreateDate 2024/6/28 9:27
* @Modify:
**/
@Service
@Slf4j
public class MesProductionRecordServiceImpl extends BaseMesService<MesProductionRecord> implements IMesProductionRecordService {
@Override
public List<MesProductionRecord> findMesProductionRecord(String organizeCode, String sn) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "productSn", packBean);
DdlPreparedPack.getOrderBy("createDatetime", CommonEnumUtil.ASC_OR_DESC.ASC.getValue(),packBean);
List<MesProductionRecord> produceSnList = baseRDao.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(produceSnList)) {
MesException.throwMesBusiException("条码【%s】加工记录信息不存在", sn);
}
return produceSnList;
}
}

@ -1,10 +1,14 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report;
import cn.estsh.i3plus.ext.mes.api.base.IMesProduceSnService;
import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesProdRuleReportConditionModel;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
@ -12,19 +16,25 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleSortCfg;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.repository.MesProdRuleNoSortCfgRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesProdRuleSortCfgRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportDataModel;
import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel;
import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean;
import jodd.util.StringUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description : -
@ -48,6 +58,18 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
@Autowired
private MesProdRuleNoSortCfgRepository mesProdRuleNoSortCfgRepository;
@Autowired
private IMesProduceSnService mesProduceSnService;
@Autowired
private IMesProductionRecordService mesProductionRecordService;
@Autowired
private MesProductionAssemblyRepository mesProductionAssemblyRepository;
@Autowired
private MesWorkCellScanMonitorLogRepository mesWorkCellScanMonitorLogRepository;
@Override
public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) {
ListPager<MesDeviceDataQueryReportResultModel> mesDeviceDataQueryReportResultModelListPager =
@ -102,4 +124,95 @@ public class MesYfReportServiceImpl implements IMesYfReportService {
return new ListPager<>(resultList, pager);
}
@Override
public List<MesTraceabilityReportModel> findTraceabilityReport(MesProduceSn mesProduceSn) {
DdlPackBean packBean = getDdlPackBean(mesProduceSn);
//查询条码记录表
List<MesProduceSn> produceSnList = mesProduceSnService.findMesProduceSn(mesProduceSn.getOrganizeCode(), mesProduceSn.getOrganizeCode());
Map<String, MesProduceSn> mesProduceSnMap = produceSnList.stream().collect(Collectors.toMap(MesProduceSn::getPartNo, t -> t));
//设备加工记录表
List<MesProductionRecord> productionRecordList = mesProductionRecordService.findMesProductionRecord(mesProduceSn.getOrganizeCode(), mesProduceSn.getOrganizeCode());
Map<String, List<MesProductionRecord>> productionRecordMap = productionRecordList.stream().collect(Collectors.groupingBy(MesProductionRecord::getPartNo));
//装配记录表
List<MesProductionAssembly> productionAssemblyList = mesProductionAssemblyRepository.findByHqlWhere(packBean);
Map<String, List<MesProductionAssembly>> productionAssemblyMap = CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().collect(Collectors.groupingBy(t -> t.getPartNo() + t.getWorkCenterCode() + t.getWorkCellCode() + t.getEquipmentCode()));
//工位扫描监控日志
List<MesWorkCellScanMonitorLog> mesWorkCellScanMonitorLogs = mesWorkCellScanMonitorLogRepository.findByHqlWhere(packBean);
Map<String, List<MesWorkCellScanMonitorLog>> mesWorkCellScanMonitorMap = CollectionUtils.isEmpty(mesWorkCellScanMonitorLogs) ? null : mesWorkCellScanMonitorLogs.stream().collect(Collectors.groupingBy(t -> t.getPartNo() + t.getWorkCenterCode() + t.getWorkCellCode() + t.getEquipmentCode()));
//数据组装
List<MesTraceabilityReportModel> mesTraceabilityReportModelList = new ArrayList<>();
for (Map.Entry<String, MesProduceSn> produceSnEntry : mesProduceSnMap.entrySet()) {
MesTraceabilityReportModel mesTraceabilityReportModel = new MesTraceabilityReportModel();
BeanUtils.copyProperties(produceSnEntry.getValue(), mesTraceabilityReportModel);
if (productionRecordMap.containsKey(produceSnEntry.getKey())) {
List<MesProductionRecord> mesProductionRecordList = productionRecordMap.get(produceSnEntry.getKey());
int duration = 0;
for (MesProductionRecord mesProductionRecord : mesProductionRecordList) {
MesTraceabilityReportDataModel dataModel = new MesTraceabilityReportDataModel();
BeanUtils.copyProperties(mesProductionRecord, dataModel);
//持续时间
if (StringUtil.isNotEmpty(dataModel.getStartDateTime()) && StringUtil.isNotEmpty(dataModel.getCompleteDateTime())) {
dataModel.setDuration(getTimeDifference(dataModel.getStartDateTime(), dataModel.getCompleteDateTime()));
dataModel.setDurationStr(dateFormat(dataModel.getDuration()));
duration += dataModel.getDuration();
}
//装配记录表
String key = mesProductionRecord.getPartNo() + mesProductionRecord.getWorkCenterCode() + mesProductionRecord.getWorkCellCode() + mesProductionRecord.getEquipmentCode();
if (!Objects.isNull(productionAssemblyMap) && productionAssemblyMap.containsKey(key)) {
dataModel.setProductionAssemblyList(productionAssemblyMap.get(key));
}
//工位扫描监控日志
if (!Objects.isNull(mesWorkCellScanMonitorMap) && mesWorkCellScanMonitorMap.containsKey(key)) {
dataModel.setMesWorkCellScanMonitorLogs(mesWorkCellScanMonitorMap.get(key));
}
mesTraceabilityReportModel.getMesTraceabilityReportDataModelList().add(dataModel);
}
//开始时间
mesTraceabilityReportModel.setProduceBegin(mesProductionRecordList.iterator().next().getStartDateTime());
//结束时间
if (mesTraceabilityReportModel.getSnStatus() >= MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()) {
mesTraceabilityReportModel.setProduceEnd(mesProductionRecordList.get(mesProductionRecordList.size() - 1).getCompleteDateTime());
}
mesTraceabilityReportModel.setDurationStr(dateFormat(duration));
mesTraceabilityReportModel.setDuration(duration);
}
mesTraceabilityReportModelList.add(mesTraceabilityReportModel);
}
return mesTraceabilityReportModelList;
}
private DdlPackBean getDdlPackBean(MesProduceSn mesProduceSn) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesProduceSn.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProduceSn.getProductSn(), "productSn", packBean);
DdlPreparedPack.getOrderBy(null, null, packBean);
return packBean;
}
public static String dateFormat(int secound) {
StringBuilder time = new StringBuilder();
SimpleDateFormat destFormat = new SimpleDateFormat(DateUtil.SHORT_FORMAT_HOUR_MINUTE);
try {
// 将时间差转换为小时、分钟和秒
long diffSeconds = (secound) % 60;
long diffMinutes = (secound / 60) % 60;
long diffHours = secound / (60 * 60);
return destFormat.format(destFormat.parse(time.append(diffHours).append(":").append(diffMinutes).append(":").append(diffSeconds).toString()));
} catch (ParseException var17) {
var17.printStackTrace();
return null;
}
}
public int getTimeDifference(String startTime, String endTime) {
try {
return TimeTool.getSecoundsBetweenTime(1, startTime, endTime);
} catch (ParseException var17) {
var17.printStackTrace();
return 0;
}
}
}

Loading…
Cancel
Save