From 53c7099546bf098d9042336883d9ad38189ab308 Mon Sep 17 00:00:00 2001 From: z Date: Tue, 25 Nov 2025 14:30:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=91=E6=9C=9F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectorder/ProjectOrderController.java | 4 ++-- .../taskdispatch/vo/BubbleFeeResult.java | 1 + .../processdesign/ProcessDesignMapper.java | 4 ++++ .../TaskDispatchDetailMapper.java | 5 ++-- .../PlanSubDetailServiceImpl.java | 3 ++- .../projectorder/ProjectOrderServiceImpl.java | 24 +++++++++++++++++++ .../taskdispatch/TaskDispatchServiceImpl.java | 24 +++++++++++++++---- .../taskdispatch/TaskDispatchDetailMapper.xml | 10 ++++---- .../src/views/heli/interrupt/index.vue | 2 +- .../src/views/heli/orderys/record.vue | 4 ++-- 10 files changed, 64 insertions(+), 17 deletions(-) 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 e102ae8e..6dbf4c8d 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 @@ -203,11 +203,11 @@ public class ProjectOrderController { //材料成本 BigDecimal materialCost; materialCost=processBomService.materialCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); - projectOrderDO.setCailiaoCost(materialCost.add(outsourcedProcessingFee)); //内部工时费 BigDecimal internalLaborCost; internalLaborCost=processBomService.internalLaborCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); projectOrderDO.setNeibuCost(internalLaborCost); + projectOrderDO.setCailiaoCost(materialCost.add(outsourcedProcessingFee).add(internalLaborCost)); //装配工时费 BigDecimal assemblyLaborCost; assemblyLaborCost=processBomService.assemblyLaborCost(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); @@ -218,7 +218,7 @@ public class ProjectOrderController { yunFeiCost = deliverOrderService.getListYf(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); projectOrderDO.setYunFeiCost(yunFeiCost); - BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getNeibuCost()).add(projectOrderDO.getZpCost()); + BigDecimal sum = projectOrderDO.getYunFeiCost().add(projectOrderDO.getCailiaoCost()).add(projectOrderDO.getBiaoZhunJianCost()).add(projectOrderDO.getZpCost()); projectOrderDO.setSumCost(sum); } return success(BeanUtils.toBean(pageResult, ProjectOrderCostRespVO.class)); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/BubbleFeeResult.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/BubbleFeeResult.java index 96f56996..077ee25a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/BubbleFeeResult.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/BubbleFeeResult.java @@ -8,5 +8,6 @@ import java.math.BigDecimal; public class BubbleFeeResult { private Long bomDetailId; private Long procedureId; + private Long dispatchDetailId; private BigDecimal cost; } \ 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/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 5462f948..f7452760 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 @@ -15,7 +15,9 @@ import com.chanko.yunxi.mes.module.heli.enums.ProcessDesignTypeEnum; import com.chanko.yunxi.mes.module.heli.enums.ProjectPlanStatusEnum; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; import java.util.Date; @@ -391,4 +393,6 @@ public interface ProcessDesignMapper extends BaseMapperX { System.out.println(query.getSqlSelect()); // 查看实际执行的 SQL return selectPage(reqVO, query); } + @Delete("delete from pro_process_design where project_id = #{id}") + void deleteOrderId(@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/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 de43b0b9..0f26196e 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 @@ -37,6 +37,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; @@ -902,7 +903,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX batchMaterialCosts(@Param("bomDetailIds")List bomDetailIds,@Param("procedureIds") List procedureIds); - Map batchInternalLaborCost(@Param("bomDetailIds")List bomDetailIds); + List batchInternalLaborCost(@Param("bomDetailIds")List bomDetailIds); - Map batchProcessInspection(@Param("bomDetailIds")List bomDetailIds); + List batchProcessInspection(@Param("bomDetailIds")List bomDetailIds); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plansubdetail/PlanSubDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plansubdetail/PlanSubDetailServiceImpl.java index 1705aef2..f4440af9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plansubdetail/PlanSubDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/plansubdetail/PlanSubDetailServiceImpl.java @@ -211,13 +211,14 @@ public class PlanSubDetailServiceImpl implements PlanSubDetailService { planSubDetailDO.setProjectSubCode(planSubDO.getProjectSubCode()); planSubDetailDO.setTwoDimDate(planSubDO.getBlankDate()); planSubDetailDO.setProjectSubId(planSubDO.getProjectSubId()); - planSubDetailDO.setProjectPlanId(planSubDO.getProjectPlanId()); + planSubDetailDO.setProjectPlanSubId(planSubDO.getId()); planSubDetailDO.setName(planSubDO.getName()); planSubDetailDO.setCode(planSubDO.getProjectCode()); planSubDetailDO.setCustomerBrief(planSubDO.getCustomerName()); planSubDetailDO.setPlanNo(planSubDO.getPlanNo()); planSubDetailDO.setProjectName(planSubDO.getProjectNameSim()); planSubDetailDO.setProjectNameSim(planSubDO.getProjectNameSim()); + list.add(planSubDetailDO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java index 5a870f7f..cd2f1bc7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/projectorder/ProjectOrderServiceImpl.java @@ -42,6 +42,7 @@ 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.projectorder.ProjectOrderMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; @@ -144,6 +145,8 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { private PlanSubDetailMapper planSubDetailMapper; @Resource private ProcessBomDetailMapper processBomDetailMapper; + @Resource + private ProcessDesignMapper ProcessDesignMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -226,6 +229,25 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { return CommonResult.error(400,"子项目已生成BOM明细,不允许删除"); } } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlanSubDetailDO::getProjectSubId,id); + lambdaQueryWrapper.orderByAsc(PlanSubDetailDO::getCreateTime); + PlanSubDetailDO planSubDetailDO = planSubDetailMapper.selectOne(lambdaQueryWrapper); + if (ObjectUtil.isNotEmpty(planSubDetailDO)){ + String type=""; + switch (planSubDetailDO.getSubType()){ + case "BLUEPRINT_WORKBLANK": + type="毛坯"; + break; + case "BLUEPRINT_2D": + type="2D"; + break; + case "BLUEPRINT_3D": + type="3D"; + break; + } + return CommonResult.error(400,"该子项目已做"+type+"设计,请先前往插活处删除"); + } LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); lambdaUpdateWrapper.eq(ProcessBomDO::getProjectSubId,id); processBomMapper.delete(lambdaUpdateWrapper); @@ -326,6 +348,8 @@ public class ProjectOrderServiceImpl implements ProjectOrderService { planSubMapper.deleteOrderId( id); //计划明细子表 planSubDetailMapper.deleteOrderId( id); + //工艺设计表 + ProcessDesignMapper.deleteOrderId(id); //生产任务单表 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PlanTaskDO::getProjectId, id); 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 af993cb4..1c3185f7 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 @@ -896,7 +896,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .setStartTime(now); if(operateReqVO.getOwnerId()!=null){ lastReportDO.setOwner(operateReqVO.getOwnerId()); - taskDispatchDetailDO.setOwner(operateReqVO.getOwnerId()); +// taskDispatchDetailDO.setOwner(operateReqVO.getOwnerId()); }else{ lastReportDO.setOwner(taskDispatchDetailDO.getOwner()); } @@ -1422,6 +1422,20 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } return resultMap; } + /** + * 转换查询结果为Map + */ + private Map convertToMap(List results) { + Map resultMap = new HashMap<>(); + if (ObjectUtil.isNotEmpty(results)){ + for (BubbleFeeResult result : results) { + if (ObjectUtil.isNotEmpty(result)){ + resultMap.put(result.getDispatchDetailId(), ObjectUtil.isEmpty(result.getCost()) ? BigDecimal.ZERO : result.getCost()); + } + } + } + return resultMap; + } /** * 收集所有需要查询的键 */ @@ -1475,8 +1489,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .map(TaskDispatchDetailDO::getId) .distinct() .collect(Collectors.toList()); - - return taskDispatchDetailMapper.batchInternalLaborCost(bomDetailIds); + List batchResults=taskDispatchDetailMapper.batchInternalLaborCost(bomDetailIds); + return convertToMap(batchResults); } private Map getProcessInspectionBatch(List details) { @@ -1488,8 +1502,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .map(TaskDispatchDetailDO::getId) .distinct() .collect(Collectors.toList()); - - return taskDispatchDetailMapper.batchProcessInspection(bomDetailIds); + List batchResults=taskDispatchDetailMapper.batchProcessInspection(bomDetailIds); + return convertToMap(batchResults); } // 辅助方法 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml index 3bc9a325..67db259a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskdispatch/TaskDispatchDetailMapper.xml @@ -232,8 +232,8 @@ ) AS subquery GROUP BY subquery.bomDetailId, subquery.procedureId; - + SELECT t1.id as dispatchDetailId,sum(COALESCE(r.work_time, 0) * p.grade_cost) cost from pro_task_dispatch t left join pro_task_dispatch_detail t1 on t.id=t1.dispatch_id and t1.deleted=0 and t1.tenant_id=2 left join pro_task_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2 @@ -243,9 +243,10 @@ #{bomDetailId} + group by t1.id - + SELECT g.dispatch_detail_id as dispatchDetailId,sum(COALESCE(t.work_time, 0) * p.grade_cost) cost FROM quality_pg_master_line g LEFT JOIN quality_bg_master_line t ON t.zj_mx_id = g.id and t.deleted = 0 and t.tenant_id = 2 left join system_user_post u on u.user_id=t.bg_user and u.deleted=0 and u.tenant_id=2 @@ -254,5 +255,6 @@ #{bomDetailId} + group by g.dispatch_detail_id diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/interrupt/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/interrupt/index.vue index 37c4b522..56c2d54b 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/interrupt/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/interrupt/index.vue @@ -544,7 +544,7 @@ const handleAddConfirm = () => { return } selectedAddRow.value[0].twoDimDate = null - selectedAddRow.value[0].projectPlanSubId = null + // selectedAddRow.value[0].projectPlanSubId = null selectedAddRow.value[0].startTwoDimDate = null selectedAddRow.value[0].twoDimOwner = null selectedAddRow.value[0].subType = null 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 36405eaf..fb78e54a 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 @@ -85,7 +85,7 @@ - + @@ -267,7 +267,7 @@ const getDictLabel = (dictType, value) => { return dict?.label || value // 找不到时显示原始值 } const tableRowClassName = ({ row }) => { - if (row.paymentDate!=null){ + if (row.paymentDate!=null&&row.cgTypee!=1){ var endTime = new Date(row.paymentDate); // 获取当前时间的 Date 对象