From 92b6b1be417da62e4a0d566cf768b756f663135c Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 4 Sep 2024 14:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD=E4=B8=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesCutSchemeService.java | 12 ++ .../controller/base/MesCutSchemeController.java | 17 ++ .../controller/base/MesWorkOrderCutController.java | 66 +++++++ .../serviceimpl/base/MesCutSchemeService.java | 105 ++++++++++ .../serviceimpl/base/MesWorkOrderCutService.java | 216 +++++++++++++++++++++ .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 11 ++ 6 files changed, 427 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeService.java new file mode 100644 index 0000000..90109d4 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeService.java @@ -0,0 +1,12 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutScheme; + +/** + * @Description: + * @CreateDate 2024/04/16 + * @Author mingliang.li + */ +public interface IMesCutSchemeService extends IBaseMesService { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeController.java new file mode 100644 index 0000000..2f57f81 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeController.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.MesCutScheme; +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 + "/mesCutScheme") +public class MesCutSchemeController extends BaseMesController{ + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java new file mode 100644 index 0000000..5bc661a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java @@ -0,0 +1,66 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCut; +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.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 裁片工单 + */ +@Api("裁片工单信息") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesWorkOrderCut") +public class MesWorkOrderCutController extends BaseMesController{ + + @Autowired + private IMesWorkOrderCutService workOrderCutService; + + @PostMapping(value = "/generate") + @ApiOperation(value = "裁片工单生成", notes = "裁片工单生成") + public ResultBean doGenerateCutWorkOrder(List workOrderIds, String cutCode, String remark) { + try { + + ValidatorBean.checkNotNull(workOrderIds, "工单不存在"); + ValidatorBean.checkNotNull(cutCode, "裁片方案不存在"); + + workOrderCutService.doGenerateCutWorkOrder(workOrderIds, cutCode, remark, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName()); + return ResultBean.success("生成成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/release") + @ApiOperation(value = "裁片工单发布", notes = "裁片工单发布") + public ResultBean doReleaseCutWorkOrder(String cutWorkOrderNo) { + try { + + ValidatorBean.checkNotNull(cutWorkOrderNo, "裁片工单不存在"); + + workOrderCutService.doReleaseCutWorkOrder(cutWorkOrderNo, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName()); + return ResultBean.success("发布成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } 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/MesCutSchemeService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeService.java new file mode 100644 index 0000000..c9b14c3 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeService.java @@ -0,0 +1,105 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; +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.*; +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; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class MesCutSchemeService extends BaseMesService implements IMesCutSchemeService { + + @Autowired + private MesWorkCenterRepository workCenterRepository; + + protected void setPackQueryBean(MesCutScheme bean, DdlPackBean packBean) { + DdlPreparedPack.getStringLikerPack(bean.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringLikerPack(bean.getCutCode(), MesExtConstWords.CUT_CODE, packBean); + DdlPreparedPack.getNumEqualPack(bean.getCutName(), MesExtConstWords.CUT_NAME, packBean); + } + + @Override + public void setBeanModel(List list) { + if(CollectionUtils.isEmpty(list)){ + return; + } + List workCenterCodeList = list.stream().map(MesCutScheme::getWorkCenterCode).filter(t -> !StringUtils.isEmpty(t)).distinct().collect(Collectors.toList()); + Map beanMap = CollectionUtils.isEmpty(workCenterCodeList) ? null : BeanMapUtilsExt.getBeanMap(workCenterRepository, MesExtConstWords.WORK_CENTER_CODE, list.iterator().next().getOrganizeCode(), workCenterCodeList); + if(!CollectionUtils.isEmpty(beanMap)){ + list.forEach(t->{ + if (beanMap.containsKey(t.getWorkCenterCode())) { + t.setWorkCenterName(beanMap.get(t.getWorkCenterCode()).getWorkCenterName()); + } + }); + } + } + + protected void onInsertBean(MesCutScheme item) { + // 数据校验 + //ValidatorBean.checkNotNull(item.getDefectTypeCode(), "缺陷类型代码不能为空"); + //ValidatorBean.checkNotNull(item.getDefectTypeName(), "缺陷类型名称不能为空"); + // + //DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + //DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", packBean); + //boolean flg = baseRDao.isExitByHql(packBean); + //if (flg) { + // throw ImppExceptionBuilder.newInstance() + // .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + // .setErrorDetail("【%s】缺陷类型代码已经存在,请检查数据", item.getDefectTypeCode()) + // .build(); + //} + } + + + protected void onUpdateBean(MesCutScheme item) { + + // 数据校验 + //ValidatorBean.checkNotNull(item.getDefectTypeCode(), "缺陷类型代码不能为空"); + //ValidatorBean.checkNotNull(item.getDefectTypeName(), "缺陷类型名称不能为空"); + // + //DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + //DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", packBean); + //DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", packBean); + //boolean flg = baseRDao.isExitByHql(packBean); + //if (flg) { + // throw ImppExceptionBuilder.newInstance() + // .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + // .setErrorDetail("【%s】缺陷类型代码已经存在,请检查数据", item.getDefectTypeCode()) + // .build(); + //} + } + @Override + public void validateImport(List beanList) { + + //for (MesCutScheme item : beanList) { + // // 数据校验 + // ValidatorBean.checkNotNull(item.getDefectTypeCode(), "缺陷类型代码不能为空"); + // ValidatorBean.checkNotNull(item.getDefectTypeName(), "缺陷类型名称不能为空"); + // + // DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + // DdlPreparedPack.getStringEqualPack(item.getDefectTypeCode(), "defectTypeCode", packBean); + // boolean flg = baseRDao.isExitByHql(packBean); + // if (flg) { + // throw ImppExceptionBuilder.newInstance() + // .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + // .setErrorDetail("【%s】缺陷类型代码已经存在,请检查数据", item.getDefectTypeCode()) + // .build(); + // } + //} + } +} 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 new file mode 100644 index 0000000..0972d2e --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java @@ -0,0 +1,216 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +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.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +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.stream.Collectors; + +@Service +@Slf4j +public class MesWorkOrderCutService extends BaseMesService implements IMesWorkOrderCutService { + + @Autowired + private ISyncFuncService syncFuncService; + + @Autowired + private MesWorkOrderCutRepository workOrderCutRepository; + + @Autowired + private MesWorkOrderRepository workOrderRepository; + + @Autowired + private MesCutSchemeFgRepository cutSchemeFgRepository; + + @Autowired + private MesCutSchemeRepository cutSchemeRepository; + + @Autowired + private MesCutSchemeMaterialRepository cutSchemeMaterialRepository; + + @Autowired + private MesWorkOrderCutMaterialRepository workOrderCutMaterialRepository; + + @Autowired + private MesWorkOrderCutDetailRepository workOrderCutDetailRepository; + + protected void setPackQueryBean(MesWorkOrderCut bean, DdlPackBean packBean) { + DdlPreparedPack.getStringLikerPack(bean.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean); + DdlPreparedPack.getStringLikerPack(bean.getCutCode(), MesExtConstWords.CUT_CODE, packBean); + if (!StringUtils.isEmpty(bean.getCreateDateTimeStart()) || !StringUtils.isEmpty(bean.getCreateDateTimeEnd())) { + DdlPreparedPack.timeBuilder( + bean.getCreateDateTimeStart(), + bean.getCreateDateTimeEnd(), + MesExtConstWords.CREATE_DATE_TIME, packBean, true); + } + DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, packBean); + } + + @Override + public void doGenerateCutWorkOrder(List workOrderIds, String cutCode, String remark, String organizeCode, String userName) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(workOrderIds, MesExtConstWords.ID, packBean); + List workOrderList = workOrderRepository.findByHqlWhere(packBean); + + if (CollectionUtils.isEmpty(workOrderList)) { + MesException.throwMesBusiException("工单信息不存在"); + } + + for (Long workOrderId : workOrderIds) { + if (!workOrderList.contains(workOrderId)) { + MesException.throwMesBusiException("工单信息ID【%s】不存在", workOrderId); + } + } + + for (MesWorkOrder mesWorkOrder : workOrderList) { + if (mesWorkOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { + MesException.throwMesBusiException("工单状态不为【%s】", MesExtEnumUtil.ORDER_STATUS.valueOfDescription(mesWorkOrder.getWorkOrderStatus())); + } + } + + Map> workOrderListMapByPartNo = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getPartNo)); + + List cutSchemeMaterialList = getCutSchemeMaterialList(cutCode, organizeCode); + + if (CollectionUtils.isEmpty(cutSchemeMaterialList)) MesException.throwMesBusiException("裁片方案【%s】缺少原材料配置", cutCode); + + List cutSchemeFgList = getCutSchemeFgList(cutCode, organizeCode); + + if (CollectionUtils.isEmpty(cutSchemeFgList)) MesException.throwMesBusiException("裁片方案【%s】缺少裁片方案成品配置", cutCode); + + List partNoList = workOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()); + List fgPartNoList = cutSchemeFgList.stream().map(MesCutSchemeFg::getPartNo).distinct().collect(Collectors.toList()); + + partNoList.removeAll(fgPartNoList); + + if (CollectionUtils.isEmpty(partNoList)) MesException.throwMesBusiException("物料【%s】未在裁片方案成品中维护", partNoList); + + Map workOrderUnCompleteMap = new HashMap<>(); + List workOrderCutDetailtList = new ArrayList<>(); + for (MesCutSchemeFg cutSchemeFg : cutSchemeFgList) { + + List workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo()); + + if (workOrders.size() > 1) { + MesException.throwMesBusiException("零件号【%s】存在多个工单", cutSchemeFg.getPartNo()); + } + + MesWorkOrder workOrder = workOrders.get(0); + + if (cutSchemeFg.getQty().compareTo(workOrder.getUnCompleteQty()) < 0) { + MesException.throwMesBusiException("零件号【%s】工单未完成数量不满足产成总数", cutSchemeFg.getPartNo()); + } + + Double unCompleteQty = workOrder.getUnCompleteQty(); + + workOrderUnCompleteMap.put(workOrder.getWorkOrderNo(), unCompleteQty - cutSchemeFg.getQty()); + + MesWorkOrderCutDetail detail = new MesWorkOrderCutDetail(); + ConvertBean.serviceModelInitialize(detail, userName); + detail.setOrganizeCode(organizeCode); + detail.setPartNo(workOrder.getPartNo()); + detail.setPartName(workOrder.getPartName()); + detail.setWorkOrderNo(workOrder.getWorkOrderNo()); + detail.setRemark(cutSchemeFg.getRemark()); + detail.setQty(cutSchemeFg.getQty()); + workOrderCutDetailtList.add(detail); + + } + + MesCutScheme cutScheme = getCutScheme(cutCode, organizeCode); + + MesWorkOrderCut workOrderCut = new MesWorkOrderCut(); + ConvertBean.serviceModelInitialize(workOrderCut, userName); + workOrderCut.setCutCode(cutScheme.getCutCode()); + 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(doGererateSerialNo(cutScheme.getCutCode(), organizeCode, userName)); + workOrderCut.setOrganizeCode(organizeCode); + + List workOrderCutMaterialList = new ArrayList<>(); + for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) { + MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial(); + BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID); + ConvertBean.serviceModelInitialize(workOrderCut, userName); + workOrderCutMaterial.setOrganizeCode(organizeCode); + workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()); + workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE); + workOrderCutMaterialList.add(workOrderCutMaterial); + } + + workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList); + workOrderCutDetailRepository.saveAll(workOrderCutDetailtList); + workOrderCutRepository.save(workOrderCut); + + for (MesWorkOrder mesWorkOrder : workOrderList) { + mesWorkOrder.setUnCompleteQty(workOrderUnCompleteMap.get(mesWorkOrder.getWorkOrderNo())); + } + + workOrderRepository.saveAll(workOrderList); + + } + + @Override + public void doReleaseCutWorkOrder(String cutWorkOrderNo, String organizeCode, String userName) { + + if (StringUtils.isEmpty(cutWorkOrderNo)) MesException.throwMesBusiException("裁片工单为空"); + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(cutWorkOrderNo, MesExtConstWords.CUT_WORK_ORDER_NO, packBean); + MesWorkOrderCut workOrderCutDb = workOrderCutRepository.getByProperty(packBean); + + if (workOrderCutDb == null) MesException.throwMesBusiException("裁片工单不存在", cutWorkOrderNo); + + 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())); + + workOrderCutDb.setWorkOrderStatus(MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue()); + + ConvertBean.serviceModelUpdate(workOrderCutDb, userName); + + workOrderCutRepository.save(workOrderCutDb); + } + + private String doGererateSerialNo(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), + userName, organizeCode, 1).getResultList().get(0).toString(); + } + + private MesCutScheme getCutScheme(String cutCode, String organizeCode) { + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(cutCode, MesExtConstWords.CUT_CODE, packBean); + return cutSchemeRepository.getByProperty(packBean); + + } + + private List getCutSchemeFgList(String cutCode, String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(cutCode, MesExtConstWords.CUT_CODE, packBean); + return cutSchemeFgRepository.findByHqlWhere(packBean); + } + + private List getCutSchemeMaterialList(String cutCode, String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(cutCode, MesExtConstWords.CUT_CODE, packBean); + return cutSchemeMaterialRepository.findByHqlWhere(packBean); + } +} 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 4d70267..29503c9 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 @@ -209,6 +209,8 @@ public class MesExtConstWords { //日期类型 public static final String DATE_FORMAT_YM = "yyyy-MM"; //日期类型 + public static final String DATE_FORMAT_YY = "yy"; + //日期类型 public static final String DATE_DD_01 = "-01"; //日期类型 public static final String DATE_DD_31 = "-31"; @@ -242,4 +244,13 @@ public class MesExtConstWords { //JOB停机类型代码 public static final String MES_DOWNTIME_RECORD_JOB_TYPE = "MES_DOWNTIME_RECORD_JOB_TYPE"; + // 裁片工单号 + public static final String CUT_WORK_ORDER_NO = "cutWorkOrderNo"; + // 裁片代码 + public static final String CUT_CODE = "cutCode"; + // 裁片名称 + public static final String CUT_NAME = "cutName"; + // 裁片工单号 + public static final String CUT_WORK_ORDER_NO_FUL = "CUT_WORK_ORDER_NO"; + }