报工问题修改

tags/yfai-pcn-ext-v1.0
微笑着面对明天 11 months ago
parent f87281c0a0
commit 434c87fde3

@ -35,4 +35,7 @@ public interface IMesProductionRecordService {
@ApiOperation(value = "根据零件条码,物料编码,工序代码,工艺代码查询加工记录信息") @ApiOperation(value = "根据零件条码,物料编码,工序代码,工艺代码查询加工记录信息")
List<MesProductionRecord> findProductionRecordList(String organizeCode, String productSn, String partNo, String processCode, String craftCode); List<MesProductionRecord> findProductionRecordList(String organizeCode, String productSn, String partNo, String processCode, String craftCode);
void updateProductionRecord(String organizeCode, String userName, String sn);
void updateProductionRecord(String organizeCode, String userName, String sn, String errorMsg);
} }

@ -1,6 +1,7 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService;
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.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
@ -45,6 +46,8 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
@Autowired @Autowired
private MesProductionRecordRepository productionRecordRao; private MesProductionRecordRepository productionRecordRao;
@Autowired
private IMesProductionRecordService productionRecordService;
public MesReportNoSortJob() { public MesReportNoSortJob() {
super(MesReportNoSortJob.class, "非排序报工JOB"); super(MesReportNoSortJob.class, "非排序报工JOB");
@ -85,7 +88,7 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail()); LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
//updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail()); productionRecordService.updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
} }
} }
@ -101,7 +104,7 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail()); LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
//updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail()); productionRecordService.updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
} }
} }

@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
@ -206,5 +207,20 @@ public class MesProductionRecordService implements IMesProductionRecordService {
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.PRODUCT_SN, MesPcnExtConstWords.PART_NO, MesPcnExtConstWords.PROCESS_CODE, MesPcnExtConstWords.CRAFT_CODE}, new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.PRODUCT_SN, MesPcnExtConstWords.PART_NO, MesPcnExtConstWords.PROCESS_CODE, MesPcnExtConstWords.CRAFT_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), productSn, partNo, processCode, craftCode}); new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), productSn, partNo, processCode, craftCode});
} }
@Override
public void updateProductionRecord(String organizeCode, String userName, String sn) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "productSn", ddlPackBean);
productionRecordRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"},
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) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
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);
}
} }

@ -426,8 +426,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean); DdlPreparedPack.getStringEqualPack(sn, "custSn", ddlPackBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","reportStatus"}, productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_50.getValue()},ddlPackBean); new Object[]{userName, TimeTool.getNowTime(true)},ddlPackBean);
} }
@Override @Override
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) { public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
@ -436,7 +436,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
//根据物料获取已发布的工单 //根据物料获取已发布的工单
MesWorkOrder oldMesWorkOrder = getMesWorkOrder(productionRecord, organizeCode); MesWorkOrder oldMesWorkOrder = getMesWorkOrder(productionRecord, organizeCode);
if (oldMesWorkOrder == null) { if (oldMesWorkOrder == null) {
//updateProductionRecord(organizeCode, userName, productionRecord.getProductSn()); updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
return; return;
} }
@ -451,7 +451,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo()); LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null); List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode, null);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) { if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
//updateProductionRecord(organizeCode, userName, productionRecord.getProductSn()); updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
return; return;
} }
report(productionRecord, organizeCode, userName, oldMesWorkOrders.get(0)); report(productionRecord, organizeCode, userName, oldMesWorkOrders.get(0));
@ -633,7 +633,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(productionRecord.getWorkOrderNo(), "workOrderNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(productionRecord.getWorkOrderNo(), "workOrderNo", ddlPackBean);
} }
DdlPreparedPack.getInPackList(list, "workOrderStatus", ddlPackBean); DdlPreparedPack.getInPackList(list, "workOrderStatus", ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"modifyDatetime"}, ddlPackBean);
// 新增班次逻辑 // 新增班次逻辑
//DdlPreparedPack. //DdlPreparedPack.
List<MesWorkOrder> oldMesWorkOrders = workOrderRepository.findByHqlWhere(ddlPackBean); List<MesWorkOrder> oldMesWorkOrders = workOrderRepository.findByHqlWhere(ddlPackBean);
@ -680,6 +680,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
} }
@Override @Override
public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) { public List<MesProductionRecord> getUnReportMesProduceSn(String organizeCode) {
//1.获取生产加工记录production_record表中report_status为待汇报状态的工单 //1.获取生产加工记录production_record表中report_status为待汇报状态的工单
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
List<Integer> statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList()); List<Integer> statusList = Stream.of(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_40.getValue()).collect(Collectors.toList());
@ -690,10 +691,17 @@ public class MesWorkOrderService implements IMesWorkOrderService {
List<String> centerList = Arrays.asList(workCenterCodes.split(",")); List<String> centerList = Arrays.asList(workCenterCodes.split(","));
DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean); DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"modifyDatetime"}, ddlPackBean);
List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1); List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 10);
List<MesProductionRecord> recordList = new ArrayList<>();
return mesProductionRecordList; // 根据零件号分组
if(!CollectionUtils.isEmpty(mesProductionRecordList)) {
Map<String, List<MesProductionRecord>> map = mesProductionRecordList.stream().collect(Collectors.groupingBy(MesProductionRecord::getPartNo));
map.forEach((k, v) -> {
recordList.add(v.get(0));
});
}
return recordList;
} }
@Override @Override
@ -708,10 +716,17 @@ public class MesWorkOrderService implements IMesWorkOrderService {
List<String> centerList = Arrays.asList(workCenterCodes.split(",")); List<String> centerList = Arrays.asList(workCenterCodes.split(","));
DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean); DdlPreparedPack.getInPackList(centerList, "workCenterCode",ddlPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"modifyDatetime"}, ddlPackBean);
List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1); List<MesProductionRecord> mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 10);
List<MesProductionRecord> recordList = new ArrayList<>();
return mesProductionRecordList; // 根据零件号分组
if(!CollectionUtils.isEmpty(mesProductionRecordList)) {
Map<String, List<MesProductionRecord>> map = mesProductionRecordList.stream().collect(Collectors.groupingBy(MesProductionRecord::getPartNo));
map.forEach((k, v) -> {
recordList.add(v.get(0));
});
}
return recordList;
} }

Loading…
Cancel
Save