Merge branch 'uat-temp-copydevorderservice' into dev

dev-temp-nht-202502180000-customprint
xiangwei.zhang 5 months ago
commit 669df79e4e

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
@ -52,6 +53,9 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
@Autowired @Autowired
private IMesConfigService configService; private IMesConfigService configService;
@Autowired
private IMesProductionRecordService productionRecordService;
public MesReportWorkByPreDayJob() { public MesReportWorkByPreDayJob() {
super(MesReportWorkByPreDayJob.class, "根据前一天待报工记录数插入工单并报工JOB"); super(MesReportWorkByPreDayJob.class, "根据前一天待报工记录数插入工单并报工JOB");
} }
@ -91,6 +95,7 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder); workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder);
for (MesProductionRecord mesProductionRecord : mesProductionRecords) { for (MesProductionRecord mesProductionRecord : mesProductionRecords) {
try {
if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) { if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) {
List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode()) List<MesWorkOrder> collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode())
&& w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList()); && w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList());
@ -101,10 +106,15 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()); mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue());
mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelUpdate(mesProductionRecord, userName); ConvertBean.serviceModelUpdate(mesProductionRecord, userName);
} catch (ImppBusiException e) {
String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg(): e.getErrorDetail();
LOGGER.error("条码:{}报工失败,{}", mesProductionRecord.getProductSn(), errorMsg);
productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg);
continue;
}
} }
productionRecordRao.saveAll(mesProductionRecords); productionRecordRao.saveAll(mesProductionRecords);
} }
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
LOGGER.error("产线:{}报工失败:{}", workCenterCode, e.getErrorDetail()); LOGGER.error("产线:{}报工失败:{}", workCenterCode, e.getErrorDetail());
} }

@ -36,6 +36,7 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections.map.HashedMap;
@ -465,7 +466,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService {
DdlPreparedPack.getStringEqualPack(sn.getPartNo(),"partNo",packBean); DdlPreparedPack.getStringEqualPack(sn.getPartNo(),"partNo",packBean);
//更新加工记录 //更新加工记录
mesProductionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "productSn", "description", "systemSyncStatus"}, mesProductionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "productSn", "description", "systemSyncStatus"},
new Object[]{userName, TimeTool.getNowTime(true), sn.getProductSn(), sn.getDescription(), CommonEnumUtil.FALSE}, packBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), sn.getProductSn(), sn.getDescription(), CommonEnumUtil.FALSE}, packBean);
//更新装配记录 //更新装配记录
mesProductionAssemblyRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "productSn", "description", "systemSyncStatus"}, mesProductionAssemblyRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "productSn", "description", "systemSyncStatus"},
new Object[]{userName, TimeTool.getNowTime(true), sn.getProductSn(), sn.getDescription(), CommonEnumUtil.FALSE}, packBean); new Object[]{userName, TimeTool.getNowTime(true), sn.getProductSn(), sn.getDescription(), CommonEnumUtil.FALSE}, packBean);

@ -14,6 +14,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.repository.*;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.hutool.core.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -126,7 +127,7 @@ public class MesProductionRecordService implements IMesProductionRecordService {
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean); DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"}, productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue() },ddlPackBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue() },ddlPackBean);
} }
@Override @Override
public void updateProductionRecord(String organizeCode, String userName, Long id, String errorMsg) { public void updateProductionRecord(String organizeCode, String userName, Long id, String errorMsg) {
@ -134,7 +135,7 @@ public class MesProductionRecordService implements IMesProductionRecordService {
DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean); DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean);
// DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean); // DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"}, productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean);
} }
@Override @Override

@ -403,8 +403,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) { if (null == mesProductVersion) {
LOGGER.info("物料{}生产版本信息不存在", mesWorkOrder.getPartNo()); LOGGER.info("物料{}生产版本信息不存在", mesWorkOrder.getPartNo());
return mesProductVersion; MesPcnException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo());
// MesPcnException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo());
} }
return mesProductVersion; return mesProductVersion;
} }
@ -415,7 +414,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean); DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean);
// DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean); // DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean);
productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime"}, productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime"},
new Object[]{userName, TimeTool.getNowTime(true)}, ddlPackBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS)}, ddlPackBean);
} }
@Override @Override
@ -432,7 +431,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", ddlPackBean); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "reportStatus"}, productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), productionRecord.getReportStatus()}, ddlPackBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), productionRecord.getReportStatus()}, ddlPackBean);
return; return;
} }
LOGGER.error("报工条码:{}找不到加工单", productionRecord.getProductSn()); LOGGER.error("报工条码:{}找不到加工单", productionRecord.getProductSn());
@ -577,7 +576,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else { } else {
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, oldMesWorkOrder.getWorkOrderStatus()); propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
} }
} }
@ -678,8 +677,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean);
DdlPreparedPack.getStringEqualPack(productionRecord.getModifyDatetime(), "modifyDatetime", packBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"}, productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean);
LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo()); LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());

Loading…
Cancel
Save