diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesBallTrackRuleService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesBallTrackRuleService.java new file mode 100644 index 0000000..0bf2053 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesBallTrackRuleService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesBallTrackRule; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/24 15:36 + * @Modify: + **/ +public interface IMesBallTrackRuleService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutLengthModifyTypeService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutLengthModifyTypeService.java new file mode 100644 index 0000000..2548c7b --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutLengthModifyTypeService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutLengthModifyType; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 9:47 + * @Modify: + **/ +public interface IMesCutLengthModifyTypeService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentDetailService.java new file mode 100644 index 0000000..5edde70 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentDetailService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipmentDetail; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 17:03 + * @Modify: + **/ +public interface IMesCutSchemeEquipmentDetailService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentProcessParamService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentProcessParamService.java new file mode 100644 index 0000000..30e66a3 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentProcessParamService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipmentProcessParam; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 16:51 + * @Modify: + **/ +public interface IMesCutSchemeEquipmentProcessParamService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentService.java new file mode 100644 index 0000000..4306696 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeEquipmentService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipment; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 15:52 + * @Modify: + **/ +public interface IMesCutSchemeEquipmentService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeFgService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeFgService.java new file mode 100644 index 0000000..c4c3286 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeFgService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 13:52 + * @Modify: + **/ +public interface IMesCutSchemeFgService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeMaterialService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeMaterialService.java new file mode 100644 index 0000000..daae478 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCutSchemeMaterialService.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeMaterial; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 13:35 + * @Modify: + **/ +public interface IMesCutSchemeMaterialService extends IBaseMesService{ + + + +} 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 effa39d..b08eb00 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 @@ -14,4 +14,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; public interface IMesLabelTemplateService extends IBaseMesService { ListPager queryMesLabelTemplateAndParamListByPager(MesLabelTemplate labelTemplate, Pager pager); + + MesLabelTemplate getLabelTemplate(String templateCode, String organizeCode); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartProdGroupService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartProdGroupService.java index ec73196..3ef1ea1 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartProdGroupService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPartProdGroupService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail; import java.util.List; +import java.util.Map; /** * @Description: @@ -28,4 +29,6 @@ public interface IMesPartProdGroupService extends IBaseMesService findDetailByCode(String partGroupCode,String organizeCode); + + Map getMesPartProdGroupMap(String organizeCode, List partProdGroupCodeList); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java index dfe30e0..0c77416 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductOffLineService.java @@ -1,6 +1,9 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description : 生产汇报 @@ -11,5 +14,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; **/ public interface IMesProductOffLineService extends IBaseMesService{ - + @ApiOperation("查询报工数据") + List findMesProductOffLineByProductSn(String productSn, String organizeCode); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackagePartService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackagePartService.java new file mode 100644 index 0000000..058ab54 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackagePartService.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackagePart; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/14 13:40 + * @Modify: + **/ +public interface IMesRecyclablePackagePartService extends IBaseMesService{ + + + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageService.java new file mode 100644 index 0000000..dab4972 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageService.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackage; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/14 10:02 + * @Modify: + **/ +public interface IMesRecyclablePackageService extends IBaseMesService{ + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageTypeService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageTypeService.java new file mode 100644 index 0000000..703b131 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesRecyclablePackageTypeService.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageType; + +/** + * @Description : 回收物包装类型 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/13 17:36 + * @Modify: + **/ +public interface IMesRecyclablePackageTypeService extends IBaseMesService{ + +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesStationService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesStationService.java new file mode 100644 index 0000000..73fb308 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesStationService.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesStation; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 14:45 + * @Modify: + **/ +public interface IMesStationService extends IBaseMesService{ +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java index 9a46397..1a6d438 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkCenterService.java @@ -4,6 +4,8 @@ import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import io.swagger.annotations.ApiOperation; +import java.util.List; + /** * @Description: * @CreateDate 2024/04/16 @@ -17,4 +19,7 @@ public interface IMesWorkCenterService extends IBaseMesService { @ApiOperation(value = "根据生产线代码查询生产线信息的ERP生产线代码") String getErpWorkCenterCode(String organizeCode, String workCenterCode); + @ApiOperation(value = "根据产线代码集合查询产线信息集合") + List queryMesWorkCenterList(List workCenterCodeList, String organizeCode); + } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index 68b8cb1..03a6c0b 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import io.swagger.annotations.ApiOperation; import java.util.List; +import java.util.Map; /** * @Description: @@ -42,6 +43,12 @@ public interface IMesWorkOrderService extends IBaseMesService { @ApiOperation("重新打开") void doReopen(Long[] ids,String userName,String organizeCode); + @ApiOperation("新增工单打印队列") + void doSaveWorkOrderPrintQueue(MesWorkOrder workOrder); + + @ApiOperation("装配目视单补打") + List> doReprintWorkOrder(Long[] ids, String organizeCode, String userName); + List getPreDayReportMesProductionRecord(String organizeCode , List mesShiftList, String workCenterCode); List getPreDayReportMesProduceSn(String organizeCode ,List mesProductionRecordList ); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesBallTrackRuleController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesBallTrackRuleController.java new file mode 100644 index 0000000..f92860f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesBallTrackRuleController.java @@ -0,0 +1,20 @@ +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.MesBallTrackRule; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/24 15:35 + * @Modify: + **/ +@Api("辊道设备配置接口") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesBallTrackRule") +public class MesBallTrackRuleController extends BaseMesController{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutLengthModifyTypeController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutLengthModifyTypeController.java new file mode 100644 index 0000000..9d950bc --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutLengthModifyTypeController.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.MesCutLengthModifyType; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 9:45 + * @Modify: + **/ +@RestController +@RequestMapping( MesCommonConstant.MES_YANFEN + "/mesCutLengthModifyType") +public class MesCutLengthModifyTypeController extends BaseMesController{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentController.java new file mode 100644 index 0000000..88ac35a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentController.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.MesCutSchemeEquipment; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 裁片设备配置维护主表 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 15:20 + * @Modify: + **/ +@RestController +@RequestMapping( MesCommonConstant.MES_YANFEN + "/mesCutSchemeEquipment") +public class MesCutSchemeEquipmentController extends BaseMesController{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentDetailController.java new file mode 100644 index 0000000..47c553f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentDetailController.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.MesCutSchemeEquipmentDetail; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 裁片设备配置维护明细表 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 17:02 + * @Modify: + **/ +@RestController +@RequestMapping( MesCommonConstant.MES_YANFEN + "/mesCutSchemeEquipmentDetail") +public class MesCutSchemeEquipmentDetailController extends BaseMesController{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentProcessParamController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentProcessParamController.java new file mode 100644 index 0000000..fdb5e8f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeEquipmentProcessParamController.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.MesCutSchemeEquipmentProcessParam; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 裁片设备配置维护设备加工表 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 16:49 + * @Modify: + **/ +@RestController +@RequestMapping( MesCommonConstant.MES_YANFEN + "/mesCutSchemeEquipmentProcessParam") +public class MesCutSchemeEquipmentProcessParamController extends BaseMesController { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeFgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeFgController.java new file mode 100644 index 0000000..4a67516 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeFgController.java @@ -0,0 +1,20 @@ +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.MesCutSchemeFg; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 裁片方案成品 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 13:50 + * @Modify: + **/ +@RestController +@RequestMapping( MesCommonConstant.MES_YANFEN + "/mesCutSchemeFg") +public class MesCutSchemeFgController extends BaseMesController{ + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeMaterialController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeMaterialController.java new file mode 100644 index 0000000..364ba9f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCutSchemeMaterialController.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeMaterial; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 裁片方案原材料 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 13:27 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCutSchemeMaterial") +public class MesCutSchemeMaterialController extends BaseMesController { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageController.java new file mode 100644 index 0000000..b5927da --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageController.java @@ -0,0 +1,20 @@ +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.recyclablepackage.MesRecyclablePackage; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 回收包装 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/14 10:00 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesRecyclablePackage") +public class MesRecyclablePackageController extends BaseMesController { + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackagePartController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackagePartController.java new file mode 100644 index 0000000..58f59d2 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackagePartController.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackagePart; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 回收包装零件 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/14 10:57 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesRecyclablePackagePart") +public class MesRecyclablePackagePartController extends BaseMesController{ + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageTypeController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageTypeController.java new file mode 100644 index 0000000..6452180 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesRecyclablePackageTypeController.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageType; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 回收包装类型 + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/13 17:14 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesRecyclablePackageType") +public class MesRecyclablePackageTypeController extends BaseMesController { + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesStationController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesStationController.java new file mode 100644 index 0000000..84ede19 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesStationController.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.MesStation; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 14:40 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN+"mesStation") +public class MesStationController extends BaseMesController{ +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 8919f88..54cecc1 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -171,7 +171,6 @@ public class MesWorkOrderController extends BaseMesController { try { ValidatorBean.checkNotNull(model.getOrganizeCode(),"工厂代码不能为空"); ValidatorBean.checkNotNull(model.getQty(),"数量不能为空"); - ValidatorBean.checkNotNull(model.getSn(),"条码不能为空"); ValidatorBean.checkNotNull(model.getPartNo(),"零件号不能为空"); mesWorkOrderService.doReportWorkReversal(model); @@ -183,6 +182,38 @@ public class MesWorkOrderController extends BaseMesController { } } + @PostMapping(value = "/save-work-print-queue") + @ApiOperation(value = "新增打印工单打印队列") + public ResultBean doSaveWorkOrderPrintQueue(@RequestBody MesWorkOrder workOrder) { + try { + + ValidatorBean.checkNotNull(workOrder.getOrganizeCode(),"工厂代码不能为空"); + + mesWorkOrderService.doSaveWorkOrderPrintQueue(workOrder); + 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 = "/work-order-reprint") + @ApiOperation(value = "装配目视单补打") + public ResultBean doSaveWorkOrderPrintQueue(@RequestBody Long[] ids) { + try { + + ValidatorBean.checkNotNull(ids,"工单不能为空"); + + mesWorkOrderService.doReprintWorkOrder(ids, 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); + } + } + @PutMapping(value = "/reopen") @ApiOperation(value = "重新打开") public ResultBean doReopen(Long[] ids) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBallTrackRuleServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBallTrackRuleServiceImpl.java new file mode 100644 index 0000000..dbdca2a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBallTrackRuleServiceImpl.java @@ -0,0 +1,54 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesBallTrackRuleService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesBallTrackRule; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/24 15:37 + * @Modify: + **/ +@Service +@Slf4j +public class MesBallTrackRuleServiceImpl extends BaseMesService implements IMesBallTrackRuleService { + + @Override + protected void setPackQueryBean(MesBallTrackRule bean, DdlPackBean packBean) { + DdlPreparedPack.getStringEqualPack(bean.getEquipmentCode(), "equipmentCode", packBean); + DdlPreparedPack.getStringLikerPack(bean.getBallTrackName(), "ballTrackName", packBean); + } + + @Override + protected void onInsertBean(MesBallTrackRule item) { + ValidatorBean.checkNotNull(item.getBallTrackName(), "轨道名称不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + ValidatorBean.checkNotNull(item.getEquipVariableValue(), "轨道变量值不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getEquipmentCode(), "equipmentCode", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)){ + MesException.throwBusiException("轨道编码已存在"); + } + } + + @Override + protected void onUpdateBean(MesBallTrackRule item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getBallTrackName(), "轨道名称不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + ValidatorBean.checkNotNull(item.getEquipVariableValue(), "轨道变量值不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getEquipmentCode(), "equipmentCode", ddlPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)){ + MesException.throwBusiException("轨道编码已存在"); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutLengthModifyTypeServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutLengthModifyTypeServiceImpl.java new file mode 100644 index 0000000..774799d --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutLengthModifyTypeServiceImpl.java @@ -0,0 +1,31 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutLengthModifyTypeService; +import cn.estsh.i3plus.pojo.mes.bean.MesCutLengthModifyType; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 9:47 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutLengthModifyTypeServiceImpl extends BaseMesService implements IMesCutLengthModifyTypeService { + + + @Override + protected void onInsertBean(MesCutLengthModifyType item) { + ValidatorBean.checkNotNull(item.getReasonName(), "原因名称不能为空"); + } + + @Override + protected void onUpdateBean(MesCutLengthModifyType item) { + ValidatorBean.checkNotNull(item.getId(), "主键不能为空"); + ValidatorBean.checkNotNull(item.getReasonName(), "原因名称不能为空"); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentDetailServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentDetailServiceImpl.java new file mode 100644 index 0000000..bcc4e7f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentDetailServiceImpl.java @@ -0,0 +1,40 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeEquipmentDetailService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipmentDetail; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 17:04 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutSchemeEquipmentDetailServiceImpl extends BaseMesService implements IMesCutSchemeEquipmentDetailService { + + @Override + protected void setPackQueryBean(MesCutSchemeEquipmentDetail bean, DdlPackBean packBean) { + Long pid = bean.getPid(); + if (pid != null) { + DdlPreparedPack.getNumEqualPack(pid, "pid", packBean); + } + } + + @Override + protected void onInsertBean(MesCutSchemeEquipmentDetail item) { + ValidatorBean.checkNotNull(item.getName(), "名称不能为空"); + } + + @Override + protected void onUpdateBean(MesCutSchemeEquipmentDetail item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getName(), "名称不能为空"); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentProcessParamServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentProcessParamServiceImpl.java new file mode 100644 index 0000000..5733e4b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentProcessParamServiceImpl.java @@ -0,0 +1,40 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeEquipmentProcessParamService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipmentProcessParam; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 16:51 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutSchemeEquipmentProcessParamServiceImpl extends BaseMesService implements IMesCutSchemeEquipmentProcessParamService { + + @Override + protected void setPackQueryBean(MesCutSchemeEquipmentProcessParam bean, DdlPackBean packBean) { + Long pid = bean.getPid(); + if (pid != null) { + DdlPreparedPack.getNumEqualPack(pid, "pid", packBean); + } + } + + @Override + protected void onInsertBean(MesCutSchemeEquipmentProcessParam item) { + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + } + + @Override + protected void onUpdateBean(MesCutSchemeEquipmentProcessParam item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentServiceImpl.java new file mode 100644 index 0000000..a6f3ff0 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeEquipmentServiceImpl.java @@ -0,0 +1,48 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeEquipmentService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeEquipment; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 15:55 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutSchemeEquipmentServiceImpl extends BaseMesService implements IMesCutSchemeEquipmentService { + + + @Override + protected void onInsertBean(MesCutSchemeEquipment item) { + ValidatorBean.checkNotNull(item.getCutCode(), "裁片代码不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + } + + @Override + protected void onUpdateBean(MesCutSchemeEquipment item) { + ValidatorBean.checkNotNull(item.getId(), "主键不能为空"); + ValidatorBean.checkNotNull(item.getCutCode(), "裁片代码不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(), "设备代码不能为空"); + } + + @Override + protected void setPackQueryBean(MesCutSchemeEquipment bean, DdlPackBean packBean) { + String cutCode = bean.getCutCode(); + if (!StringUtils.isEmpty(cutCode)) { + DdlPreparedPack.getStringLikerPack(cutCode, "packageTypeCode", packBean); + } + String equipmentName = bean.getEquipmentName(); + if (!StringUtils.isEmpty(equipmentName)) { + DdlPreparedPack.getStringLikerPack(equipmentName, "equipmentName", packBean); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeFgServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeFgServiceImpl.java new file mode 100644 index 0000000..da21c1b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeFgServiceImpl.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeFgService; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 15:04 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutSchemeFgServiceImpl extends BaseMesService implements IMesCutSchemeFgService { + + @Override + protected void onInsertBean(MesCutSchemeFg item) { + ValidatorBean.checkNotNull(item.getCutCode(), "裁片方案代码不能为空"); + } + + @Override + protected void onUpdateBean(MesCutSchemeFg item) { + ValidatorBean.checkNotNull(item.getId(), "主键不能为空"); + ValidatorBean.checkNotNull(item.getCutCode(), "裁片方案代码不能为空"); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeMaterialServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeMaterialServiceImpl.java new file mode 100644 index 0000000..5c01d8f --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCutSchemeMaterialServiceImpl.java @@ -0,0 +1,32 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCutSchemeMaterialService; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeMaterial; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/18 13:37 + * @Modify: + **/ +@Slf4j +@Service +public class MesCutSchemeMaterialServiceImpl extends BaseMesService implements IMesCutSchemeMaterialService { + + + @Override + protected void onInsertBean(MesCutSchemeMaterial item) { + ValidatorBean.checkNotNull(item.getCutCode(), "裁片方案代码不能为空"); + } + + + @Override + protected void onUpdateBean(MesCutSchemeMaterial item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getCutCode(), "裁片方案代码不能为空"); + } +} 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 index c9b14c3..10162b9 100644 --- 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 @@ -27,7 +27,7 @@ public class MesCutSchemeService extends BaseMesService implements 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); + DdlPreparedPack.getStringEqualPack(bean.getCutName(), MesExtConstWords.CUT_NAME, packBean); } @Override 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 e9b2f6b..309eddc 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 @@ -63,4 +63,19 @@ public class MesLabelTemplateServiceImpl extends BaseMesService(resultList, pager); } + + @Override + public MesLabelTemplate getLabelTemplate(String templateCode, String organizeCode) { + DdlPackBean templatePackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(templateCode, MesExtConstWords.TEMPLATE_CODE, templatePackBean); + MesLabelTemplate mesLabelTemplate = baseRDao.getByProperty(templatePackBean); + if (mesLabelTemplate != null) { + //级联获取labelTemplateParam + DdlPackBean templateParamPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(mesLabelTemplate.getId(), "templateId", templateParamPackBean); + List params = mesLabelTemplateParamRDao.findByHqlWhere(templateParamPackBean); + mesLabelTemplate.setLabelTemplateParamList(params); + } + return mesLabelTemplate; + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java index cc804f7..9fe911f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPartProdGroupService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -9,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartProdGroupDetail; +import cn.estsh.i3plus.pojo.mes.bean.MesPrintQueue; import cn.estsh.i3plus.pojo.mes.repository.MesPartProdGroupDetailRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -17,10 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -58,6 +58,14 @@ public class MesPartProdGroupService extends BaseMesService im return mesPartProdGroupDetailRDao.findByHqlWhere(ddlPackBean); } + @Override + public Map getMesPartProdGroupMap(String organizeCode, List partProdGroupCodeList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(partProdGroupCodeList, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); + List partProdGroupList = baseRDao.findByHqlWhere(packBean); + return partProdGroupList.stream().collect(Collectors.toMap(MesPartProdGroup::getPartProdGroupCode, Function.identity(), (x, y) -> y)); + } + protected void setPackQueryBean(MesPartProdGroup bean, DdlPackBean packBean) { DdlPreparedPack.getStringEqualPack(bean.getPartProdGroupCode(), "partProdGroupCode", packBean); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java index c9fa3af..99c1fc8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductOffLineServiceImpl.java @@ -1,9 +1,15 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesProductOffLineService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesProductOffLine; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description : 生产汇报 * @Reference : @@ -14,4 +20,14 @@ import org.springframework.stereotype.Service; @Service public class MesProductOffLineServiceImpl extends BaseMesService implements IMesProductOffLineService { + @Override + public List findMesProductOffLineByProductSn(String productSn, String organizeCode) { + if(StringUtil.isEmpty(productSn) || StringUtil.isEmpty(organizeCode)){ + return null; + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(productSn,"reportSn",packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue(),"reportType",packBean); + return baseRDao.findByHqlWhere(packBean); + } } 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 c789920..55fdd74 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 @@ -235,6 +235,12 @@ public class MesPullingOrderInfoService extends BaseMesService implements IMesRecyclablePackagePartService { + + + @Override + protected void onInsertBean(MesRecyclablePackagePart item) { + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", seriesPackBean); + if (baseRDao.isExitByHql(seriesPackBean)) { + MesException.throwMesBusiException("零件号【%s】已存在", item.getPartNo()); + } + } + + @Override + protected void setPackQueryBean(MesRecyclablePackagePart bean, DdlPackBean packBean) { + String packageTypeCode = bean.getPackageTypeCode(); + if (!StringUtils.isEmpty(packageTypeCode)) { + DdlPreparedPack.getStringLikerPack(packageTypeCode, "packageTypeCode", packBean); + } + String partNo = bean.getPartNo(); + if (!StringUtils.isEmpty(partNo)) { + DdlPreparedPack.getStringLikerPack(partNo, "partNo", packBean); + } + } + + @Override + protected void onUpdateBean(MesRecyclablePackagePart item) { + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + DdlPackBean seriesPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", seriesPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(),"id",seriesPackBean); + if (baseRDao.isExitByHql(seriesPackBean)) { + MesException.throwMesBusiException("零件号【%s】已存在", item.getPartNo()); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageServiceImpl.java new file mode 100644 index 0000000..393ebe4 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageServiceImpl.java @@ -0,0 +1,61 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesRecyclablePackageService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackage; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/14 10:03 + * @Modify: + **/ +@Slf4j +@Service +public class MesRecyclablePackageServiceImpl extends BaseMesService implements IMesRecyclablePackageService { + + @Override + protected void onInsertBean(MesRecyclablePackage item) { + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + ValidatorBean.checkNotNull(item.getPackageSn(), "包条码不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPackageSn(), "packageSn", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)) { + MesException.throwMesBusiException("回收包装条码【%s】已存在", item.getPackageSn()); + } + } + + @Override + protected void onUpdateBean(MesRecyclablePackage item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + ValidatorBean.checkNotNull(item.getPackageSn(), "包条码不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPackageSn(), "packageSn", ddlPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)) { + MesException.throwMesBusiException("回收包装条码【%s】已存在", item.getPackageSn()); + } + } + + @Override + protected void setPackQueryBean(MesRecyclablePackage bean, DdlPackBean packBean) { + String packageTypeCode = bean.getPackageTypeCode(); + if (!StringUtils.isEmpty(packageTypeCode)) { + DdlPreparedPack.getStringLikerPack(packageTypeCode, "packageTypeCode", packBean); + } + String packageSn = bean.getPackageSn(); + if (!StringUtils.isEmpty(packageSn)) { + DdlPreparedPack.getStringLikerPack(packageSn, "packageSn", packBean); + } + } + + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageTypeServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageTypeServiceImpl.java new file mode 100644 index 0000000..691ec4b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesRecyclablePackageTypeServiceImpl.java @@ -0,0 +1,70 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesRecyclablePackageTypeService; +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.mes.bean.recyclablepackage.MesRecyclablePackageType; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/13 17:38 + * @Modify: + **/ +@Slf4j +@Service +public class MesRecyclablePackageTypeServiceImpl extends BaseMesService implements IMesRecyclablePackageTypeService { + + + + @Override + protected void onInsertBean(MesRecyclablePackageType item) { + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeName(), "包描述不能为空"); + ValidatorBean.checkNotNull(item.getRuleType(),"规则类型不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPackageTypeCode(), "packageTypeCode", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode( ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("回收包装类型已存在{}", item.getPackageTypeCode()) + .build(); + } + } + + @Override + protected void setPackQueryBean(MesRecyclablePackageType bean, DdlPackBean packBean) { + String packageTypeCode = bean.getPackageTypeCode(); + if (!StringUtils.isEmpty(packageTypeCode)) { + DdlPreparedPack.getStringLikerPack(packageTypeCode, "packageTypeCode", packBean); + } + } + + @Override + protected void onUpdateBean(MesRecyclablePackageType item) { + ValidatorBean.checkNotNull(item.getId(), "id不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeCode(), "包类型不能为空"); + ValidatorBean.checkNotNull(item.getPackageTypeName(), "包描述不能为空"); + ValidatorBean.checkNotNull(item.getRuleType(),"规则类型不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getPackageTypeCode(), "packageTypeCode", ddlPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode( ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("回收包装类型已存在{}", item.getPackageTypeCode()) + .build(); + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesStationServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesStationServiceImpl.java new file mode 100644 index 0000000..88c4b7e --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesStationServiceImpl.java @@ -0,0 +1,45 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesStationService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesStation; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : PZJ + * @CreateDate : 2024/9/20 14:46 + * @Modify: + **/ +@Service +@Slf4j +public class MesStationServiceImpl extends BaseMesService implements IMesStationService { + + + @Override + protected void onInsertBean(MesStation item) { + ValidatorBean.checkNotNull(item.getEquipmentCode(),"设备代码不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getEquipmentCode(),"equipmentCode",ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)){ + MesException.throwBusiException("设备代码已存在"); + } + } + + @Override + protected void onUpdateBean(MesStation item) { + ValidatorBean.checkNotNull(item.getId(),"主键不能为空"); + ValidatorBean.checkNotNull(item.getEquipmentCode(),"设备代码不能为空"); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getEquipmentCode(),"equipmentCode",ddlPackBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(),"id",ddlPackBean); + if (baseRDao.isExitByHql(ddlPackBean)){ + MesException.throwBusiException("设备代码已存在"); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java index 4b848e3..12b13f2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCenterService.java @@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import java.util.List; + @Service @Slf4j public class MesWorkCenterService extends BaseMesService implements IMesWorkCenterService { @@ -41,4 +43,13 @@ public class MesWorkCenterService extends BaseMesService implemen return null != workCenterDb ? workCenterDb.getErpWorkCenter() : null; } + @Override + public List queryMesWorkCenterList(List workCenterCodeList, String organizeCode) { + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(workCenterCodeList, MesExtConstWords.WORK_CENTER_CODE, packBean); + return workCenterRepository.findByHqlWhere(packBean); + + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderCutService.java index ac12482..01947d2 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 @@ -62,6 +62,9 @@ public class MesWorkOrderCutService extends BaseMesService impl @Autowired private MesLabelTemplateParamRepository labelTemplateParamRepository; + @Autowired + private IMesPrintedSnLogRepository printedSnLogRepository; + 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); @@ -167,22 +170,43 @@ public class MesWorkOrderCutService extends BaseMesService impl List workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo()); - MesWorkOrder workOrder = workOrders.get(0); + //MesWorkOrder workOrder = workOrders.get(0); - if (workOrders.size() > 1) - MesException.throwMesBusiException("零件号【%s】存在多个工单", cutSchemeFg.getPartNo()); + //if (workOrders.size() > 1) + // MesException.throwMesBusiException("零件号【%s】存在多个工单", cutSchemeFg.getPartNo()); - if (!workOrder.getWorkCenterCode().equals(cutScheme.getWorkCenterCode())) - MesException.throwMesBusiException("工单【%s】关联产线【%】与裁片方案【%】关联产线不一致!", workOrder.getWorkCenterCode(), cutScheme.getWorkCenterCode()); + if (!CollectionUtils.isEmpty(workOrders)) workOrders.sort(Comparator.comparing(MesWorkOrder::getUnCompleteQty)); // 成品配置计划数量 * 版数 = 裁片工单该成品总消耗数量 Double totalQty = MathOperation.mul(cutSchemeFg.getQty(), editionNumber); - if (totalQty.compareTo(workOrder.getUnCompleteQty()) > 0) - MesException.throwMesBusiException("零件号【%s】工单未完成数量【%s】不满足产成总数【%s】", - cutSchemeFg.getPartNo(), workOrder.getUnCompleteQty(), totalQty); + Double unCompleteQty = 0.0; + List needWorkOrderNoList = new ArrayList<>(); + for (MesWorkOrder order : workOrders) { + + if (!order.getWorkCenterCode().equals(cutScheme.getWorkCenterCode())) + MesException.throwMesBusiException("工单【%s】关联产线【%】与裁片方案【%】关联产线不一致!", order.getWorkCenterCode(), cutScheme.getWorkCenterCode()); + + if (unCompleteQty.compareTo(totalQty) > 0) + MesException.throwMesBusiException("零件号【%s】工单【%s】未完成数量汇总【%s】已满足产成总数【%s】!请取消勾选工单【%s】", order.getWorkCenterCode(), needWorkOrderNoList, cutScheme.getWorkCenterCode(), workOrders.subList(needWorkOrderNoList.size(), workOrders.size())); + + unCompleteQty = MathOperation.add(unCompleteQty, order.getUnCompleteQty()); + + needWorkOrderNoList.add(order.getWorkOrderNo()); + + if (order.getUnCompleteQty().compareTo(totalQty) >= 0) { + workOrderUnCompleteMap.put(order.getWorkOrderNo(), MathOperation.sub(order.getUnCompleteQty(), totalQty)); + } else { + workOrderUnCompleteMap.put(order.getWorkOrderNo(), 0.0); + } - workOrderUnCompleteMap.put(workOrder.getWorkOrderNo(), MathOperation.sub(workOrder.getUnCompleteQty(), totalQty)); + } + + if (totalQty.compareTo(unCompleteQty) > 0) { + List workOrderNoList = workOrders.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()); + MesException.throwMesBusiException("零件号【%s】工单【%s】未完成数量【%s】不满足产成总数【%s】!", + cutSchemeFg.getPartNo(), workOrderNoList, unCompleteQty, totalQty); + } } } @@ -298,6 +322,7 @@ public class MesWorkOrderCutService extends BaseMesService impl MesException.throwMesBusiException("裁片工单【%s】已打印过标签,无法再次打印", o.getCutWorkOrderNo()); }); + // 返回结果 List> resultMapList = new ArrayList<>(); List cutCodeList = workOrderCutDbList.stream().map(MesWorkOrderCut::getCutCode) @@ -323,14 +348,14 @@ public class MesWorkOrderCutService extends BaseMesService impl //模板信息丢失抛出异常 if (labelTemplate == null) - MesException.throwBusiException("请检查裁片方案,裁片工单号[%s]所属裁片方案模板代码[%s]无效!", cutScheme.getTemplateCode()); + MesException.throwBusiException("请检查裁片方案,裁片方案[%s]模板代码[%s]无效!", cutScheme.getCutCode(), cutScheme.getTemplateCode()); //根据反射获取策略类--封装打印数据 String methodCode = labelTemplate.getMethodCode(); //模板信息丢失抛出异常 - if (methodCode == null) - MesException.throwBusiException("裁片方案[%s]模板代码[%s]方法类[%s]无效,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode()); + if (StringUtils.isEmpty(methodCode)) + MesException.throwBusiException("裁片方案[%s]模板代码[%s]方法类为空,请配置!", cutScheme.getCutCode(), labelTemplate.getTemplateCode()); MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate); @@ -344,15 +369,28 @@ public class MesWorkOrderCutService extends BaseMesService impl } + List printedSnLogList = new ArrayList<>(); workOrderCutDbList.forEach(o -> { o.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue()); o.setPrintTime(TimeTool.getNowTime(true)); ConvertBean.serviceModelUpdate(o, userName); o.setSystemSyncStatus(CommonEnumUtil.FALSE); + + MesPrintedSnLog printedSnLog = new MesPrintedSnLog(); + printedSnLog.setOrganizeCode(organizeCode); + printedSnLog.setCutWorkOrderNo(o.getCutWorkOrderNo()); + printedSnLog.setBarcode(o.getCutWorkOrderNo()); + printedSnLog.setProductDate(TimeTool.getNowTime(MesExtConstWords.DATE_FORMAT)); + ConvertBean.serviceModelInitialize(printedSnLog, userName); + printedSnLogList.add(printedSnLog); + }); workOrderCutRepository.saveAll(workOrderCutDbList); + printedSnLogRepository.saveAll(printedSnLogList); + + return resultMapList; } 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 888afc8..0bd64fe 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 @@ -1,10 +1,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.*; +import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; 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.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.apiservice.util.DateUtil; @@ -28,17 +31,20 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.CaseInsensitiveMap; import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -121,6 +127,21 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private MesWorkOrderToSapRepository mesWorkOrderToSapRepository; + @Autowired + private MesPrintQueueRepository printQueueRepository; + + @Autowired + private MesCustomerCarModelRepository customerCarModelRepository; + + @Autowired + private MesWorkOrderAssemblyRepository workOrderAssemblyRepository; + + @Autowired + private IMesLabelTemplateService labelTemplateService; + + @Autowired + private IMesPartProdGroupService partProdGroupService; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -408,7 +429,7 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); if(Objects.isNull(mesPartProdGroup)){ - MesException.throwMesBusiException("生产线组【%s】信息不存在",item.getPartProdGroupCode()); + MesException.throwMesBusiException("零件生产组【%s】信息不存在",item.getPartProdGroupCode()); } } @@ -419,11 +440,36 @@ public class MesWorkOrderService extends BaseMesService implements if(!Objects.isNull(bomList)){ saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList)); } + + // 创建工单打印队列 + insertPrintQueue(item, mesPartProdGroup); + } else { item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); } } + private MesPrintQueue insertPrintQueue(MesWorkOrder workOrder, MesPartProdGroup mesPartProdGroup) { + + if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) return null; + + if (mesPartProdGroup == null) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(workOrder.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workOrder.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); + mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); + if(Objects.isNull(mesPartProdGroup)){ + MesException.throwMesBusiException("生产线组【%s】信息不存在",workOrder.getPartProdGroupCode()); + } + } + + MesPrintQueue printQueue = new MesPrintQueue(); + BeanUtils.copyProperties(workOrder, printQueue, MesExtConstWords.ID); + printQueue.setPrintQueueType(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue()); + printQueue.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + printQueue.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); + return printQueueRepository.save(printQueue); + } + private MesPartProdGroup getMesPartProdGroup(MesWorkOrder item) { MesPartProdGroupDetail mesPartProdGroupDetail = new MesPartProdGroupDetail(); mesPartProdGroupDetail.setWorkCenterCode(item.getWorkCenterCode()); @@ -556,6 +602,10 @@ public class MesWorkOrderService extends BaseMesService implements MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(item, workOrderLog, "id"); mesWorkOrderLogList.add(workOrderLog); + + // 如果工单为发布状态则新增打印队列 + insertPrintQueue(copyMesWorkOrder, null); + continue; } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.BTO.getValue()) { Long produceSeq = 0L; @@ -897,7 +947,7 @@ public class MesWorkOrderService extends BaseMesService implements updateMesWorkOrder(mesWorkOrderDb,(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) ? MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT : MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST,mesWorkOrder.getNum()); //试制单不报工 if(Objects.isNull(mesWorkOrderDb.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(mesWorkOrderDb.getOrderFlag())){ - String sn = getStringList(mesWorkOrder); + String sn = getStringList(mesWorkOrder.getOrganizeCode()); //保存数据 List mesProductOffLineList = new ArrayList<>(); String nowTime = StringUtil.isEmpty(mesWorkOrder.getDescription())?TimeTool.getNowTime(true):mesWorkOrder.getDescription(); @@ -961,7 +1011,7 @@ public class MesWorkOrderService extends BaseMesService implements //物料+生产版本获取bom信息 List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //生成条码 - String sn = getStringList(mesWorkOrderNew); + String sn = getStringList(mesWorkOrderNew.getOrganizeCode()); //保存数据 List mesProductOffLineList = new ArrayList<>(); List mesMoveList = new ArrayList<>(); @@ -1069,15 +1119,22 @@ public class MesWorkOrderService extends BaseMesService implements public void doReportWorkReversal(WmsProductModel model) { //查询物料信息 MesPart mesPart = iMesPartService.getPartByPartNo(model.getPartNo(), model.getOrganizeCode()); - //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(model); - //获取bom - List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); //保存数据 List mesProductOffLineList = new ArrayList<>(); String nowTime = TimeTool.getNowTime(true); - for (MesBom mesBom : mesBoms) { - mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom,nowTime)); + if (StringUtil.isEmpty(model.getSn())) { + //获取生产版本 + MesProductVersion mesProductVersion = getMesProductVersion(model); + //获取bom + List mesBoms = mesBomService.findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); + //生成流水码 + model.setSn(getStringList(model.getOrganizeCode())); + for (MesBom mesBom : mesBoms) { + mesProductOffLineList.add(getMesProductOffLine(model, mesPart, mesProductVersion, mesBom, nowTime)); + } + } else { + //按照条码查询之前报工数据 + mesProductOffLineList.addAll(getMesProductOffLineList(model, nowTime)); } mesProductOffLineService.insertBatch(mesProductOffLineList); } @@ -1106,6 +1163,151 @@ public class MesWorkOrderService extends BaseMesService implements mesCcscTaskService.insertMesCcscTask(organizeCode,mesWorkOrderList); } + @Override + public void doSaveWorkOrderPrintQueue(MesWorkOrder workOrder) { + if (workOrder == null) return; + + if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { + log.info("doSaveWorkOrderPrintQueue --- 工单:{} 为非排序,无需新增打印队列", workOrder.getWorkOrderNo()); + return; + } + + insertPrintQueue(workOrder, null); + + + } + + @Override + public List> doReprintWorkOrder(Long[] ids, String organizeCode, String userName) { + + List mesWorkOrderList = getMesWorkOrderList(ids, organizeCode); + + // 根据工单号对工单分组 + Map workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); + + // 产线代码集合 + List workCenterCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).distinct().collect(Collectors.toList()); + + // 根据产线代码节后获取产线信息集合 + List mesWorkCenters = workCenterService.queryMesWorkCenterList(workCenterCodeList, organizeCode); + + // 产线名称集合 + Map workCenterNameMap = mesWorkCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName, (x, y) -> y)); + + // 生产零件号 + List partProdGroupCodeList = mesWorkOrderList.stream().map(MesWorkOrder::getPartProdGroupCode).distinct().collect(Collectors.toList()); + + // 根据零件生产组代码分组 + Map partProdGroupMap = partProdGroupService.getMesPartProdGroupMap(organizeCode, partProdGroupCodeList); + + // 客户车型配置名称MAP + Map carModelMapByCode = getMesCustomerCarModelMap(organizeCode, mesWorkOrderList); + + // 工单装配件 + Map> workOrderAssemblyMapByWorkOrderNo = getWorkOrderAssemblyMapByWorkOrderNo(organizeCode, workOrderMapByWorkOrderNo); + + // 返回结果 + List> resultMapList = new ArrayList<>(); + + for (MesWorkOrder mesWorkOrder : mesWorkOrderList) { + + if (mesWorkOrder == null) { + log.info("doReprintWorkOrder --- 工单为空 暂不输出打印"); + continue; + } + + mesWorkOrder.setWorkCenterName(workCenterNameMap.get(mesWorkOrder.getWorkCenterCode())); + + MesPartProdGroup mesPartProdGroup = partProdGroupMap.get(mesWorkOrder.getPartProdGroupCode()); + + String printTemplate = mesPartProdGroup.getPrintTemplate(); + + if (StringUtils.isEmpty(printTemplate)) { + MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板为空", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode()); + } + + MesLabelTemplate labelTemplate = labelTemplateService.getLabelTemplate(printTemplate, organizeCode); + + //根据反射获取策略类--封装打印数据 + String methodCode = labelTemplate.getMethodCode(); + + //模板信息丢失抛出异常 + if (StringUtils.isEmpty(labelTemplate.getMethodCode())) { + MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板【%s】为空", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode(), labelTemplate.getTemplateCode()); + } + + Map modelMap = new HashMap<>(); + modelMap.put("mesWorkOrder", mesWorkOrder); + modelMap.put("mesPartProdGroup", mesPartProdGroup); + + MesCustomerCarModel customerCarModel = carModelMapByCode.get(mesWorkOrder.getCarModelCode()); + if (customerCarModel != null) { + modelMap.put("mesCustomerCarModel", customerCarModel); + } + List workOrderAssemblyListByWorkOrderNo = workOrderAssemblyMapByWorkOrderNo.get(mesWorkOrder.getWorkOrderNo()); + if (!CollectionUtils.isEmpty(workOrderAssemblyListByWorkOrderNo)) { + modelMap.put("mesWorkOrderAssemblyList", workOrderAssemblyListByWorkOrderNo); + } + + MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); + mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate); + mesProduceSnPrintModel.setSourceData(modelMap); + mesProduceSnPrintModel.setPrinter(mesPartProdGroup.getPrinter()); + + MesProduceSnPrintModel snPrintModel = null; + try { + IPrintTemplateStrategyService strategyService = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); + snPrintModel = strategyService.execute(null, mesProduceSnPrintModel, null); + } catch (BeansException e) { + MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板【%s】策略类【%s】执行异常", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode()); + } + + resultMapList.addAll(snPrintModel.getPrintContextList()); + + } + + return resultMapList; + + } + + private Map getMesCustomerCarModelMap(String organizeCode, List workOrderList) { + List carModelCodeList = workOrderList.stream().map(MesWorkOrder::getCarModelCode).distinct().collect(Collectors.toList()); + // 客户车型配置 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(carModelCodeList, MesExtConstWords.CAR_MODEL_CODE, packBean); + List customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean); + + return customerCarModelList.stream().collect(Collectors.toMap(MesCustomerCarModel::getCarModelCode, Function.identity(), (x, y) -> y)); + } + + private Map> getWorkOrderAssemblyMapByWorkOrderNo(String organizeCode, Map workOrderMapByWorkOrderNo) { + List workOrderNoList = workOrderMapByWorkOrderNo.keySet().stream().collect(Collectors.toList()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); + List workOrderAssemblyList = workOrderAssemblyRepository.findByHqlWhere(packBean); + Map> workOrderAssemblyMapByWorkOrderNo = workOrderAssemblyList.stream().collect(Collectors.groupingBy(MesWorkOrderAssembly::getWorkOrderNo)); + return workOrderAssemblyMapByWorkOrderNo; + } + + private List getMesProductOffLineList(WmsProductModel model, String nowTime) { + //查询报工数据 + List oldProductOffLineList = mesProductOffLineService.findMesProductOffLineByProductSn(model.getSn(), model.getOrganizeCode()); + if (CollectionUtils.isEmpty(oldProductOffLineList)) { + MesException.throwMesBusiException("条码【%s】未查询到报工数据", model.getSn()); + } + oldProductOffLineList.forEach(item -> { + item.setReportType(MesExtEnumUtil.REPORT_TYPE.CBR.getValue()); + item.setOrderNo(model.getShipOrderNo()); + item.setCustNo(model.getCustNo()); + item.setCustOrder(model.getCustOrderNo()); + item.setDescription(nowTime); + item.setSystemSyncStatus(CommonEnumUtil.FALSE); + item.setSystemSyncDatetime(""); + ConvertBean.serviceModelInitialize(item, model.getUserName()); + }); + return oldProductOffLineList; + } + private List getMesWorkOrderList(Long[] ids, String organizeCode) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getInPackArray(ids,"id",packBean); @@ -1235,9 +1437,8 @@ public class MesWorkOrderService extends BaseMesService implements return mesProdRuleSortCfg; } - private String getStringList(MesWorkOrder mesWorkOrder) { - GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.REPORT_SN); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel.organizeCode(mesWorkOrder.getOrganizeCode()), mesWorkOrder.getCreateUser(), mesWorkOrder.getOrganizeCode(), 1).getResultList(); + private String getStringList(String organizeCode) { + List resultList = syncFuncService.syncSerialNo(new GenSerialNoModel(MesCommonConstant.REPORT_SN).organizeCode(organizeCode), AuthUtilExt.getUserName(), organizeCode, 1).getResultList(); return resultList.iterator().next(); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java new file mode 100644 index 0000000..3929865 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java @@ -0,0 +1,104 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.strategy; + +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.print.IPrintTemplateStrategyService; +import cn.estsh.i3plus.ext.mes.pojo.model.MesProduceSnPrintModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description : 装配目视单标签打印 + * @Reference : + * @Author : Castle + * @CreateDate : 2024/6/17 16:43 + * @Modify: + **/ +@Component +@Slf4j +public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategyService { + + @Override + public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel model, MesNumberRule numberRule) { + + Map modelMap = (Map) model.getSourceData(); + + // 工单信息 + MesWorkOrder workOrder = (MesWorkOrder) modelMap.get("mesWorkOrder"); + // 零件生产组信息 + MesPartProdGroup partProdGroup = (MesPartProdGroup) modelMap.get("mesPartProdGroup"); + // 客户车型配置信息 + MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null; + // 工单装配件信息 + List workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List) modelMap.get("mesWorkOrderAssemblyList") : null; + workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq)); + // 返回的结果集合 + List> printDataMapList = new ArrayList<>(); + // 单个标签参数值 + Map resultMap = new HashMap<>(); + // 工单号 + resultMap.put(MesExtConstWords.WORK_ORDER_NO, workOrder.getWorkOrderNo()); + // 产线名称 + resultMap.put(MesExtConstWords.WORK_CENTER_NAME, workOrder.getWorkCenterName()); + // 车型名称 + resultMap.put(MesExtConstWords.CAR_MODEL_NAME, customerCarModel == null ? "" : customerCarModel.getCarModelName()); + // vinCode + resultMap.put(MesExtConstWords.VIN_CODE, workOrder.getVinCode()); + // vinCode 后四位 + resultMap.put(MesExtConstWords.VIN_CODE_AFTER_FOUR, workOrder.getVinCode()); + // 总成零件号 + resultMap.put(MesExtConstWords.PART_NO, workOrder.getPartNo()); + // 工单标识 + resultMap.put(MesExtConstWords.ORDER_FLAG, workOrder.getOrderFlag()); + // 客户订单号 + resultMap.put(MesExtConstWords.CUST_ORDER_NO, workOrder.getCustOrderNo()); + // 客户零件号 + resultMap.put(MesExtConstWords.CUST_PART_NO, workOrder.getPartNo()); + // 客户条码 + resultMap.put(MesExtConstWords.SN, workOrder.getSn()); + // 备注 + resultMap.put(MesExtConstWords.REMARK, customerCarModel == null ? "" : customerCarModel.getRemark()); + // 重打印 + resultMap.put(MesExtConstWords.REPRINT, "重打印"); + // 打印时间 + resultMap.put(MesExtConstWords.PRINT_TIME, TimeTool.getNowTime("yyyyMMdd HH:mm:ss")); + // EDI接口时间 取工单plan_start_time + resultMap.put(MesExtConstWords.EDI_REC_TIME, workOrder.getPlanStartTime()); + + // 总个数 + Integer totalCount = partProdGroup.getTotalCount(); + // 为空时显示内容 + String isNullViewContent = StringUtils.isEmpty(partProdGroup.getIsNullViewContent()) ? "" : partProdGroup.getIsNullViewContent(); + for (Integer index = 0; index < totalCount; index++) { + String displayValue = workOrderAssemblyList.size() -1 < index ? isNullViewContent : workOrderAssemblyList.get(0).getDisplayValue(); + + resultMap.put(MesExtConstWords.ASSEMBLY_PARAM + (index+1), StringUtils.isEmpty(displayValue) ? "" : displayValue); + } + + printDataMapList.add(resultMap); + + model.setPrintContextList(packResultMapList(model, printDataMapList)); + + return model; + } + + private List> packResultMapList(MesProduceSnPrintModel printModel, List> printTemplateDateList) { + List> resultMapList = new ArrayList<>(); + Map resultMap = new HashMap<>(); + resultMap.put(MesExtConstWords.LABEL_TEMPLATE, printModel.getMesLabelTemplate()); + resultMap.put(MesExtConstWords.TEMPLATE_DATA, printTemplateDateList); + resultMap.put(MesExtConstWords.TEMPLATE_CODE, printModel.getMesLabelTemplate().getTemplateCode()); + resultMap.put(MesExtConstWords.PRINTER, printModel.getPrinter()); + resultMapList.add(resultMap); + return resultMapList; + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java index 9794339..2a2ec06 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/CutWorkOrderNoPrintStrategy.java @@ -95,13 +95,13 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic resultMap.put(MesExtConstWords.RAW_PART_NO, cutSchemeMaterial.getPartNo()); // 拉料信息 START - resultMap.put(MesExtConstWords.PULLING_MATERIAL_LENGTH, cutSchemeMaterial.getPullingMaterialLength()); - resultMap.put(MesExtConstWords.PULLING_MATERIAL_LAYER_NUMBER, cutSchemeMaterial.getPullingMaterialLayerNumber()); - resultMap.put(MesExtConstWords.PER_LAYER_NUMBER, cutSchemeMaterial.getPerLayerNumber()); - resultMap.put(MesExtConstWords.MATERIAL_DOSAGE, cutSchemeMaterial.getMaterialDosage()); - resultMap.put(MesExtConstWords.USING_LENGTH, cutSchemeMaterial.getUsingLength()); - resultMap.put(MesExtConstWords.LAYER_NUMBER, cutSchemeMaterial.getLayerNumber()); - resultMap.put(MesExtConstWords.TENSION_PARAM, cutSchemeMaterial.getTensionParam()); + resultMap.put(MesExtConstWords.PULLING_MATERIAL_LENGTH, getValByDouble(cutSchemeMaterial.getPullingMaterialLength())); + resultMap.put(MesExtConstWords.PULLING_MATERIAL_LAYER_NUMBER, getValByDouble(cutSchemeMaterial.getPullingMaterialLayerNumber())); + resultMap.put(MesExtConstWords.PER_LAYER_NUMBER, getValByDouble(cutSchemeMaterial.getPerLayerNumber())); + resultMap.put(MesExtConstWords.MATERIAL_DOSAGE, getValByDouble(cutSchemeMaterial.getMaterialDosage())); + resultMap.put(MesExtConstWords.USING_LENGTH, getValByDouble(cutSchemeMaterial.getUsingLength())); + resultMap.put(MesExtConstWords.LAYER_NUMBER, getValByDouble(cutSchemeMaterial.getLayerNumber())); + resultMap.put(MesExtConstWords.TENSION_PARAM, getValByDouble(cutSchemeMaterial.getTensionParam())); resultMap.put(MesExtConstWords.PRINT_TIME, TimeTool.getNowTime("yyyy-M-d H:mm:ss")); // 拉料信息 END @@ -115,9 +115,9 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic for (int l = 0; l < EQUIP_PARAM_TITLE_NUM; l++) { if (cutSchemeEquipmentDetails.size() > l) { //设备参数值标题1 - resultMap.put(MesExtConstWords.EQUIP_PARAM_NAME+(l+1), cutSchemeEquipmentDetails.get(l).getValue()); + resultMap.put(MesExtConstWords.EQUIP_PARAM_NAME+(l+1), cutSchemeEquipmentDetails.get(l).getName()); //设备参数值1 - resultMap.put(MesExtConstWords.EQUIP_PARAM_VALUE+(l+1), cutSchemeEquipmentDetails.get(l).getName()); + resultMap.put(MesExtConstWords.EQUIP_PARAM_VALUE+(l+1), cutSchemeEquipmentDetails.get(l).getValue()); } else { //设备参数值标题1 resultMap.put(MesExtConstWords.EQUIP_PARAM_NAME+(l+1), ""); @@ -147,6 +147,10 @@ public class CutWorkOrderNoPrintStrategy implements IPrintTemplateStrategyServic return model; } + private String getValByDouble(Double val) { + return val == null ? "" : val.toString(); + } + private Map> getCutSchemeFgMapByCutCode(List cutCodeList) { List cutSchemeFgList = getMesCutSchemeFgs(cutCodeList); 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 8020612..9b6a257 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 @@ -299,5 +299,28 @@ public class MesExtConstWords { // 打印时间 public static final String PRINT_TIME = "printTime"; + // 车型名称 + public static final String CAR_MODEL_NAME = "carModelName"; + // VIN_CODE + public static final String VIN_CODE = "vinCode"; + // VIN_CODE 后四位 + public static final String VIN_CODE_AFTER_FOUR = "vinCodeAfterFour"; + // 工单标识 + public static final String ORDER_FLAG = "orderFlag"; + // 重打印 + public static final String REPRINT = "reprint"; + // EDI接收时间 + public static final String EDI_REC_TIME = "ediRecTime"; + // 装配件参数 + public static final String ASSEMBLY_PARAM = "assemblyParam"; + // 客户订单号 + public static final String CUST_ORDER_NO = "custOrderNo"; + //客户零件号 + public static final String CUST_PART_NO = "custPartNo"; + // 车型大类 + public static final String CAR_MODEL_CODE = "carModelCode"; + //零件生产组代码 + public static final String PART_PROD_GROUP_CODE = "partProdGroupCode"; + }