From d2c977b5de8ef228c1e31cdf2b5f28e7359a9fc9 Mon Sep 17 00:00:00 2001 From: jun Date: Fri, 22 Nov 2024 20:04:45 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E7=82=B9=E6=A3=80=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E7=82=B9=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/base/IMesEquipmentSpotCheckTagService.java | 13 +++++++++++++ .../base/MesEquipmentSpotCheckTagController.java | 19 +++++++++++++++++++ .../base/MesEquipmentSpotCheckTagServiceImpl.java | 18 ++++++++++++++++++ .../serviceimpl/busi/MesSpotCheckOrderService.java | 2 ++ 4 files changed, 52 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckTagService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckTagController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckTagServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckTagService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckTagService.java new file mode 100644 index 0000000..8b83f7b --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckTagService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckTag; + +/** + * @Description : 设备点检地址 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/22 19:08 + * @Modify: + **/ +public interface IMesEquipmentSpotCheckTagService extends IBaseMesService { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckTagController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckTagController.java new file mode 100644 index 0000000..aab7690 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentSpotCheckTagController.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckTag; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +/** + * @Description : 设备点检地址 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/22 19:06 + * @Modify: + **/ +@Api(description = "设备点检地址") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEquipmentSpotCheckTag") +public class MesEquipmentSpotCheckTagController extends BaseMesController { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckTagServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckTagServiceImpl.java new file mode 100644 index 0000000..7e0a549 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckTagServiceImpl.java @@ -0,0 +1,18 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckTagService; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckTag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : 设备点检地址 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/22 19:09 + * @Modify: + **/ +@Service +@Slf4j +public class MesEquipmentSpotCheckTagServiceImpl extends BaseMesService implements IMesEquipmentSpotCheckTagService { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index 59dea45..c767428 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -415,6 +415,8 @@ public class MesSpotCheckOrderService extends BaseMesService DdlPreparedPack.getStringLikerPack(bean.getSpotCheckName(),"spotCheckName",packBean); DdlPreparedPack.getStringLikerPack(bean.getEquipCode(),"equipCode",packBean); DdlPreparedPack.getNumEqualPack(bean.getStatus(),"status",packBean); + DdlPreparedPack.getNumEqualPack(bean.getSpotCheckOrderType(),"spotCheckOrderType",packBean); + DdlPreparedPack.getInPackList(bean.getSpotCheckOrderTypeList(),"spotCheckOrderType",packBean); DdlPreparedPack.getNumEqualPack(bean.getSpotCheckOrderResult(),"spotCheckOrderResult",packBean); DdlPreparedPack.getStringLikerPack(bean.getEquipName(),"equipName",packBean); DdlPreparedPack.getStringBiggerPack(bean.getModifyDateTimeStart(), "spotCheckTime", packBean); From 55afdefd2f2ea3316189a6d6b459db75dd463fb2 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sat, 23 Nov 2024 10:05:23 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=8E=92=E9=99=A4=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E8=A7=84=E5=88=99=20=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=BA=BF=20like=20=EF=BC=9B=20=E5=8F=91=E8=BF=90=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20=20=E5=8F=91=E8=BF=90=E5=8D=95=E5=8F=B7=20like?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/serviceimpl/base/MesProdRuleSortCfgService.java | 2 +- .../apiservice/serviceimpl/base/MesShippingOrderManagementService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdRuleSortCfgService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdRuleSortCfgService.java index bc19209..8fe3a79 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdRuleSortCfgService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProdRuleSortCfgService.java @@ -19,7 +19,7 @@ import java.util.List; public class MesProdRuleSortCfgService extends BaseMesService implements IMesProdRuleSortCfgService { protected void setPackQueryBean(MesProdRuleSortCfg bean, DdlPackBean packBean) { - DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringEqualPack(bean.getWorkCellCode(), MesExtConstWords.WORK_CELL_CODE, packBean); DdlPreparedPack.getStringEqualPack(bean.getProcessCode(), MesExtConstWords.PROCESS_CODE, packBean); DdlPreparedPack.getStringEqualPack(bean.getCraftCode(), MesExtConstWords.CRAFT_CODE, packBean); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java index 26d758f..82dce4b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesShippingOrderManagementService.java @@ -66,7 +66,7 @@ public class MesShippingOrderManagementService extends BaseMesService Date: Sun, 24 Nov 2024 14:31:53 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=89=93=E5=8D=B0=E7=9B=AE=E8=A7=86?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesPartProdGroupService.java | 12 +++-- .../serviceimpl/base/MesWorkCenterService.java | 6 ++- .../serviceimpl/base/MesWorkOrderService.java | 55 +++++++++++++--------- .../strategy/AssemblyVisualListPrintStrategy.java | 42 ++++++++--------- 4 files changed, 63 insertions(+), 52 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java index 3e5f9c4..232fb7b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java @@ -10,7 +10,6 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail; -import cn.estsh.i3plus.pojo.mes.bean.MesPrintQueue; import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupDetailRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -18,9 +17,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -61,10 +60,15 @@ public class MesPartProdGroupService extends BaseMesService im @Override public Map getMesPartProdGroupMap(String organizeCode, List partProdGroupCodeList) { + if (CollectionUtils.isEmpty(partProdGroupCodeList) || StringUtils.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); + if (partProdGroupCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(partProdGroupCodeList.get(0), MesExtConstWords.PART_PROD_GROUP_CODE, packBean); + else DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); List partProdGroupList = baseRDao.findByHqlWhere(packBean); - return CollectionUtils.isEmpty(partProdGroupList) ? null : partProdGroupList.stream().collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, Function.identity(), (x, y) -> y)); + if (CollectionUtils.isEmpty(partProdGroupList)) return null; + partProdGroupList = partProdGroupList.stream().filter(o -> null != o).collect( + Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPartProdGroup::getPartProdGroupCode))), ArrayList::new)); + return partProdGroupList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, o -> o)); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java index 12b13f2..eeb0b3f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java @@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.List; @@ -45,9 +46,10 @@ public class MesWorkCenterService extends BaseMesService implemen @Override public List queryMesWorkCenterList(List workCenterCodeList, String organizeCode) { - + if (CollectionUtils.isEmpty(workCenterCodeList) || StringUtils.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean); + if (workCenterCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(workCenterCodeList.get(0), MesExtConstWords.WORK_CENTER_CODE, packBean); + else DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean); return workCenterRepository.findByHqlWhere(packBean); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 315b051..fa32036 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -35,12 +35,12 @@ import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.CaseInsensitiveMap; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.text.SimpleDateFormat; @@ -655,7 +655,7 @@ public class MesWorkOrderService extends BaseMesService implements mesWorkOrderLogList.add(workOrderLog); } //保存工单记录 - if (CollectionUtils.isNotEmpty(mesWorkOrderLogList)) { + if (!CollectionUtils.isEmpty(mesWorkOrderLogList)) { workOrderLogService.insertBatch(mesWorkOrderLogList); } } @@ -1079,7 +1079,7 @@ public class MesWorkOrderService extends BaseMesService implements updateMesWorkOrder(mesWorkOrder, (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrderNew.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrderNew.getNum()); //保存报工记录 试制单不报工 - if (CollectionUtils.isNotEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) { + if (!CollectionUtils.isEmpty(mesProductOffLineList) && (Objects.isNull(mesWorkOrder.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrder.getOrderFlag()))) { mesProductOffLineList.forEach(t->{ if(Objects.isNull(t.getBomTotalSize())){ t.setBomTotalSize(mesProductOffLineList.size()); @@ -1088,7 +1088,7 @@ public class MesWorkOrderService extends BaseMesService implements mesProductOffLineService.insertBatch(mesProductOffLineList); } //保存移库记录 - if (CollectionUtils.isNotEmpty(mesMoveList)) { + if (!CollectionUtils.isEmpty(mesMoveList)) { mesMoveRDao.saveAll(mesMoveList); } } @@ -1110,10 +1110,10 @@ public class MesWorkOrderService extends BaseMesService implements log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); //查询自制件零件 List partNoList = mesPartSapService.findMesPartSapByPartNoList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), organizeCode).stream().filter(t -> t.getIsTestPiece() == CommonEnumUtil.FALSE).map(MesPartSap::getPartNo).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(partNoList)) { + if (!CollectionUtils.isEmpty(partNoList)) { //关闭工单回传 List partNoAndDataKey = mesWorkOrderList.stream().filter(t -> !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(t.getOrderFlag()) && partNoList.contains(t.getPartNo())).map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(partNoAndDataKey)) { + if (!CollectionUtils.isEmpty(partNoAndDataKey)) { List mesWorkOrderToSapList = new ArrayList<>(); for (String partNoAndData : partNoAndDataKey) { MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]); @@ -1211,19 +1211,21 @@ public class MesWorkOrderService extends BaseMesService implements Map workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); // 产线代码集合 - List workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList()); + List workCenterCodeList = (mesWorkOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkCenterCode()))).map(MesWorkOrder::getWorkCenterCode).collect(Collectors.toList())) + .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); // 根据产线代码节后获取产线信息集合 - List mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode); + List workCenterList = CollectionUtils.isEmpty(workCenterCodeList) ? null : workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode); // 产线名称集合 - Map workCenterNameMap = CollectionUtils.isEmpty(mesWorkCenters) ? null : mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y)); + Map> workCenterNameMap = CollectionUtils.isEmpty(workCenterList) ? null : workCenterList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); - // 生产零件号 - List partProdGroupCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getPartProdGroupCode).distinct().collect(Collectors.toList()); + // 零件生产组代码 + List partProdGroupCodeList = (mesWorkOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartProdGroupCode()))).map(MesWorkOrder::getPartProdGroupCode).collect(Collectors.toList())) + .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); // 根据零件生产组代码分组 - Map partProdGroupMap = partProdGroupService.getMesPartProdGroupMap(organizeCode, partProdGroupCodeList); + Map partProdGroupMap = CollectionUtils.isEmpty(partProdGroupCodeList) ? null : partProdGroupService.getMesPartProdGroupMap(organizeCode, partProdGroupCodeList); // 客户车型配置名称MAP Map carModelMapByCode = getMesCustomerCarModelMap(organizeCode, mesWorkOrderList); @@ -1244,9 +1246,9 @@ public class MesWorkOrderService extends BaseMesService implements continue; } - mesWorkOrder.setWorkCenterName(!Objects.isNull(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode()) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()) : ""); + mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : ""); - MesPartProdGroup mesPartProdGroup = !Objects.isNull(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode()) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; + MesPartProdGroup mesPartProdGroup = (!StringUtils.isEmpty(mesWorkOrder.getPartProdGroupCode()) && !CollectionUtils.isEmpty(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode())) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; if (mesPartProdGroup == null) { MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】不存在", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode()); @@ -1273,10 +1275,9 @@ public class MesWorkOrderService extends BaseMesService implements if (customerCarModel != null) { modelMap.put("mesCustomerCarModel", customerCarModel); } - List workOrderAssemblyListByWorkOrderNo = !Objects.isNull(workOrderAssemblyMapByWorkOrderNo) && workOrderAssemblyMapByWorkOrderNo.containsKey(mesWorkOrder.getWorkOrderNo()) ? workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()) : null; - if (!CollectionUtils.isEmpty(workOrderAssemblyListByWorkOrderNo)) { - modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyListByWorkOrderNo); + if (!CollectionUtils.isEmpty(workOrderAssemblyMapByWorkOrderNo) && workOrderAssemblyMapByWorkOrderNo.containsKey(mesWorkOrder.getWorkOrderNo())) { + modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo())); } MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); @@ -1330,21 +1331,29 @@ public class MesWorkOrderService extends BaseMesService implements } private Map getMesCustomerCarModelMap(String organizeCode, List workOrderList) { - List carModelCodeList = workOrderList.stream().map(MesWorkOrder::getCarModelCode).distinct().collect(Collectors.toList()); + List carModelCodeList = CollectionUtils.isEmpty(workOrderList) ? null : + (workOrderList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCarModelCode()))).map(MesWorkOrder::getCarModelCode).collect(Collectors.toList())) + .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(workOrderList)) return null; // 客户车型配置 DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean); + if (carModelCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(carModelCodeList.get(0), MesExtConstWords.CAR_MODEL_CODE, packBean); + else DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean); List customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean); - - return CollectionUtils.isEmpty(customerCarModelList) ? null : customerCarModelList.stream().collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, Function.identity(), (x, y) -> y)); + if (CollectionUtils.isEmpty(customerCarModelList)) return null; + customerCarModelList = customerCarModelList.stream().filter(o -> null != o).collect( + Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesCustomerCarModel::getCarModelCode))), ArrayList::new)); + return customerCarModelList.stream().filter(o -> null != o).collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, o -> o)); } private Map> getWorkOrderAssemblyMapByWorkOrderNo(String organizeCode, Map workOrderMapByWorkOrderNo) { + if (CollectionUtils.isEmpty(workOrderMapByWorkOrderNo)) return null; List workOrderNoList = workOrderMapByWorkOrderNo.keySet().stream().collect(Collectors.toList()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); + if (workOrderNoList.size() == 1) DdlPreparedPack.getStringEqualPack(workOrderNoList.get(0), MesExtConstWords.WORK_ORDER_NO, packBean); + else DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); List workOrderAssemblyList = workOrderAssemblyRepository.findByHqlWhere(packBean); - return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); + return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); } private List getMesProductOffLineList(WmsProductModel model, String nowTime) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java index 5169df9..8a2132d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java @@ -12,7 +12,10 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -39,8 +42,10 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null; // 工单装配件信息 List workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List) modelMap.get("mesWorkOrderAssemblyList") : new ArrayList<>(); - workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() : workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq)); + + workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() : + workOrderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplaySeq()) && o.getDisplaySeq().compareTo(MesExtConstWords.ZERO) != 0)).collect(Collectors.toList()); + // 返回的结果集合 List> printDataMapList = new ArrayList<>(); // 单个标签参数值 @@ -77,30 +82,21 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe //替换总成SN resultMap.put(MesExtConstWords.REPLACE_CSN,MesExtConstWords.CP+workOrder.getCustPartNo().substring(workOrder.getCustPartNo().length() -4)); - // 总个数 - Integer totalCount = partProdGroup.getTotalCount(); - Map> collect = workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq)); + Map> collect = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq)); // 为空时显示内容 String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); - for (int index = 0; index < collect.size(); index++) { - List orderAssemblyList = collect.get(index+1); - List disPlayValues = orderAssemblyList.stream().map(MesWorkOrderAssembly::getDisplayValue).distinct().collect(Collectors.toList()); - String displayValue =isNullViewContent; - if(!disPlayValues.isEmpty()){ - displayValue = String.join("\r\n", disPlayValues); + if (!CollectionUtils.isEmpty(collect)) { + for (Integer displaySeq : collect.keySet()) { + List orderAssemblyList = collect.get(displaySeq); + List disPlayValues = (orderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplayValue()))).map(MesWorkOrderAssembly::getDisplayValue).collect(Collectors.toList())) + .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + String displayValue = isNullViewContent; + if(!CollectionUtils.isEmpty(disPlayValues)){ + displayValue = String.join("\r\n", disPlayValues); + } + resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + displaySeq, displayValue); } - // String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue(); - -// resultMap.put(MesPcnExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : isNullViewContent : displayValue); - resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), displayValue); } - // 为空时显示内容 -// String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); -// for (Integer index = 0; index < totalCount; index++) { -// String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(index).getDisplayValue(); -// -// resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? StringUtils.isEmpty(isNullViewContent) ? "" : null : displayValue); -// } printDataMapList.add(resultMap); From e42891c570b5d4671c70f9f3512f1c6c4506c3ba Mon Sep 17 00:00:00 2001 From: jun Date: Sun, 24 Nov 2024 15:38:45 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=89=8B=E5=B7=A5=E6=9F=A5=E5=8D=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 225 +++++++++++++-------- 1 file changed, 140 insertions(+), 85 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 315b051..d719ec8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -327,81 +327,106 @@ public class MesWorkOrderService extends BaseMesService implements } private void insertMesWorkOrder(MesWorkOrder item, List orderPartList) { - /** - * 总成拆bom,变成子零件 - * 替换子零件,通过替换后的零件,去找排序工艺 - */ - Map ptrRuleListMap = new HashMap<>(); - //是否修改为P单 - boolean isModifyPOrder = false; - //查询mes_part_ptr表,根据物料清单查找ptr替换信息 - if (!CollectionUtils.isEmpty(orderPartList)){ - Map orderPartMap = orderPartList.stream().collect(Collectors.toMap(MesWorkOrderPart::getPartNo, Function.identity())); - //先替换客户的ptr信息 - String ptrInfo = item.getPtrInfo(); - if (!StringUtils.isEmpty(ptrInfo)) { - List ptrInfoList = Arrays.asList(ptrInfo.replace("_", "").split("\\|")); - if (!ptrInfoList.isEmpty()){ - List custPartPtrList = getCustPartPtrList(ptrInfoList, item.getOrganizeCode()); - for (MesPartPtr mesPartPtr : custPartPtrList) { - //根据mesPartPtr的目标零件号,找到零件信息 - String destPartNo = mesPartPtr.getDestPartNo(); - MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, item.getOrganizeCode()); - //更新物料清单 - MesWorkOrderPart orderPart = orderPartMap.get(destPartNo); - if (orderPart != null) { - orderPart.setPartNo(mesPartSap.getPartNo()); - orderPart.setPartName(mesPartSap.getPartName()); - orderPart.setShippingPartNo(mesPartSap.getPartNo()); - if (!isModifyPOrder){ - isModifyPOrder = true; - } - } - } - } - } + //打印目视单使用 + StringBuilder descriptionStr = new StringBuilder(); + + //客户ptr信息 + StringBuilder ptrInfos = new StringBuilder(); + boolean ptrFlag = false; + boolean fOrderFlag = false; + List assemblyList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(orderPartList)) { + //是否基于排序加工规则--待定 + //查询装配目视项 + assemblyList = getAssemblyList(item.getWorkCenterCode(), item.getCarModelCode(), orderPartList, item.getOrganizeCode()); + //ptr信息 List partNoList = orderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); List partPtrList = getPartPtrList(item.getOrganizeCode(), item.getWorkCenterCode(), partNoList); - //装配件规则如果进行了零件替换 则使用ptr的规则 key 零件号,value 是规则 - - for (MesPartPtr mesPartPtr : partPtrList) { - //根据mesPartPtr的目标零件号,找到零件信息 - String destPartNo = mesPartPtr.getDestPartNo(); - String srcPartNo = mesPartPtr.getSrcPartNo(); - MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(destPartNo, item.getOrganizeCode()); - //更新物料清单 - MesWorkOrderPart orderPart = orderPartMap.get(srcPartNo); - if (orderPart != null) { - orderPart.setPartNo(mesPartSap.getPartNo()); - orderPart.setPartName(mesPartSap.getPartName()); - orderPart.setShippingPartNo(mesPartSap.getPartNo()); - ptrRuleListMap.put(mesPartSap.getPartNo(), mesPartPtr.getReplacePartSnRule()); - if (!isModifyPOrder){ - isModifyPOrder = true; + + for (MesWorkOrderPart orderPart : orderPartList) { + List ptr = partPtrList.stream().filter(t -> t.getSrcPartNo().equals(orderPart.getPartNo())).collect(Collectors.toList()); + if (ptr.isEmpty()) { + continue; + } + + MesPartPtr mesPartPtr = null; + MesPartPtrDetail mesPartPtrDetail = null; + + //获取相同总成的ptrId 在ptr详情中 + List custPartPtrList = ptr.stream().filter(t -> t.getIsCustomerSendPrtInfo() == null || t.getIsCustomerSendPrtInfo() != CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(custPartPtrList)) { + mesPartPtr = custPartPtrList.iterator().next(); + //查询ptr总成--只有特定总成才会替换 + DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), "totalPartNo", detailPartPtr); + List ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr); + if (!ptrDetailList.isEmpty()) { + mesPartPtrDetail = ptrDetailList.get(0); } - //更新mes_part_ptr的实际数量 + 1 - mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); - ConvertBean.saveOrUpdate(mesPartPtr, item.getModifyUser()); - partPtrRao.update(mesPartPtr); - DdlPackBean partPtrDetailPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(),"ptrId",partPtrDetailPackBean); - DdlPreparedPack.getStringEqualPack(item.getPartNo(),"totalPartNo",partPtrDetailPackBean); - List partPtrDetailList = partPtrDetailRao.findByHqlWhere(partPtrDetailPackBean); - if (!partPtrDetailList.isEmpty()){ - MesPartPtrDetail mesPartPtrDetail = partPtrDetailList.get(0); - mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1); - ConvertBean.saveOrUpdate(mesPartPtrDetail, item.getModifyUser()); - partPtrDetailRao.update(mesPartPtrDetail); + } + + if (mesPartPtr == null || mesPartPtrDetail == null) { + continue; + } + + ptrFlag = true; + if (mesPartPtr.getIsInterPrt() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) { + fOrderFlag = true; + } + //将工单类零件表替换位PTR条件中维护的替换零件 + MesPartSap mesPartSap = mesPartSapService.getMesPartSapByPartNo(mesPartPtr.getDestPartNo(), item.getOrganizeCode()); + orderPart.setPartNo(mesPartSap.getPartNo()); + orderPart.setPartName(mesPartSap.getPartName()); + //用于打印目视单 + descriptionStr.append(mesPartPtr.getMemo()); + //更新mes_part_ptr的实际数量 + 1 + mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); + ConvertBean.saveOrUpdate(mesPartPtr, "JOB"); + partPtrRao.update(mesPartPtr); + if (mesPartPtrDetail != null) { + mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1); + ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB"); + partPtrDetailRao.update(mesPartPtrDetail); + } + MesWorkOrderAssembly orderAssemblyList = null; + for (MesWorkOrderAssembly orderAssembly : assemblyList) { + String assemblyPartNo = orderAssembly.getAssemblyPartNo(); + if (!StringUtils.isEmpty(assemblyPartNo) && assemblyPartNo.equals(mesPartPtr.getSrcPartNo())) { + orderAssemblyList = orderAssembly; + } + } + /** + * 原pisces逻辑 + * add by aix 2017.4.11 增加根据PTR维护页面维护的目视单显示项来替换WORKORDERASSEMBLY中的partdesc + */ + if (!Objects.isNull(orderAssemblyList)) { + if (orderAssemblyList.getDisplaySeq() != null && orderAssemblyList.getDisplaySeq() != 0) { + orderAssemblyList.setDisplayValue(mesPartPtr.getVisualItem()); + } + orderAssemblyList.setAssemblyPartNo(mesPartSap.getPartNo()); + orderAssemblyList.setAssemblyPartName(mesPartSap.getPartName()); + orderAssemblyList.setMatchRule(mesPartPtr.getReplacePartSnRule()); + ptrInfos.append("INFO|").append(mesPartPtr.getId()); + if (mesPartPtrDetail != null) { + ptrInfos.append("PART|").append(mesPartPtrDetail.getId()); } - //更新mes_part_ptr_detail 的workOrder.partNo 数量加 1 ;替换了几次还是什么 } } } - - // 生成装配件清单 - if (isModifyPOrder){ + if (ptrFlag && !fOrderFlag) { item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue()); + } else if (ptrFlag) { + item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue()); + } else { + item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); } + item.setPtrInfo(ptrInfos.toString()); + //生成工单号 + item.setWorkOrderNo(getOrderNo(item)); + //获取车型remark用于目视单打印 + String remark = getCarRemark(item.getCustCode(), item.getCarModelCode(), item.getOrganizeCode()); + item.setDescription(descriptionStr.append(remark).toString()); if (!CollectionUtils.isEmpty(orderPartList)) { for (MesWorkOrderPart orderPart : orderPartList) { @@ -411,12 +436,8 @@ public class MesWorkOrderService extends BaseMesService implements } workOrderPartRao.saveAll(orderPartList); } - List assemblyList = getAssemblyList(item.getWorkCenterCode(), item.getCarModelCode(), orderPartList, item.getOrganizeCode()); if (!CollectionUtils.isEmpty(assemblyList)) { for (MesWorkOrderAssembly orderAssembly : assemblyList) { - if (ptrRuleListMap.get(orderAssembly.getPartNo()) != null){ - orderAssembly.setMatchRule(ptrRuleListMap.get(orderAssembly.getPartNo())); - } orderAssembly.setPartNo(item.getPartNo()); orderAssembly.setPartName(item.getPartName()); orderAssembly.setWorkOrderNo(item.getWorkOrderNo()); @@ -499,8 +520,6 @@ public class MesWorkOrderService extends BaseMesService implements //自动发布 if (CommonEnumUtil.VALID == mesPartProdGroup.getIsAutoRelease()) { item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); - // 创建工单打印队列 - insertPrintQueue(item); } else { item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); } @@ -1780,8 +1799,6 @@ public class MesWorkOrderService extends BaseMesService implements //排序工单数量为1 bean.setQty(1d); - //生成工单号 - bean.setWorkOrderNo(getOrderNo(bean)); //自动发布 List orderPartList = autoPublish(bean); //顺序号 @@ -1790,6 +1807,10 @@ public class MesWorkOrderService extends BaseMesService implements bean.setCustSn(getCustSn(bean.getCustPartNo(), bean.getOrganizeCode(), bean.getCreateUser())); //生成工单零件 工单装配件 insertMesWorkOrder(bean, orderPartList); + // 创建工单打印队列 + if(bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()){ + insertPrintQueue(bean); + } //物料名称不存在,从物料信息中获取 MesPartSap mesPart = mesPartSapService.getMesPartSapByPartNo(bean.getPartNo(), bean.getOrganizeCode()); @@ -2095,6 +2116,7 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean); DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean); + DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), "effEndTime", ddlPackBean); DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean); List mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean); if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) { @@ -2180,24 +2202,47 @@ public class MesWorkOrderService extends BaseMesService implements } private List getPartPtrList(String organizeCode,String workCenterCode, List partNoList) { + /** + * 2024/11/16 + * PTR生效 + * 1.有开始时间和结束时间 和 需要数量,达到其中一个就结束 + * 2.有开始时间无结束时间 和 需要数量 达到需要的数量结束 + * 3.有开始时间无结束时间,无结束数量 一直替换 + */ DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean); DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean); - DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "startTime", partPtrPackBean); - DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime("yyyy-MM-dd HH:mm:ss"), "endTime", partPtrPackBean); - DdlPreparedPack.getIsNotNull("prtVehicleCount", partPtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", partPtrPackBean); List partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean); + /** + * 有开始时间 和 无结束时间 和 需要的数量,只有达到数量才结束 + */ + + DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part1PtrPackBean); + DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part1PtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part1PtrPackBean); + DdlPreparedPack.getIsNotNull("prtVehicleCount", part1PtrPackBean); + DdlPreparedPack.getIsNull("endTime", part1PtrPackBean); + List partPtrList1 = partPtrRao.findByHqlWhere(part1PtrPackBean); + partPtrList.addAll(partPtrList1); + partPtrList = partPtrList.stream().filter(item -> item.getPrtVehicleCount() != null && item.getPrtVehicleCount() > 0) .filter(item-> item.getPrtVehicleCount() > item.getPrtVehicleActualCount()) .collect(Collectors.toList()); - return partPtrList; - } + /** + * 有开始时间 和 无结束时间 和 无需要的数量 + */ - //根据排序信息PTR零件号 获取 ptr信息 - private List getCustPartPtrList(List ptrInfoList,String organizeCode){ - DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(ptrInfoList, "seqInfoPrtPart", partPtrPackBean); - return partPtrRao.findByHqlWhere(partPtrPackBean); + DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part2PtrPackBean); + DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part2PtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part2PtrPackBean); + DdlPreparedPack.getIsNull("prtVehicleCount", part2PtrPackBean); + DdlPreparedPack.getIsNull("endTime", part2PtrPackBean); + List partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean); + partPtrList.addAll(partPtrList2); + return partPtrList; } private MesPartProdGroup getMesPartProdGroup(String organizeCode, String workCenterCode) { @@ -2254,7 +2299,6 @@ public class MesWorkOrderService extends BaseMesService implements orderAssembly.setCraftCode(sortCfg.getCraftCode()); orderAssembly.setRouteSeq(sortCfg.getRouteSeq()); orderAssembly.setWorkCellCode(sortCfg.getWorkCellCode()); - orderAssembly.setOrderPartId(orderPart.getId().toString()); orderAssembly.setEquipmentCode(sortCfg.getEquipmentCode()); orderAssembly.setReportType(sortCfg.getReportType()); if (sortCfg.getReportType() != null && sortCfg.getReportType() == MesExtEnumUtil.MES_REPORT_TYPE.REPORT.getValue()){ @@ -2519,4 +2563,15 @@ public class MesWorkOrderService extends BaseMesService implements return mesProductVersion; } + private String getCarRemark(String custCode,String carModelCode,String organizeCode){ + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(custCode,"custCode",ddlPackBean); + DdlPreparedPack.getStringEqualPack(carModelCode,"carModelCode",ddlPackBean); + List carModelList = customerCarModelRepository.findByHqlTopWhere(ddlPackBean, 1); + if (carModelList != null && !carModelList.isEmpty()){ + return carModelList.get(0).getRemark(); + } + return ""; + } + } From a244b350f2ae7aac36250b13d3f56cd5a0975131 Mon Sep 17 00:00:00 2001 From: jun Date: Sun, 24 Nov 2024 15:41:08 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BA=A7=E5=93=81=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=8D=95=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/busi/report/IMesYfReportService.java | 4 +- .../controller/base/BaseExtDataController.java | 5 +- .../controller/report/MesBusiReportController.java | 4 +- .../mes/apiservice/dao/report/IMesYfReportDao.java | 4 ++ .../daoimpl/report/MesYfReportDaoImpl.java | 70 ++++++++++++++++++++++ .../serviceimpl/report/MesYfReportServiceImpl.java | 12 +--- 6 files changed, 84 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java index 8888d56..189d5e9 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java @@ -7,7 +7,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; -import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel; @@ -50,7 +50,7 @@ public interface IMesYfReportService { ListPager queryMesProduceSn(MesProduceSn mesProduceSn, Pager pager); @ApiOperation("产品加工记录") - ListPager queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager); + ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager); @ApiOperation("看板数据") ListPager queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java index 440c4d6..c9d1c32 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java @@ -11,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.common.ExportDataModel; import cn.estsh.impp.framework.base.controller.MesBaseController; @@ -126,9 +127,9 @@ public class BaseExtDataController extends MesBaseController { //查询数据 listPager = mesYfReportService.queryMesProduceSn(JSON.parseObject(exportDataModel.getSelectWhere(), MesProduceSn.class),null);break; case MES_PRODUCTION_RECORD_DATA_EXPORT: - mesClass = MesProductionRecord.class; + mesClass = MesProductionRecordModel.class; //查询数据 - listPager = mesYfReportService.queryMesProductionRecord(JSON.parseObject(exportDataModel.getSelectWhere(), MesProductionRecord.class),null);break; + listPager = mesYfReportService.queryMesProductionRecord(JSON.parseObject(exportDataModel.getSelectWhere(), MesProductionRecordModel.class),null);break; case MES_SHIPPING_DETAIL_DATA_EXPORT: mesClass = MesShippingOrderManagementDetailModel.class; //查询数据 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java index 1d74350..a4def21 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java @@ -80,9 +80,9 @@ public class MesBusiReportController extends MesBaseController { @ApiOperation(value = "产品加工记录", notes = "产品加工记录") @GetMapping("/mesProductionRecord/query") - public ResultBean queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager) { + public ResultBean queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager) { try { - return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesProductionRecord(mesProductionRecord,pager)); + return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesProductionRecord(mesProductionRecordModel,pager)); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java index 98dda94..ffa6d43 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditi import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import io.swagger.annotations.ApiOperation; @@ -33,4 +34,7 @@ public interface IMesYfReportDao { @ApiOperation("通用发运报表查询") ListPager queryGeneralShipping(MesGeneralShippingReportModel model, Pager pager, List shippingGroupList); + @ApiOperation("产品加工记录") + ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java index 806652d..4aaf92c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java @@ -3,10 +3,12 @@ package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report; import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -158,6 +160,27 @@ public class MesYfReportDaoImpl implements IMesYfReportDao { return new ListPager<>(dataQuery.getResultList(), pager); } + @Override + public ListPager queryMesProductionRecord(MesProductionRecordModel model, Pager pager) { + StringBuilder dataHql = new StringBuilder(); + dataHql.append(" select new ").append(MesProductionRecordModel.class.getName()).append("(record,wo.workOrderStatus)"); + //共用HQL + String commonHql = getMesProductionRecordCommonHql(model); + //行数 + Query countQuery = entityManager.createQuery("select count(1) " + commonHql); + setMesProductionRecordParameter(model, countQuery); + //数据 + Query dataQuery = entityManager.createQuery(dataHql.append(commonHql).append(getMesProductionRecordOrderBy(model)).toString(), MesProductionRecordModel.class); + setMesProductionRecordParameter(model, dataQuery); + if (Objects.isNull(pager)) return new ListPager<>(dataQuery.getResultList(), pager); + + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + if (count <= 0) return new ListPager<>(new ArrayList<>(), pager); + pager = PagerHelper.getPager(pager, count); + dataQuery.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()); + return new ListPager<>(dataQuery.getResultList(), pager); + } + private void setGeneralExportParameter(MesGeneralExportReportModel model, Query query) { query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); @@ -246,4 +269,51 @@ public class MesYfReportDaoImpl implements IMesYfReportDao { return commonHql.toString(); } + private String getMesProductionRecordCommonHql(MesProductionRecordModel model) { + StringBuilder commonHql = new StringBuilder(); + commonHql.append(" from MesProductionRecord record left join MesWorkOrder wo on wo.workOrderNo = record.workOrderNo "); + commonHql.append(" where record.organizeCode = :organizeCode and record.isDeleted=:isDeleted and record.isValid=:isValid "); + if (!StringUtils.isEmpty(model.getProductSn())) commonHql.append(" and record.productSn like '%").append(model.getProductSn()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkOrderNo())) commonHql.append(" and record.workOrderNo like '%").append(model.getWorkOrderNo()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkCenterCode())) commonHql.append(" and record.workCenterCode like '%").append(model.getWorkCenterCode()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkCellCode())) commonHql.append(" and record.workCellCode like '%").append(model.getWorkCellCode()).append("%' "); + if (!StringUtils.isEmpty(model.getCompleteDateTimeStart())) commonHql.append(" and record.completeDateTime >= :completeDateTimeStart "); + if (!StringUtils.isEmpty(model.getCompleteDateTimeEnd())) commonHql.append(" and record.completeDateTime <= :completeDateTimeEnd "); + if (!StringUtils.isEmpty(model.getEquipmentCode())) commonHql.append(" and record.equipmentCode like '%").append(model.getEquipmentCode()).append("%' "); + if (!StringUtils.isEmpty(model.getEquipmentName())) commonHql.append(" and record.equipmentName like '%").append(model.getEquipmentName()).append("%' "); + if (!StringUtils.isEmpty(model.getMouldNo())) commonHql.append(" and record.mouldNo like '%").append(model.getMouldNo()).append("%' "); + if (!StringUtils.isEmpty(model.getShiftGroup())) commonHql.append(" and record.shiftGroup like '%").append(model.getShiftGroup()).append("%' "); + if (!StringUtils.isEmpty(model.getShiftCode())) commonHql.append(" and record.shiftCode like '%").append(model.getShiftCode()).append("%' "); + if (!StringUtils.isEmpty(model.getReportStatus()) && model.getReportStatus() > MesExtConstWords.ZERO) commonHql.append(" and record.reportStatus = :reportStatus "); + if (!StringUtils.isEmpty(model.getReportType()) && model.getReportType() > MesExtConstWords.ZERO) commonHql.append(" and record.reportType = :reportType "); + if (!StringUtils.isEmpty(model.getIsComplete()) && model.getIsComplete() > MesExtConstWords.ZERO) commonHql.append(" and record.isComplete = :isComplete "); + if (!StringUtils.isEmpty(model.getWorkOrderStatus()) && model.getWorkOrderStatus() > MesExtConstWords.ZERO) commonHql.append(" and wo.workOrderStatus = :workOrderStatus "); + if (!StringUtils.isEmpty(model.getIsTest())) commonHql.append(" and record.isTest like '%").append(model.getIsTest()).append("%' "); + if (!StringUtils.isEmpty(model.getPartNo())) commonHql.append(" and record.partNo like '%").append(model.getPartNo()).append("%' "); + if (!StringUtils.isEmpty(model.getPartName())) commonHql.append(" and record.partName like '%").append(model.getPartName()).append("%' "); + + return commonHql.toString(); + } + + private void setMesProductionRecordParameter(MesProductionRecordModel model, Query query) { + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("organizeCode", model.getOrganizeCode()); + if(!StringUtils.isEmpty(model.getCompleteDateTimeStart())) query.setParameter("completeDateTimeStart", model.getCompleteDateTimeStart()); + if (!StringUtils.isEmpty(model.getCompleteDateTimeEnd())) query.setParameter("completeDateTimeEnd", model.getCompleteDateTimeEnd()); + if (!StringUtils.isEmpty(model.getReportStatus()) && model.getReportStatus() > MesExtConstWords.ZERO) query.setParameter("reportStatus", model.getReportStatus()); + if (!StringUtils.isEmpty(model.getReportType()) && model.getReportType() > MesExtConstWords.ZERO) query.setParameter("reportType", model.getReportType()); + if (!StringUtils.isEmpty(model.getIsComplete()) && model.getIsComplete() > MesExtConstWords.ZERO) query.setParameter("isComplete", model.getIsComplete()); + if (!StringUtils.isEmpty(model.getWorkOrderStatus()) && model.getWorkOrderStatus() > MesExtConstWords.ZERO) query.setParameter("workOrderStatus", model.getWorkOrderStatus()); + } + + private String getMesProductionRecordOrderBy(MesProductionRecordModel model) { + StringBuilder orderBy = new StringBuilder(); + if (StringUtils.isEmpty(model.getOrderByParam()) || StringUtils.isEmpty(model.getAscOrDesc())) { + model.setOrderByParam("createDatetime"); + model.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + } + return orderBy.append(" order by record.").append(model.getOrderByParam()).append(" ").append(CommonEnumUtil.ASC_OR_DESC.DESC.getValue() == model.getAscOrDesc() ? "desc" : "asc").toString(); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java index 228447d..85badea 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -23,6 +23,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportDataModel; @@ -246,15 +247,8 @@ public class MesYfReportServiceImpl implements IMesYfReportService { } @Override - public ListPager queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager) { - DdlPackBean packBean = getDdlPackBeanMesProductionRecord(mesProductionRecord); - if(Objects.isNull(pager)){ - DdlPreparedPack.getOrderBy(mesProductionRecord.getOrderByParam(),mesProductionRecord.getAscOrDesc(),packBean); - return new ListPager<>(mesProductionRecordRepository.findByHqlWhere(packBean), pager); - } - pager = PagerHelper.getPager(pager, mesProductionRecordRepository.findByHqlWhereCount(packBean)); - DdlPreparedPack.getOrderBy(mesProductionRecord.getOrderByParam(),mesProductionRecord.getAscOrDesc(),packBean); - return new ListPager<>(mesProductionRecordRepository.findByHqlWherePage(packBean, pager), pager); + public ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager) { + return mesYfReportDao.queryMesProductionRecord(mesProductionRecordModel, pager); } @Override From 3f466e59b6ccaa7215eeb31d08cf89b641a98c4d Mon Sep 17 00:00:00 2001 From: jun Date: Sun, 24 Nov 2024 16:11:32 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/groovy/Pisces2Mes/PiscesToMesBom.groovy | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesBom.groovy diff --git a/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesBom.groovy b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesBom.groovy new file mode 100644 index 0000000..8ffee14 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/groovy/Pisces2Mes/PiscesToMesBom.groovy @@ -0,0 +1,58 @@ +import cn.estsh.i3plus.ext.mes.pojo.util.OverwriteStringJoin +import cn.estsh.i3plus.platform.common.tool.TimeTool +import cn.estsh.i3plus.platform.plugin.datasource.DynamicDataSourceProxy +import cn.estsh.i3plus.pojo.mes.dbinterface.MesInterfaceDataMapper +import lombok.Getter +import lombok.Setter +import org.apache.commons.collections.CollectionUtils +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.util.StringUtils + +import javax.annotation.Resource +import java.sql.Connection + +/** + * @Description : PiscesToMesBom + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/11/24 12:40 + * @Modify: + * */ +class PiscesToMesBom { + + public static final Logger LOGGER = LoggerFactory.getLogger(PiscesToMesBom.class) + + @Resource(name = "mesDataSource") + private DynamicDataSourceProxy mesDataSource; + + @Getter + @Setter + private Connection mesConn; + + + def filterData(MesInterfaceDataMapper mapper, List> srcData) throws Exception { + if (srcData == null || srcData.size() == 0) { + return srcData + } + String organizeCode = mapper.getOrganizeCode(); + List partNoList = new ArrayList<>(); + for (Map rowMap : srcData) { + //零件号 + if (!StringUtils.isEmpty(rowMap.get("PART_NO"))) { + partNoList.add(String.valueOf(rowMap.get("PART_NO"))) + } + } + updateMesBomDelete(organizeCode, partNoList); + return srcData; + } + + private void updateMesBomDelete(String organizeCode, List partNoList) { + if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(partNoList)) return; + List updateList = new ArrayList<>(); + updateList.add("update mes_bom set system_sync_date_time='" + TimeTool.getNowTime(true) + "',system_sync_status = 2,is_deleted=1 where organize_code = '" + organizeCode + "' and part_no in (" + OverwriteStringJoin.join(",", partNoList) + ") ;") + this.mesConn = mesDataSource.getWriteConnectionWithoutPool(); + mesDataSource.executeAsBatch(updateList, mesConn) + mesDataSource.closeConnectionWithoutPoll(this.mesConn) + } +} \ No newline at end of file From 90f45024542873c3a35fb5852f659cd75bc00f48 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sun, 24 Nov 2024 16:47:00 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=B7=A5=E5=8D=95=20?= =?UTF-8?q?=E6=97=B6=20=E5=90=8C=E6=97=B6=E5=85=B3=E9=97=ADJIS=20SPS=20QUE?= =?UTF-8?q?UE[=E5=88=9B=E5=BB=BA]=20=E5=8D=95=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesPullingOrderInfoService.java | 6 +- .../serviceimpl/base/MesWorkOrderService.java | 268 +++++++++++---------- .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 45 ++++ 3 files changed, 189 insertions(+), 130 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java index 4d7d44b..b399c6d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java @@ -187,7 +187,7 @@ public class MesPullingOrderInfoService extends BaseMesService implements private MesQueueOrderRepository queueOrderRao; @Autowired + private MesPullingOrderInfoRepository pullingOrderInfoRepository; + + @Autowired private IMesWorkOrderAssemblyService mesWorkOrderAssemblyService; @Autowired @@ -249,6 +253,7 @@ public class MesWorkOrderService extends BaseMesService implements //排序工单 关闭工单对列表 if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus() && MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == bean.getWorkOrderType()) { closeMesQueueOrder(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); + closeMesPullingOrderInfo(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); } result.setWorkOrderStatus(bean.getWorkOrderStatus()); } @@ -262,24 +267,21 @@ public class MesWorkOrderService extends BaseMesService implements @Override protected void setPackQueryBean(MesWorkOrder bean, DdlPackBean packBean) { - DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), "workOrderNo", packBean); - DdlPreparedPack.getStringLikerPack(bean.getPartName(), "partName", packBean); - DdlPreparedPack.getStringLikerPack(bean.getCreateUser(), "createUser", packBean); - DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); - DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(), "custPartNo", packBean); - DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), "workCenterCode", packBean); - DdlPreparedPack.getStringLikerPack(bean.getVinCode(), "vinCode", packBean); - DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), "orderFlag", packBean); + DdlPreparedPack.getStringLikerPack(bean.getWorkOrderNo(), MesExtConstWords.WORK_ORDER_NO, packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartName(), MesExtConstWords.PART_NAME, packBean); + DdlPreparedPack.getStringLikerPack(bean.getCreateUser(), MesExtConstWords.CREATE_USER, packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartNo(), MesExtConstWords.PART_NO, packBean); + DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(), MesExtConstWords.CUST_PART_NO, packBean); + DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringLikerPack(bean.getVinCode(), MesExtConstWords.VIN_CODE, packBean); + DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), MesExtConstWords.ORDER_FLAG, packBean); if (!StringUtil.isEmpty(bean.getWorkOrderStatusQuery())) { - DdlPreparedPack.getInPackList(Arrays.stream(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)).map(Integer::parseInt).collect(Collectors.toList()), "workOrderStatus", packBean); - } else DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", packBean); - DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), "workOrderType", packBean); - DdlPreparedPack.getStringBiggerPack(bean.getCreateDateTimeStart(), "createDatetime", packBean); - DdlPreparedPack.getStringSmallerPack(bean.getCreateDateTimeEnd(), "createDatetime", packBean); - DdlPreparedPack.getStringBiggerPack(bean.getStartTimeStart(), "planStartTime", packBean); - DdlPreparedPack.getStringSmallerPack(bean.getStartTimeEnd(), "planStartTime", packBean); - DdlPreparedPack.getStringBiggerPack(bean.getEndTimeStart(), "planEndTime", packBean); - DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean); + DdlPreparedPack.getInPackList(Arrays.stream(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)).map(Integer::parseInt).collect(Collectors.toList()), MesExtConstWords.WORK_ORDER_STATUS, packBean); + } else DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, packBean); + DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, packBean); + DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), MesExtConstWords.CREATE_DATE_TIME, packBean, false); + DdlPreparedPack.timeBuilder(bean.getStartTimeStart(), bean.getStartTimeEnd(), MesExtConstWords.PLAN_START_TIME, packBean, false); + DdlPreparedPack.timeBuilder(bean.getEndTimeStart(), bean.getEndTimeEnd(), MesExtConstWords.PLAN_END_TIME, packBean, false); packBean.setOrderByStr(" order by workOrderSeq desc, createDatetime desc, productSeq asc, workOrderNo asc "); } @@ -291,15 +293,13 @@ public class MesWorkOrderService extends BaseMesService implements } MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next(); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); - DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), "workCenterCode", ddlPackBean); + DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); List mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(mesWorkCenterList)) { return; } Map> mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); - mesWorkOrderList.forEach(t -> { - t.setWorkCenterName(mesWorkCenterMap.containsKey(t.getWorkCenterCode()) ? mesWorkCenterMap.get(t.getWorkCenterCode()).iterator().next().getWorkCenterName() : ""); - }); + mesWorkOrderList.forEach(t -> t.setWorkCenterName(mesWorkCenterMap.containsKey(t.getWorkCenterCode()) ? mesWorkCenterMap.get(t.getWorkCenterCode()).iterator().next().getWorkCenterName() : MesExtConstWords.EMPTY)); } @@ -308,7 +308,7 @@ public class MesWorkOrderService extends BaseMesService implements if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()){ GenSerialNoModel genSerialNoModel = new GenSerialNoModel("MES_WORK_ORDER_NO_WU_HAN"); List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList(); - String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", ""); + String serialNo = resultList.get(0).replace("MES_WORK_ORDER_NO_WU_HAN", MesExtConstWords.EMPTY); orderNo = item.getOrganizeCode() + item.getOrderFlag() + item.getShiftCode() + serialNo; }else if(item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.BTO.getValue()){ GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.MES_WORK_CENTER_ORDER_NO); @@ -319,7 +319,7 @@ public class MesWorkOrderService extends BaseMesService implements orderNo = (String)syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(item.getOrganizeCode()), item.getCreateUser(), item.getOrganizeCode(), 1).getResultList().get(0); } DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); + DdlPreparedPack.getStringEqualPack(orderNo, MesExtConstWords.WORK_ORDER_NO, orderPackBean); if (baseRDao.isExitByHql(orderPackBean)) { MesException.throwMesBusiException("单号流水码生成重复"); } @@ -358,8 +358,8 @@ public class MesWorkOrderService extends BaseMesService implements mesPartPtr = custPartPtrList.iterator().next(); //查询ptr总成--只有特定总成才会替换 DdlPackBean detailPartPtr = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), "ptrId", detailPartPtr); - DdlPreparedPack.getStringEqualPack(item.getPartNo(), "totalPartNo", detailPartPtr); + DdlPreparedPack.getNumEqualPack(mesPartPtr.getId(), MesExtConstWords.PTR_ID, detailPartPtr); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), MesExtConstWords.TOTAL_PART_NO, detailPartPtr); List ptrDetailList = partPtrDetailRao.findByHqlWhere(detailPartPtr); if (!ptrDetailList.isEmpty()) { mesPartPtrDetail = ptrDetailList.get(0); @@ -382,11 +382,11 @@ public class MesWorkOrderService extends BaseMesService implements descriptionStr.append(mesPartPtr.getMemo()); //更新mes_part_ptr的实际数量 + 1 mesPartPtr.setPrtVehicleActualCount(mesPartPtr.getPrtVehicleActualCount() + 1); - ConvertBean.saveOrUpdate(mesPartPtr, "JOB"); + ConvertBean.saveOrUpdate(mesPartPtr, MesExtConstWords.JOB); partPtrRao.update(mesPartPtr); if (mesPartPtrDetail != null) { mesPartPtrDetail.setQty(mesPartPtrDetail.getQty() + 1); - ConvertBean.saveOrUpdate(mesPartPtrDetail, "JOB"); + ConvertBean.saveOrUpdate(mesPartPtrDetail, MesExtConstWords.JOB); partPtrDetailRao.update(mesPartPtrDetail); } MesWorkOrderAssembly orderAssemblyList = null; @@ -507,7 +507,7 @@ public class MesWorkOrderService extends BaseMesService implements mesPartProdGroup = getMesPartProdGroup(item); }else{ DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), MesExtConstWords.PART_PROD_GROUP_CODE, ddlPackBean); mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); if(Objects.isNull(mesPartProdGroup)){ MesException.throwMesBusiException("零件生产组【%s】信息不存在",item.getPartProdGroupCode()); @@ -560,7 +560,7 @@ public class MesWorkOrderService extends BaseMesService implements private void getCustomerPart(MesWorkOrder item) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(item.getPartNo(), "erpPartNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), MesExtConstWords.ERP_PART_NO, ddlPackBean); MesCustomerPart customerPart = mesCustomerPartRDao.getByProperty(ddlPackBean); if (!Objects.isNull(customerPart)) { item.setCustPartNo(customerPart.getCustPartNo()); @@ -589,8 +589,8 @@ public class MesWorkOrderService extends BaseMesService implements item.setShiftName(mesShift.getShiftName()); try { //拼接 - item.setPlanStartTime(TimeTool.parseStringFormat(item.getPlanDate() + " " + mesShift.getStartTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); - item.setPlanEndTime(TimeTool.parseStringFormat(item.getPlanDate() + " " + mesShift.getEndTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); + item.setPlanStartTime(TimeTool.parseStringFormat(item.getPlanDate() + MesExtConstWords.ONE_SPACE + mesShift.getStartTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); + item.setPlanEndTime(TimeTool.parseStringFormat(item.getPlanDate() + MesExtConstWords.ONE_SPACE + mesShift.getEndTime(),DateUtil.BASE_FORMAT1,DateUtil.BASE_FORMAT)); int windowStartEndTimeCompare = DateUtilExt.compareDateTime(DateUtil.BASE_FORMAT, item.getPlanStartTime(), item.getPlanEndTime()); if (windowStartEndTimeCompare > 0) { item.setPlanEndTime(TimeTool.pareDateToString(DateUtil.addDays(item.getPlanEndTime(), 1))); @@ -605,8 +605,8 @@ public class MesWorkOrderService extends BaseMesService implements @Override public ListPager queryMesProductVersionByPager(MesProductVersion mesProductVersion, Pager pager) { DdlPackBean productVersionQueryPackBean = DdlPackBean.getDdlPackBean(mesProductVersion.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesProductVersion.getPartNo(), "partNo", productVersionQueryPackBean); - DdlPreparedPack.getStringEqualPack(mesProductVersion.getWorkCenterCode(), "workCenterCode", productVersionQueryPackBean); + DdlPreparedPack.getStringEqualPack(mesProductVersion.getPartNo(), MesExtConstWords.PART_NO, productVersionQueryPackBean); + DdlPreparedPack.getStringEqualPack(mesProductVersion.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, productVersionQueryPackBean); pager = PagerHelper.getPager(pager, mesProductVersionRDao.findByHqlWhereCount(productVersionQueryPackBean)); List mesProductVersions = mesProductVersionRDao.findByHqlWherePage(productVersionQueryPackBean, pager); return new ListPager<>(mesProductVersions, pager); @@ -628,9 +628,9 @@ public class MesWorkOrderService extends BaseMesService implements for (MesWorkOrder item : mesWorkOrderList) { //获取相同类型 相同标识 生产序号最大值的 DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(item.getWorkOrderStatus(), "workOrderStatus", orderPackBean); - DdlPreparedPack.getStringEqualPack(item.getOrderFlag(), "orderFlag", orderPackBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"productSeq"}, orderPackBean); + DdlPreparedPack.getNumEqualPack(item.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, orderPackBean); + DdlPreparedPack.getStringEqualPack(item.getOrderFlag(), MesExtConstWords.ORDER_FLAG, orderPackBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.PRODUCT_SEQ}, orderPackBean); MesWorkOrder result = baseRDao.getByProperty(orderPackBean); //若工单类型为排序 则根据排序插入工单数量插入多行 工单数量为1 @@ -684,7 +684,7 @@ public class MesWorkOrderService extends BaseMesService implements String nowDate = TimeTool.getNowTime(true); //获取产线信息 List workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList()); - List mesWorkCenterList = BeanMapUtilsExt.getBeanList(mesWorkCenterRDao, "workCenterCode", organizeCode, workCenterCodeList, "产线信息"); + List mesWorkCenterList = BeanMapUtilsExt.getBeanList(mesWorkCenterRDao, MesExtConstWords.WORK_CENTER_CODE, organizeCode, workCenterCodeList, "产线信息"); //产线导入不区分大小小 Map workCenterMap = new CaseInsensitiveMap(); for (MesWorkCenter workCenter : mesWorkCenterList) { @@ -695,21 +695,21 @@ public class MesWorkOrderService extends BaseMesService implements Map> mesShiftMap = mesShiftList.stream().collect(Collectors.groupingBy(t -> t.getWorkCenterCode() + t.getShiftCode())); //获取生产版本 List partNoList = mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()); - List mesProductVersionList = BeanMapUtilsExt.getBeanList(mesProductVersionRDao, "partNo", organizeCode, partNoList, "生产版本信息"); + List mesProductVersionList = BeanMapUtilsExt.getBeanList(mesProductVersionRDao, MesExtConstWords.PART_NO, organizeCode, partNoList, "生产版本信息"); //客户物料信息 Map mesCustomerPartMap = null; try { - mesCustomerPartMap = BeanMapUtilsExt.getBeanMap(mesCustomerPartRDao, "erpPartNo", organizeCode, partNoList, "客户物料信息"); + mesCustomerPartMap = BeanMapUtilsExt.getBeanMap(mesCustomerPartRDao, MesExtConstWords.ERP_PART_NO, organizeCode, partNoList, "客户物料信息"); } catch (Exception e) { } //获取物料信息 - Map mesPartSapMap = BeanMapUtilsExt.getBeanMap(mesPartSapRDao, "partNo", organizeCode, partNoList, "物料信息"); + Map mesPartSapMap = BeanMapUtilsExt.getBeanMap(mesPartSapRDao, MesExtConstWords.PART_NO, organizeCode, partNoList, "物料信息"); //获取获取vin号 List vinCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getVinCode).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (!CollectionUtils.isEmpty(vinCodeList)) { List mesWorkOrders = null; try { - mesWorkOrders = BeanMapUtilsExt.getBeanList(baseRDao, "vinCode", organizeCode, vinCodeList, "生产工单"); + mesWorkOrders = BeanMapUtilsExt.getBeanList(baseRDao, MesExtConstWords.VIN_CODE, organizeCode, vinCodeList, "生产工单"); } catch (Exception e) { } if (!CollectionUtils.isEmpty(mesWorkOrders)) { @@ -732,7 +732,7 @@ public class MesWorkOrderService extends BaseMesService implements } //查询工单是否已经存在 DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(next.getOrganizeCode()); - DdlPreparedPack.getInPackList(orderList, "workOrderNo", orderPackBean); + DdlPreparedPack.getInPackList(orderList, MesExtConstWords.WORK_ORDER_NO, orderPackBean); if (baseRDao.isExitByHql(orderPackBean)) { MesException.throwMesBusiException("单号已存在"); } @@ -912,9 +912,9 @@ public class MesWorkOrderService extends BaseMesService implements private List getMesShifts(String organizeCode, String nowDate, List workCenterCodeList) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(workCenterCodeList, "workCenterCode", packBean); - DdlPreparedPack.getStringSmallerPack(nowDate, "beginDate", packBean); - DdlPreparedPack.getStringBiggerPack(nowDate, "endDate", packBean); + DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringSmallerPack(nowDate, MesExtConstWords.BEGIN_DATE, packBean); + DdlPreparedPack.getStringBiggerPack(nowDate, MesExtConstWords.END_DATE, packBean); List mesShiftList = mesShiftRDao.findByHqlWhere(packBean); if (CollectionUtils.isEmpty(mesShiftList)) { MesException.throwMesBusiException("有效期内的班次信息不存在"); @@ -1115,13 +1115,13 @@ public class MesWorkOrderService extends BaseMesService implements @Override public void doCloseUnSortOrder(String organizeCode,String userName) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean); - DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), MesExtConstWords.WORK_ORDER_TYPE, ddlPackBean); + DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), MesExtConstWords.PLAN_START_TIME, ddlPackBean); //非排序的试制工单(P单)不自动关单(芜湖) if (mesConfigService.checkCfgValue(organizeCode, MesExtConstWords.CLOSE_P_WORK_ORDER, MesExtConstWords.ONE_STR)) { - DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue(), "orderFlag", ddlPackBean); + DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue(), MesExtConstWords.ORDER_FLAG, ddlPackBean); } - DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean); + DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean); List mesWorkOrderList = baseRDao.findByHqlWhere(ddlPackBean); if(CollectionUtils.isEmpty(mesWorkOrderList)){ return; @@ -1143,8 +1143,8 @@ public class MesWorkOrderService extends BaseMesService implements } } //关闭工单 - baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"}, - new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean); + baseRDao.updateByProperties(new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.WORK_ORDER_STATUS, MesExtConstWords.SYSTEM_SYNC_STATUS}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()}, ddlPackBean); } @@ -1190,7 +1190,7 @@ public class MesWorkOrderService extends BaseMesService implements } //更新工单状态 mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); - mesWorkOrder.setCcscStatus(""); + mesWorkOrder.setCcscStatus(MesExtConstWords.EMPTY); updateMesWorkOrder(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,mesWorkOrder.getQty()); } //重新生成CCSC task @@ -1265,7 +1265,7 @@ public class MesWorkOrderService extends BaseMesService implements continue; } - mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : ""); + mesWorkOrder.setWorkCenterName((!StringUtils.isEmpty(mesWorkOrder.getWorkCenterCode()) && !CollectionUtils.isEmpty(workCenterNameMap) && workCenterNameMap.containsKey(mesWorkOrder.getWorkCenterCode())) ? workCenterNameMap.get(mesWorkOrder.getWorkCenterCode()).get(0).getWorkCenterName() : MesExtConstWords.EMPTY); MesPartProdGroup mesPartProdGroup = (!StringUtils.isEmpty(mesWorkOrder.getPartProdGroupCode()) && !CollectionUtils.isEmpty(partProdGroupMap) && partProdGroupMap.containsKey(mesWorkOrder.getPartProdGroupCode())) ? partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()) : null; @@ -1393,7 +1393,7 @@ public class MesWorkOrderService extends BaseMesService implements mesProductOffLine.setDescription(nowTime); mesProductOffLine.setStgeLoc(item.getAlort()); mesProductOffLine.setSystemSyncStatus(CommonEnumUtil.FALSE); - mesProductOffLine.setSystemSyncDatetime(""); + mesProductOffLine.setSystemSyncDatetime(MesExtConstWords.EMPTY); ConvertBean.serviceModelInitialize(mesProductOffLine, model.getUserName()); newProductOffLineList.add(mesProductOffLine); }); @@ -1412,7 +1412,7 @@ public class MesWorkOrderService extends BaseMesService implements public MesWorkOrder getMesWorkOrder(String workOrderNo, String organizeCode) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workOrderNo,"workOrderNo",packBean); + DdlPreparedPack.getStringEqualPack(workOrderNo,MesExtConstWords.WORK_ORDER_NO,packBean); MesWorkOrder mesWorkOrder = baseRDao.getByProperty(packBean); if (Objects.isNull(mesWorkOrder)) { MesException.throwMesBusiException("工单【%s】信息不存在", workOrderNo); @@ -1516,7 +1516,7 @@ public class MesWorkOrderService extends BaseMesService implements if (mesPartSapMap.containsKey(mesBom.getItemPartNo())) { mesPartSap = mesPartSapMap.get(mesBom.getItemPartNo()).iterator().next(); } - MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesBom.getItemQty(), "", MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); + MesMove move = createMove(mesPartSap, moveRule.getErpSrcLocateNo(), moveRule.getErpDestLocateNo(), mesBom.getOrganizeCode(), mesWorkOrder.getWorkCenterCode(), mesBom.getItemQty(), MesExtConstWords.EMPTY, MesExtEnumUtil.MOVE_TYPE.RAW_MATERIAL_MOVE.getValue()); move.setMatnr(mesBom.getItemPartNo()); mesMoveList.add(move); } @@ -1542,8 +1542,8 @@ public class MesWorkOrderService extends BaseMesService implements private MesProdRuleSortCfg getMesProdRuleSortCfg(MesWorkOrder mesWorkOrder) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "reportPartNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), "workCenterCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), MesExtConstWords.REPORT_PART_NO, ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); MesProdRuleSortCfg mesProdRuleSortCfg = mesProdRuleSortCfgRDao.getByProperty(ddlPackBean); if (Objects.isNull(mesProdRuleSortCfg)) { MesException.throwMesBusiException("产线【%s】物料【%s】排序加工规则未维护", mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getPartNo()); @@ -1569,9 +1569,9 @@ public class MesWorkOrderService extends BaseMesService implements if (isItemReport && mesBom.getPartNo().equals(mesWorkOrder.getPartNo())) { newMesProductOffLine.setReportPartNo(mesBom.getItemPartNo()); newMesProductOffLine.setReportPartNameRdd(mesBom.getItemPartName()); - newMesProductOffLine.setItemPartNo(""); - newMesProductOffLine.setItemPartName(""); - newMesProductOffLine.setItemUnit(""); + newMesProductOffLine.setItemPartNo(MesExtConstWords.EMPTY); + newMesProductOffLine.setItemPartName(MesExtConstWords.EMPTY); + newMesProductOffLine.setItemUnit(MesExtConstWords.EMPTY); newMesProductOffLine.setItemQty(0d); } newMesProductOffLine.setReportSn(sn); @@ -1651,7 +1651,7 @@ public class MesWorkOrderService extends BaseMesService implements // statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(statusList, "workOrderStatus", packBean); + DdlPreparedPack.getInPackList(statusList, MesExtConstWords.WORK_ORDER_STATUS, packBean); return baseRDao.findByHqlWhere(packBean); } @@ -1678,36 +1678,33 @@ public class MesWorkOrderService extends BaseMesService implements //1.获取生产加工记录production_record表中,report_status为待汇报状态的工单 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode",ddlPackBean); - DdlPreparedPack.getNumEqualPack( MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(),"reportStatus",ddlPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue(), MesExtConstWords.REPORT_STATUS, ddlPackBean); //获取前一天的早班到当天早班的区间的所有加工记录,统计个数 - DdlPreparedPack.timeBuilder( - new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(),1))+" 08:00:00", - TimeTool.getToday()+" 08:00:00", - "completeDateTime", ddlPackBean, true); + DdlPreparedPack.timeBuilder(new SimpleDateFormat(MesExtConstWords.DATE_FORMAT).format(TimeTool.getDateBefore(new Date(),MesExtConstWords.ONE)) + MesExtConstWords.APPEND_8_HMS, + TimeTool.getToday() + MesExtConstWords.APPEND_8_HMS, MesExtConstWords.COMPLETE_DATE_TIME, ddlPackBean, true); return productionRecordRao.findByHqlWhere(ddlPackBean); } @Override public List getPreDayReportMesProduceSn(String organizeCode,List mesProductionRecordList ) { DdlPackBean snPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()), - "productSn",snPackBean); + DdlPreparedPack.getInPackList(mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()), MesExtConstWords.PRODUCT_SN, snPackBean); return mesProduceSnRao.findByHqlWhere(snPackBean); } @Override public List insertMesWorkOrder(List mesProductionRecordList,List mesShiftList, String organizeCode, String userName) { List mesWorkOrderList=new ArrayList<>(); - Map> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() +"="+ sn.getPartNo())); + Map> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + MesExtConstWords.EQUAL + sn.getPartNo())); for (Map.Entry> stringListEntry : mesProductionRecordListMap.entrySet()) { List value = stringListEntry.getValue(); MesProductionRecord mesProductionRecord = value.get(0); - String[] split = stringListEntry.getKey().split("="); + String[] split = stringListEntry.getKey().split(MesExtConstWords.EQUAL); String workCenterCode = split[0]; String partNo = split[1]; //查询工作中心 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); if (Objects.isNull(mesWorkCenter)) { MesException.throwMesBusiException("产线【%s】不存在",workCenterCode); @@ -1719,13 +1716,13 @@ public class MesWorkOrderService extends BaseMesService implements item.setPartNo(partNo); item.setWorkOrderType(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()); item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); - List collect = mesShiftList.stream().filter(s -> s.getShiftCode().equalsIgnoreCase("1")).collect(Collectors.toList()); + List collect = mesShiftList.stream().filter(s -> s.getShiftCode().equalsIgnoreCase(MesExtConstWords.ONE_STR)).collect(Collectors.toList()); MesShift mesShift= collect.get(0); item.setShiftCode(mesShift.getShiftCode()); item.setShiftCode(mesShift.getShiftName()); String today = TimeTool.getToday(); - item.setPlanStartTime(today+" "+mesShift.getStartTime()+":00"); - item.setPlanEndTime(today+" "+mesShift.getEndTime()+":00"); + item.setPlanStartTime(today + MesExtConstWords.ONE_SPACE + mesShift.getStartTime() + MesExtConstWords.APPEND_SECONDS); + item.setPlanEndTime(today + MesExtConstWords.ONE_SPACE + mesShift.getEndTime() + MesExtConstWords.APPEND_SECONDS); //生成工单号 List orderList=new ArrayList<>(); @@ -1735,7 +1732,7 @@ public class MesWorkOrderService extends BaseMesService implements String orderNo = orderList.get(0); DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(orderNo, "workOrderNo", orderPackBean); + DdlPreparedPack.getStringEqualPack(orderNo, MesExtConstWords.WORK_ORDER_NO, orderPackBean); if (baseRDao.isExitByHql(orderPackBean)) { MesException.throwMesBusiException("单号流水码生成重复"); } @@ -1800,7 +1797,7 @@ public class MesWorkOrderService extends BaseMesService implements if (!StringUtil.isEmpty(bean.getVinCode())) { //校验vin号是否重复 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(bean.getVinCode(), "vinCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(bean.getVinCode(), MesExtConstWords.VIN_CODE, ddlPackBean); if (baseRDao.isExitByHql(ddlPackBean)) { MesException.throwMesBusiException("vin号【%s】重复", bean.getVinCode()); } @@ -1914,7 +1911,7 @@ public class MesWorkOrderService extends BaseMesService implements bean.setFid(UUID.randomUUID().toString()); //生成WorkOrderSeq GenSerialNoModel orderSeqSerialNoModel = new GenSerialNoModel(MesCommonConstant.ORDER_NO_BTO_SEQ); - List resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel.organizeCode(bean.getOrganizeCode()), bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); + List resultList = syncFuncService.syncSerialNo(orderSeqSerialNoModel.organizeCode(bean.getOrganizeCode()), bean.getCreateUser(), bean.getOrganizeCode(), MesExtConstWords.ONE).getResultList(); bean.setWorkOrderSeq(resultList.get(0)); baseRDao.insert(bean); workOrderLogService.saveMesWorkOrderLog(bean,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT,bean.getQty()); @@ -1924,7 +1921,7 @@ public class MesWorkOrderService extends BaseMesService implements //查询物料信息 DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getPartNo(), "partNo", ddlPackBeanPart); + DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getPartNo(), MesExtConstWords.PART_NO, ddlPackBeanPart); MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart); if (null == mesPart) { MesException.throwMesBusiException("物料【%s】信息不存在", mesWorkOrderDb.getPartNo()); @@ -1932,7 +1929,7 @@ public class MesWorkOrderService extends BaseMesService implements //查询产线信息 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getWorkCenterCode(), "workCenterCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesWorkOrderDb.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); if (Objects.isNull(mesWorkCenter)) { MesException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); @@ -1991,7 +1988,7 @@ public class MesWorkOrderService extends BaseMesService implements log.info("工厂:{}不存在未推送的工单", organizeCode); } //获取物料信息 - Map partMap = BeanMapUtilsExt.getBeanMap(mesPartRDao, "partNo", organizeCode, mesWorkOrderListToWms.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), "物料信息"); + Map partMap = BeanMapUtilsExt.getBeanMap(mesPartRDao, MesExtConstWords.PART_NO, organizeCode, mesWorkOrderListToWms.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), "物料信息"); // 根据零件加生产版本分组 Map> mesWorkOrderListToWmsMap = mesWorkOrderListToWms.stream().collect(Collectors.groupingBy(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).toString())); @@ -2039,7 +2036,9 @@ public class MesWorkOrderService extends BaseMesService implements } else { DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); } - baseRDao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "syncToWms"}, new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.VALID}, packBean); + baseRDao.updateByPropertiesNoSync( + new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.SYNC_TO_WMS}, + new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.VALID}, packBean); } public void saveMesWorkOrderLog(MesWorkOrder mesWorkOrder) { @@ -2050,9 +2049,9 @@ public class MesWorkOrderService extends BaseMesService implements private List getMesWorkOrderListToWms(String organizeCode, Integer pageSize) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBean); - DdlPreparedPack.getNumEqualPack(CommonEnumUtil.FALSE, "syncToWms", packBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, packBean); + DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), MesExtConstWords.WORK_ORDER_STATUS, packBean); + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.FALSE, MesExtConstWords.SYNC_TO_WMS, packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesExtConstWords.CREATE_DATE_TIME}, packBean); return baseRDao.findByHqlTopWhere(packBean, StringUtil.isEmpty(pageSize) ? MesExtConstWords.TEN : pageSize); } @@ -2122,11 +2121,11 @@ public class MesWorkOrderService extends BaseMesService implements } public List findMesBomByPartNoAndBomVersion(String partNo, String organizeCode, String bomVersion) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(bomVersion, "bomVersion", ddlPackBean); - DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "effStartTime", ddlPackBean); - DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), "effEndTime", ddlPackBean); - DdlPreparedPack.getOrderBy("effStartTime", CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, ddlPackBean); + DdlPreparedPack.getStringEqualPack(bomVersion, MesExtConstWords.BOM_VERSION, ddlPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_START_TIME, ddlPackBean); + DdlPreparedPack.getStringBiggerPack(TimeTool.getNowTime(true), MesExtConstWords.EFF_END_TIME, ddlPackBean); + DdlPreparedPack.getOrderBy(MesExtConstWords.EFF_START_TIME, CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), ddlPackBean); List mesBoms = mesBomRDao.findByHqlWhere(ddlPackBean); if (org.springframework.util.CollectionUtils.isEmpty(mesBoms)) { MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion); @@ -2139,8 +2138,8 @@ public class MesWorkOrderService extends BaseMesService implements private boolean checkWorkCenterPartRelation(String workCenterCode,String partNo){ DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(workCenterCode,"workCenterCode", partRelationPackBean); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", partRelationPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode,MesExtConstWords.WORK_CENTER_CODE, partRelationPackBean); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, partRelationPackBean); int count = partRelationRao.findByHqlWhereCount(partRelationPackBean); return count > 0; } @@ -2152,7 +2151,7 @@ public class MesWorkOrderService extends BaseMesService implements String prefix = partNo.substring(0, partNo.length() - 4); String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase(); custGenSerialNoModel.setPartNo(prefix+partNo4); - String year = custCalendar.get(Calendar.YEAR)+""; + String year = custCalendar.get(Calendar.YEAR)+ MesExtConstWords.EMPTY; custGenSerialNoModel.setYear(year.substring(2)); custGenSerialNoModel.setDay(String.format("%03d",custCalendar.get(Calendar.DAY_OF_YEAR))); List custNumRuleList = syncFuncService.syncSerialNo(custGenSerialNoModel, userName, organizeCode, 1).getResultList(); @@ -2219,20 +2218,20 @@ public class MesWorkOrderService extends BaseMesService implements * 3.有开始时间无结束时间,无结束数量 一直替换 */ DdlPackBean partPtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", partPtrPackBean); - DdlPreparedPack.getInPackList(partNoList, "srcPartNo", partPtrPackBean); - DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", partPtrPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, partPtrPackBean); + DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, partPtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, partPtrPackBean); List partPtrList = partPtrRao.findByHqlWhere(partPtrPackBean); /** * 有开始时间 和 无结束时间 和 需要的数量,只有达到数量才结束 */ DdlPackBean part1PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part1PtrPackBean); - DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part1PtrPackBean); - DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part1PtrPackBean); - DdlPreparedPack.getIsNotNull("prtVehicleCount", part1PtrPackBean); - DdlPreparedPack.getIsNull("endTime", part1PtrPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, part1PtrPackBean); + DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, part1PtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, part1PtrPackBean); + DdlPreparedPack.getIsNotNull(MesExtConstWords.PRT_VEHICLE_COUNT, part1PtrPackBean); + DdlPreparedPack.getIsNull(MesExtConstWords.END_TIME, part1PtrPackBean); List partPtrList1 = partPtrRao.findByHqlWhere(part1PtrPackBean); partPtrList.addAll(partPtrList1); @@ -2244,11 +2243,11 @@ public class MesWorkOrderService extends BaseMesService implements */ DdlPackBean part2PtrPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", part2PtrPackBean); - DdlPreparedPack.getInPackList(partNoList, "srcPartNo", part2PtrPackBean); - DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), "startTime", part2PtrPackBean); - DdlPreparedPack.getIsNull("prtVehicleCount", part2PtrPackBean); - DdlPreparedPack.getIsNull("endTime", part2PtrPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, part2PtrPackBean); + DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.SRC_PART_NO, part2PtrPackBean); + DdlPreparedPack.getStringSmallerPack(TimeTool.getNowTime(true), MesExtConstWords.START_TIME, part2PtrPackBean); + DdlPreparedPack.getIsNull(MesExtConstWords.PRT_VEHICLE_COUNT, part2PtrPackBean); + DdlPreparedPack.getIsNull(MesExtConstWords.END_TIME, part2PtrPackBean); List partPtrList2 = partPtrRao.findByHqlWhere(part2PtrPackBean); partPtrList.addAll(partPtrList2); return partPtrList; @@ -2259,7 +2258,7 @@ public class MesWorkOrderService extends BaseMesService implements return null; } DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, packBean); return mesPartProdGroupRDao.getByProperty(packBean); } @@ -2269,8 +2268,8 @@ public class MesWorkOrderService extends BaseMesService implements List workOrderAssemblyList = new ArrayList<>(); List partNoList = workOrderPartList.stream().map(MesWorkOrderPart::getPartNo).collect(Collectors.toList()); DdlPackBean prodRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", prodRuleSortPackBean); - DdlPreparedPack.getInPackList(partNoList, "assemblyPartNo", prodRuleSortPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, prodRuleSortPackBean); + DdlPreparedPack.getInPackList(partNoList, MesExtConstWords.ASSEMBLY_PART_NO, prodRuleSortPackBean); //查询当前产线的所有排序生产规则--分为当前工单清单的装配件 List sortCfgList = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPackBean); List sortCfgListFilter = sortCfgList.stream().filter(item -> partNoList.contains(item.getAssemblyPartNo())).collect(Collectors.toList()); @@ -2330,9 +2329,9 @@ public class MesWorkOrderService extends BaseMesService implements //车型不为空的逻辑--用于报工 DdlPackBean reportRuleSortPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", reportRuleSortPackBean); - DdlPreparedPack.getStringEqualPack(vehicleNo, "vehicleNo", reportRuleSortPackBean); - DdlPreparedPack.getNotInPackList(partNoList, "assemblyPartNo", reportRuleSortPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, reportRuleSortPackBean); + DdlPreparedPack.getStringEqualPack(vehicleNo, MesExtConstWords.VEHICLE_NO, reportRuleSortPackBean); + DdlPreparedPack.getNotInPackList(partNoList, MesExtConstWords.ASSEMBLY_PART_NO, reportRuleSortPackBean); //查询当前产线的所有排序生产规则--分为当前工单清单的装配件 List prodCfgList = mesProdRuleSortCfgRao.findByHqlWhere(reportRuleSortPackBean); for (MesProdRuleSortCfg ruleSortCfg : prodCfgList) { @@ -2372,8 +2371,8 @@ public class MesWorkOrderService extends BaseMesService implements } //查询所有共用的零件 且没有零件号,多用于螺钉---查询排序加工规则 DdlPackBean prodRuleSortPublicPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", prodRuleSortPublicPackBean); - DdlPreparedPack.getIsNull("assemblyPartNo", prodRuleSortPublicPackBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, prodRuleSortPublicPackBean); + DdlPreparedPack.getIsNull(MesExtConstWords.ASSEMBLY_PART_NO, prodRuleSortPublicPackBean); List ruleSortCfgs = mesProdRuleSortCfgRao.findByHqlWhere(prodRuleSortPublicPackBean); for (MesProdRuleSortCfg ruleSortCfg : ruleSortCfgs) { MesWorkOrderAssembly orderAssembly = new MesWorkOrderAssembly(); @@ -2527,31 +2526,46 @@ public class MesWorkOrderService extends BaseMesService implements } } - public List findMesQueueOrder(String workOrderNo, String organizeCode) { + private List findMesQueueOrder(String workOrderNo, String organizeCode) { if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); + DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean); return queueOrderRao.findByHqlWhere(packBean); } - public void closeMesQueueOrder(String workOrderNo, String organizeCode, String userName) { + private void closeMesQueueOrder(String workOrderNo, String organizeCode, String userName) { + if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue(), MesExtConstWords.STATUS, packBean); + queueOrderRao.updateByProperties( + new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.STATUS}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.QUEUE_ORDER_STATUS.CLOSED.getValue()}, packBean); + } + + private void closeMesPullingOrderInfo(String workOrderNo, String organizeCode, String userName) { if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); - queueOrderRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status"}, new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.QUEUE_ORDER_STATUS.CLOSED.getValue()}, packBean); + DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean); + DdlPreparedPack.getInPackList( + Stream.of(MesExtEnumUtil.PART_PULL_ORDER_TYPE.JIS_PULL.getValue(), MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue()).collect(Collectors.toList()), + MesExtConstWords.PULL_ORDER_TYPE, packBean); + pullingOrderInfoRepository.updateByProperties( + new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.PULL_ORDER_STATUS}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_50.getValue()}, packBean); } - public MesPrintQueue getMesPrintQuanOrder(String workOrderNo, String organizeCode) { + private MesPrintQueue getMesPrintQuanOrder(String workOrderNo, String organizeCode) { if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(workOrderNo, "workOrderNo", packBean); + DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean); return printQueueRepository.getByProperty(packBean); } private Long getMaxMesWorkOrderProductSeq(MesWorkOrder bean) { DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), "workOrderType", orderPackBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"productSeq"}, orderPackBean); + DdlPreparedPack.getNumEqualPack(bean.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, orderPackBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesExtConstWords.PRODUCT_SEQ}, orderPackBean); MesWorkOrder workOrder = baseRDao.getByProperty(orderPackBean); return Objects.isNull(workOrder) || StringUtils.isEmpty(workOrder.getProductSeq()) ? 0L : workOrder.getProductSeq().toString().endsWith("9") ? workOrder.getProductSeq() + 2L : workOrder.getProductSeq() + 1L; } @@ -2574,13 +2588,13 @@ public class MesWorkOrderService extends BaseMesService implements private String getCarRemark(String custCode,String carModelCode,String organizeCode){ DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(custCode,"custCode",ddlPackBean); - DdlPreparedPack.getStringEqualPack(carModelCode,"carModelCode",ddlPackBean); + DdlPreparedPack.getStringEqualPack(custCode, MesExtConstWords.CUST_CODE, ddlPackBean); + DdlPreparedPack.getStringEqualPack(carModelCode,MesExtConstWords.CAR_MODEL_CODE, ddlPackBean); List carModelList = customerCarModelRepository.findByHqlTopWhere(ddlPackBean, 1); if (carModelList != null && !carModelList.isEmpty()){ return carModelList.get(0).getRemark(); } - return ""; + return MesExtConstWords.EMPTY; } } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index a8431f6..9ce0493 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -151,6 +151,46 @@ public class MesExtConstWords { public static final String ASSEMBLY_PART_NO = "assemblyPartNo"; //装配件零件名称 public static final String ASSEMBLY_PART_NAME = "assemblyPartName"; + //生产序号 + public static final String PRODUCT_SEQ = "productSeq"; + //ERP物料号 + public static final String ERP_PART_NO = "erpPartNo"; + //计划开始时间 + public static final String PLAN_START_TIME = "planStartTime"; + //计划结束时间 + public static final String PLAN_END_TIME = "planEndTime"; + //执行开始日期 + public static final String BEGIN_DATE = "beginDate"; + //执行结束日期 + public static final String END_DATE = "endDate"; + //ptr零件id + public static final String PTR_ID = "ptrId"; + //总成零件号 + public static final String TOTAL_PART_NO = "totalPartNo"; + //汇报零件号 + public static final String REPORT_PART_NO = "reportPartNo"; + //汇报状态 + public static final String REPORT_STATUS = "reportStatus"; + //完成时间 + public static final String COMPLETE_DATE_TIME = "completeDateTime"; + //是否同步给WMS + public static final String SYNC_TO_WMS = "syncToWms"; + //BOM版本 + public static final String BOM_VERSION = "bomVersion"; + //生效时间 + public static final String EFF_START_TIME = "effStartTime"; + //失效时间 + public static final String EFF_END_TIME = "effEndTime"; + //原零件号 + public static final String SRC_PART_NO = "srcPartNo"; + //PTR车辆数量 + public static final String PRT_VEHICLE_COUNT = "prtVehicleCount"; + //车型代码 + public static final String VEHICLE_NO = "vehicleNo"; + //拉动单类型 + public static final String PULL_ORDER_TYPE = "pullOrderType"; + //拉动单状态 + public static final String PULL_ORDER_STATUS = "pullOrderStatus"; //时间[开始/结束]条件 public static final String START_TIME_START = "startTimeStart"; @@ -210,6 +250,8 @@ public class MesExtConstWords { public static final String APPEND_ZERO_HMS = " 00:00:00"; //拼接23时:59分:59秒 public static final String APPEND_24_HMS = " 23:59:59"; + //拼接23时:59分:59秒 + public static final String APPEND_8_HMS = " 08:00:00"; //时间类型 public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; //时间类型 @@ -239,6 +281,9 @@ public class MesExtConstWords { //系统同步状态 public static final String SYSTEM_SYNC_STATUS = "systemSyncStatus"; + //等于 + public static final String EQUAL = "="; + //英文逗号 public static final String COMMA = ","; From 041e3ab40d6b8fdbb8cc4ec0855bab4510937d34 Mon Sep 17 00:00:00 2001 From: jun Date: Sun, 24 Nov 2024 16:53:49 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=89=8B=E5=B7=A5=E6=9F=A5=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=B7=A5=E5=8D=95=E7=B1=BB=E5=9E=8B=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E7=9A=84=E7=B1=BB=E5=9E=8B=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 2dccfb9..0366b6e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -418,8 +418,6 @@ public class MesWorkOrderService extends BaseMesService implements item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.PTR.getValue()); } else if (ptrFlag) { item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.F.getValue()); - } else { - item.setOrderFlag(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()); } item.setPtrInfo(ptrInfos.toString()); //生成工单号 From 162cee7c1914b9bfc0d6c7650fbf8a7a3e46536e Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sun, 24 Nov 2024 16:57:25 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=B7=A5=E5=8D=95=20?= =?UTF-8?q?=E6=97=B6=20=E5=90=8C=E6=97=B6=E5=85=B3=E9=97=ADJIS=20SPS=20QUE?= =?UTF-8?q?UE[=E5=88=9B=E5=BB=BA]=20=E5=8D=95=E6=8D=AE=20=E7=9B=AE?= =?UTF-8?q?=E8=A7=86=E5=8D=95=E6=89=93=E5=8D=B0=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/base/MesWorkOrderService.java | 13 ++++++++++++- .../cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 70a8c19..fcd6d49 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -250,10 +250,11 @@ public class MesWorkOrderService extends BaseMesService implements if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { isSavePrintQueue = true; } - //排序工单 关闭工单对列表 + //排序工单关闭 同时关闭 创建状态单工单队列 JIS拉动单 SPS拉动单 目视单打印队列 if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue() == bean.getWorkOrderStatus() && MesExtEnumUtil.ORDER_TYPE.SORT.getValue() == bean.getWorkOrderType()) { closeMesQueueOrder(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); closeMesPullingOrderInfo(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); + closeMesPrintQueue(bean.getWorkOrderNo(), bean.getOrganizeCode(), AuthUtilExt.getUserName()); } result.setWorkOrderStatus(bean.getWorkOrderStatus()); } @@ -2553,6 +2554,16 @@ public class MesWorkOrderService extends BaseMesService implements new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.PULL_ORDER_STATUS.PULL_ORDER_STATUS_50.getValue()}, packBean); } + private void closeMesPrintQueue(String workOrderNo, String organizeCode, String userName) { + if (StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrderNo, MesExtConstWords.WORK_ORDER_NO, packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue(), MesExtConstWords.PRINT_QUEUE_TYPE, packBean); + printQueueRepository.updateByProperties( + new String[]{MesExtConstWords.MODIFY_USER, MesExtConstWords.MODIFY_DATE_TIME, MesExtConstWords.PRINT_STATUS}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.PRINT_STATUS.FAILURE.getValue()}, packBean); + } + private MesPrintQueue getMesPrintQuanOrder(String workOrderNo, String organizeCode) { if(StringUtil.isEmpty(workOrderNo) || StringUtil.isEmpty(organizeCode)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 9ce0493..6d38505 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -191,6 +191,8 @@ public class MesExtConstWords { public static final String PULL_ORDER_TYPE = "pullOrderType"; //拉动单状态 public static final String PULL_ORDER_STATUS = "pullOrderStatus"; + //打印队列类型 + public static final String PRINT_QUEUE_TYPE = "printQueueType"; //时间[开始/结束]条件 public static final String START_TIME_START = "startTimeStart"; From 94eb8aa5fc89c199b7e05d25acd64f65d6053f32 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Sun, 24 Nov 2024 17:37:57 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=89=93=E5=8D=B0=20=E7=9B=AE=E8=A7=86?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/AssemblyVisualListPrintStrategy.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java index 8a2132d..6eb3583 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java @@ -85,17 +85,16 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe Map> collect = CollectionUtils.isEmpty(workOrderAssemblyList) ? null : workOrderAssemblyList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesWorkOrderAssembly::getDisplaySeq)); // 为空时显示内容 String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); - if (!CollectionUtils.isEmpty(collect)) { - for (Integer displaySeq : collect.keySet()) { - List orderAssemblyList = collect.get(displaySeq); - List disPlayValues = (orderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplayValue()))).map(MesWorkOrderAssembly::getDisplayValue).collect(Collectors.toList())) - .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); - String displayValue = isNullViewContent; - if(!CollectionUtils.isEmpty(disPlayValues)){ - displayValue = String.join("\r\n", disPlayValues); - } - resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + displaySeq, displayValue); + for (int i = 1; i <= 9; i ++) { + List orderAssemblyList = CollectionUtils.isEmpty(collect) ? null : collect.get(i); + List disPlayValues = CollectionUtils.isEmpty(orderAssemblyList) ? null : + (orderAssemblyList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getDisplayValue()))).map(MesWorkOrderAssembly::getDisplayValue).collect(Collectors.toList())) + .stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + String displayValue = isNullViewContent; + if(!CollectionUtils.isEmpty(disPlayValues)){ + displayValue = String.join("\r\n", disPlayValues); } + resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + i, displayValue); } printDataMapList.add(resultMap);