|
|
|
@ -301,6 +301,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
newMesProductOffLine.setSapWorkCenter(oldMesWorkOrder.getErpWorkCenter());
|
|
|
|
|
newMesProductOffLine.setOrganizeCode(oldMesWorkOrder.getOrganizeCode());
|
|
|
|
|
newMesProductOffLine.setDescription(nowTime);
|
|
|
|
|
newMesProductOffLine.setBomTotalSize(mesBoms.size());
|
|
|
|
|
ConvertBean.serviceModelInitialize(newMesProductOffLine, userName);
|
|
|
|
|
mesProductOffLineList.add(newMesProductOffLine);
|
|
|
|
|
}
|
|
|
|
@ -371,6 +372,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
newMesProductOffLine.setOrganizeCode(organizeCode);
|
|
|
|
|
newMesProductOffLine.setDescription(mesProductionRecord.getCompleteDateTime());
|
|
|
|
|
newMesProductOffLine.setBomCode(mesBom.getBomCode());
|
|
|
|
|
newMesProductOffLine.setBomTotalSize(mesBoms.size());
|
|
|
|
|
ConvertBean.serviceModelInitialize(newMesProductOffLine, userName);
|
|
|
|
|
mesProductOffLineList.add(newMesProductOffLine);
|
|
|
|
|
}
|
|
|
|
@ -702,14 +704,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 同步工单信息给加工记录、条码信息
|
|
|
|
|
DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", snDdlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(organizeCode, "organizeCode", snDdlPackBean);
|
|
|
|
|
|
|
|
|
|
mesProduceSnRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo"},
|
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo()}, snDdlPackBean);
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean);
|
|
|
|
|
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"},
|
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean);
|
|
|
|
@ -717,6 +718,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
List<MesMove> mesMoveList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
private MesProductOffLine getMesProductOffLine(MesProductionRecord productionRecord, String userName, MesWorkOrder oldMesWorkOrder, MesProductVersion mesProductVersion, MesBom mesBom) {
|
|
|
|
|
MesProductOffLine newMesProductOffLine = new MesProductOffLine();
|
|
|
|
@ -1027,7 +1029,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doProductReport(MesWorkOrder mesWorkOrder, String userName) {
|
|
|
|
|
MesWorkOrder mesWorkOrderDb = mesWorkOrderRDao.getById(mesWorkOrder.getId());
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesWorkOrder.getId(),"id",packBean);
|
|
|
|
|
MesWorkOrder mesWorkOrderDb = mesWorkOrderRDao.getByProperty(packBean);
|
|
|
|
|
if (Objects.isNull(mesWorkOrderDb)) {
|
|
|
|
|
MesPcnException.throwMesBusiException("工单id为【%s】工单信息不存在", mesWorkOrder.getId());
|
|
|
|
|
}
|
|
|
|
@ -1074,7 +1078,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
String nowTime = TimeTool.getNowTime(true);
|
|
|
|
|
for (MesBom mesBom : mesBoms) {
|
|
|
|
|
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, nowTime));
|
|
|
|
|
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, nowTime,mesBoms.size()));
|
|
|
|
|
}
|
|
|
|
|
mesProductOffLineRDao.saveAll(mesProductOffLineList);
|
|
|
|
|
}
|
|
|
|
@ -1101,7 +1105,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
|
|
|
|
|
String nowTime = TimeTool.getNowTime(true);
|
|
|
|
|
for (MesBom mesBom : mesBomList) {
|
|
|
|
|
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, nowTime));
|
|
|
|
|
mesProductOffLineList.add(creatMesProductOffLine(mesWorkOrder, mesProductVersion, sn, mesBom, nowTime, mesBomList.size()));
|
|
|
|
|
}
|
|
|
|
|
mesProductOffLineRDao.saveAll(mesProductOffLineList);
|
|
|
|
|
}
|
|
|
|
@ -1165,10 +1169,16 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
}
|
|
|
|
|
//更新加工记录
|
|
|
|
|
productionRecordService.updateProductionRecord(model.getMesProductionRecordMap().get(orderNo), userName, MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue(), "");
|
|
|
|
|
//更新工单汇报数量
|
|
|
|
|
workOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
workOrder.setReportedQty(workOrder.getReportedQty()+MesPcnExtConstWords.ONE);
|
|
|
|
|
workOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date()));
|
|
|
|
|
workOrder.setModifyUser(userName);
|
|
|
|
|
workOrderExtService.update(workOrder);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
String msg = e.getMessage();
|
|
|
|
|
if (e instanceof ImppBusiException) {
|
|
|
|
|
msg = ((ImppBusiException) e).getErrorMsg();
|
|
|
|
|
msg = ((ImppBusiException) e).getErrorDetail();
|
|
|
|
|
}
|
|
|
|
|
log.error("工单:{}报工失败{}", orderNo, ExceptionUtils.getStackTrace(e));
|
|
|
|
|
productionRecordService.updateProductionRecord(model.getMesProductionRecordMap().get(orderNo), userName, MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), msg);
|
|
|
|
@ -1404,7 +1414,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProductOffLine creatMesProductOffLine(MesWorkOrder mesWorkOrder, MesProductVersion mesProductVersion,
|
|
|
|
|
String sn, MesBom mesBom, String nowTime) {
|
|
|
|
|
String sn, MesBom mesBom, String nowTime,Integer bomTotalSize) {
|
|
|
|
|
MesProductOffLine newMesProductOffLine;
|
|
|
|
|
newMesProductOffLine = new MesProductOffLine();
|
|
|
|
|
newMesProductOffLine.setReportPartNo(mesWorkOrder.getPartNo());
|
|
|
|
@ -1428,6 +1438,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
newMesProductOffLine.setSapWorkCenter(mesWorkOrder.getErpWorkCenter());
|
|
|
|
|
newMesProductOffLine.setOrganizeCode(mesWorkOrder.getOrganizeCode());
|
|
|
|
|
newMesProductOffLine.setDescription(nowTime);
|
|
|
|
|
newMesProductOffLine.setBomTotalSize(bomTotalSize);
|
|
|
|
|
ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser());
|
|
|
|
|
return newMesProductOffLine;
|
|
|
|
|
}
|
|
|
|
@ -1666,10 +1677,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
|
|
|
|
|
private MesMove createMove(MesPartSap mesPart, MesProductionRecord record, String source, String target, String erpWorkCenterCode, Double qty, Integer moveType,String userName) {
|
|
|
|
|
MesMove move = new MesMove();
|
|
|
|
|
move.setMeins(record.getReportPartNo());
|
|
|
|
|
if (!Objects.isNull(mesPart)) {
|
|
|
|
|
move.setMatnr(mesPart.getPartNo());
|
|
|
|
|
move.setMeins(mesPart.getUnit());
|
|
|
|
|
}
|
|
|
|
|
move.setOrganizeCode(record.getOrganizeCode());
|
|
|
|
|
move.setFactoryCode(record.getOrganizeCode());
|
|
|
|
|
move.setLgort(source);
|
|
|
|
|