From 7530bb90a993a4369ce938fe7e71a09fa2a40dc7 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 5 Sep 2024 22:07:32 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java index 4049e65..5953b08 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/utils/CsvImportUtil.java @@ -30,7 +30,11 @@ public class CsvImportUtil { for (CsvRow row : read.getRows()) { Map map = new HashMap<>(); for (int i = 0; i < row.size(); i++) { - map.put(read.getHeader().get(i), row.get(i)); + String key = read.getHeader().get(i); + if (key.startsWith("\ufeff")) { + key = key.substring(1); + } + map.put(key, row.get(i)); } mapList.add(map); } From 96a94f67635c7e9c8f5a96848ac7623bee9d6ca2 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Fri, 6 Sep 2024 13:24:05 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java index f851067..6a96e42 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentVariableService.java @@ -95,6 +95,7 @@ public class MesEquipmentVariableService extends BaseMesService Date: Fri, 6 Sep 2024 21:26:56 +0800 Subject: [PATCH 03/18] =?UTF-8?q?42966=20=E8=AE=BE=E5=A4=87=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E6=9F=A5=E8=AF=A2=E6=8A=A5=E8=A1=A8-=E5=9B=9E?= =?UTF-8?q?=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/report/MesEquipmentLogDetailService.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java index 6009bae..21c9e0a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesEquipmentLogDetailService.java @@ -30,17 +30,9 @@ public class MesEquipmentLogDetailService extends BaseMesService Date: Mon, 9 Sep 2024 10:19:28 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E7=BC=BA=E9=99=B7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesPartInspectionService.java | 13 +++++++++++ .../base/MesPartInspectionController.java | 17 ++++++++++++++ .../serviceimpl/base/MesPartInspectionService.java | 27 ++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartInspectionService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPartInspectionController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartInspectionService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartInspectionService.java new file mode 100644 index 0000000..b16b48c --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartInspectionService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection; + +/** + * @Description: + * @CreateDate 2024/09/09 + * @Author gsz + */ +public interface IMesPartInspectionService extends IBaseMesService { + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPartInspectionController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPartInspectionController.java new file mode 100644 index 0000000..1834a31 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPartInspectionController.java @@ -0,0 +1,17 @@ +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.nc.MesPartInspection; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 零件检测 + */ +@Api("零件检测") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesPartInspection") +public class MesPartInspectionController extends BaseMesController { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java new file mode 100644 index 0000000..97ac8aa --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java @@ -0,0 +1,27 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesPartInspectionService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.nc.MesPartInspection; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class MesPartInspectionService extends BaseMesService implements IMesPartInspectionService { + + @Override + protected void setPackQueryBean(MesPartInspection bean, DdlPackBean packBean) { + DdlPreparedPack.getStringEqualPack(bean.getSn(), "sn", packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartName(), "partName", packBean); + DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), "workCenterCode", packBean); + if (StringUtils.isNotBlank(bean.getCreateDateTimeStart()) && StringUtils.isNotBlank(bean.getCreateDateTimeEnd())) { + DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), "createDatetime", packBean, true); + } +// DdlPreparedPack.getStringLikerPack(bean.getInspectionDate(), "inspectionDate", packBean); + } + +} From 403ea941c7a7a6aa5a33013bfa4df968a0fb4983 Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 9 Sep 2024 14:15:02 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E7=BC=BA=E9=99=B7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java index 97ac8aa..68e037b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartInspectionService.java @@ -18,9 +18,13 @@ public class MesPartInspectionService extends BaseMesService DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringLikerPack(bean.getPartName(), "partName", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), "workCenterCode", packBean); + DdlPreparedPack.getNumEqualPack(bean.getNcStatus(), "ncStatus", packBean); if (StringUtils.isNotBlank(bean.getCreateDateTimeStart()) && StringUtils.isNotBlank(bean.getCreateDateTimeEnd())) { DdlPreparedPack.timeBuilder(bean.getCreateDateTimeStart(), bean.getCreateDateTimeEnd(), "createDatetime", packBean, true); } + if (StringUtils.isNotBlank(bean.getModifyDateTimeStart()) && StringUtils.isNotBlank(bean.getModifyDateTimeEnd())) { + DdlPreparedPack.timeBuilder(bean.getModifyDateTimeStart(), bean.getModifyDateTimeEnd(), "modifyDatetime", packBean, true); + } // DdlPreparedPack.getStringLikerPack(bean.getInspectionDate(), "inspectionDate", packBean); } From 3554e2677aebe202a67de96a70fe093cf83f980d Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 9 Sep 2024 15:07:08 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E7=BC=BA=E9=99=B7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD=E5=8A=A0=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesLabelTemplateService.java | 4 +++ .../base/MesLabelTemplateController.java | 33 +++++++++++++++++++ .../base/MesLabelTemplateServiceImpl.java | 38 ++++++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLabelTemplateService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLabelTemplateService.java index 1b5f617..effa39d 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLabelTemplateService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesLabelTemplateService.java @@ -1,5 +1,7 @@ package cn.estsh.i3plus.ext.mes.api.base; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; /** @@ -10,4 +12,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; * @Modify: **/ public interface IMesLabelTemplateService extends IBaseMesService { + + ListPager queryMesLabelTemplateAndParamListByPager(MesLabelTemplate labelTemplate, Pager pager); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLabelTemplateController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLabelTemplateController.java index eb82a7a..7b1c2c1 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLabelTemplateController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesLabelTemplateController.java @@ -1,8 +1,24 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesLabelTemplateService; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; +import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrder; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,4 +33,21 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesLabelTemplate") @Api(tags = "打印模板") public class MesLabelTemplateController extends BaseMesController { + + @Autowired + private IMesLabelTemplateService mesLabelTemplateService; + + @GetMapping("/query-template-param") + @ApiOperation(value = "查询打印模板和明细") + public ResultBean queryMesLabelTemplateAndParamListByPager(MesLabelTemplate labelTemplate, Pager pager) { + + try { + return ResultBean.success("查询成功").setListPager(mesLabelTemplateService.queryMesLabelTemplateAndParamListByPager(labelTemplate, pager)); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java index 67b74a9..1dddc2c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java @@ -1,12 +1,25 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesLabelTemplateService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.util.MesPcnConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +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.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; +import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplateParam; +import cn.estsh.i3plus.pojo.mes.bean.MesSpotCheckOrder; +import cn.estsh.i3plus.pojo.mes.repository.MesLabelTemplateParamRepository; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.util.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description : 打印模板 * @Reference : @@ -18,6 +31,8 @@ import org.springframework.stereotype.Service; @Slf4j public class MesLabelTemplateServiceImpl extends BaseMesService implements IMesLabelTemplateService { + @Autowired + private MesLabelTemplateParamRepository mesLabelTemplateParamRDao; @Override protected void setPackQueryBean(MesLabelTemplate bean, DdlPackBean packBean) { @@ -25,4 +40,27 @@ public class MesLabelTemplateServiceImpl extends BaseMesService resultList = baseRDao.findByHqlWherePage(packBean, pager); + if (!CollectionUtils.isEmpty(resultList)){ + for (MesLabelTemplate mesLabelTemplate : resultList) { + // 根据模板代码查询模板参数信息 + List templateParamList = mesLabelTemplateParamRDao.findByProperty( + new String[]{"templateCode", MesPcnConstWords.IS_VALID, MesPcnConstWords.IS_DELETED, MesExtConstWords.ORGANIZE_CODE}, + new Object[]{mesLabelTemplate.getTemplateCode(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), + CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),labelTemplate.getOrganizeCode()}); + + if (!CollectionUtils.isEmpty(templateParamList)) { + labelTemplate.setLabelTemplateParamList(templateParamList); + } + } + } + return new ListPager<>(resultList, pager); + } } From 8f751f8330a31c2bd0740e6c94c2252d67b15d48 Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 9 Sep 2024 15:39:46 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=8B=89=E5=8A=A8?= =?UTF-8?q?=E7=BB=84=E5=92=8C=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E4=BA=A7?= =?UTF-8?q?=E7=94=9F=E6=8B=89=E5=8A=A8=E5=8D=95JOB-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesPullingOrderInfoService.java | 2 + ...sCreatePullOrderByPullGroupAndWorkOrderJob.java | 71 ++++++++++++++++++++++ .../base/MesPullingOrderInfoService.java | 39 ++++++++++-- 3 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java index b4c0da4..ea59b67 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java @@ -12,4 +12,6 @@ import java.util.Map; public interface IMesPullingOrderInfoService extends IBaseMesService { Map doSPSForEquipment( String assemblyLine, String pullingGroupCode,String organizeCode ); + + void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode, String userName); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java new file mode 100644 index 0000000..4f94856 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; + +import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; +import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; +import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; +import cn.estsh.impp.framework.boot.init.ApplicationProperties; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import java.util.List; + +/** + * @Description : 根据拉动组和生产工单产生拉动单JOB + * @Reference : + * @Author : gsz + * @CreateDate 2024/9/4 10:01 + * @Modify: + **/ +// 禁止 JOB 并发执行 +@DisallowConcurrentExecution +@ApiOperation("根据拉动组和生产工单产生拉动单JOB") +public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesScheduleJob { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesCreatePullOrderByPullGroupAndWorkOrderJob.class); + + private static final long serialVersionUID = 9072058154235836696L; + + @Autowired + private IMesPullingOrderInfoService pullingOrderInfoService; + + @Autowired + private IMesConfigService mesConfigService; + + @Value("${server.port}") + private String serverPort; + @Value("${impp.server.ip}") + private String ip; + + public MesCreatePullOrderByPullGroupAndWorkOrderJob() { + super(MesCreatePullOrderByPullGroupAndWorkOrderJob.class, "根据拉动组和生产工单产生拉动单JOB"); + this.setMultiInstance(true); + } + + @Override + public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { + try { + String jobParam = this.getJobParam(); + + if (StringUtils.isBlank(jobParam)) { + throw new IllegalArgumentException("job参数为空,请检查参数"); + } + String[] organizeCodeList = jobParam.split(","); + LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始 -----start"); + String userName = "job"; + for (String organizeCode : organizeCodeList) { + pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,userName); + } + LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始结束 ----- end"); + + } catch (Exception e) { + LOGGER.error("根据拉动组和生产工单产生拉动单JOB任务结束e:{}", e.toString()); + } + } + +} 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 dffdc0d..ef8224c 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 @@ -2,26 +2,29 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPartPullService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesPartPull; -import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderInfo; -import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderPartInfoRepository; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; @Service @Slf4j @@ -29,7 +32,14 @@ public class MesPullingOrderInfoService extends BaseMesService pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(pulliGroupList)){ + return; + } + DdlPackBean ddlPackBeanDetail = DdlPackBean.getDdlPackBean(organizeCode); + List pullDetailList = mesPartPullDetailRDao.findByHqlWhere(ddlPackBeanDetail); + if (CollectionUtils.isEmpty(pullDetailList)){ + return; + } + //2.客户物料集合 [PART_NO] in 拉动组明细物料集合 + //3.产线数据 + DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()), "workCenterCode", workPackBean); + List mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); + + } + + @Override public Map doSPSForEquipment(String assemblyLine, String pullingGroupCode, String organizeCode) { Map resultMap = new HashMap(); //查询拉动单状态为已扫描=20的 拉动单 From a586b636efcdba32025a8561fdc057e2ca056ab9 Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 9 Sep 2024 15:41:03 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E7=BC=BA=E9=99=B7=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=9F=E8=83=BD=E5=8A=A0=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java index 1dddc2c..e9b2f6b 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesLabelTemplateServiceImpl.java @@ -57,7 +57,7 @@ public class MesLabelTemplateServiceImpl extends BaseMesService Date: Mon, 9 Sep 2024 17:09:03 +0800 Subject: [PATCH 09/18] =?UTF-8?q?43012=20=E5=85=B3=E9=97=AD=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=97=B6=EF=BC=8C=E8=AF=95=E5=88=B6=E5=8D=95=E5=92=8C?= =?UTF-8?q?=E8=AF=95=E5=88=B6=E9=9B=B6=E4=BB=B6=E4=B8=8D=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E5=9B=9E=E4=BC=A0SAP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 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 12d15d3..e75e9e0 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 @@ -664,6 +664,10 @@ public class MesWorkOrderService extends BaseMesService implements } item.setWorkCenterCode(mesWorkCenter.getWorkCenterCode()); item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter()); + //校验产线零件是否存在 + if (!checkWorkCenterPartRelation(item.getWorkCenterCode(),item.getPartNo()) && (StringUtil.isEmpty(item.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag()))){ + MesException.throwMesBusiException(String.format("工单产线【%s】与工单零件【%s】没有维护产线零件关系",mesWorkCenter.getWorkCenterCode(),item.getPartNo())); + } //获取客户物料信息 MesCustomerPart customerPart = null == mesCustomerPartMap ? null : mesCustomerPartMap.get(item.getPartNo()); if (!Objects.isNull(customerPart)) { @@ -1038,15 +1042,21 @@ public class MesWorkOrderService extends BaseMesService implements return; } log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); - //关闭工单回传 - List partNoAndDataKey = mesWorkOrderList.stream().map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList()); - 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]); - ConvertBean.serviceModelInitialize(orderToSap,userName); - mesWorkOrderToSapList.add(orderToSap); - } - mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList); + //查询自制件零件 + 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)) { + //关闭工单回传 + 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)) { + 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]); + ConvertBean.serviceModelInitialize(orderToSap, userName); + mesWorkOrderToSapList.add(orderToSap); + } + mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList); + } + } //关闭工单 baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"}, new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean); From 5ece1cb50651526da5c325d276af4e97a2219705 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 11 Sep 2024 11:30:03 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=A3=81=E7=89=87?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesWorkOrderCutService.java | 3 +++ .../serviceimpl/base/MesWorkOrderCutService.java | 30 +++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java index bbca02b..0054521 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java @@ -18,4 +18,7 @@ public interface IMesWorkOrderCutService extends IBaseMesService cutWorkOrderNos, String organizeCode, String userName); + @ApiOperation("打印裁片工单") + void doPrintCutWorkOrder(List cutWorkOrderNos, String organizeCode, String userName); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java index f325175..b5b5029 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java @@ -144,7 +144,12 @@ public class MesWorkOrderCutService extends BaseMesService impl workOrderCut.setCutName(cutScheme.getCutName()); workOrderCut.setWorkOrderStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == cutScheme.getIsAutoRelease() ? MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue() : MesExtEnumUtil.CUT_ORDER_STATUS.CREATE.getValue()); workOrderCut.setRemark(remark); - workOrderCut.setCutWorkOrderNo(doGenerateSerialNo(cutScheme.getCutCode(), organizeCode, userName)); + + String cutWorkOrderNo = doGenerateSerialNo(cutScheme.getCutCode(), organizeCode, userName); + + log.info("裁片工单号:{}", cutWorkOrderNo); + + workOrderCut.setCutWorkOrderNo(cutWorkOrderNo); workOrderCut.setOrganizeCode(organizeCode); workOrderCutDetailtList.forEach(o-> o.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo())); @@ -191,6 +196,8 @@ public class MesWorkOrderCutService extends BaseMesService impl if (workOrderCutDb.getWorkOrderStatus() != MesExtEnumUtil.CUT_ORDER_STATUS.CREATE.getValue()) MesException.throwMesBusiException("裁片工单【%】状态不为【%s】,当前状态为【%s】", cutWorkOrderNo, MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue(), MesExtEnumUtil.CUT_ORDER_STATUS.valueOfDescription(workOrderCutDb.getWorkOrderStatus())); + workOrderCuts.add(workOrderCutDb); + } for (MesWorkOrderCut workOrderCut : workOrderCuts) { @@ -201,6 +208,27 @@ public class MesWorkOrderCutService extends BaseMesService impl workOrderCutRepository.saveAll(workOrderCuts); } + @Override + public void doPrintCutWorkOrder(List cutWorkOrderNos, String organizeCode, String userName) { + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(cutWorkOrderNos, MesExtConstWords.CUT_WORK_ORDER_NO, packBean); + List workOrderCutDbList = workOrderCutRepository.findByHqlWhere(packBean); + + List cutWorkOrderNoDbList = workOrderCutDbList.stream().map(MesWorkOrderCut::getCutWorkOrderNo).collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(cutWorkOrderNoDbList)) MesException.throwMesBusiException("裁片工单不存在"); + + cutWorkOrderNos.removeAll(cutWorkOrderNoDbList); + + if (!CollectionUtils.isEmpty(cutWorkOrderNos)) + MesException.throwMesBusiException("裁片工单【%s】不存在", cutWorkOrderNos); + + List cutCode = workOrderCutDbList.stream().map(MesWorkOrderCut::getCutCode).distinct().collect(Collectors.toList()); + + + } + private String doGenerateSerialNo(String cutCode, String organizeCode, String userName) { return syncFuncService.syncSerialNo( new GenSerialNoModel(MesExtConstWords.CUT_WORK_ORDER_NO_FUL).dynamicRule(cutCode).year(TimeTool.pareDateToString(MesExtConstWords.DATE_FORMAT_YY, new Date())).organizeCode(organizeCode), From 3938ed8b155bacc8793ec3c18445dbf3b80f8d1c Mon Sep 17 00:00:00 2001 From: gsz Date: Wed, 11 Sep 2024 12:17:43 +0800 Subject: [PATCH 11/18] =?UTF-8?q?SPS=E7=89=A9=E6=96=99=E6=8B=89=E5=8A=A8?= =?UTF-8?q?=20=E7=94=9F=E6=88=90=E6=8B=89=E5=8A=A8=E5=8D=95JOB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesPullingOrderInfoController.java | 16 ++ .../base/MesPullingOrderPartInfoController.java | 18 +++ ...sCreatePullOrderByPullGroupAndWorkOrderJob.java | 2 +- .../base/MesPullingOrderInfoService.java | 174 +++++++++++++++++++-- .../ext/mes/pojo/constant/MesCommonConstant.java | 1 + 5 files changed, 199 insertions(+), 12 deletions(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderInfoController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderPartInfoController.java diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderInfoController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderInfoController.java new file mode 100644 index 0000000..aa1545f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderInfoController.java @@ -0,0 +1,16 @@ +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.MesPullingOrderInfo; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 拉动单 + */ +@Api("拉动单") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesPullingOrderInfo") +public class MesPullingOrderInfoController extends BaseMesController { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderPartInfoController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderPartInfoController.java new file mode 100644 index 0000000..1cf731a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesPullingOrderPartInfoController.java @@ -0,0 +1,18 @@ +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.MesPullingOrderInfo; +import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderPartInfo; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 拉动单 + */ +@Api("拉动单") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesPullingOrderPartInfo") +public class MesPullingOrderPartInfoController extends BaseMesController { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java index 4f94856..d0c4fcf 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java @@ -57,7 +57,7 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul } String[] organizeCodeList = jobParam.split(","); LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始 -----start"); - String userName = "job"; + String userName = "CreatePullOrderJob"; for (String organizeCode : organizeCodeList) { pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,userName); } 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 ef8224c..1b5f6ae 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 @@ -3,8 +3,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPartPullService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.util.WmsConstWords; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -15,21 +20,23 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.util.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @Slf4j public class MesPullingOrderInfoService extends BaseMesService implements IMesPullingOrderInfoService { - + public static final Logger LOGGER = LoggerFactory.getLogger(MesPullingOrderInfoService.class); + @Autowired + private MesPullingOrderInfoRepository mesPullingOrderInfoRepository; @Autowired private MesPullingOrderPartInfoRepository mesPullingOrderPartInfoRepository; @Autowired @@ -37,13 +44,21 @@ public class MesPullingOrderInfoService extends BaseMesService pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean); - if (CollectionUtils.isEmpty(pulliGroupList)){ + if (CollectionUtils.isEmpty(pulliGroupList)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->{}拉动组不存在", organizeCode); return; } + Map> pullCodeMap = pulliGroupList.stream().collect(Collectors.groupingBy(MesPartPull::getPullCode)); + Map> pullCodeCenterMap = pulliGroupList.stream().collect(Collectors.groupingBy(p -> p.getWorkCenterCode() + "=" + p.getPullCode())); + DdlPackBean ddlPackBeanDetail = DdlPackBean.getDdlPackBean(organizeCode); List pullDetailList = mesPartPullDetailRDao.findByHqlWhere(ddlPackBeanDetail); - if (CollectionUtils.isEmpty(pullDetailList)){ + if (CollectionUtils.isEmpty(pullDetailList)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->{}拉动组明细不存在", organizeCode); return; } + Map> partPullDetailListMap = pullDetailList.stream().collect(Collectors.groupingBy(MesPartPullDetail::getPartNo)); //2.客户物料集合 [PART_NO] in 拉动组明细物料集合 //3.产线数据 DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()), "workCenterCode", workPackBean); + List workCenterList = pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()); + DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", workPackBean); List mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); + if (CollectionUtils.isEmpty(mesWorkCenterList)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},拉动组对应产线信息不存在-->{}", organizeCode, workCenterList); + return; + } + Map> workCenterListMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); + + //4.生产工单 在加工状态 [PULLING_STATUS] =0 未创建 + DdlPackBean packBeanWorkOrder = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", packBeanWorkOrder); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue(), "workOrderStatus", packBeanWorkOrder); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.NOTCREATE.getValue(), "pullingStatus", packBeanWorkOrder); + List workOrderList = mesWorkOrderRepository.findByHqlWhere(packBeanWorkOrder); + if (CollectionUtils.isEmpty(workOrderList)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线信息没有【未创建】【在加工】状态的工单-->{}", organizeCode, workCenterList); + return; + } + Map> workOrderListMap = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getWorkOrderNo)); + + DdlPackBean packBeanWorkOrderPart = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()), "workOrderNo", workPackBean); + List mesWorkOrderPartList = workOrderPartRepository.findByHqlWhere(packBeanWorkOrderPart); + if (CollectionUtils.isEmpty(mesWorkOrderPartList)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件不存在-->{}", organizeCode, workCenterList); + return; + } + //5.取工单零件和拉动组交集,根据拉动主表对应的类型 生成相应的拉动单和拉动单明细 + Map> workOrderNoListMap = mesWorkOrderPartList.stream().collect(Collectors.groupingBy(MesWorkOrderPart::getWorkOrderNo)); + + + for (Map.Entry> stringListEntry : workOrderNoListMap.entrySet()) { + //需要生成拉动单的工单号 对应工单 + List mesWorkOrders = workOrderListMap.get(stringListEntry.getKey()); + MesWorkOrder mesWorkOrder = mesWorkOrders.get(0); + + //工单对应的工单零件号 + List workOrderParts = stringListEntry.getValue(); + //待生成的拉动组明细 + List pullDetailListNew = new ArrayList<>(); + for (MesWorkOrderPart workOrderPart : workOrderParts) { + if (!CollectionUtils.isEmpty(partPullDetailListMap.get(workOrderPart.getPartNo()))) { + pullDetailListNew.addAll(partPullDetailListMap.get(workOrderPart.getPartNo())); + } + } + if (CollectionUtils.isEmpty(pullDetailListNew)) { + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线-->{}对应的工单号-->{}没有需要生成拉动单零件", + organizeCode, mesWorkOrder.getWorkCenterCode(), mesWorkOrder.getWorkOrderNo()); + continue; + } + Map> workOrderPartListMap = workOrderParts.stream().collect(Collectors.groupingBy(MesWorkOrderPart::getPartNo)); + //生成拉动单 如果是多个拉动组的话都要产生拉动单 + Map> pullCodeListMap = pullDetailListNew.stream().collect(Collectors.groupingBy(MesPartPullDetail::getPullCode)); + for (Map.Entry> stringListEntryDetail : pullCodeListMap.entrySet()) { + String pullCode = stringListEntryDetail.getKey(); + List mesPartPulls = pullCodeMap.get(pullCode); + MesPartPull mesPartPull = mesPartPulls.get(0);//拉动组明细拉动单号对应拉动组 + List mesPartPullDetails = stringListEntryDetail.getValue(); + //调用平台生成拉动单号流水 -yyyyMMdd00001 + String orderNo = ""; + if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.KITTING_PULL.getValue()) { + orderNo = "KITTING"; + } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.JIS_PULL.getValue()) { + orderNo = "JIS"; + } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.SPS_PULL.getValue()) { + orderNo = "SPS"; + } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.BENZ_PULL.getValue()) { + orderNo = "BENZ"; + } else if (mesPartPull.getPullOrderType() == MesExtEnumUtil.PART_PULL_ORDER_TYPE.PICK_PULL.getValue()) { + orderNo = "PICK"; + } + + BaseResultBean orderResutlBean = sysOrderNoRuleCloud.getOrderNo(MesCommonConstant.MES_PULL_ORDER_NO); + if (orderResutlBean != null && orderResutlBean.isSuccess()) { + orderNo += orderResutlBean.getResultObject().get(WmsConstWords.CORE_ORDER_NO).toString(); + } else { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("生成单号失败") + .setErrorSolution("【MES_PULL_ORDER_NO】请重新操作或查看服务!") + .build(); + } + MesPullingOrderInfo pullingOrder = new MesPullingOrderInfo(); + pullingOrder.setPullingOrderNo(orderNo); + pullingOrder.setPullOrderType(mesPartPull.getPullOrderType()); + pullingOrder.setPullGroupFid(mesPartPull.getId()); + pullingOrder.setCustOrderNo(StringUtil.isEmpty(mesWorkOrder.getCustOrderNo()) ? "" : mesWorkOrder.getCustOrderNo()); + pullingOrder.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); + pullingOrder.setWorkOrderSeq(StringUtil.isEmpty(mesWorkOrder.getWorkOrderSeq()) ? "" : mesWorkOrder.getWorkOrderSeq()); + pullingOrder.setIsPrint(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + pullingOrder.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); + pullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.KITTING_PULL.getValue()); + pullingOrder.setWorkCenterCode(mesPartPull.getWorkCenterCode()); + pullingOrder.setPullCode(mesPartPull.getPullCode()); + pullingOrder.setCustPartNo(mesWorkOrder.getCustPartNo()); + pullingOrder.setProduceSeq(StringUtil.isEmpty(mesWorkOrder.getProduceSeq()) ? 0 : mesWorkOrder.getProduceSeq()); + + ConvertBean.serviceModelInitialize(pullingOrder, userName); + mesPullingOrderInfoRepository.insert(pullingOrder); + + for (MesPartPullDetail partInfo : mesPartPullDetails) { + MesPullingOrderPartInfo pullingOrderPartInfo = new MesPullingOrderPartInfo(); + pullingOrderPartInfo.setPullCode(partInfo.getPullCode()); + pullingOrderPartInfo.setPullingOrderNo(pullingOrder.getPullingOrderNo()); + pullingOrderPartInfo.setWorkOrderNo(pullingOrder.getWorkOrderNo()); + pullingOrderPartInfo.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); + pullingOrderPartInfo.setCustOrderNo(pullingOrder.getCustOrderNo()); + pullingOrderPartInfo.setPartNo(partInfo.getPartNo()); + pullingOrderPartInfo.setPartName(partInfo.getPartName()); + MesWorkOrderPart mesWorkOrderPart = workOrderPartListMap.get(partInfo.getPartNo()).get(0); + pullingOrderPartInfo.setPullQty(mesWorkOrderPart.getItemQty()); + pullingOrderPartInfo.setCustOrderNo(pullingOrder.getCustOrderNo()); + pullingOrderPartInfo.setWorkOrderSeq(pullingOrder.getWorkOrderSeq()); + pullingOrderPartInfo.setWaterSeq(pullingOrder.getProduceSeq()); + pullingOrderPartInfo.setWorkCellCode(mesWorkOrderPart.getWorkCellCode()); + pullingOrderPartInfo.setEquipment(partInfo.getEquipment()); + pullingOrderPartInfo.setLocation(partInfo.getPullAddr());//todo + pullingOrderPartInfo.setStatus(MesExtEnumUtil.PULL_ORDER_PART_STATUS.UN_SENTED.getValue());///明细已送料为1,未送料为0 + pullingOrderPartInfo.setCustPartNo(pullingOrder.getCustPartNo()); + + ConvertBean.serviceModelInitialize(pullingOrderPartInfo, userName); + mesPullingOrderPartInfoRepository.insert(pullingOrderPartInfo); + } + } + //6.产生拉动单后更新工单拉动状态为已拉动 + mesWorkOrder.setPullingStatus(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue()); + mesWorkOrderRepository.update(mesWorkOrder); + //7.拉动组+加工单号+生成拉动单状态的对应关系中间表,每次新增都要记录 + + + } } @@ -103,7 +255,7 @@ public class MesPullingOrderInfoService extends BaseMesService byHqlWhere = mesPullingOrderPartInfoRepository.findByHqlWhere(partPackBean); - resultMap.put("",mesPullingOrder); + resultMap.put("", mesPullingOrder); resultMap.put("success", true); - String message ="更新SPS状态成功,已发送SPS信息给设备! id:"+mesPullingOrder.getId()+ "Code:" + mesPullingOrder.getPullingOrderNo() + "产线" + assemblyLine + "拉动组" + pullingGroupCode + ""; + String message = "更新SPS状态成功,已发送SPS信息给设备! id:" + mesPullingOrder.getId() + "Code:" + mesPullingOrder.getPullingOrderNo() + "产线" + assemblyLine + "拉动组" + pullingGroupCode + ""; resultMap.put("message", message); //更新主表状态 源系统为25配料完成 现在-【已发送设备-30】 mesPullingOrder.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.SPS_PULL.getValue()); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java index 7266a5a..1cb3a62 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/constant/MesCommonConstant.java @@ -58,4 +58,5 @@ public class MesCommonConstant { public static final String CLIENT_HANDLE_ID = "CLIENT_HANDLE_ID"; public static final String QC_ORDER_PRINT_TEMPLATE = "QC_ORDER_PRINT_TEMPLATE"; + public static final String MES_PULL_ORDER_NO = "MES_PULL_ORDER_NO"; } From 26b7ad8a28ac6b9fec6dda49771bd169e0e33448 Mon Sep 17 00:00:00 2001 From: gsz Date: Wed, 11 Sep 2024 15:36:03 +0800 Subject: [PATCH 12/18] =?UTF-8?q?SPS=E7=89=A9=E6=96=99=E6=8B=89=E5=8A=A8?= =?UTF-8?q?=20=E7=94=9F=E6=88=90=E6=8B=89=E5=8A=A8=E5=8D=95JOB-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/MesWhiteListController.java | 15 +++++++++++++++ ...MesCreatePullOrderByPullGroupAndWorkOrderJob.java | 2 +- .../serviceimpl/base/MesPullingOrderInfoService.java | 20 ++++++++++++++++---- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java index 819c147..c03f0c3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java @@ -76,6 +76,8 @@ public class MesWhiteListController extends MesBaseController { private MesEquipmentRepository mesEquipmentRDao; @Autowired + private IMesPullingOrderInfoService pullingOrderInfoService; + @Autowired private IMesDowntimeRecordService downtimeRecordService; @PostMapping(value = "/meter/main-data") @ApiOperation(value = "Maximo仪表主数据", notes = "Maximo仪表主数据") @@ -277,4 +279,17 @@ public class MesWhiteListController extends MesBaseController { } return ResultBean.success("执行成功"); } + @GetMapping(value = "/doCreatePullOrder") + @ApiOperation(value = "根据拉动组和生产工单产生拉动单") + public ResultBean doCreatePullOrder(String organizeCode, String equ) { + //统计数据 + try { + pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,"test"); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + return ResultBean.success("执行成功"); + } } \ No newline at end of file diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java index d0c4fcf..58a60dd 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java @@ -29,7 +29,7 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul public static final Logger LOGGER = LoggerFactory.getLogger(MesCreatePullOrderByPullGroupAndWorkOrderJob.class); - private static final long serialVersionUID = 9072058154235836696L; + private static final long serialVersionUID = -321526601595924818L; @Autowired private IMesPullingOrderInfoService pullingOrderInfoService; 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 1b5f6ae..ebc1bed 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 @@ -51,6 +51,8 @@ public class MesPullingOrderInfoService extends BaseMesService> pullCodeMap = pulliGroupList.stream().collect(Collectors.groupingBy(MesPartPull::getPullCode)); - Map> pullCodeCenterMap = pulliGroupList.stream().collect(Collectors.groupingBy(p -> p.getWorkCenterCode() + "=" + p.getPullCode())); DdlPackBean ddlPackBeanDetail = DdlPackBean.getDdlPackBean(organizeCode); List pullDetailList = mesPartPullDetailRDao.findByHqlWhere(ddlPackBeanDetail); @@ -121,7 +122,7 @@ public class MesPullingOrderInfoService extends BaseMesService workOrderList = mesWorkOrderRepository.findByHqlWhere(packBeanWorkOrder); if (CollectionUtils.isEmpty(workOrderList)) { @@ -194,6 +195,7 @@ public class MesPullingOrderInfoService extends BaseMesService Date: Thu, 12 Sep 2024 08:53:06 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E6=8B=89=E5=8A=A8=E5=8D=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=80=BB=E6=88=90=E9=9B=B6=E4=BB=B6=E5=8F=B7=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java | 1 + 1 file changed, 1 insertion(+) 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 ebc1bed..c789920 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 @@ -208,6 +208,7 @@ public class MesPullingOrderInfoService extends BaseMesService Date: Sat, 14 Sep 2024 09:01:10 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD-?= =?UTF-8?q?=E3=80=8B=E5=BC=B9=E6=A1=86=E5=B1=95=E7=A4=BA=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8Function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderCutService.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java index b5b5029..633dea6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java @@ -89,6 +89,11 @@ public class MesWorkOrderCutService extends BaseMesService impl Map> workOrderListMapByPartNo = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getPartNo)); + MesCutScheme cutScheme = getCutScheme(cutCode, organizeCode); + + if (cutScheme == null) + MesException.throwMesBusiException("裁片方案【%s】无效", cutCode); + List cutSchemeMaterialList = getCutSchemeMaterialList(cutCode, organizeCode); if (CollectionUtils.isEmpty(cutSchemeMaterialList)) MesException.throwMesBusiException("裁片方案【%s】缺少原材料配置", cutCode); @@ -116,9 +121,12 @@ public class MesWorkOrderCutService extends BaseMesService impl MesWorkOrder workOrder = workOrders.get(0); - if (cutSchemeFg.getQty().compareTo(workOrder.getUnCompleteQty()) > 0) { - MesException.throwMesBusiException("零件号【%s】工单未完成数量【%s】不满足产成总数【%s】", cutSchemeFg.getPartNo(), workOrder.getUnCompleteQty(), cutSchemeFg.getQty()); - } + if (!workOrder.getWorkCenterCode().equals(cutScheme.getWorkCenterCode())) + MesException.throwMesBusiException("工单【%s】关联产线【%】与裁片方案【%】关联产线不一致!", workOrder.getWorkCenterCode(), cutScheme.getWorkCenterCode()); + + if (cutSchemeFg.getQty().compareTo(workOrder.getUnCompleteQty()) > 0) + MesException.throwMesBusiException("零件号【%s】工单未完成数量【%s】不满足产成总数【%s】", + cutSchemeFg.getPartNo(), workOrder.getUnCompleteQty(), cutSchemeFg.getQty()); Double unCompleteQty = workOrder.getUnCompleteQty(); @@ -136,8 +144,6 @@ public class MesWorkOrderCutService extends BaseMesService impl } - MesCutScheme cutScheme = getCutScheme(cutCode, organizeCode); - MesWorkOrderCut workOrderCut = new MesWorkOrderCut(); ConvertBean.serviceModelInitialize(workOrderCut, userName); workOrderCut.setCutCode(cutScheme.getCutCode()); From dcff64a03d48a104327f9d42d3a174ba7d9e8218 Mon Sep 17 00:00:00 2001 From: gsz Date: Wed, 18 Sep 2024 10:35:44 +0800 Subject: [PATCH 15/18] =?UTF-8?q?43112=20MES:PC=E6=8B=89=E5=8A=A8=E5=8D=95?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E9=97=AE=E9=A2=98=206.=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E6=8B=89=E5=8A=A8=E7=BB=84-=E6=A0=B9=E6=8D=AE=E5=B7=A5?= =?UTF-8?q?=E4=BD=8D=E4=BB=A3=E7=A0=81=EF=BC=86=E9=9B=B6=E4=BB=B6=E5=8F=B7?= =?UTF-8?q?=E5=81=9A=E5=94=AF=E4=B8=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesPartPullDetailService.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartPullDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartPullDetailService.java index 73d4df1..db94ac6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartPullDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartPullDetailService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesPartPullDetail; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -16,7 +17,51 @@ import java.util.List; @Service @Slf4j public class MesPartPullDetailService extends BaseMesService implements IMesPartPullDetailService { + @Override + protected void onInsertBean(MesPartPullDetail item) { + // 数据校验 + ValidatorBean.checkNotNull(item.getOrganizeCode(), "工厂号不能为空"); + //43112 MES:PC拉动单页面问题 6.同一拉动组-根据工位代码&零件号做唯一校验 + if (!StringUtil.isEmpty(item.getWorkCellCode())&&!StringUtil.isEmpty(item.getPartNo())){ + DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPullCode(), "pullCode", partPackBean); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", partPackBean); + DdlPreparedPack.getStringEqualPack(item.getWorkCellCode(), "workCellCode", partPackBean); + boolean flg = baseRDao.isExitByHql(partPackBean); + if (flg) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("拉动组【%s】零件号【%s】工位【%s】已经存在,请检查数据", + item.getPullCode(), item.getPartNo(), item.getWorkCellCode()) + .build(); + } + } + } + @Override + protected void onUpdateBean(MesPartPullDetail item) { + // 数据校验 + ValidatorBean.checkNotNull(item.getOrganizeCode(), "工厂号不能为空"); +// ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); + + //同一拉动组-根据工位代码&零件号做唯一校验 + if (!StringUtil.isEmpty(item.getWorkCellCode())&&!StringUtil.isEmpty(item.getPartNo())){ + DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPullCode(), "pullCode", partPackBean); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", partPackBean); + DdlPreparedPack.getStringEqualPack(item.getWorkCellCode(), "workCellCode", partPackBean); + boolean flg = baseRDao.isExitByHql(partPackBean); + if (flg) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("拉动组【%s】零件号【%s】工位【%s】已经存在,请检查数据", + item.getPullCode(), item.getPartNo(), item.getWorkCellCode()) + .build(); + } + } + } protected void setPackQueryBean(MesPartPullDetail bean, DdlPackBean packBean) { DdlPreparedPack.getStringLikerPack(bean.getPullCode(), "pullCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCellCode(), "workCellCode", packBean); From 9bf51d1990dea565dc158079870fc7d1611e85b2 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 11:35:25 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=B1=BB=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java | 3 +++ 1 file changed, 3 insertions(+) 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 66a8837..103bede 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 @@ -257,4 +257,7 @@ public class MesExtConstWords { // 条码 public static final String SN = "sn"; + // 打印状态 + public static final String PRINT_STATUS = "printStatus"; + } From c01cbcb83ceddb62173cd3daa1dce2d00ac45622 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 14:27:46 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E8=A3=81=E7=89=87=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E3=80=81=E5=B7=A5=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 ++ 1 file changed, 2 insertions(+) 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 103bede..1384413 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 @@ -259,5 +259,7 @@ public class MesExtConstWords { // 打印状态 public static final String PRINT_STATUS = "printStatus"; + //客户编码 + public static final String CUST_CODE = "custCode"; } From 1d29f10f6fadaa37bb31b8e6208929fef7ad13c1 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 14:29:14 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E5=8C=85=E8=A3=85=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E5=AE=A2=E6=88=B7=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E3=80=81=E5=B7=A5=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=8F=AF?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=A4=9A=E7=A7=8D=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 --- .../base/MesPackingDefineServiceImpl.java | 31 ++++++++++++++++++++++ .../serviceimpl/base/MesWorkOrderService.java | 4 ++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java index 34a656e..185a7e4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java @@ -1,13 +1,25 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPackingDefineService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCustomer; import cn.estsh.i3plus.pojo.mes.bean.MesPackingDefine; +import cn.estsh.i3plus.pojo.mes.repository.MesCustomerRepository; import cn.estsh.impp.framework.boot.util.ValidatorBean; 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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @Description : 包装定义维护 @@ -20,6 +32,25 @@ import org.springframework.stereotype.Service; @Slf4j public class MesPackingDefineServiceImpl extends BaseMesService implements IMesPackingDefineService { + @Autowired + private MesCustomerRepository customerRepository; + + @Override + public void setBeanModel(List list) { + if(CollectionUtils.isEmpty(list)){ + return; + } + List custCodeList = list.stream().filter(o -> !StringUtils.isEmpty(o.getCustCode())).map(MesPackingDefine::getCustCode).filter(t -> !StringUtils.isEmpty(t)).distinct().collect(Collectors.toList()); + Map beanMap = CollectionUtils.isEmpty(custCodeList) ? new HashMap<>() : BeanMapUtilsExt.getBeanMap(customerRepository, MesExtConstWords.CUST_CODE, list.iterator().next().getOrganizeCode(), custCodeList); + if(!CollectionUtils.isEmpty(beanMap)){ + list.forEach(t->{ + if (!StringUtils.isEmpty(t.getCustCode()) && beanMap.containsKey(t.getCustCode())) { + t.setCustName(beanMap.get(t.getCustCode()).getCustName()); + } + }); + } + } + @Override protected void setPackQueryBean(MesPackingDefine bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(bean.getPackCode(), "packCode", 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 e75e9e0..210409e 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 @@ -224,7 +224,9 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringEqualPack(bean.getCustPartNo(), "custPartNo", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), "workCenterCode", packBean); - DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", packBean); + if (StringUtil.isEmpty(bean.getWorkOrderStatusQuery())) { + DdlPreparedPack.getInPackList(Arrays.asList(bean.getWorkOrderStatusQuery().split(MesExtConstWords.COMMA)), "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);