Merge branch 'uat-temp-xw-202501250000-44863' into dev

dev-temp-nht-202502180000-customprint
xiangwei.zhang 4 months ago
commit 8a55afc42c

@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -256,6 +257,7 @@ public class MesProductionRecordService implements IMesProductionRecordService {
record.setSystemSyncStatus(CommonEnumUtil.FALSE); record.setSystemSyncStatus(CommonEnumUtil.FALSE);
record.setSystemSyncDatetime(MesPcnExtConstWords.EMPTY); record.setSystemSyncDatetime(MesPcnExtConstWords.EMPTY);
ConvertBean.serviceModelUpdate(record,userName); ConvertBean.serviceModelUpdate(record,userName);
record.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date()));
}); });
productionRecordRepository.saveAll(recordList); productionRecordRepository.saveAll(recordList);
} }

@ -135,6 +135,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Autowired @Autowired
private IMesProdRuleSortCfgDao mesProdRuleSortCfgDao; private IMesProdRuleSortCfgDao mesProdRuleSortCfgDao;
@Autowired
private MesPartProdGroupRepository mesPartProdGroupRao;
@Override @Override
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) { public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
@ -172,7 +175,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean packBean = getDdlPackBean(workOrder); DdlPackBean packBean = getDdlPackBean(workOrder);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"workOrderSeq","createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.WORK_ORDER_NO}, packBean);
pager = PagerHelper.getPager(pager, workOrderRepository.findByHqlWhereCount(packBean)); pager = PagerHelper.getPager(pager, workOrderRepository.findByHqlWhereCount(packBean));
List<MesWorkOrder> resultList = workOrderRepository.findByHqlWherePage(packBean, pager); List<MesWorkOrder> resultList = workOrderRepository.findByHqlWherePage(packBean, pager);
@ -220,9 +223,26 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesPcnException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); MesPcnException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode());
} }
//获取生产版本 //获取生产版本
MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(), mesWorkOrderDb.getPartNo(), mesWorkOrderDb.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//物料+生产版本获取bom信息 //物料+生产版本获取bom信息
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion);
LOGGER.info("产线:{} 零件:{}更新工单", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo()); LOGGER.info("产线:{} 零件:{}更新工单", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo());
//更新工单 //更新工单
@ -534,10 +554,27 @@ public class MesWorkOrderService implements IMesWorkOrderService {
return; return;
//throw new ImppBusiException(String.format("未找到匹配的加工单")); //throw new ImppBusiException(String.format("未找到匹配的加工单"));
} }
//获取生产版本
MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion());
//查询物料信息 //获取生产版本
MesProductVersion mesProductVersion = getProductVersion(oldMesWorkOrder.getOrganizeCode(), oldMesWorkOrder.getPartNo(), oldMesWorkOrder.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = oldMesWorkOrder.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(oldMesWorkOrder.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//查询物料信息
DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart); DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart);
MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart); MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart);
@ -545,7 +582,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
throw new ImppBusiException(String.format("物料【%s】信息不存在", productionRecord.getPartNo())); throw new ImppBusiException(String.format("物料【%s】信息不存在", productionRecord.getPartNo()));
} }
List<MesBom> mesBoms = findBomList(organizeCode, mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = findBomList(organizeCode, mesPart, bomVersion);
if (CollectionUtils.isEmpty(mesBoms)) { if (CollectionUtils.isEmpty(mesBoms)) {
@ -676,10 +713,10 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean);
DdlPreparedPack.getStringEqualPack(productionRecord.getModifyDatetime(), "modifyDatetime", packBean); // DdlPreparedPack.getStringEqualPack(productionRecord.getModifyDatetime(), "modifyDatetime", packBean);
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"}, productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus","systemSyncStatus","systemSyncDatetime"},
new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean); new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue(),CommonEnumUtil.FALSE,""}, packBean);
LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo()); LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());
@ -1019,8 +1056,25 @@ public class MesWorkOrderService implements IMesWorkOrderService {
MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb); MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb);
//获取生产版本 //获取生产版本
MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getProductVersion()); MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getProductVersion());
String bomVersion = mesProductVersion.getAlternativePartList();
String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode();
// partProdGroupCode 不为空查询的数据不为空查询数据中的获取bom方式不为空且枚举是 基于默认BOM 才bomversion = null 否则都是通过生产版本找bom
if (!StringUtil.isEmpty(partProdGroupCode)) {
DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean);
List<MesPartProdGroup> mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1);
// 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举枚举是基于默认BOM 则直接找
if (!mesPartProdGroupList.isEmpty()) {
MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0);
if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) {
log.info("基于默认BOM获取BOM");
bomVersion = "";
}
}
}
//物料+生产版本获取bom信息 //物料+生产版本获取bom信息
List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion);
mesWorkOrderDb.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrderDb.getReportedQty())); mesWorkOrderDb.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrderDb.getReportedQty()));
//更新工单状态 //更新工单状态
double unCompleteQty = MathOperation.sub(mesWorkOrderDb.getQty(), mesWorkOrderDb.getReportedQty()); double unCompleteQty = MathOperation.sub(mesWorkOrderDb.getQty(), mesWorkOrderDb.getReportedQty());

@ -220,6 +220,7 @@ public class MesWorkOrderOfflineRestoreDispatchService implements IMesWorkOrderO
productionRecord.setFid(UUID.randomUUID().toString()); productionRecord.setFid(UUID.randomUUID().toString());
productionRecord.setOneMouldMoreId(UUID.randomUUID().toString()); productionRecord.setOneMouldMoreId(UUID.randomUUID().toString());
productionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); productionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
productionRecord.setOrganizeCode(organizeCode);
ConvertBean.serviceModelInitialize(productionRecord, MesPcnExtConstWords.JOB); ConvertBean.serviceModelInitialize(productionRecord, MesPcnExtConstWords.JOB);
} else { } else {
productionRecord = productionRecordRepository.getByProperty( productionRecord = productionRecordRepository.getByProperty(

Loading…
Cancel
Save