根据前一天待报工记录数插入工单并报工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.platform.common.convert.ConvertBean;
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.MesProductionRecord;
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");
List<String> workCenterCodeList = Arrays.asList(workCenterCodes.split(","));
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
List<MesShift> mesShiftListAll = mesShiftRepository.findByHqlWhere(packBean);
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为待汇报状态的工单
List<MesProductionRecord> mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode, mesShiftList, workCenterCode);
if (CollectionUtils.isEmpty(mesProductionRecordList)) {

@ -64,7 +64,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Autowired
private MesProductionRecordRepository productionRecordRao;
@Autowired
private MesWorkOrderRepository mesWorkOrderRDao;
@Autowired
private MesProduceSnRepository mesProduceSnRao;
@Autowired
@ -423,7 +424,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getErpWorkCenter(), "workCenterCode", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
// DdlPreparedPack.getStringEqualPack(mesWorkOrder.getProductVersion(), "productVersion", ddlPackBean);
MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean);
if (null == mesProductVersion) {
MesPcnException.throwMesBusiException("物料【%s】生产版本信息不存在", mesWorkOrder.getPartNo());
@ -459,8 +460,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",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",
TimeTool.getToday()+" 08:00:00",
"completeDateTime", ddlPackBean, false);
return productionRecordRao.findByHqlWhere(ddlPackBean);
@ -577,10 +579,15 @@ public class MesWorkOrderService implements IMesWorkOrderService {
String orderNo = orderList.get(0);
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean);
if (mesWorkCenterRDao.isExitByHql(orderPackBean)) {
if (mesWorkOrderRDao.isExitByHql(orderPackBean)) {
MesPcnException.throwMesBusiException("单号流水码生成重复");
}
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<>();
@ -600,19 +607,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//发送工单信息给WMS
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()){
// //生产工单-非排序手工插单,关闭该零件当天之前日期非排序工单
// List<String> partNoList = Collections.singletonList(item.getPartNo());
// deleteUnSortOrder(orderNo,partNoList);
// }
item.setQty(value.stream().mapToDouble(MesProduceSn::getQty).sum());
item.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
ConvertBean.serviceModelInitialize(item, userName);
MesWorkOrder mesWorkOrder = workOrderRepository.insert(item);

Loading…
Cancel
Save