根据前一天待报工记录数插入工单并报工job

tags/yfai-pcn-ext-v1.0
gsz 1 year ago
parent ea26dbc6ad
commit 2472fa4e69

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
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.pojo.base.bean.DdlPackBean; 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 cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord;
import cn.estsh.i3plus.pojo.mes.bean.MesShift; import cn.estsh.i3plus.pojo.mes.bean.MesShift;
@ -66,10 +67,11 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob {
String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_WORK_CENTER_NO"); String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_WORK_CENTER_NO");
List<String> workCenterCodeList = Arrays.asList(workCenterCodes.split(",")); List<String> workCenterCodeList = Arrays.asList(workCenterCodes.split(","));
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
List<MesShift> mesShiftListAll = mesShiftRepository.findByHqlWhere(packBean);
for (String workCenterCode : workCenterCodeList) { for (String workCenterCode : workCenterCodeList) {
List<MesShift> mesShiftList = mesShiftListAll.stream().filter(s -> s.getWorkCenterCode().equalsIgnoreCase(workCenterCode)).collect(Collectors.toList()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean);
List<MesShift> mesShiftList = mesShiftRepository.findByHqlWhere(packBean);
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单 //1.获取生产加工记录production_record表中report_status为待汇报状态的工单
List<MesProductionRecord> mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode, mesShiftList, workCenterCode); List<MesProductionRecord> mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode, mesShiftList, workCenterCode);
if (CollectionUtils.isEmpty(mesProductionRecordList)) { if (CollectionUtils.isEmpty(mesProductionRecordList)) {

@ -64,7 +64,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Autowired @Autowired
private MesProductionRecordRepository productionRecordRao; private MesProductionRecordRepository productionRecordRao;
@Autowired
private MesWorkOrderRepository mesWorkOrderRDao;
@Autowired @Autowired
private MesProduceSnRepository mesProduceSnRao; private MesProduceSnRepository mesProduceSnRao;
@Autowired @Autowired
@ -423,7 +424,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getErpWorkCenter(), "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getErpWorkCenter(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean); // DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) { if (null == mesProductVersion) {
MesPcnException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo()); MesPcnException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo());
@ -459,8 +460,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",ddlPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",ddlPackBean);
DdlPreparedPack.getNumEqualPack( MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_50.getValue(),"reportStatus",ddlPackBean); DdlPreparedPack.getNumEqualPack( MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_50.getValue(),"reportStatus",ddlPackBean);
//获取前一天的早班到当天早班的区间的所有加工记录,统计个数 //获取前一天的早班到当天早班的区间的所有加工记录,统计个数
DdlPreparedPack.timeBuilder(TimeTool.getToday()+" 08:00:00", DdlPreparedPack.timeBuilder(
new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(),1))+" 08:00:00", new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(),1))+" 08:00:00",
TimeTool.getToday()+" 08:00:00",
"completeDateTime", ddlPackBean, false); "completeDateTime", ddlPackBean, false);
return productionRecordRao.findByHqlWhere(ddlPackBean); return productionRecordRao.findByHqlWhere(ddlPackBean);
@ -577,10 +579,15 @@ public class MesWorkOrderService implements IMesWorkOrderService {
String orderNo = orderList.get(0); String orderNo = orderList.get(0);
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (mesWorkCenterRDao.isExitByHql(orderPackBean)) { if (mesWorkOrderRDao.isExitByHql(orderPackBean)) {
MesPcnException.throwMesBusiException("单号流水码生成重复"); MesPcnException.throwMesBusiException("单号流水码生成重复");
} }
item.setWorkOrderNo(orderNo); item.setWorkOrderNo(orderNo);
item.setPartName(mesProduceSn.getPartName());
//生产时间新增取当天
item.setProduceTime(TimeTool.getToday());
item.setUnCompleteQty(0d);
item.setQty(value.stream().mapToDouble(MesProduceSn::getQty).sum());
//校验标识 //校验标识
//若工单类型为排序 //若工单类型为排序
List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>(); List<MesWorkOrderToWms> saveMesWorkOrderToWms = new ArrayList<>();
@ -600,19 +607,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//发送工单信息给WMS //发送工单信息给WMS
saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList)); saveMesWorkOrderToWms.addAll(saveMesWorkOrderToWms(item, bomList));
} }
//物料名称不存在,从物料信息中获取
item.setPartName(mesProduceSn.getPartName());
//生产时间新增取当天
item.setProduceTime(TimeTool.getToday());
item.setUnCompleteQty(0d);
// if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){ // if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()){
// //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单 // //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单
// List<String> partNoList = Collections.singletonList(item.getPartNo()); // List<String> partNoList = Collections.singletonList(item.getPartNo());
// deleteUnSortOrder(orderNo,partNoList); // deleteUnSortOrder(orderNo,partNoList);
// } // }
item.setQty(value.stream().mapToDouble(MesProduceSn::getQty).sum());
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(item, userName); ConvertBean.serviceModelInitialize(item, userName);
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item); MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);

Loading…
Cancel
Save