报工问题修改

tags/yfai-pcn-ext-v1.1
微笑着面对明天 10 months ago
parent bf2379204c
commit df8cd11e67

@ -40,5 +40,5 @@ public interface IMesProductionRecordService {
void updateProductionRecord(String organizeCode, String userName, String sn);
void updateProductionRecord(String organizeCode, String userName, String sn, String errorMsg);
void updateProductionRecord(String organizeCode, String userName, Long id, String errorMsg);
}

@ -72,7 +72,7 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
// 处理无工单
handlerNoOrder(organizeCode, userName);
// 处理有工单
handlerHasOrder(organizeCode, userName);
//handlerHasOrder(organizeCode, userName);
// }
}
@ -83,7 +83,10 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
return;
}
for (MesProductionRecord mesProductionRecord : unReportMesProduceSn) {
LOGGER.info("----------报工开始-------{}", mesProductionRecord.getProductSn());
workOrderService.doProductReportByRecord(mesProductionRecord, organizeCode, userName);
LOGGER.info("----------报工结束-------{}", mesProductionRecord.getProductSn());
}
}

@ -195,10 +195,10 @@ public class MesProductionRecordService implements IMesProductionRecordService {
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue() },ddlPackBean);
}
@Override
public void updateProductionRecord(String organizeCode, String userName, String sn, String errorMsg) {
public void updateProductionRecord(String organizeCode, String userName, Long id, String errorMsg) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean);
// DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus", "remark"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue(), errorMsg },ddlPackBean);
}

@ -436,13 +436,15 @@ public class MesWorkOrderService implements IMesWorkOrderService {
return mesProductVersion;
}
private void updateProductionRecord(String organizeCode, String userName, String sn) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean);
private void updateProductionRecord(String organizeCode, String userName, Long id) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(id, "id", ddlPackBean);
// DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime"},
new Object[]{userName, TimeTool.getNowTime(true)},ddlPackBean);
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW,isolation= Isolation.READ_COMMITTED,readOnly = false,rollbackFor = Exception.class)
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
@ -452,7 +454,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
try {
List<MesWorkOrder> oldMesWorkOrderList = getMesWorkOrder(productionRecord, organizeCode);
if (CollectionUtils.isEmpty(oldMesWorkOrderList)) {
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
LOGGER.error("报工条码:{}找不到加工单", productionRecord.getProductSn());
updateProductionRecord(organizeCode, userName, productionRecord.getId());
return;
}
@ -465,7 +468,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
e.printStackTrace();
LOGGER.error("条码:{}报工失败", productionRecord.getProductSn(), e);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getProductSn(), msg);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg);
}
}
@Override
@ -478,7 +481,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
updateProductionRecord(organizeCode, userName, productionRecord.getId());
return;
}
report(productionRecord, organizeCode, userName, oldMesWorkOrders);
@ -489,7 +492,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
e.printStackTrace();
LOGGER.error("条码:{}报工失败", productionRecord.getProductSn(), e);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getProductSn(), msg);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg);
}
}
@ -586,6 +589,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty());
ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName);
workOrderExtService.update(oldMesWorkOrder);
//保存数据
List<MesProductOffLine> mesProductOffLineList = new ArrayList<>();
MesProductOffLine newMesProductOffLine;
@ -623,16 +627,20 @@ public class MesWorkOrderService implements IMesWorkOrderService {
mesProductOffLineList.add(newMesProductOffLine);
}
mesProductOffLineRDao.saveAll(mesProductOffLineList);
// 同步工单信息给加工记录、条码信息
DdlPackBean snDdlPackBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(productionRecord.getProductSn(), "productSn", snDdlPackBean);
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();
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()},snDdlPackBean);
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()},packBean);
LOGGER.info("条码【{}】报工成功,报工工单【{}】",productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());
}
@ -693,6 +701,14 @@ public class MesWorkOrderService implements IMesWorkOrderService {
list.add(oldMesWorkOrder);
}
}
// 如果找不到则再根据计划开始时间找
if (CollectionUtils.isEmpty(list)) {
String beginTime =productionRecord.getLotNo() + " " + currentShift.getStartTime();
Date beginDate = transfer(beginTime);
list = oldMesWorkOrders.stream().filter(workOrder ->!StringUtils.isEmpty(workOrder.getPlanStartTime()) && !StringUtils.isEmpty(workOrder.getPlanEndTime()) &&
beginDate.getTime() >= transfer(workOrder.getPlanStartTime()).getTime() && beginDate.getTime() <= transfer(workOrder.getPlanEndTime()).getTime()).collect(Collectors.toList());
}
workOrders = list;
@ -713,7 +729,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
String endTime = date + " " +currentShift.getStartTime();
String startTime = date + " " +currentShift.getEndTime();
workOrders = oldMesWorkOrders.stream().filter(workOrder -> transfer(startTime).getTime() > transfer(workOrder.getPlanStartTime()).getTime() && transfer(endTime).getTime() < transfer(workOrder.getPlanEndTime()).getTime()).collect(Collectors.toList());
workOrders = oldMesWorkOrders.stream().filter(workOrder -> !StringUtils.isEmpty(workOrder.getPlanStartTime()) && !StringUtils.isEmpty(workOrder.getPlanEndTime()) &&
transfer(startTime).getTime() > transfer(workOrder.getPlanStartTime()).getTime() && transfer(endTime).getTime() < transfer(workOrder.getPlanEndTime()).getTime()).collect(Collectors.toList());
} else {
// 早班或者中班 则找当天非当前班次的最早单号

Loading…
Cancel
Save