45558 PCN:排序报工job针对非排序报工时有工单和无工单需要分开处理。

dev_temp_xw_202503120000_45558
xiangwei.zhang 2 months ago
parent 84aa53b820
commit 242a3558a7

@ -15,5 +15,5 @@ import java.util.List;
public interface IMesProductionRecordDao { public interface IMesProductionRecordDao {
@ApiOperation("查询汇报的加工记录") @ApiOperation("查询汇报的加工记录")
List<MesProductionRecord> findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List<String> workCenterList); List<MesProductionRecord> findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List<String> workCenterList, boolean isHasOrder);
} }

@ -32,7 +32,7 @@ public class MesProductionRecordImpl implements IMesProductionRecordDao {
private EntityManager entityManager; private EntityManager entityManager;
@Override @Override
public List<MesProductionRecord> findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List<String> workCenterList) { public List<MesProductionRecord> findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List<String> workCenterList, boolean isHasOrder) {
StringBuilder hql = new StringBuilder(); StringBuilder hql = new StringBuilder();
hql.append(" select record from MesProductionRecord record left join MesWorkCenter center on record.workCenterCode = center.workCenterCode where 1=1"); hql.append(" select record from MesProductionRecord record left join MesWorkCenter center on record.workCenterCode = center.workCenterCode where 1=1");
hql.append(" and record.organizeCode = :organizeCode and record.isValid = :isValid and record.isDeleted = :isDeleted "); hql.append(" and record.organizeCode = :organizeCode and record.isValid = :isValid and record.isDeleted = :isDeleted ");
@ -44,6 +44,11 @@ public class MesProductionRecordImpl implements IMesProductionRecordDao {
if(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workOrderType){ if(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workOrderType){
hql.append(" order by record.reportStatus asc,record.modifyDatetime asc "); hql.append(" order by record.reportStatus asc,record.modifyDatetime asc ");
}else{ }else{
if (isHasOrder) {
hql.append(" and record.workOrderNo !='' and record.workOrderNo is not null ");
} else {
hql.append(" and (record.workOrderNo = '' or record.workOrderNo is null) ");
}
hql.append(" order by record.modifyDatetime asc "); hql.append(" order by record.modifyDatetime asc ");
} }
Query hqlQuery = entityManager.createQuery(hql.toString(), MesProductionRecord.class); Query hqlQuery = entityManager.createQuery(hql.toString(), MesProductionRecord.class);

@ -552,8 +552,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter); MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter);
if (oldMesWorkOrder == null) { if (oldMesWorkOrder == null) {
LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn())); LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn()));
return; throw new ImppBusiException(String.format("未找到匹配的加工单"));
//throw new ImppBusiException(String.format("未找到匹配的加工单"));
} }
//获取生产版本 //获取生产版本
@ -1243,14 +1242,19 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Override @Override
public void doMesWorkOrderNoSortReport(String organizeCode, Integer pageSize, String userName) { public void doMesWorkOrderNoSortReport(String organizeCode, Integer pageSize, String userName) {
String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER"); String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER");
//查询所有非排序工单 //查询非排序工单 有工单
List<MesProductionRecord> recordNoReportList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null); List<MesProductionRecord> recordNoReportHasOrderNoList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null, true);
if (CollectionUtils.isEmpty(recordNoReportList)) { if (CollectionUtils.isEmpty(recordNoReportHasOrderNoList)) {
LOGGER.error("非排序加工单加工记录中没有数据,无需处理"); LOGGER.error("非排序有加工单加工记录中没有数据,无需处理");
return;
}
//查询非排序工单 有工单
List<MesProductionRecord> recordNoReportNotHasOrderNoList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null, false);
if (CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)) {
LOGGER.error("非排序无加工单加工记录中没有数据,无需处理");
return; return;
} }
List<MesProductionRecord> recordNoReportNotHasOrderNoList = recordNoReportList.stream().filter(item -> StringUtils.isEmpty(item.getWorkOrderNo())).collect(Collectors.toList());
List<MesProductionRecord> recordNoReportHasOrderNoList = recordNoReportList.stream().filter(item -> !StringUtils.isEmpty(item.getWorkOrderNo())).collect(Collectors.toList());
//处理无工单加工记录 //处理无工单加工记录
if(!CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)){ if(!CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)){
for (MesProductionRecord mesProductionRecord : recordNoReportNotHasOrderNoList) { for (MesProductionRecord mesProductionRecord : recordNoReportNotHasOrderNoList) {
@ -1474,7 +1478,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
public MesWorkOrderSortReportModel initMesWorkOrderSortReportModel(String organizeCode, Integer pageSize, String userName) { public MesWorkOrderSortReportModel initMesWorkOrderSortReportModel(String organizeCode, Integer pageSize, String userName) {
MesWorkOrderSortReportModel model = new MesWorkOrderSortReportModel(organizeCode, userName, mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue(), pageSize,null)); MesWorkOrderSortReportModel model = new MesWorkOrderSortReportModel(organizeCode, userName, mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue(), pageSize,null,true));
model.setMesWorkOrderList(workOrderExtService.getWorkOrderList(organizeCode, model.getWorkOrderList())); model.setMesWorkOrderList(workOrderExtService.getWorkOrderList(organizeCode, model.getWorkOrderList()));
model.setMesMoveRuleList(mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(model.getPartProdGroupCodeList(), organizeCode,MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_20.getValue())); model.setMesMoveRuleList(mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(model.getPartProdGroupCodeList(), organizeCode,MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_20.getValue()));
model.setMesWorkOrderPartList(findMesWorkOrderPartByOrderNo(organizeCode, model.getWorkOrderList())); model.setMesWorkOrderPartList(findMesWorkOrderPartByOrderNo(organizeCode, model.getWorkOrderList()));

Loading…
Cancel
Save