From 782649276fc409f8436fe89341acf36d20275235 Mon Sep 17 00:00:00 2001 From: z Date: Wed, 5 Mar 2025 16:03:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E5=87=86=E4=BB=B6=E6=88=90=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectorder/ProjectOrderController.java | 11 ++++ .../admin/storage/StorageController.java | 8 +++ .../projectorder/ProjectOrderDO.java | 2 + .../dal/dataobject/storage/StorageDO.java | 16 +++++ .../heli/dal/mysql/storage/StorageMapper.java | 17 +++++ .../heli/service/storage/StorageService.java | 1 + .../service/storage/StorageServiceImpl.java | 5 ++ .../src/api/heli/saleordercost/index.ts | 4 ++ .../src/views/heli/materialplan/detail.vue | 2 +- .../src/views/heli/saleordercost/edit.vue | 62 +++++++++++++------ .../src/views/heli/taskdispatch/detail.vue | 9 ++- 11 files changed, 117 insertions(+), 20 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 41eb4b4..7309d8b 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 @@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrder import com.chanko.yunxi.mes.module.heli.dal.dataobject.orderys.OrderYsDO; 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.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.orderys.OrderYsMapper; import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum; @@ -21,6 +22,7 @@ import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager; import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService; import com.chanko.yunxi.mes.module.heli.service.orderys.OrderYsService; import com.chanko.yunxi.mes.module.heli.service.projectorder.ProjectOrderService; +import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import com.chanko.yunxi.mes.module.heli.service.taskdispatch.TaskDispatchService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -65,6 +67,8 @@ public class ProjectOrderController { private DeliverOrderService deliverOrderService; @Resource private TaskDispatchService taskDispatchService; + @Resource + private StorageService storageService; @PostMapping("/create") @Operation(summary = "创建项目订单") @PreAuthorize("@ss.hasPermission('heli:project-order:create')") @@ -161,6 +165,13 @@ public class ProjectOrderController { .reduce(BigDecimal.ZERO, BigDecimal::add); projectOrderDO.setJiaGongShiCost(totalAmount); } + List list1= storageService.getList(projectOrderDO.getId(),projectOrderDO.getProjectSubId()); + if (list1!=null&&list1.size()>0){ + BigDecimal totalAmount = list1.stream() + .map(StorageDO -> StorageDO.getCaiGouMoney() != null ?StorageDO.getCaiGouMoney() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + projectOrderDO.setBiaoZhunJianCost(totalAmount); + } } 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/storage/StorageController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java index 02b5394..069dc7c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java @@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.storage; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.module.heli.controller.admin.outsourcestockboom.vo.OutsourceStockBoomSaveReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO; @@ -300,5 +301,12 @@ public class StorageController { ExcelUtils.write(response, "入/出库.xls", "数据", StorageRespVO.class, BeanUtils.toBean(list, StorageRespVO.class)); } + @GetMapping("/getList") + @Operation(summary = "获得标准件成本") + @PreAuthorize("@ss.hasPermission('heli:deliver-order:query')") + public CommonResult> getList(@RequestParam("id") Long id, @RequestParam("projectSubId") Long projectSubId ) { + List list = storageService.getList(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/projectorder/ProjectOrderDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java index 5445b8c..ffc24df 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/projectorder/ProjectOrderDO.java @@ -283,6 +283,8 @@ public class ProjectOrderDO extends BaseDO { private BigDecimal yunFeiCost; @TableField(exist = false) private BigDecimal jiaGongShiCost; + @TableField(exist = false) + private BigDecimal biaoZhunJianCost; /** * 变更的字段列表 * */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storage/StorageDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storage/StorageDO.java index 65bda8b..ce24743 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storage/StorageDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storage/StorageDO.java @@ -1,6 +1,8 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.storage; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -106,6 +108,20 @@ public class StorageDO extends BaseDO { private Integer pickmode; private Integer pickcar; private Integer projectNo; + @TableField(exist = false) + private String materialCode; + @TableField(exist = false) + private String materialName; + @TableField(exist = false) + private String materialType; + @TableField(exist = false) + private String materialSpec; + @TableField(exist = false) + private String amount; + @TableField(exist = false) + private String unit; + @TableField(exist = false) + private BigDecimal caiGouMoney; } \ 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/storage/StorageMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java index 9537512..3189307 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storage/StorageMapper.java @@ -9,6 +9,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageMaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.enums.YesOrNoEnum; import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; @@ -75,4 +76,20 @@ public interface StorageMapper extends BaseMapperX { // .orderByDesc(StorageDO::getId)); } + default List getList(Long id, Long projectSubId){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(StorageDO.class) + .select("mat.code as materialCode","mat.name as materialName","mat.material_type as materialType","mat.unit as unit","mat.spec as materialSpec") + .select("COALESCE(ROUND(sm.storage_ok_qty * sm.price, 2), 0) AS caiGouMoney","sm.storage_ok_qty as amount") + .leftJoin(StorageMatDO.class, "sm", StorageMatDO::getStockId, StorageDO::getId) + .leftJoin(MaterialDO.class, "mat", MaterialDO::getId, StorageMatDO::getMatId) + .disableSubLogicDel() + .orderByDesc(StorageDO::getCreateTime); + + query.eq(StorageDO::getProjectNo,projectSubId) + .eq(StorageDO::getStockType,2) + .eq(StorageMatDO::getDeleted,0) + .eq(MaterialDO::getDeleted,0); + return selectList(query); + } } \ 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/service/storage/StorageService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageService.java index 5ae4a93..476fd5f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageService.java @@ -71,4 +71,5 @@ public interface StorageService { */ PageResult getStoragePage(StoragePageReqVO pageReqVO); + List getList(Long id, Long projectSubId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageServiceImpl.java index 96d93e3..e946318 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storage/StorageServiceImpl.java @@ -390,4 +390,9 @@ private StorageLogService storageLogService; return storageMapper.selectPage(pageReqVO); } + @Override + public List getList(Long id, Long projectSubId) { + return storageMapper.getList(id,projectSubId); + } + } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/saleordercost/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/saleordercost/index.ts index bd5c758..8dc8046 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/saleordercost/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/saleordercost/index.ts @@ -31,3 +31,7 @@ export const getListYf = async (id: number,projectSubId: number) => { export const getListJg = async (id: number,projectSubId: number) => { return await request.get({ url: `/heli/task-dispatch/getListJg?id=`+id+`&projectSubId=`+projectSubId }) } +//查询标准件成本 +export const getList = async (id: number,projectSubId: number) => { + return await request.get({ url: `/heli/storage/getList?id=`+id+`&projectSubId=`+projectSubId }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/detail.vue index 58a3661..b93e260 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/detail.vue @@ -602,7 +602,7 @@ const handleInitPlanSub = async () => { }) formData.value.projectPlanSubs = (await PlanSubApi.getPlanSubPage(queryParams)).list - + console.log( formData.value.projectPlanSubs) // formData.value.projectOrderSubs.forEach((item) => { // if (formData.value.projectPlanSubs.filter((sub) => sub.projectSubId == item.id).length > 0) { // var subTemp = formData.value.projectPlanSubs.find((sub) => sub.projectSubId == item.id) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/saleordercost/edit.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/saleordercost/edit.vue index 87b8f39..caef2fb 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/saleordercost/edit.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/saleordercost/edit.vue @@ -102,18 +102,27 @@ - - + + + + - - - - - - + + + + + + + + + + + @@ -123,18 +132,27 @@ - + - - + + + + - + + + + -