diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java index 3650596..6516f9b 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderCutService.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.ext.mes.api.base; +import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderMaterialCutModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCut; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCutDetail; import io.swagger.annotations.ApiOperation; @@ -18,7 +20,11 @@ public interface IMesWorkOrderCutService extends IBaseMesService workOrderIds, String cutCode, String remark, String organizeCode, - String userName, Integer editionNumber); + String userName, Integer editionNumber, boolean isFree, List mesCutSchemeFgs); + + @ApiOperation("生成裁片工单") + void generateCutWorkOrderMaterial(WorkOrderMaterialCutModel workOrderMaterialCutModel); + @ApiOperation("分页查询裁片工单明细") ListPager queryWorkOrderCutDetailByPager(MesWorkOrderCutDetail workOrderCutDetail, Pager pager); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java index 344cd69..9bd9c90 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderCutController.java @@ -2,8 +2,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderCutService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderCutModel; +import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderMaterialCutModel; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCut; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCutDetail; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -14,12 +17,11 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; + /** * 裁片工单 */ @@ -40,7 +42,44 @@ public class MesWorkOrderCutController extends BaseMesController impl @Override public void doGenerateCutWorkOrder(List workOrderIds, String cutCode, String remark, String organizeCode, - String userName, Integer editionNumber) { + String userName, Integer editionNumber, boolean isFree, List mesCutSchemeFgs) { List workOrderList = getMesWorkOrders(workOrderIds, organizeCode); @@ -88,9 +92,16 @@ public class MesWorkOrderCutService extends BaseMesService impl MesCutScheme cutScheme = getMesCutScheme(cutCode, organizeCode); - List cutSchemeMaterialList = getMesCutSchemeMaterials(cutCode, organizeCode); - - List cutSchemeFgList = getMesCutSchemeFgs(cutCode, organizeCode); + log.info("isFree={}", isFree); + List cutSchemeFgList = new ArrayList<>(); + if (!isFree) { + cutSchemeFgList = getMesCutSchemeFgs(cutCode, organizeCode); + } else { + if (CollectionUtils.isEmpty(mesCutSchemeFgs)) { + MesException.throwMesBusiException("未选择裁片成品"); + } + cutSchemeFgList.addAll(mesCutSchemeFgs); + } // 校验工单物料是否已在成品配置中进行维护 checkWorkOrderPartValid(workOrderList, cutSchemeFgList); @@ -125,19 +136,27 @@ public class MesWorkOrderCutService extends BaseMesService impl workOrderCut.setCutWorkOrderNo(cutWorkOrderNo); workOrderCut.setOrganizeCode(organizeCode); - workOrderCut.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); - workOrderCuttList.add(workOrderCut); - - for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) { - MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial(); - BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID); - ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName); - workOrderCutMaterial.setOrganizeCode(organizeCode); - workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()); - workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE); - workOrderCutMaterialList.add(workOrderCutMaterial); + // 44838 如果isFree 是 默认已打印 + Integer printStatus = MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue(); + if (isFree) { + printStatus = MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue(); } + workOrderCut.setPrintStatus(printStatus); + workOrderCuttList.add(workOrderCut); + if (!isFree) { + List cutSchemeMaterialList = getMesCutSchemeMaterials(cutCode, organizeCode); + + for (MesCutSchemeMaterial cutSchemeMaterial : cutSchemeMaterialList) { + MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial(); + BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID); + ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName); + workOrderCutMaterial.setOrganizeCode(organizeCode); + workOrderCutMaterial.setCutWorkOrderNo(workOrderCut.getCutWorkOrderNo()); + workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE); + workOrderCutMaterialList.add(workOrderCutMaterial); + } + } for (MesCutSchemeFg cutSchemeFg : cutSchemeFgList) { List workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo()); for (MesWorkOrder workOrder : workOrders) { @@ -154,8 +173,9 @@ public class MesWorkOrderCutService extends BaseMesService impl } } } - - workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList); + if (!isFree) { + workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList); + } workOrderCutDetailRepository.saveAll(workOrderCutDetailtList); workOrderCutRepository.saveAll(workOrderCuttList); @@ -172,6 +192,34 @@ public class MesWorkOrderCutService extends BaseMesService impl } @Override + @Transactional + public void generateCutWorkOrderMaterial(WorkOrderMaterialCutModel workOrderMaterialCutModel) { + String organizeCode = AuthUtil.getOrganizeCode(); + String userName = AuthUtil.getSessionUser().getUserName(); + + List workOrderCutMaterialList = new ArrayList<>(); + + for (MesCutSchemeMaterial cutSchemeMaterial : workOrderMaterialCutModel.getMesCutSchemeMaterialList()) { + MesWorkOrderCutMaterial workOrderCutMaterial = new MesWorkOrderCutMaterial(); + BeanUtils.copyProperties(cutSchemeMaterial, workOrderCutMaterial, MesExtConstWords.ID); + ConvertBean.serviceModelInitialize(workOrderCutMaterial, userName); + workOrderCutMaterial.setOrganizeCode(organizeCode); + workOrderCutMaterial.setCutWorkOrderNo(workOrderMaterialCutModel.getCutWorkOrderNo()); + workOrderCutMaterial.setSystemSyncStatus(CommonEnumUtil.FALSE); + workOrderCutMaterialList.add(workOrderCutMaterial); + } + workOrderCutMaterialRepository.saveAll(workOrderCutMaterialList); + + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workOrderMaterialCutModel.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean); + + workOrderCutRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "isDeleted", "printStatus"}, + new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue() }, packBean); + + } + + @Override public ListPager queryWorkOrderCutDetailByPager(MesWorkOrderCutDetail workOrderCutDetail, Pager pager) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(workOrderCutDetail.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(workOrderCutDetail.getCutWorkOrderNo(), MesExtConstWords.CUT_WORK_ORDER_NO, packBean); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderCutModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderCutModel.java new file mode 100644 index 0000000..d8cad73 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderCutModel.java @@ -0,0 +1,24 @@ +package cn.estsh.i3plus.ext.mes.pojo.model; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; +import lombok.Data; + +import java.util.List; + +@Data +public class WorkOrderCutModel { + + + private Long[] workOrderIds; + + private String cutCode; + + private String remark; + + private Integer editionNumber; + + private boolean isFree = false ; + + private List mesCutSchemeFgs; + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderMaterialCutModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderMaterialCutModel.java new file mode 100644 index 0000000..d8564e7 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderMaterialCutModel.java @@ -0,0 +1,17 @@ +package cn.estsh.i3plus.ext.mes.pojo.model; + +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeFg; +import cn.estsh.i3plus.pojo.mes.bean.MesCutSchemeMaterial; +import lombok.Data; + +import java.util.List; + + +@Data +public class WorkOrderMaterialCutModel { + + private String cutWorkOrderNo; + + private List mesCutSchemeMaterialList; + +}