diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index e98ff48..638da66 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -1,11 +1,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi; -import cn.estsh.i3plus.ext.mes.api.base.IBaseMesService; import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderPartService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderResultService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -62,6 +62,8 @@ public class MesSpotCheckOrderService extends BaseMesService public MesSpotCheckOrder insert(MesSpotCheckOrder bean) { onInsertBean(bean); + bean.setTaskResource(MesCommonConstant.SPOT_CHECK_ORDER_TASK_RESOURCE); + bean.setStatus(MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()); //查询点检方案 点检单点检方案 spotCheckId-id关联 MesEquipmentSpotCheck equipmentSpotCheck = equipmentSpotCheckService.get(bean.getSpotCheckId()); @@ -73,9 +75,17 @@ public class MesSpotCheckOrderService extends BaseMesService .build(); } + if (equipmentSpotCheck.getTriggerMode() == MesExtEnumUtil.EQUIPMENT_SPOT_CHECK_TRIGGER_MODE.TIME.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检方案触发方式为【%s】,请勿手动创建", bean.getSpotCheckId(), MesExtEnumUtil.EQUIPMENT_SPOT_CHECK_TRIGGER_MODE.TIME.getDescription()) + .build(); + } + //查询点检明细 主表明细表 spotCheckId-pid关联 DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getNumberBiggerEqualPack(bean.getSpotCheckId(), "pid", packBean); + DdlPreparedPack.getNumEqualPack(bean.getSpotCheckId(), "pid", packBean); List detailList = equipmentSpotCheckDetailRepository.findByHqlWhere(packBean); if (CollectionUtils.isEmpty(detailList)) { @@ -99,13 +109,13 @@ public class MesSpotCheckOrderService extends BaseMesService } //生成单据号 - GenSerialNoModel genSerialNoModel = new GenSerialNoModel(); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); +// GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); +// List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); //保存单据 BeanUtils.copyProperties(equipmentSpotCheck, bean, "id"); - bean.setSpotCheckOrderNo(resultList.get(0)); -// ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + bean.setSpotCheckOrderNo("SPOT_CHECK_ORDER_NO_0002"); + ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); bean = baseRDao.insert(bean); //保存单据明细 @@ -115,6 +125,9 @@ public class MesSpotCheckOrderService extends BaseMesService MesSpotCheckOrderResult result = new MesSpotCheckOrderResult(); BeanUtils.copyProperties(k, result, "id"); result.setPid(finalBean.getId()); + result.setSpotCheckItemId(k.getId()); + result.setTaskItemName(k.getSpotCheckItemName()); + result.setSpotCheckStandardValue(k.getStandardValue()); ConvertBean.serviceModelInitialize(result, AuthUtil.getSessionUser().getUserName()); // ConvertBean.serviceModelInitialize(result, "LML"); spotCheckOrderResults.add(result); @@ -128,8 +141,8 @@ public class MesSpotCheckOrderService extends BaseMesService MesSpotCheckOrderPart spotCheckOrderPart = new MesSpotCheckOrderPart(); spotCheckOrderPart.setSpotCheckOrderId(finalBean.getId()); BeanUtils.copyProperties(k, spotCheckOrderPart, "id"); -// ConvertBean.serviceModelInitialize(spotCheckOrderPart, AuthUtil.getSessionUser().getUserName()); - ConvertBean.serviceModelInitialize(spotCheckOrderPart, "LML"); + ConvertBean.serviceModelInitialize(spotCheckOrderPart, AuthUtil.getSessionUser().getUserName()); +// ConvertBean.serviceModelInitialize(spotCheckOrderPart, "LML"); spotCheckOrderPartList.add(spotCheckOrderPart); }); spotCheckOrderPartService.insertBatch(spotCheckOrderPartList); @@ -146,6 +159,22 @@ public class MesSpotCheckOrderService extends BaseMesService //获取点检单 MesSpotCheckOrder originBean = baseRDao.getById(bean.getId()); + if (StringUtils.isEmpty(originBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检单不存在,请检查数据", bean.getId()) + .build(); + } + + if (originBean.getStatus() != MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检单状态为【%s】不允许修改,请检查数据", bean.getSpotCheckId(), MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.valueOfDescription(originBean.getStatus())) + .build(); + } + //获取点检单明细 DdlPackBean orderResultPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(bean.getId(), "pid", orderResultPackBean); @@ -159,7 +188,9 @@ public class MesSpotCheckOrderService extends BaseMesService spotCheckOrderResultRepository.saveAll(oldOrderResultList); //获取点检单零件号 - List oldOrderPartList = spotCheckOrderPartRepository.findByHqlWhere(orderResultPackBean); + DdlPackBean orderPartPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(bean.getId(), "spotCheckOrderId", orderPartPackBean); + List oldOrderPartList = spotCheckOrderPartRepository.findByHqlWhere(orderPartPackBean); //软删点检单零件号及条码 oldOrderPartList.forEach(k -> { @@ -179,6 +210,14 @@ public class MesSpotCheckOrderService extends BaseMesService .build(); } + if (equipmentSpotCheck.getTriggerMode() == MesExtEnumUtil.EQUIPMENT_SPOT_CHECK_TRIGGER_MODE.TIME.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检方案触发方式为【%s】,请勿手动创建", bean.getSpotCheckId(), MesExtEnumUtil.EQUIPMENT_SPOT_CHECK_TRIGGER_MODE.TIME.getDescription()) + .build(); + } + //获取点检方案明细 主表明细表 spotCheckId-pid关联 DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getNumberBiggerEqualPack(bean.getSpotCheckId(), "pid", packBean); @@ -240,6 +279,15 @@ public class MesSpotCheckOrderService extends BaseMesService for (Long id : ids) { MesSpotCheckOrder bean = baseRDao.getById(id); if (StringUtils.isEmpty(bean)) continue; + + if (bean.getStatus() != MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【%s】点检单状态为【%s】不允许修改,请检查数据", bean.getSpotCheckId(), MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.valueOfDescription(bean.getStatus())) + .build(); + } + //获取点检方案明细 DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getNumberBiggerEqualPack(bean.getSpotCheckId(), "pid", packBean); @@ -277,7 +325,7 @@ public class MesSpotCheckOrderService extends BaseMesService throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在相同配置状态为【%s】 id:【%s】的点检单,请检查数据", MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getDescription(), bean.getSpotCheckId()) + .setErrorDetail("存在相同配置状态为【%s】的点检单 id:【%s】,请检查数据", MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getDescription(), bean.getSpotCheckId()) .build(); } } 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 9129d0d..beb6740 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 @@ -14,5 +14,9 @@ public class MesCommonConstant { public static final Integer FALSE_INTEGER = 2; + public static final String SPOT_CHECK_ORDER_TASK_RESOURCE = "MES"; + + public static final String SPOT_CHECK_ORDER_NO_RULE = "SPOT_CHECK_ORDER_NO_RULE"; + } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java index 633c5b3..cebd816 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java @@ -2203,4 +2203,82 @@ public class MesExtEnumUtil { } } + /** + * 设备点检明细-数据类型 + */ + @JsonFormat( + shape = JsonFormat.Shape.OBJECT + ) + public static enum EQUIPMENT_SPOT_CHECK_DETAIL_DATE_TYPE { + QUALITATIVE(10, "定性"), + RATION(20, "定量"); + + private int value; + private String description; + + private EQUIPMENT_SPOT_CHECK_DETAIL_DATE_TYPE(int value, String description) { + this.value = value; + this.description = description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + + for (int i = 0; i < values().length; ++i) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + + return tmp; + } + + public int getValue() { + return this.value; + } + + public String getDescription() { + return this.description; + } + } + + /** + * 设备点检-触发方式 + */ + @JsonFormat( + shape = JsonFormat.Shape.OBJECT + ) + public static enum EQUIPMENT_SPOT_CHECK_TRIGGER_MODE { + ARTIFICIAL(10, "人工"), + TIME(20, "时间"); + + private int value; + private String description; + + private EQUIPMENT_SPOT_CHECK_TRIGGER_MODE(int value, String description) { + this.value = value; + this.description = description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + + for (int i = 0; i < values().length; ++i) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + + return tmp; + } + + public int getValue() { + return this.value; + } + + public String getDescription() { + return this.description; + } + } + }