diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 71912a20..6303cbba 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -82,6 +82,10 @@ public interface ErrorCodeConstants { ErrorCode PROCESS_BOM_CODE_IS_EMPTY= new ErrorCode(1_006_005, "工艺bom编码为空"); ErrorCode PROCESS_BOM_DETAIL_BLUE_PRINT_NO_REPEAT = new ErrorCode(1_006_006, "工艺bom明细图号重复"); ErrorCode PROCESS_BOM_DETAIL_MATERIAL_NAME_IS_NULL = new ErrorCode(1_006_007, "工艺bom明细物料名称为空"); + ErrorCode PROCESS_BOM_DETAIL_TYPE_IS_NULL = new ErrorCode(1_006_013, "工艺bom明细是否标准件为空"); + ErrorCode PROCESS_BOM_DETAIL_AMOUNT_IS_NULL = new ErrorCode(1_006_014, "工艺bom明细数量为空"); + ErrorCode PROCESS_BOM_DETAIL_UNIT_IS_NULL = new ErrorCode(1_006_015, "工艺bom明细单位为空"); + ErrorCode PROCESS_BOM_DETAIL_AMOUNT = new ErrorCode(1_006_016, "工艺bom明细数量必须大于0"); ErrorCode PROCESS_BOM_DETAIL_MATERIAL_AMOUNT_ILLGAL = new ErrorCode(1_006_0012, "工艺bom明细数量必须为数字!"); ErrorCode PROCESS_BOM_DETAIL_UNSTANDARD_MATERIAL_NAME_IS_NULL = new ErrorCode(1_006_008, "非标准件工艺bom明细物料名称为空"); ErrorCode PROCESS_BOM_DETAIL_UNSTANDARD_MATERIAL_NAME_IS_REPEAT= new ErrorCode(1_006_009, "非标准件工艺bom明细物料名称重复"); diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ProcessDesignTypeEnum.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ProcessDesignTypeEnum.java index dc183583..c3c5e46c 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ProcessDesignTypeEnum.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ProcessDesignTypeEnum.java @@ -13,7 +13,8 @@ public enum ProcessDesignTypeEnum { BLUEPRINT_FOUNDRY_TECHNOLOGY("铸造工艺"), BLUEPRINT_3D("3D图纸"), BLUEPRINT_2D("2D图纸"), - BLUEPRINT_WORKBLANK("毛坯图纸"); + BLUEPRINT_WORKBLANK("毛坯图纸"), + CASTING_DRAWING("铸件图工艺"); private String description; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java index 66c10d06..b82127d5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/deliverorder/DeliverOrderController.java @@ -180,19 +180,19 @@ public class DeliverOrderController { return success(deliverOrderService.getDeliverOrderSubListByDeliveryOrderId(deliveryOrderId)); } - @GetMapping("/getListYf") - @Operation(summary = "获得运费成本") - @PreAuthorize("@ss.hasPermission('heli:deliver-order:query')") - public CommonResult> getListYf(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { - List deliverOrderDO = deliverOrderService.getListYf(id,projectSubId); - return success( deliverOrderDO); - } +// @GetMapping("/getListYf") +// @Operation(summary = "获得运费成本") +// @PreAuthorize("@ss.hasPermission('heli:deliver-order:query')") +// public CommonResult> getListYf(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { +// List deliverOrderDO = deliverOrderService.getListYf(id,projectSubId); +// return success( deliverOrderDO); +// } @GetMapping("/getListYfDetails") @Operation(summary = "获得运费成本明细") @PreAuthorize("@ss.hasPermission('heli:deliver-order:query')") - public CommonResult> getListYfDetails(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { - List deliverOrderDO = deliverOrderService.getListYfDetails(id,projectSubId); - return success( deliverOrderDO); + public CommonResult> getListYfDetails(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { + List deliverOrderSubDO = deliverOrderService.getListYfDetails(id,projectSubId); + return success(deliverOrderSubDO); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java index e79f76c6..58e027ea 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java @@ -4,6 +4,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.Material import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -108,6 +109,13 @@ public class MaterialPlanController { PageResult pageResult = materialPlanService.getMaterialPlanPages(pageReqVO); return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class)); } + @DeleteMapping("/delMaterialPlanBoom") + @Operation(summary = "删除物料需求计划") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:material-plan:delete')") + public CommonResult delMaterialPlanBoom(@RequestParam("id") Long id, @Param("projectMaterialPlanNo") String projectMaterialPlanNo) { + return materialPlanService.delMaterialPlanBoom(id,projectMaterialPlanNo); + } @DeleteMapping("/delMaterialPlan") @Operation(summary = "删除物料需求计划") @Parameter(name = "id", description = "编号", required = true) @@ -115,7 +123,6 @@ public class MaterialPlanController { public CommonResult delMaterialPlan(@RequestParam("id") Long id) { return materialPlanService.delMaterialPlan(id); } - @GetMapping("/getPartPage") @Operation(summary = "获得零件物料需求计划分页") @PreAuthorize("@ss.hasPermission('heli:material-plan:query')") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java index 7d41e501..9de393a2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java @@ -79,4 +79,5 @@ public class MaterialPlanPageReqVO extends PageParam { private String blueprintNo; @Schema(description = "工序") private String procedureName; + } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/PlanController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/PlanController.java index 5f2f70bc..f13c0ce0 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/PlanController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/PlanController.java @@ -48,8 +48,8 @@ public class PlanController { @Operation(summary = "更新生产计划") @PreAuthorize("@ss.hasPermission('heli:plan:update')") public CommonResult updatePlan(@Valid @RequestBody PlanSaveReqVO updateReqVO) { - planService.updatePlan(updateReqVO); - return success(true); + + return planService.updatePlan(updateReqVO); } @DeleteMapping("/delete") @@ -104,5 +104,12 @@ public class PlanController { ExcelUtils.write(response, "生产计划.xls", "数据", PlanRespVO.class, BeanUtils.toBean(list, PlanRespVO.class)); } + @GetMapping("/verification") + @Operation(summary = "获得生产计划") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:plan:query')") + public CommonResult verification(@RequestParam("id") Long id,@RequestParam("type") String type) { + return planService.verification(id,type); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanRespVO.java index d9318908..826c99ab 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanRespVO.java @@ -144,5 +144,13 @@ public class PlanRespVO { @TableField(exist = false) private LocalDateTime orderTime; + @Schema(description = "工艺负责人") + private Long castOwner; + + @Schema(description = "工艺开始日期") + private LocalDateTime castStartDate; + + @Schema(description = "工艺结束日期") + private LocalDateTime castEndDate; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanSaveReqVO.java index 2dabe557..73bff0f1 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/plan/vo/PlanSaveReqVO.java @@ -36,6 +36,17 @@ public class PlanSaveReqVO { @Schema(description = "工艺结束日期") private LocalDateTime craftEndDate; + @Schema(description = "是否需要铸件图:1表示需要,0表示不需要") + private Integer hasCast; + + @Schema(description = "铸件图负责人") + private String castOwner; + + @Schema(description = "铸件图开始日期") + private LocalDateTime castStartDate; + + @Schema(description = "铸件图结束日期") + private LocalDateTime castEndDate; @Schema(description = "工艺流程数组信息[{'id':1,'sdate':'','edate':'','owner':'','description':''}]") private String craftContent; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java index 477bf0da..1c1e0a0c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processbom/ProcessBomController.java @@ -159,7 +159,14 @@ public class ProcessBomController { PageResult pageResult = processBomService.getProcessBomPageNew(pageReqVO); return success(pageResult); } + @DeleteMapping("/delMaterialPlan") + @Operation(summary = "删除工艺bom明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:process-bom:delete')") + public CommonResult delMaterialPlan(@RequestParam("id") Long id,@RequestParam("projectMaterialPlanNo") String projectMaterialPlanNo) { + return processBomService.delMaterialPlan(id,projectMaterialPlanNo); + } @GetMapping("/export-excel") @Operation(summary = "导出工艺bom Excel") @PreAuthorize("@ss.hasPermission('system:user:import')") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignPageReqVO.java index 036cb81e..e49b830b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignPageReqVO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -60,7 +61,20 @@ public class ProcessDesignPageReqVO extends PageParam { @Schema(description = "工艺负责人") private String craftOwnerName; + @Schema(description = "工艺负责人") + private String castOwnerName; + @Schema(description = "工艺负责人") + private LocalDateTime castStartDate; + @Schema(description = "工艺负责人") + private LocalDateTime castEndDate; + @TableField(exist = false) + private Integer hasCast; + @TableField(exist = false) + private LocalDateTime craftStartDate; + + @TableField(exist = false) + private LocalDateTime craftEndDate; @Schema(description = "3D负责人") private String threeDimOwnerName; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java index c2279941..7d54e63e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java @@ -87,7 +87,17 @@ public class ProcessDesignRespVO { @Schema(description = "工艺结束日期") private LocalDateTime craftEndDate; + @Schema(description = "是否需要铸件图:1表示需要,0表示不需要") + private Integer hasCast; + @Schema(description = "铸件图负责人") + private String castOwnerName; + + @Schema(description = "铸件图开始日期") + private LocalDateTime castStartDate; + + @Schema(description = "铸件图结束日期") + private LocalDateTime castEndDate; @Schema(description = "毛坯结束日期") private LocalDateTime blankDate; @Schema(description = "毛坯开始日期") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java index 79e24d3e..2ad3f10c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/projectorder/ProjectOrderController.java @@ -178,16 +178,16 @@ public class ProjectOrderController { BigDecimal standardPartsCost; standardPartsCost=processBomService.StandardPartsCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); projectOrderDO.setBiaoZhunJianCost(standardPartsCost); - //材料成本 - BigDecimal materialCost; - materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - projectOrderDO.setCailiaoCost(materialCost); + //外协加工费 BigDecimal outsourcedProcessingFee; outsourcedProcessingFee=processBomService.outsourcedProcessingFee(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); projectOrderDO.setWaixeiCost(outsourcedProcessingFee); - + //材料成本 + BigDecimal materialCost; + materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setCailiaoCost(materialCost.add(outsourcedProcessingFee)); //内部工时费 BigDecimal internalLaborCost; internalLaborCost=processBomService.internalLaborCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); @@ -198,34 +198,10 @@ public class ProjectOrderController { projectOrderDO.setZpCost(assemblyLaborCost); //运费成本 - List deliverOrderDO = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - if (deliverOrderDO!=null&&deliverOrderDO.size()>0){ - BigDecimal totalAmount = deliverOrderDO.stream() - .map(deliverOrderSubDO -> deliverOrderSubDO.getYunFeiMoney() != null ? deliverOrderSubDO.getYunFeiMoney() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - projectOrderDO.setYunFeiCost(totalAmount); - }else { - projectOrderDO.setYunFeiCost(BigDecimal.ZERO); - } -// List list= taskDispatchService.getListJg(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); -// if (list!=null&&list.size()>0){ -// BigDecimal totalAmount = list.stream() -// .map(TaskDispatchDO -> TaskDispatchDO.getZanGuMoney() != null ?new BigDecimal(TaskDispatchDO.getZanGuMoney()) : BigDecimal.ZERO) -// .reduce(BigDecimal.ZERO, BigDecimal::add); -// projectOrderDO.setJiaGongShiCost(totalAmount); -// }else { -// projectOrderDO.setJiaGongShiCost(BigDecimal.ZERO); -// } + BigDecimal yunFeiCost; + yunFeiCost = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + projectOrderDO.setYunFeiCost(yunFeiCost); -// List list2 =purchaseOrderService.getListqt(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); -// if (list2!=null&&list2.size()>0){ -// BigDecimal totalAmount = list2.stream() -// .map(PurchaseOrderDO -> PurchaseOrderDO.getCaiGouMoney() != null ?PurchaseOrderDO.getCaiGouMoney() : BigDecimal.ZERO) -// .reduce(BigDecimal.ZERO, BigDecimal::add); -// projectOrderDO.setQitaCost(totalAmount); -// }else { -// projectOrderDO.setQitaCost(BigDecimal.ZERO); -// } BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getNeibuCost()).add(projectOrderDO.getWaixeiCost().add(projectOrderDO.getZpCost())); projectOrderDO.setSumCost(sum); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java index 5637a744..d31b0d22 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java @@ -263,5 +263,11 @@ public class TaskDispatchController { List list= taskDispatchService.getListZp(id,projectSubId); return success( list); } - + @GetMapping("/getListCl") + @Operation(summary = "获得材料成本") + @PreAuthorize("@ss.hasPermission('heli:deliver-order:query')") + public CommonResult> getListCl(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { + List list= taskDispatchService.getListCl(id,projectSubId); + return success( list); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java index b5781ca7..79bcf6ac 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/deliverorder/DeliverOrderSubDO.java @@ -104,4 +104,7 @@ public class DeliverOrderSubDO extends BaseDO { private Integer remAmount; @TableField(exist = false) private LocalDateTime deliverDate; + @TableField(exist = false) + private String deliverPersonName; + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java index 0f0b4e90..0512c940 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/plan/PlanDO.java @@ -64,6 +64,26 @@ public class PlanDO extends BaseDO { * 工艺结束日期 */ private LocalDateTime craftEndDate; + + /** + * 是否需要铸件:1表示需要,0表示不需要 + * + * 枚举 {@link TODO heli_common_is_or_not 对应的类} + */ + private Integer hasCast; + /** + * 铸件图负责人 + */ + @TableField(fill = FieldFill.UPDATE) + private Long castOwner; + /** + * 铸件图开始日期 + */ + private LocalDateTime castStartDate; + /** + *铸件图结束日期 + */ + private LocalDateTime castEndDate; /** * 工艺流程数组信息[{'id':1,'sdate':'','edate':'','owner':'','description':''}] */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java index 7e24cc4f..a6cb6a1e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java @@ -97,6 +97,8 @@ public class ProcessDesignDO extends BaseDO { @TableField(exist = false) private String craftOwnerName; + @TableField(exist = false) + private Integer hasCast; @TableField(exist = false) private LocalDateTime craftStartDate; @@ -112,7 +114,12 @@ public class ProcessDesignDO extends BaseDO { private Date lastDate; @TableField(exist = false) private String blankOwnerName; - + @TableField(exist = false) + private String castOwnerName; + @TableField(exist = false) + private LocalDateTime castStartDate; + @TableField(exist = false) + private LocalDateTime castEndDate; @TableField(exist = false) private String progressBlank; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderSubMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderSubMapper.java index 22d71914..1f956356 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderSubMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/deliverorder/DeliverOrderSubMapper.java @@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.deliverorder; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @@ -35,4 +36,16 @@ public interface DeliverOrderSubMapper extends BaseMapperX { return selectOne(query); } + default List getListYf(Long projectSubId){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(DeliverOrderSubDO.class) + .select("a.deliver_date as deliverDate","b.nickName as deliverPersonName") + .leftJoin(DeliverOrderDO.class,"a",DeliverOrderDO::getId,DeliverOrderSubDO::getDeliveryOrderId) + .leftJoin(AdminUserDO.class,"b",AdminUserDO::getId,DeliverOrderDO::getDeliverPerson) + .eq(DeliverOrderSubDO::getSaleOrderSubId,projectSubId) + .eq(DeliverOrderSubDO::getCategory,"DELIVER_LIST") + .eq(DeliverOrderDO::getDeliverStatus,"2"); + return selectList(query); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java index a98c8733..daaea939 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplan/MaterialPlanMapper.java @@ -10,12 +10,14 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.*; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; /** @@ -48,12 +50,14 @@ public interface MaterialPlanMapper extends BaseMapperX { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MaterialPlanDO.class) .leftJoin(MaterialPlanBoomDO.class, "b", MaterialPlanBoomDO::getProjectMaterialPlanId, MaterialPlanDO::getId) + .leftJoin(ProcessBomDetailDO.class,"p",ProcessBomDetailDO::getId, MaterialPlanBoomDO::getBoomDetailId) .groupBy(MaterialPlanDO::getId) .orderByDesc(MaterialPlanDO::getCreateTime); query.like(!StringUtils.isEmpty(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()) .like(!StringUtils.isEmpty(pageReqVO.getProjectName()),MaterialPlanDO::getProjectName, pageReqVO.getProjectName()) .like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), MaterialPlanDO::getName, pageReqVO.getProjectSubName()) .like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName()) + .like(!StringUtils.isEmpty(pageReqVO.getBlueprintNo()), ProcessBomDetailDO::getBlueprintNo, pageReqVO.getBlueprintNo()) .eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType()); if (pageReqVO.getMatPlanDate() != null) { query.between( MaterialPlanDO::getMatPlanDate, pageReqVO.getMatPlanDate()[0], pageReqVO.getMatPlanDate()[1]); @@ -77,6 +81,10 @@ public interface MaterialPlanMapper extends BaseMapperX { return selectPage(pageReqVO, query); } + + void delMaterialPlan(@Param("id") Long id); + + void delMaterialPlanBoom(@Param("bomDetailId")Long bomDetailId, @Param("procedureId")Long procedureId); // default PageResult selectPage(MaterialPlanPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanDO::getId, reqVO.getId()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java index 0118448e..9d22eb22 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java @@ -84,12 +84,14 @@ public interface MaterialPlanBoomMapper extends BaseMapperX .select("bc.`name` as compositionName","b.`composition_id` as compositionId") .select("ma.brief as customerBriefName,ma.project_name as projectName,ma.name as projectSubName,ma.project_id as projectId") + .select("m.name as materialName") .leftJoin(MaterialPlanDO.class,"ma",MaterialPlanDO::getId, MaterialPlanBoomDO::getProjectMaterialPlanId) // .leftJoin(StorageMaterialDO.class,"sm",StorageMaterialDO::getId, MaterialPlanDetailDO::getMaterialId) .leftJoin(ProcessBomDetailDO.class, "b", ProcessBomDetailDO::getId, MaterialPlanBoomDO::getBoomDetailId) .leftJoin(CompositionDO.class, "bc", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) .leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId,MaterialPlanDO::getProjectId) .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) + .leftJoin(MaterialDO.class,"m",MaterialDO::getId, MaterialPlanBoomDO::getMaterialId) .eq(MaterialPlanDO::getMatType,0) .in(MaterialPlanBoomDO::getIsPurYard,Arrays.asList(0,5)) .disableSubLogicDel() @@ -152,6 +154,7 @@ public interface MaterialPlanBoomMapper extends BaseMapperX query.selectAll(MaterialPlanBoomDO.class) .select("a.nickname as nickname,b.spec as boomSpec,g.name as procedureName,bc.`name` as compositionName") .select("m.code as matCode,m.spec as matSpec,m.unit as matUnit") + .select("b.blueprint_no as blueprintNo") .leftJoin(AdminUserDO.class, "a", AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) .leftJoin(ProcessBomDetailDO.class, "b", ProcessBomDetailDO::getId, MaterialPlanBoomDO::getBoomDetailId) .leftJoin(CompositionDO.class, "bc", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) @@ -186,8 +189,10 @@ public interface MaterialPlanBoomMapper extends BaseMapperX default PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO){ MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MaterialPlanBoomDO.class) - .select("p.project_name as projectName","p.project_id as projectId","p.name as projectSubName","mat.material_id as matId","m.code as materialName","m.name as materialNames") + .select("p.project_name as projectName","p.project_id as projectId","p.name as projectSubName","m.code as materialName") .select("IFNULL(mat.pick_amount, t.boom_amount) AS pickAmount") + .select("IFNULL(mater.name, m.name) AS materialNames") + .select("IFNULL(mater.id, mat.material_id) AS matId") .select("w.wh_name as whName","r.rg_name as rgName","pn.pn_name as pnName") .select("d.spec as boomSpec","d.blueprint_no as blueprintNo","d.unit as boomUnit","DATE_FORMAT(t.boom_arrive_date, '%Y-%m-%d') AS boomArriveDates") .leftJoin(MaterialPlanDO.class, "p", MaterialPlanDO::getId,MaterialPlanBoomDO::getProjectMaterialPlanId) @@ -195,6 +200,7 @@ public interface MaterialPlanBoomMapper extends BaseMapperX .leftJoin(ProcessBomDetailDO.class,"d",ProcessBomDetailDO::getId,MaterialPlanBoomDO::getBoomDetailId) .leftJoin("project_mat_req_detail mat on (t.id=mat.project_material_plan_detail_id and mat.deleted=0 and mat.tenant_id = 2)") .leftJoin("base_material m ON (m.id = mat.material_id and m.tenant_id = 2) ") + .leftJoin(MaterialDO.class,"mater", MaterialDO::getId,MaterialPlanBoomDO::getMaterialId) .leftJoin("wms_wh w ON (w.id = mat.wh_id and w.tenant_id = 2) ") .leftJoin("wms_rg r ON (r.id = mat.rg_id and r.tenant_id = 2) ") .leftJoin("wms_pn pn ON (pn.id = mat.pn_id and pn.tenant_id = 2) ") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java index 5c3994a0..e63e3a0b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomDetailMapper.java @@ -256,7 +256,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX .groupBy(ProcessBomDetailDO::getId) .disableSubLogicDel(); query.like(!ObjectUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode,pageReqVO.getProjectCode()) - .like(!ObjectUtils.isEmpty(pageReqVO.getProjectName()),ProjectOrderDO::getProjectName,pageReqVO.getProjectName()) + .like(!ObjectUtils.isEmpty(pageReqVO.getProjectName()),ProjectOrderDO::getProjectNameSim,pageReqVO.getProjectName()) .like(!ObjectUtils.isEmpty(pageReqVO.getTaskNo()),PlanTaskDO::getTaskNo,pageReqVO.getTaskNo()) .like(!ObjectUtils.isEmpty(pageReqVO.getProjectSubName()),ProjectOrderSubDO::getName,pageReqVO.getProjectSubName()) .like(!ObjectUtils.isEmpty(pageReqVO.getProjectSubCode()),ProjectOrderSubDO::getNameSim,pageReqVO.getProjectSubCode()) @@ -292,7 +292,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX .groupBy(ProcessBomDetailDO::getId) .disableSubLogicDel(); query.like(!ObjectUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode,pageReqVO.getProjectCode()) - .like(!ObjectUtils.isEmpty(pageReqVO.getProjectName()),ProjectOrderDO::getProjectName,pageReqVO.getProjectName()) + .like(!ObjectUtils.isEmpty(pageReqVO.getProjectName()),ProjectOrderDO::getProjectNameSim,pageReqVO.getProjectName()) .like(!ObjectUtils.isEmpty(pageReqVO.getTaskNo()),PlanTaskDO::getTaskNo,pageReqVO.getTaskNo()) .like(!ObjectUtils.isEmpty(pageReqVO.getProjectSubName()),ProjectOrderSubDO::getName,pageReqVO.getProjectSubName()) .like(!ObjectUtils.isEmpty(pageReqVO.getProjectSubCode()),ProjectOrderSubDO::getNameSim,pageReqVO.getProjectSubCode()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java index 2bc45141..20f9fa05 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processbom/ProcessBomMapper.java @@ -197,4 +197,12 @@ public interface ProcessBomMapper extends BaseMapperX { BigDecimal internalLaborCost(@Param("id") Long id,@Param("projectSubId") Long projectSubId); BigDecimal assemblyLaborCost(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal inspection(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal finalInspection(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + BigDecimal inspection1(@Param("id") Long id,@Param("projectSubId") Long projectSubId); + + void delMaterialPlan(@Param("id")Long id); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java index 349f1899..01a8884a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java @@ -31,6 +31,7 @@ public interface ProcessDesignMapper extends BaseMapperX { query.selectAll(ProcessDesignDO.class) .select("a.status as planStatus") .select("a.plan_no as planCode","a.has_craft as hasCraft", "a.craft_start_date as craftStartDate", "a.craft_end_date as craftEndDate", "e.name as customerName") + .select( "a.cast_start_date as castStartDate", "a.cast_end_date as castEndDate","u6.nickname as castOwnerName","a.has_cast as hasCast") .select("d.code as projectCode", "d.project_name as projectName", "d.business_line as businessLine", "d.property","d.is_urgency as isUrgency") .select("u1.nickname as projectOwnerName", "u2.nickname as craftOwnerName") .select("b.blank_date as blankDate","b.start_blank_date as startBlankDate", "b.two_dim_date as twoDimDate","b.start_two_dim_date as startTwoDimDate", "b.three_dim_date as threeDimDate", "b.start_three_dim_date as startThreeDimDate") @@ -47,6 +48,8 @@ public interface ProcessDesignMapper extends BaseMapperX { .leftJoin("system_users u3 on u3.id = b.blank_owner") .leftJoin("system_users u4 on u4.id = b.two_dim_owner") .leftJoin("system_users u5 on u5.id = b.three_dim_owner") + .leftJoin(AdminUserDO.class, "u6", AdminUserDO::getId, PlanDO::getCastOwner) + .leftJoin("(select progress,process_design_id,blueprint_link FROM pro_process_design_progress where id in (select max(id) FROM pro_process_design_progress GROUP BY process_design_id) ) z on z.process_design_id = t.id") .disableSubLogicDel(); if(reqVO.getPgType()!=null && reqVO.getPgType() == 0){ @@ -66,6 +69,7 @@ public interface ProcessDesignMapper extends BaseMapperX { .like(!StringUtils.isEmpty(reqVO.getThreeDimOwnerName()), "u5.nickname", reqVO.getThreeDimOwnerName()) .like(!StringUtils.isEmpty(reqVO.getTwoDimOwnerName()), "u4.nickname", reqVO.getTwoDimOwnerName()) .like(!StringUtils.isEmpty(reqVO.getBlankOwnerName()), "u3.nickname", reqVO.getBlankOwnerName()) + .like(!StringUtils.isEmpty(reqVO.getCastOwnerName()), "u6.nickname", reqVO.getCastOwnerName()) .like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName()) .eq(!StringUtils.isEmpty(reqVO.getProcessDesignType()), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignType()) .in(reqVO.getProcessDesignTypeList() != null && !reqVO.getProcessDesignTypeList().isEmpty(), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignTypeList()) @@ -114,7 +118,7 @@ public interface ProcessDesignMapper extends BaseMapperX { .select("u1.nickname as projectOwnerName", "u2.nickname as craftOwnerName") .select("b.blank_date as blankDate", "b.two_dim_date as twoDimDate", "b.three_dim_date as threeDimDate") .select("b.start_blank_date as startBlankDate", "b.start_two_dim_date as startTwoDimDate", "b.start_three_dim_date as startThreeDimDate") - + .select( "a.cast_start_date as castStartDate", "a.cast_end_date as castEndDate","u6.nickname as castOwnerName","a.has_cast as hasCast") .select("u3.nickname as blankOwnerName", "u4.nickname as twoDimOwnerName", "u5.nickname as threeDimOwnerName") .select("c.name as projectSubName", "b.project_sub_code as projectSubCode") .leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId) @@ -127,6 +131,8 @@ public interface ProcessDesignMapper extends BaseMapperX { .leftJoin("system_users u3 on u3.id = b.blank_owner") .leftJoin("system_users u4 on u4.id = b.two_dim_owner") .leftJoin("system_users u5 on u5.id = b.three_dim_owner") + .leftJoin(AdminUserDO.class, "u6", AdminUserDO::getId, PlanDO::getCastOwner) + .eq(ProcessDesignDO::getId, id) .last("LIMIT 1") .disableSubLogicDel(); @@ -216,11 +222,11 @@ public interface ProcessDesignMapper extends BaseMapperX { if(!StringUtils.isEmpty(reqVO.getOwnerName())){ query.and(QueryWrapper -> QueryWrapper.apply("u2.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) .or() - .apply("u3.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name()) + .apply("u3.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name()) .or() - .apply("u4.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_2D.name()) + .apply("u4.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_2D.name()) .or() - .apply("u5.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_3D.name())); + .apply("u5.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_3D.name())); } return selectPage(reqVO, query); } @@ -276,13 +282,13 @@ public interface ProcessDesignMapper extends BaseMapperX { ; if(!StringUtils.isEmpty(reqVO.getOwnerName())){ - query.and(QueryWrapper -> QueryWrapper.apply("u2.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) + query.and(QueryWrapper -> QueryWrapper.apply("u2.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) .or() - .apply("u3.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name()) + .apply("u3.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name()) .or() - .apply("u4.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_2D.name()) + .apply("u4.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_2D.name()) .or() - .apply("u5.nickname = {0} and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_3D.name())); + .apply("u5.nickname like concat('%', {0}, '%') and t.process_design_type = {1}", reqVO.getOwnerName(), ProcessDesignTypeEnum.BLUEPRINT_3D.name())); } System.out.println(query.getSqlSelect()); // 查看实际执行的 SQL return selectPage(reqVO, query); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index cb8acbee..4573c946 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -785,4 +785,14 @@ public interface TaskDispatchDetailMapper extends BaseMapperX { return selectList(query); } + default List getListCl(Long id, Long projectSubId){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(TaskDispatchDO.class) + .select("p.material_name as materialName","z.name as compositionName","p.spec as spec","p.amount*s.amount as amount") + .leftJoin(ProcessBomDetailDO.class, "p", ProcessBomDetailDO::getId,TaskDispatchDO::getBomDetailId) + .leftJoin(CompositionDO.class, "z", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) + .leftJoin(ProjectOrderSubDO.class,"s", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId); + query.eq(TaskDispatchDO::getProjectId, id) + .eq(TaskDispatchDO::getProjectSubId,projectSubId) + .eq(TaskDispatchDO::getDispatchType,"PRODUCTION"); + + return selectList(query); + + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java index 318c52c0..18452f3e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/manager/CrossOrderManager.java @@ -397,14 +397,20 @@ public class CrossOrderManager { List existProjectSubIdList = processDesignDOList.stream().map(ProcessDesignDO::getProjectSubId).collect(Collectors.toList()); List needSavedProjectSubIdList = projectSubIdList.stream().filter(projectSubId -> !existProjectSubIdList.contains(projectSubId)).collect(Collectors.toList()); // 如未插入过 则生成铸造工艺 - if(existProjectSubIdList.isEmpty()){ - ProcessDesignSaveReqVO saveReqVO = new ProcessDesignSaveReqVO(); - saveReqVO.setPlanId(planId) - .setProcessDesignType(ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) - .setStatus(ValidStatusEnum.VALID.getCode()) - .setProjectId(projectId); - processDesignService.createProcessDesign(saveReqVO); - } +// if(existProjectSubIdList.isEmpty()){ +// ProcessDesignSaveReqVO saveReqVO = new ProcessDesignSaveReqVO(); +// saveReqVO.setPlanId(planId) +// .setProcessDesignType(ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) +// .setStatus(ValidStatusEnum.VALID.getCode()) +// .setProjectId(projectId); +// processDesignService.createProcessDesign(saveReqVO); +// ProcessDesignSaveReqVO casting = new ProcessDesignSaveReqVO(); +// casting.setPlanId(planId) +// .setProcessDesignType(ProcessDesignTypeEnum.CASTING_DRAWING.name()) +// .setStatus(ValidStatusEnum.VALID.getCode()) +// .setProjectId(projectId); +// processDesignService.createProcessDesign(casting); +// } // 按每个子项目生成工艺设计 if(!needSavedProjectSubIdList.isEmpty()){ LocalDateTime startTime = LocalDateTime.now(); @@ -417,6 +423,8 @@ public class CrossOrderManager { .setProjectId(projectId); processDesignService.createProcessDesign(threeD); + + ProcessDesignSaveReqVO twoD = new ProcessDesignSaveReqVO(); twoD.setPlanId(planId) .setProcessDesignType(ProcessDesignTypeEnum.BLUEPRINT_2D.name()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderService.java index c5941907..c6ae9f59 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderService.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.service.deliverorder; +import java.math.BigDecimal; import java.util.*; import javax.validation.*; import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.*; @@ -71,7 +72,7 @@ public interface DeliverOrderService { - List getListYf(Long id, Long projectSubId); + BigDecimal getListYf(Long id, Long projectSubId); - List getListYfDetails(Long id, Long projectSubId); + List getListYfDetails(Long id, Long projectSubId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java index 1eded561..7d72f419 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/deliverorder/DeliverOrderServiceImpl.java @@ -388,78 +388,22 @@ public class DeliverOrderServiceImpl implements DeliverOrderService { } @Override - public List getListYf(Long id, Long projectSubId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(DeliverOrderDO::getSaleOrderIds,id); - wrapper.eq(DeliverOrderDO::getDeliverStatus,2); - wrapper.orderByDesc(DeliverOrderDO::getDeliverDate); - List deliverOrderDOS = deliverOrderMapper.selectList(wrapper); - LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); - queryWrapper1.eq(ProjectOrderSubDO::getProjectOrderId,id); - List projectOrderSubDOS = projectOrderSubMapper.selectList(queryWrapper1); - if (deliverOrderDOS!=null&&deliverOrderDOS.size()>0&&projectOrderSubDOS!=null&&projectOrderSubDOS.size()>0){ - List ids = projectOrderSubDOS.stream() - .map(ProjectOrderSubDO::getId) - .collect(Collectors.toList()); - for (DeliverOrderDO deliverOrderDO : deliverOrderDOS) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(DeliverOrderSubDO::getDeliveryOrderId,deliverOrderDO.getId()); - queryWrapper.in(DeliverOrderSubDO::getSaleOrderSubId,ids); - List deliverOrderSubDOS = deliverOrderSubMapper.selectList(queryWrapper); + public BigDecimal getListYf(Long id, Long projectSubId) { + List deliverOrderSubDOS = deliverOrderSubMapper.getListYf(projectSubId); + if (ObjectUtil.isNotEmpty(deliverOrderSubDOS)){ BigDecimal totalAmount = deliverOrderSubDOS.stream() .map(deliverOrderSubDO -> deliverOrderSubDO.getYunFei() != null ? deliverOrderSubDO.getYunFei() : BigDecimal.ZERO) .reduce(BigDecimal.ZERO, BigDecimal::add); - deliverOrderDO.setYunFeiMoney(totalAmount); - } - return deliverOrderDOS; - } - return null; + return totalAmount; + } + return BigDecimal.ZERO; } @Override - public List getListYfDetails(Long id, Long projectSubId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(DeliverOrderDO::getSaleOrderIds,id); - wrapper.eq(DeliverOrderDO::getDeliverStatus,2); - wrapper.orderByDesc(DeliverOrderDO::getDeliverDate); - List deliverOrderDOS = deliverOrderMapper.selectList(wrapper); - LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); - queryWrapper1.eq(ProjectOrderSubDO::getProjectOrderId,id); - List projectOrderSubDOS = projectOrderSubMapper.selectList(queryWrapper1); - if (deliverOrderDOS!=null&&deliverOrderDOS.size()>0&&projectOrderSubDOS!=null&&projectOrderSubDOS.size()>0){ - List ids = projectOrderSubDOS.stream() - .map(ProjectOrderSubDO::getId) - .collect(Collectors.toList()); - for (DeliverOrderDO deliverOrderDO : deliverOrderDOS) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(DeliverOrderSubDO::getDeliveryOrderId,deliverOrderDO.getId()); - queryWrapper.in(DeliverOrderSubDO::getSaleOrderSubId,ids); - List deliverOrderSubDOS = deliverOrderSubMapper.selectList(queryWrapper); - BigDecimal totalAmount = deliverOrderSubDOS.stream() - .map(deliverOrderSubDO -> deliverOrderSubDO.getYunFei() != null ? deliverOrderSubDO.getYunFei() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - deliverOrderDO.setYunFeiMoney(totalAmount); - int amounts = deliverOrderSubDOS.stream() - .mapToInt(deliverOrderSubDO -> - deliverOrderSubDO.getAmount() != null - ? deliverOrderSubDO.getAmount() - : 0 - ) - .sum(); - deliverOrderDO.setAmounts( amounts); - BigDecimal weight = deliverOrderSubDOS.stream() - .map(deliverOrderSubDO -> deliverOrderSubDO.getWeight() != null ? new BigDecimal(deliverOrderSubDO.getWeight()) : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - deliverOrderDO.setWeights(weight); - AdminUserDO adminUserDO = adminUserMapper.selectById(deliverOrderDO.getDeliverPerson()); - if (ObjectUtil.isNotEmpty(adminUserDO)){ - deliverOrderDO.setDeliverPersonName(adminUserDO.getNickname()); - } + public List getListYfDetails(Long id, Long projectSubId) { + List deliverOrderSubDOS = deliverOrderSubMapper.getListYf(projectSubId); - } - return deliverOrderDOS; - } - return null; + return deliverOrderSubDOS; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java index a358f0ac..035067ac 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java @@ -82,4 +82,6 @@ public interface MaterialPlanService { CommonResult delMaterial(Long id); PageResult getPartPurchasePages(MaterialPlanPageReqVO pageReqVO); + + CommonResult delMaterialPlanBoom(Long id, String projectMaterialPlanNo); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java index 2e91c82f..909c8e42 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java @@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDeta import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; @@ -21,6 +22,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanB import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi; @@ -85,6 +87,8 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { @Resource private TaskDispatchDetailMapper taskDispatchDetailMapper; @Resource + private TaskDispatchMapper taskDispatchMapper; + @Resource private MaterialMapper materialMapper; @Override public Long createMaterialPlan(MaterialPlanSaveReqVO createReqVO) { @@ -509,4 +513,40 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { return materialPlanBoomMapper.getPartsPages(pageReqVO); } + @Override + public CommonResult delMaterialPlanBoom(Long id, String projectMaterialPlanNo) { + TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(id); + if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MaterialPlanDO::getProjectMaterialPlanNo, taskDispatchDetailDO.getProjectMaterialPlanNo()); + MaterialPlanDO planDO = materialPlanMapper.selectOne(wrapper); + if(ObjectUtil.isEmpty(planDO)) return CommonResult.error(400,"该物料需求单号不存在,请确认!"); + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(TaskDispatchDO::getId, taskDispatchDetailDO.getDispatchId()); + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectOne(lambdaQueryWrapper1); + if (ObjectUtil.isNotEmpty(taskDispatchDO)){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getBoomDetailId, taskDispatchDO.getBomDetailId()); + queryWrapper.eq(MaterialPlanBoomDO::getProcedureId, taskDispatchDetailDO.getProcedureId()); + queryWrapper.in(MaterialPlanBoomDO::getMplanStatus,1,2,3); + if (materialPlanBoomMapper.selectCount(queryWrapper) > 0)return CommonResult.error(400,"该零件已送审,不允许删除,请确认!"); + materialPlanMapper.delMaterialPlanBoom(taskDispatchDO.getBomDetailId(),taskDispatchDetailDO.getProcedureId()); + + } + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + if (materialPlanBoomMapper.selectCount(lambdaQueryWrapper) <=0) materialPlanMapper.delMaterialPlan(planDO.getId()); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(TaskDispatchDetailDO::getId, id); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getPlanStatus,0); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getProjectMaterialPlanDetailId,null); + lambdaUpdateWrapper.set(TaskDispatchDetailDO::getMatPlanProcess,"N"); + taskDispatchDetailMapper.update(lambdaUpdateWrapper); + return CommonResult.success( true); + } + return CommonResult.error(400,"派工单明细不存在,请刷新页面"); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java index c96b88f2..1517d0a1 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanService.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.service.plan; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanSaveReqVO; @@ -26,8 +27,9 @@ public interface PlanService { * 更新生产计划 * * @param updateReqVO 更新信息 + * @return */ - void updatePlan(@Valid PlanSaveReqVO updateReqVO); + CommonResult updatePlan(@Valid PlanSaveReqVO updateReqVO); /** * 删除生产计划 @@ -62,4 +64,6 @@ public interface PlanService { boolean complete(Long id); int updateById(PlanDO planDO); + + CommonResult verification(Long id, String type); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java index 6887cb43..f56e25c6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plan/PlanServiceImpl.java @@ -1,9 +1,10 @@ package com.chanko.yunxi.mes.module.heli.service.plan; -import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageParam; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; @@ -13,6 +14,7 @@ import com.chanko.yunxi.mes.framework.web.core.util.WebFrameworkUtils; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.PlanSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo.PlanSubPageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.processdesign.vo.ProcessDesignSaveReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO; @@ -20,18 +22,21 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesign.ProcessDesignDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processdesignprogress.ProcessDesignProgressDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plantaskbom.PlanTaskBomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processdesign.ProcessDesignProgressMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; @@ -40,10 +45,10 @@ import com.chanko.yunxi.mes.module.heli.enums.*; import com.chanko.yunxi.mes.module.heli.service.customer.CustomerService; import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; -import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.thymeleaf.util.StringUtils; @@ -51,10 +56,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.time.LocalDateTime; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PROJECT_PLAN; @@ -109,6 +112,10 @@ public class PlanServiceImpl implements PlanService { private TaskDispatchDetailMapper taskDispatchDetailMapper; @Resource private CustomerService customerService; + @Resource + private ProcessDesignMapper processDesignMapper; + @Resource + private ProcessDesignProgressMapper processDesignProgressMapper; @Resource private TaskReportMapper taskReportMapper; @Override @@ -131,12 +138,51 @@ private TaskReportMapper taskReportMapper; } @Override - public void updatePlan(PlanSaveReqVO updateReqVO) { + public CommonResult updatePlan(PlanSaveReqVO updateReqVO) { // 校验存在 validatePlanExists(updateReqVO.getId()); // 更新 PlanDO updateObj = BeanUtils.toBean(updateReqVO, PlanDO.class); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessDesignDO::getPlanId,updateObj.getId()); + queryWrapper.eq(ProcessDesignDO::getProcessDesignType,"BLUEPRINT_FOUNDRY_TECHNOLOGY"); + ProcessDesignDO processDesignDO = processDesignMapper.selectOne(queryWrapper); + if (updateObj.getHasCraft()==1){ + if (ObjectUtil.isEmpty(processDesignDO)){ + ProcessDesignDO saveReqVO = new ProcessDesignDO(); + saveReqVO.setPlanId(updateObj.getId()) + .setProcessDesignType(ProcessDesignTypeEnum.BLUEPRINT_FOUNDRY_TECHNOLOGY.name()) + .setStatus(ValidStatusEnum.VALID.getCode()) + .setProjectId(updateObj.getProjectId()); + processDesignMapper.insert(saveReqVO); + } + }else { + if (ObjectUtil.isNotEmpty(processDesignDO)){ + processDesignMapper.deleteById(processDesignDO.getId()); + } + } + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(ProcessDesignDO::getPlanId,updateObj.getId()); + queryWrapper1.eq(ProcessDesignDO::getProcessDesignType,"CASTING_DRAWING"); + ProcessDesignDO processDesignDO1 = processDesignMapper.selectOne(queryWrapper1); + + if (updateObj.getHasCast()==1){ + if (ObjectUtil.isEmpty(processDesignDO1)){ + ProcessDesignDO casting = new ProcessDesignDO(); + casting.setPlanId(updateObj.getId()) + .setProcessDesignType(ProcessDesignTypeEnum.CASTING_DRAWING.name()) + .setStatus(ValidStatusEnum.VALID.getCode()) + .setProjectId(updateObj.getProjectId()); + processDesignMapper.insert(casting); + } + }else { + if (ObjectUtil.isNotEmpty(processDesignDO1)){ + processDesignMapper.deleteById(processDesignDO1.getId()); + } + } planMapper.updateById(updateObj); + return CommonResult.success(true); + } @Override @@ -298,6 +344,23 @@ private TaskReportMapper taskReportMapper; public int updateById(PlanDO planDO){ return planMapper.updateById(planDO); } + + @Override + public CommonResult verification(Long id, String type) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessDesignDO::getPlanId,id); + queryWrapper.eq(ProcessDesignDO::getProcessDesignType,type); + ProcessDesignDO processDesignDO = processDesignMapper.selectOne(queryWrapper); + if (ObjectUtil.isNotEmpty(processDesignDO)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessDesignProgressDO::getProcessDesignId,processDesignDO.getId()); + if (processDesignProgressMapper.selectCount(wrapper)>0) return CommonResult.success(false); + } + + + return CommonResult.success(true); + } + @Override public boolean complete(Long id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java index 58e60bc0..7724b164 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomService.java @@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.service.processbom; import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomImportRespVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskPlanJDBaoBiaoPageReqVO; @@ -39,7 +40,7 @@ public interface ProcessBomService { * @param file 文件 * @return 编号 */ - void importExcel(@Valid MultipartFile file,String bomCode) throws IOException; + void importExcel(@Valid MultipartFile file, String bomCode) throws IOException; /** * 更新工艺bom * @@ -113,4 +114,6 @@ public interface ProcessBomService { BigDecimal internalLaborCost(Long id, Long projectSubId); BigDecimal assemblyLaborCost(Long id, Long projectSubId); + + CommonResult delMaterialPlan(Long id, String projectMaterialPlanNo); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 3abdc046..9512d69f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -183,7 +183,10 @@ public class ProcessBomServiceImpl implements ProcessBomService { HashSet blueprintNoList = new HashSet(); Map> groupedByCode = list.stream().collect(Collectors.groupingBy(vo -> vo.getCode() == null ? "NULL" : vo.getCode())); Map> groupedByBluePrintfNo = list.stream().collect(Collectors.groupingBy(vo -> vo.getBlueprintNo() == null ? "NULL" : vo.getBlueprintNo())); - Map> groupedByMaterialName = list.stream().filter(e -> e.getType().equals("否")).collect(Collectors.groupingBy(vo -> vo.getMaterialName() == null ? "NULL" : vo.getMaterialName())); + Map> groupedByMaterialName = list.stream().collect(Collectors.groupingBy(vo -> vo.getMaterialName() == null ? "NULL" : vo.getMaterialName())); + Map> groupedByType = list.stream().collect(Collectors.groupingBy(vo -> vo.getType() == null ? "NULL" : vo.getType())); + Map> groupedByAmount = list.stream().collect(Collectors.groupingBy(vo -> vo.getAmount() == null ? "NULL" : vo.getAmount().toString())); + Map> groupedByUnit = list.stream().collect(Collectors.groupingBy(vo -> vo.getUnit() == null ? "NULL" : vo.getUnit())); // if (CollUtil.isNotEmpty(groupedByCode.get("NULL"))) { // throw exception(PROCESS_BOM_CODE_IS_EMPTY); @@ -194,7 +197,22 @@ public class ProcessBomServiceImpl implements ProcessBomService { if (CollUtil.isNotEmpty(groupedByMaterialName.get("NULL"))) { throw exception(PROCESS_BOM_DETAIL_MATERIAL_NAME_IS_NULL); } - + if (CollUtil.isNotEmpty(groupedByType.get("NULL"))) { + throw exception(PROCESS_BOM_DETAIL_TYPE_IS_NULL); + } + if (CollUtil.isNotEmpty(groupedByAmount.get("NULL"))) { + throw exception(PROCESS_BOM_DETAIL_AMOUNT_IS_NULL); + } + if (CollUtil.isNotEmpty(groupedByUnit.get("NULL"))) { + throw exception(PROCESS_BOM_DETAIL_UNIT_IS_NULL); + } + Map> groupedByAmounts = list.stream() + .collect(Collectors.groupingBy(vo -> { + if (vo.getAmount() <= 0) { + throw exception(PROCESS_BOM_DETAIL_AMOUNT); + } + return vo.getAmount().toString(); + })); // list.forEach(item->{ // blueprintNoList.add(item.getBlueprintNo()); // }); @@ -1304,7 +1322,7 @@ public class ProcessBomServiceImpl implements ProcessBomService { // } BigDecimal cost= processBomMapper.bubbleFees(id,projectSubId); - BigDecimal cost1=processBomMapper.materialCost(id,projectSubId); + BigDecimal cost1=processBomMapper.inspection(id,projectSubId); if (ObjectUtil.isEmpty(cost1)) cost1=BigDecimal.ZERO; if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; @@ -1321,14 +1339,48 @@ public class ProcessBomServiceImpl implements ProcessBomService { @Override public BigDecimal internalLaborCost(Long id, Long projectSubId) { BigDecimal cost=processBomMapper.internalLaborCost(id,projectSubId); + BigDecimal cost1= processBomMapper.inspection1(id,projectSubId); if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; - return cost; } + if (ObjectUtil.isEmpty(cost1)) cost1=BigDecimal.ZERO; + return cost.add(cost1); + } @Override public BigDecimal assemblyLaborCost(Long id, Long projectSubId) { BigDecimal cost=processBomMapper.assemblyLaborCost(id,projectSubId); + BigDecimal cost1= processBomMapper.finalInspection(id,projectSubId); if (ObjectUtil.isEmpty(cost)) cost=BigDecimal.ZERO; - return cost; + if (ObjectUtil.isEmpty(cost1)) cost1=BigDecimal.ZERO; + return cost.add(cost1); + } + + @Override + public CommonResult delMaterialPlan(Long id, String projectMaterialPlanNo) { + ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(id); + if (ObjectUtil.isNotEmpty(bomDetailDO)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MaterialPlanDO::getProjectMaterialPlanNo, bomDetailDO.getProjectMaterialPlanNo()); + MaterialPlanDO planDO = materialPlanMapper.selectOne(wrapper); + if(ObjectUtil.isEmpty(planDO)) return CommonResult.error(400,"该物料需求单号不存在,请确认!"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getBoomDetailId, bomDetailDO.getId()); + queryWrapper.in(MaterialPlanBoomDO::getMplanStatus,1,2,3); + if (materialPlanBoomMapper.selectCount(queryWrapper) > 0)return CommonResult.error(400,"该物料已送审,不允许删除,请确认!"); + processBomMapper.delMaterialPlan(id); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, planDO.getId()); + if (materialPlanBoomMapper.selectCount(lambdaQueryWrapper) <=0) materialPlanMapper.delMaterialPlan(planDO.getId()); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(ProcessBomDetailDO::getId,id); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getProjectMaterialPlanNo, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getDuEmpId, null); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanStatus,0); + lambdaUpdateWrapper.set(ProcessBomDetailDO::getMplanDate,null); + processBomDetailMapper.update(lambdaUpdateWrapper); + return CommonResult.success( true); + } + + return CommonResult.error(400,"boom明细不存在,请刷新页面"); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java index 7c0dc1b7..ab245cc0 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java @@ -510,6 +510,8 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { thingname="2D设计任务提醒"; }else if ("BLUEPRINT_WORKBLANK".equals(processDesignDO.getProcessDesignType())){ thingname="毛坯设计任务提醒"; + }else if ("CASTING_DRAWING".equals(processDesignDO.getProcessDesignType())){ + thingname="铸件图设计任务提醒"; } // String things = processDesignDO.getCustomerName()+processDesignDO.getProjectName()+processDesignDO.getProjectSubName()+processDesignProgressDO.getRemark(); for (AttentiontodoDO attentiontodoDO : attentiontodookddfh) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java index 284572d1..30d42bb9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java @@ -104,4 +104,6 @@ public interface TaskDispatchService { List getOwnerUserList(Long id, Long type); List getListZp(Long id, Long projectSubId); + + List getListCl(Long id, Long projectSubId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 18d4f019..2996e410 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -1080,6 +1080,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { public List getListZp(Long id, Long projectSubId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(TaskDispatchDO::getProjectId, id); + queryWrapper.eq(TaskDispatchDO::getProjectSubId, projectSubId); + queryWrapper.eq(TaskDispatchDO::getDispatchType,"ASSEMBLE"); List taskDispatchDOS = taskDispatchMapper.selectList(queryWrapper); for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -1088,7 +1090,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { Map map = new HashMap<>(); ProjectOrderSubDO projectOrderSubDO = projectOrderSubMapper.selectById(taskDispatchDO.getProjectSubId()); - BigDecimal assemblyLaborCost = BigDecimal.ONE; + BigDecimal assemblyLaborCost = BigDecimal.ZERO; for (TaskDispatchDetailDO detailDO : detailDOS) { ProcedureDO procedureDO = procedureMapper.selectById(detailDO.getProcedureId()); BigDecimal cost=taskDispatchDetailMapper.assemblyLaborCost(detailDO.getId()); @@ -1100,12 +1102,15 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { map.put(procedureDO.getName(),cost); } } - assemblyLaborCost.add(cost); + assemblyLaborCost= assemblyLaborCost.add(cost); } + BigDecimal finalInspection = taskDispatchDetailMapper.finalInspection(id, projectSubId); + map.put("检验",ObjectUtil.isEmpty(finalInspection)?null:finalInspection); + assemblyLaborCost.add(ObjectUtil.isEmpty(finalInspection)?BigDecimal.ZERO:finalInspection); taskDispatchDO.setAssemblyLaborSum(assemblyLaborCost); taskDispatchDO.setMap( map); if (ObjectUtil.isNotEmpty(projectOrderSubDO)){ - taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(new BigDecimal(projectOrderSubDO.getAmount()),1,RoundingMode.HALF_UP)); + taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(new BigDecimal(projectOrderSubDO.getAmount()),1, RoundingMode.HALF_UP)); taskDispatchDO.setProjectSubName(projectOrderSubDO.getName()); taskDispatchDO.setQuantity(projectOrderSubDO.getAmount()); LambdaQueryWrapper planSubDOLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -1118,7 +1123,43 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } } - return null; + return taskDispatchDOS; + } + + @Override + public List getListCl(Long id, Long projectSubId) { + List taskDispatchDOS = taskDispatchMapper.getListCl(id, projectSubId); + for (TaskDispatchDO taskDispatchDO : taskDispatchDOS) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDO.getId()); + List detailDOS = taskDispatchDetailMapper.selectList(wrapper); + Map map = new HashMap<>(); + + BigDecimal assemblyLaborCost = BigDecimal.ZERO; + for (TaskDispatchDetailDO detailDO : detailDOS) { + ProcedureDO procedureDO = procedureMapper.selectById(detailDO.getProcedureId()); + BigDecimal procedureCost=taskDispatchDetailMapper.bubbleFees(taskDispatchDO.getBomDetailId(),detailDO.getProcedureId()); + BigDecimal materialCost = taskDispatchDetailMapper.materialCost(detailDO.getId()); + BigDecimal internalLaborCost = taskDispatchDetailMapper.internalLaborCost(detailDO.getId()); + BigDecimal processInspection=taskDispatchDetailMapper.processInspection(detailDO.getId()); + + if (ObjectUtil.isEmpty(procedureCost)) procedureCost=BigDecimal.ZERO; + if (ObjectUtil.isEmpty(materialCost)) materialCost=BigDecimal.ZERO; + if (ObjectUtil.isEmpty(internalLaborCost)) internalLaborCost=BigDecimal.ZERO; + if (ObjectUtil.isEmpty(processInspection)) processInspection=BigDecimal.ZERO; + BigDecimal sum = procedureCost.add(materialCost).add(internalLaborCost).add(processInspection); + if (ObjectUtil.isNotEmpty(procedureDO)){ + map.put(procedureDO.getName(),sum); + } + assemblyLaborCost=assemblyLaborCost.add(sum); + } + taskDispatchDO.setAssemblyLaborSum(assemblyLaborCost); + taskDispatchDO.setMap( map); + taskDispatchDO.setAssemblyLaborCost(assemblyLaborCost.divide(taskDispatchDO.getAmount(),1, RoundingMode.HALF_UP)); + + } + + return taskDispatchDOS; } private void updateAssembleDetail(OperateTypeEnum operateTypeEnum,Long dispatchId, List list) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplan/MaterialPlanMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplan/MaterialPlanMapper.xml index 0e4fd5e2..dbc1cb89 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplan/MaterialPlanMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/materialplan/MaterialPlanMapper.xml @@ -9,4 +9,11 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + delete from project_material_plan where id=#{id} + + + delete from project_material_plan_boom where boom_detail_id=#{bomDetailId} and procedure_id=#{procedureId} + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml index 4fa9f6e3..96f41587 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/processbom/ProcessBomMapper.xml @@ -1,6 +1,9 @@ + + delete from project_material_plan_boom where boom_detail_id=#{id} + @@ -320,7 +333,18 @@ const resetQuery = () => { handleQuery() } - +/** 删除按钮操作 */ +const handleDelete = async (id: number,projectMaterialPlanNo:string) => { + try { + // 删除的二次确认 + await message.delConfirm() + // 发起删除 + await ProcessBomApi.delMaterialPlan(id,projectMaterialPlanNo) + message.success(t('common.delSuccess')) + // 刷新列表 + await getList() + } catch { } +} /** 导出按钮操作 */ const handleExport = async () => { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue index 7ed31128..12f9c602 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/record.vue @@ -262,13 +262,8 @@ const rowClick = async (row) => { // OrderYsDetailLiat.value.map(item=>{item.cgTypee=Number(item.cgTypee)}) } const getDictLabel = (dictType, value) => { - console.log(dictType) - console.log(value) var intDictOptions = getIntDictOptions(dictType); - console.log(intDictOptions) const dict = intDictOptions.find(item => item.value == value) - console.log(value) - console.log(dict) return dict?.label || value // 找不到时显示原始值 } const tableRowClassName = ({ row }) => { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/ProcessStatusModal.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/ProcessStatusModal.vue new file mode 100644 index 00000000..e8093af9 --- /dev/null +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/ProcessStatusModal.vue @@ -0,0 +1,228 @@ + + + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/detail.vue index c4b8d9f2..d16abf99 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/detail.vue @@ -38,6 +38,19 @@ v-for="dict in userInit" :key="dict.id" + + + + + + {{ dict.label }} + + + + + @@ -108,6 +121,17 @@ disabled v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="d + + + + + + + + + @@ -173,6 +197,15 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)" :key="dict.va + + + + + + + @@ -185,7 +218,7 @@ disabled class="!w-265px" v-model="formData.craftStartDate" type="date" value-fo - + @@ -251,6 +284,15 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.va + + + + + + + @@ -548,7 +590,11 @@ const formData = ref({ projectOrderSubs: [], projectPlanSubs: [], craftInfos: [], - craftContent:undefined + craftContent:undefined, + castOwner:undefined, + hasCast:undefined, + castStartDate:undefined, + castEndDate:undefined, }) const formRules = reactive({ projectCode: [{ required: true, message: '项目编号不能为空', trigger: 'blur' }], diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/edit.vue index 3fa4ee3b..41545c6f 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/edit.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/edit.vue @@ -44,6 +44,19 @@ v-for="dict in userInit" :key="dict.id" + + + + + + {{ dict.label }} + + + + + @@ -114,6 +127,22 @@ v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="dict.value + + + + + + + + + + + @@ -122,7 +151,7 @@ v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="dict.value :label="dict.username+' '+dict.nickname" :value="dict.id" /> --> - + @@ -184,6 +213,15 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)" :key="dict.va + + + + + + + @@ -262,6 +300,15 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.va + + + + + + + @@ -645,6 +692,7 @@ import UserSelect from '@/views/heli/hlvuestyle/userSelect.vue' import EquipSelect from '@/views/heli/hlvuestyle/equipSelect.vue' import * as ProjectLeaderApi from "@/api/heli/projectleader"; import * as TaskDispatchApi from "@/api/heli/taskdispatch"; +import {verification} from "@/api/heli/plan"; const printref = ref() const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -693,7 +741,11 @@ const formData = ref({ projectPlanSubs: [], craftInfos: [], craftContent: undefined, - changeEndTime: undefined + changeEndTime: undefined, + castOwner:undefined, + hasCast:1, + castStartDate:undefined, + castEndDate:undefined, }) const ownerId = ref(''); const dateOne = ref(''); @@ -932,16 +984,14 @@ const getSearchRlTs = async(startDateTime:string,endDateTime:string,index:number if(num === "1"){ //调用接口查询检索设计时间是否冲突 formData.value.projectPlanSubs[index].blankNum = data; - - // formatDate(startBlankDate,'YYYY-MM-DD') - if(ownder){ - prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); - startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); - endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); - fuzerenId.value = ownder; - getOwnderList(index) - } + // if(ownder){ + // prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); + // startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); + // endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); + // fuzerenId.value = ownder; + // getOwnderList(index) + // } /* getOwnderList(index,ownder,startBlankDate,blankDate,id) */ @@ -950,23 +1000,23 @@ const getSearchRlTs = async(startDateTime:string,endDateTime:string,index:number //调用接口查询检索设计时间是否冲突 formData.value.projectPlanSubs[index].twoDimNum = data; - if(ownder){ - prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); - startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); - endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); - fuzerenId.value = ownder; - getOwnderLists(index) - } + // if(ownder){ + // prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); + // startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); + // endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); + // fuzerenId.value = ownder; + // getOwnderLists(index) + // } }else{ formData.value.projectPlanSubs[index].threeDimNum = data; - if(ownder){ - prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); - startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); - endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); - fuzerenId.value = ownder; - getOwnderListss(index) - } + // if(ownder){ + // prod.value.projectPlanSubs = JSON.parse(JSON.stringify(formData.value.projectPlanSubs)); + // startTimeOne.value = formatDate(startDateTime,'YYYY-MM-DD'); + // endTimeTwo.value = formatDate(endDateTime,'YYYY-MM-DD'); + // fuzerenId.value = ownder; + // getOwnderListss(index) + // } } @@ -1531,11 +1581,40 @@ const handleUpdate = () => { console.log("子组件已更新"); }; -const handleCraftInfo = (val) =>{ +const handleCraftInfo = async (val) =>{ if(val == 0){ + const a = await PlanApi.verification(query.id,"BLUEPRINT_FOUNDRY_TECHNOLOGY") +if (a){ formData.value.craftOwner = undefined formData.value.craftStartDate = undefined formData.value.craftEndDate = undefined +}else { + message.error("铸造工艺进度上报有报工数据,不允许修改为否") + formData.value.hasCraft=1 +} + }else { + const data = await PlanApi.getPlan(query.id) + formData.value.craftOwner = data.craftOwner + formData.value.craftStartDate = data.craftStartDate + formData.value.craftEndDate = data.craftEndDate + } +} +const handleCastInfo = async (val) =>{ + if(val == 0){ + const a = await PlanApi.verification(query.id,"CASTING_DRAWING") +if (a){ + formData.value.castOwner = undefined + formData.value.castStartDate = undefined + formData.value.castEndDate = undefined +}else { + message.error("铸件图设计进度上报有报工数据 不允许修改为否") + formData.value.hasCast=1 +} + }else{ + const data = await PlanApi.getPlan(query.id) + formData.value.castOwner = data.castOwner + formData.value.castStartDate = data.castStartDate + formData.value.castEndDate = data.castEndDate } } const handleSubCode = (row, name) => { @@ -1705,8 +1784,14 @@ onMounted(async () => { formData.value = await PlanApi.getPlan(query.id) userInit1.value = await TaskDispatchApi.getOwnerUserList(0,1); // ownerList.value = await getOwnerListThis(); - +if (formData.value.hasCraft==null){ formData.value.hasCraft = 1 +} +if ( formData.value.hasCast ==null +){ + formData.value.hasCast = 1 +} + const data = await ProjectLeaderApi.getProjectLeaderType(4) const data1 = await ProjectLeaderApi.getProjectLeaderType(5) const data2 = await ProjectLeaderApi.getProjectLeaderType(6) @@ -1951,6 +2036,9 @@ const handleSelectedUser1 = (newValue: any) => { const handleSelectedUser2 = (newValue: any) => { formData.value.craftOwner = newValue?.id } +const handleSelectedUser10 = (newValue: any) => { + formData.value.castOwner = newValue?.id +} // 计划编制人 const handleSelectedUser3 = (newValue: any) => { formData.value.editor = newValue?.id diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/planSchedule.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/planSchedule.vue index ab41adf8..f6404bfe 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/planSchedule.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/plan/planSchedule.vue @@ -17,10 +17,10 @@ class="!w-240px" /> - + 搜索 重置 + 显示说明 @@ -92,6 +93,25 @@ + + + + + + + + + + + + + + + + + + + @@ -652,6 +672,7 @@ @pagination="getList" /> + @@ -659,18 +680,15 @@ diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/detail.vue index 63c0fe12..b72a4625 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/detail.vue @@ -3,7 +3,7 @@ - +