From e0e418f74c2a3278f5c25757d98879e7820ad3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Wed, 1 Apr 2026 16:54:24 +0800 Subject: [PATCH 01/30] =?UTF-8?q?PC=E4=B8=8A=E6=9E=B6=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/InOrderAbnormalImpl.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java index d55be09e2..3280dd2ec 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java @@ -150,7 +150,11 @@ public class InOrderAbnormalImpl extends ServiceImpl inOrderAbnormalList = new ArrayList<>(); for (ShelfMaterialDetail shelfMaterialDetail : shelfMaterialDetailList){ //上架 - if (shelfMaterialDetail.getShelvesQuantity().compareTo(shelfMaterialDetail.getQuantity()) != 0&&shelfMaterialDetail.getLevel() == 1){ + BigDecimal actualShelvesQty = shelfMaterialDetail.getAlreadyShelvesQuantity() != null + ? shelfMaterialDetail.getAlreadyShelvesQuantity() + : (shelfMaterialDetail.getShelvesQuantity() != null ? shelfMaterialDetail.getShelvesQuantity() : BigDecimal.ZERO); + BigDecimal planQty = shelfMaterialDetail.getQuantity() != null ? shelfMaterialDetail.getQuantity() : BigDecimal.ZERO; + if (actualShelvesQty.compareTo(planQty) != 0){ //判断是否存在异常 根据设置的是否允许超收 取值动态赋值 先默认写死 收货异常 InOrderAbnormal inOrderAbnormal = new InOrderAbnormal(); //赋值基础数据 @@ -158,19 +162,19 @@ public class InOrderAbnormalImpl extends ServiceImpl 0){ + if (actualShelvesQty.compareTo(planQty) > 0){ //上架数量大于收货数量 inOrderAbnormal.setAbnormalType(1); - inOrderAbnormal.setActualQuantity(shelfMaterialDetail.getShelvesQuantity()); + inOrderAbnormal.setActualQuantity(actualShelvesQty); inOrderAbnormal.setAbnormalReason("上架数量大于收货数量"); - }else if (shelfMaterialDetail.getAlreadyShelvesQuantity().compareTo(shelfMaterialDetail.getQuantity()) < 0){ + }else if (actualShelvesQty.compareTo(planQty) < 0){ //上架数量小于收货数量 inOrderAbnormal.setAbnormalType(1); - inOrderAbnormal.setActualQuantity(shelfMaterialDetail.getShelvesQuantity()); + inOrderAbnormal.setActualQuantity(actualShelvesQty); inOrderAbnormal.setAbnormalReason("上架数量小于收货数量"); } - inOrderAbnormal.setAllowActualQuantity(shelfMaterialDetail.getQuantity()); - inOrderAbnormal.setAbnormalActualQuantity(shelfMaterialDetail.getShelvesQuantity().subtract(shelfMaterialDetail.getQuantity())); + inOrderAbnormal.setAllowActualQuantity(planQty); + inOrderAbnormal.setAbnormalActualQuantity(actualShelvesQty.subtract(planQty)); inOrderAbnormal.setCreateBy(loginUser.getUserid()); inOrderAbnormal.setCreateByName(userRealName); inOrderAbnormal.setCreateTime(new Date()); From 286072b190c6056060887d841a4f63f434f9cff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 09:41:43 +0800 Subject: [PATCH 02/30] =?UTF-8?q?PDA=E6=8B=A3=E8=B4=A7=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockOutTaskOrder/StockOutTaskOrderApplicationService.java | 3 ++- .../repository/po/TaskPickingMaterialDetailPO.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java index 26a264f2f..4d9b6a9eb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java @@ -251,7 +251,7 @@ public class StockOutTaskOrderApplicationService { } /** - * 为拣货作业单的物料明细填充批次属性、净重、毛重、面积、体积 + * 为拣货作业单的物料明细填充批次属性、净重、毛重、面积、体积、尺寸 */ private void enrichStockOutTaskOrderWithBatchAndWeight(StockOutTaskOrderPO stockOutTaskOrderPO) { if (stockOutTaskOrderPO == null) { @@ -331,6 +331,7 @@ public class StockOutTaskOrderApplicationService { detail.setTotalGrossWeight(pickingDetail.getTotalGrossWeight()); detail.setTotalVolume(pickingDetail.getTotalVolume()); detail.setTotalArea(pickingDetail.getTotalArea()); + detail.setSize(pickingDetail.getSize()); } // 批次属性(根据物料绑定且isDisplay=1动态显示,无值也可展示) Long materialBaseInfoId = detail.getMaterialBaseInfoId(); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java index b3898c980..b3c892afb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/taskPickingMaterialDetail/repository/po/TaskPickingMaterialDetailPO.java @@ -223,4 +223,7 @@ public class TaskPickingMaterialDetailPO extends BaseVOEntity { @ApiModelProperty("总面积(SQM)") private BigDecimal totalArea; + @ApiModelProperty("尺寸") + private String size; + } From 35974b48c7185377744eb0ac57ad76f74987a750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 2 Apr 2026 14:07:46 +0800 Subject: [PATCH 03/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E7=A7=91=E7=9B=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/expenseAccount/entity/ExpenseAccount.java | 8 +++++++- .../expenseAccount/repository/po/ExpenseAccountPO.java | 9 ++++++++- .../expenseAccount/repository/todo/ExpenseAccountDO.java | 9 ++++++++- .../interfaces/dto/expenseAccount/ExpenseAccountDTO.java | 8 +++++++- sql/wkx20260403.sql | 7 +++++++ 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 sql/wkx20260403.sql diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java index f87b2f093..26c82423b 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java @@ -104,7 +104,13 @@ public class ExpenseAccount extends BaseVOEntity{ @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") private Integer fixedOrderDisplay; + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; + @ApiModelProperty("费率") private BigDecimal rate; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java index 79dff992c..dfbd0e340 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java @@ -129,4 +129,11 @@ public class ExpenseAccountPO extends BaseVOEntity{ @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") private Integer fixedOrderDisplay; -} + + + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java index b80ec30cd..1fafefb54 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java @@ -133,6 +133,13 @@ public class ExpenseAccountDO extends BaseVOEntity{ @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") private Integer fixedOrderDisplay; + + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; + @ApiModelProperty(name = "创建者姓名") private String createByName; @@ -146,4 +153,4 @@ public class ExpenseAccountDO extends BaseVOEntity{ @ApiModelProperty(name = "创建者姓名") private String updateByName; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java index 80ef43958..c6fbe3362 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java @@ -132,4 +132,10 @@ public class ExpenseAccountDTO extends BaseVOEntity{ @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") private Integer fixedOrderDisplay; -} + + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; +} \ No newline at end of file diff --git a/sql/wkx20260403.sql b/sql/wkx20260403.sql new file mode 100644 index 000000000..c0b8d6c81 --- /dev/null +++ b/sql/wkx20260403.sql @@ -0,0 +1,7 @@ +ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "in_order_display" INT DEFAULT 0; + +ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "out_order_display" INT; + +COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."in_order_display" IS '入库单是否固定显示 0-否 1-是'; + +COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."out_order_display" IS '出库单是否固定显示 0-否 1-是' \ No newline at end of file From ba5137899f8d07c7dd053464d8363970cb5d2bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 2 Apr 2026 14:22:10 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=AD=97=E6=AE=B5;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExpenseAccountApplicationService.java | 62 ++++++++++++++++++- .../expenseAccount/ExpenseAccountApi.java | 24 ++++++- 2 files changed, 84 insertions(+), 2 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java index 86c222c1f..6b9c350ac 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java @@ -408,6 +408,66 @@ public class ExpenseAccountApplicationService { expenseAccountDO.setUpdateByName(loginUser.getUsername()); return expenseAccountDomainService.update(expenseAccountDO); } + + /** + * 修改创建订单是否固定显示 0-否 1-是 + * @param expenseAccountDTO + * @return + */ + public boolean changeInOrderDisplay(ExpenseAccountDTO expenseAccountDTO) { + //获取登录用户信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + throw new DigitalLogisticsException(UserError.TIMEOUT); + } + //根据id修改启用状态停用状态 + if(expenseAccountDTO.getExpenseAccountId() == null){ + throw new ServiceException("费用科目id不能为空"); + } + if(expenseAccountDTO.getInOrderDisplay() == null){ + throw new ServiceException("状态不能为空"); + } + if(expenseAccountDTO.getInOrderDisplay() != 0 && expenseAccountDTO.getInOrderDisplay()!=1){ + throw new ServiceException("状态错误"); + } + ExpenseAccountDO expenseAccountDO = new ExpenseAccountDO(); + expenseAccountDO.setExpenseAccountId(expenseAccountDTO.getExpenseAccountId()); + expenseAccountDO.setInOrderDisplay(expenseAccountDTO.getInOrderDisplay()); + expenseAccountDO.setUpdateBy(loginUser.getUserid()); + expenseAccountDO.setUpdateTime(new Date()); + expenseAccountDO.setUpdateByName(loginUser.getUsername()); + return expenseAccountDomainService.update(expenseAccountDO); + } + + /** + * 修改创建订单是否固定显示 0-否 1-是 + * @param expenseAccountDTO + * @return + */ + public boolean changeOutOrderDisplay(ExpenseAccountDTO expenseAccountDTO) { + //获取登录用户信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + throw new DigitalLogisticsException(UserError.TIMEOUT); + } + //根据id修改启用状态停用状态 + if(expenseAccountDTO.getExpenseAccountId() == null){ + throw new ServiceException("费用科目id不能为空"); + } + if(expenseAccountDTO.getOutOrderDisplay() == null){ + throw new ServiceException("状态不能为空"); + } + if(expenseAccountDTO.getOutOrderDisplay() != 0 && expenseAccountDTO.getOutOrderDisplay()!=1){ + throw new ServiceException("状态错误"); + } + ExpenseAccountDO expenseAccountDO = new ExpenseAccountDO(); + expenseAccountDO.setExpenseAccountId(expenseAccountDTO.getExpenseAccountId()); + expenseAccountDO.setOutOrderDisplay(expenseAccountDTO.getOutOrderDisplay()); + expenseAccountDO.setUpdateBy(loginUser.getUserid()); + expenseAccountDO.setUpdateTime(new Date()); + expenseAccountDO.setUpdateByName(loginUser.getUsername()); + return expenseAccountDomainService.update(expenseAccountDO); + } /** * 根据编码查询费用科目信息 */ @@ -470,4 +530,4 @@ public class ExpenseAccountApplicationService { public List selectSocialVehicleExpenseAccount(){ return expenseAccountDomainService.selectSocialVehicleExpenseAccount(); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java index 3679d7509..5c39ccc49 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java @@ -271,6 +271,28 @@ public class ExpenseAccountApi extends BaseController{ } } + @ApiOperation("修改创建订单默认显示设置") + @PostMapping("/changeInOrderDisplay") + public AjaxResult changeInOrderDisplay(@RequestBody ExpenseAccountDTO expenseAccountDTO) + { + try { + return toAjax(expenseAccountApplicationService.changeInOrderDisplay(expenseAccountDTO)); + }catch (Exception e){ + return AjaxResult.error(e.getMessage()); + } + } + + @ApiOperation("修改创建订单默认显示设置") + @PostMapping("/changeOutOrderDisplay") + public AjaxResult changeOutOrderDisplay(@RequestBody ExpenseAccountDTO expenseAccountDTO) + { + try { + return toAjax(expenseAccountApplicationService.changeOutOrderDisplay(expenseAccountDTO)); + }catch (Exception e){ + return AjaxResult.error(e.getMessage()); + } + } + @ApiOperation("根据code获取费用科目") @GetMapping(value = "/getInfoByCode") public AjaxResult getInfoByCode(@RequestParam("subjectCode") String subjectCode) @@ -288,4 +310,4 @@ public class ExpenseAccountApi extends BaseController{ } -} +} \ No newline at end of file From 21ae63e78d35f8dda8f95d1d574f9262de697be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 2 Apr 2026 16:03:22 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E5=8D=95=E4=BB=B7;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/po/BillingParamsPO.java | 88 +++++++++++++++++++ .../ContractManageApplicationService.java | 78 ++++++++++++++-- .../mapper/ContractManageDetailMapper.java | 8 +- .../contractManage/SubjectAndPriceDTO.java | 30 +++++++ .../contractManage/ContractManageApi.java | 14 ++- .../basic/ContractManageDetailMapper.xml | 10 ++- sql/wkx20260403.sql | 2 +- 7 files changed, 221 insertions(+), 9 deletions(-) create mode 100644 mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/BillingParamsPO.java create mode 100644 mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceDTO.java diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/BillingParamsPO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/BillingParamsPO.java new file mode 100644 index 000000000..d6bdc843d --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/BillingParamsPO.java @@ -0,0 +1,88 @@ +package com.mhd.common.core.domain.po; + +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 计费参数对象 billing_params + * + * @author gen + * @date 2024-07-12 + */ + +@Data +@ApiModel(value = "计费参数对象", description = "计费参数响应对象") +public class BillingParamsPO extends BaseVOEntity{ + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计费参数id") + private Long billingParamsId; + + @ApiModelProperty("一级组织表ID") + @Excel(name = "一级组织表ID") + private Long topOrganizationId; + + @ApiModelProperty("组织表ID") + @Excel(name = "组织表ID") + private Long organizationId; + + @ApiModelProperty("组织名称") + @Excel(name = "组织名称") + private String organizationName; + + @ApiModelProperty("计费参数表名称") + @Excel(name = "计费参数表名称") + private String billingParamsName; + + @ApiModelProperty("说明") + @Excel(name = "说明") + private String billingIllustrate; + + /** + * { + * "fields":"参与字段", + * "chargingId":"计费标识P1、P2", + * "ladderType":"阶梯类型(1-固定参数,2-无阶梯,3-到达阶梯,4-累进阶梯)", + * "ladderRule":"阶梯规则(1-左开右闭,2-左闭右开)", + * "ladderNum":"阶梯值", + * "sort":"排序" + * } + */ + @ApiModelProperty("计费参数json串") + @Excel(name = "计费参数json串") + private String billingParamsJson; + + /** + *{ + * "outFields":"输出字段", + * "outChargingId":"输出计费标识", + * "fieIdsType":"字段类型(1-整数,2-浮点数,3-时间)", + * "sort":"排序" + * } + */ + @ApiModelProperty("计费参数输出json串") + @Excel(name = "计费参数输出json串") + private String billingOutputJson; + + /** + * { + * "fieIds1":"字段1", + * "fieIds2":"字段2", + * "fieIdsn":"字段N", + * "outFieIds1":"输出字段1", + * "outFieIds2":"输出字段2", + * "outFieIdsn":"输出字段n" + * } + */ + @ApiModelProperty("预置规则json串") + @Excel(name = "预置规则json串") + private String preSetRules; + + @ApiModelProperty("计费规则id") + private Long billingRulesId; + +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 6c4383629..8e696bb0a 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -4,8 +4,11 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mhd.basic.domain.contractManage.entity.ContractManage; +import com.mhd.basic.domain.contractManage.repository.mapper.ContractManageMapper; import com.mhd.basic.domain.contractManage.repository.po.ContractManagePO; import com.mhd.basic.domain.contractManage.repository.todo.ContractManageDO; import com.mhd.basic.domain.contractManage.service.ContractManageDomainService; @@ -17,11 +20,9 @@ import com.mhd.basic.domain.contractManageDetail.service.ContractManageDetailDom import com.mhd.basic.domain.expenseAccount.repository.po.ExpenseAccountPO; import com.mhd.basic.domain.expenseAccount.service.ExpenseAccountDomainService; import com.mhd.basic.interfaces.dto.contractManage.ContractManageDTO; +import com.mhd.basic.interfaces.dto.contractManage.SubjectAndPriceDTO; import com.mhd.basic.interfaces.dto.contractManageDetail.ContractManageDetailDTO; -import com.mhd.common.core.domain.po.BillingRulesPO; -import com.mhd.common.core.domain.po.DocumentTypePO; -import com.mhd.common.core.domain.po.SettlementCustomersPO; -import com.mhd.common.core.domain.po.SysDictDataVo; +import com.mhd.common.core.domain.po.*; import com.mhd.common.core.enums.DictCode; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; @@ -42,6 +43,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestParam; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -63,8 +65,10 @@ public class ContractManageApplicationService { private ExpenseAccountDomainService expenseAccountDomainService; @Autowired private ContractManageDetailDomainService contractManageDetailDomainService; - @Autowired + @Resource private ContractManageDetailMapper contractManageDetailMapper; + @Resource + private ContractManageMapper contractManageMapper; @Autowired private BmsServiceFeign bmsServiceFeign; @@ -125,6 +129,70 @@ public class ContractManageApplicationService { return contractManageDomainService.queryList(contractManageDO); } + public List> getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { + List> result = new ArrayList<>(); + Long settlementCustomersId = contractManageDTO.getSettlementCustomersId(); + Long organizationId = contractManageDTO.getOrganizationId(); + String sunjectCode = contractManageDTO.getSubjectCode(); + Long topOrganizationId = contractManageDTO.getTopOrganizationId(); + List UserContractManages = contractManageMapper.selectList(new LambdaQueryWrapper() + .eq(ContractManage::getSettlementCustomersId, settlementCustomersId) + .eq(ContractManage::getDelFlag, 1) + .eq(ContractManage::getOrganizationId, organizationId) + .eq(ContractManage::getTopOrganizationId, topOrganizationId) + .eq(ContractManage::getCommonContractFlag, 2)); + if (UserContractManages != null && UserContractManages.size() > 0) { + }else{ + List commonContractManages = contractManageMapper.selectList(new LambdaQueryWrapper() + .eq(ContractManage::getDelFlag, 1) + .eq(ContractManage::getOrganizationId, organizationId) + .eq(ContractManage::getTopOrganizationId, topOrganizationId) + .eq(ContractManage::getCommonContractFlag, 1)); + if (commonContractManages != null && commonContractManages.size() > 0) { + ContractManage contractManage = commonContractManages.get(0); + Long contractManageId = contractManage.getContractManageId(); + List contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ContractManageDetail::getContractManageId, contractManageId) + .eq(ContractManageDetail::getDelFlag, 1)); + if (contractManageDetails != null && contractManageDetails.size() > 0) { + for (ContractManageDetail contractManageDetail : contractManageDetails) { + String code = contractManageDetail.getFirstSubjectCode(); + if (sunjectCode.equals(code)) { + Long accountingStrategyId = contractManageDetail.getAccountingStrategyId(); + BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId); + if (billingRule != null) { + Long billingRulesId = billingRule.getBillingRulesId(); + List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); + if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() {}); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + Map stringObjectMap1 = preSetRulesList.get(0); + for (Map stringObjectMap : billingParamsList) { + String fieldsName = (String) stringObjectMap.get("fieldsName"); + if (fieldsName != null && ("装卸费单价".equals(fieldsName) || + "纸箱贴标单价".equals(fieldsName)||"木箱贴标单价".equals(fieldsName) + || "进出仓操作费单价".equals(fieldsName))) { + Map subjectAndPrice = billingParamsList.get(0); + String sort = (String) stringObjectMap.get("sort"); + String price = (String) stringObjectMap1.get("fields" + sort); + subjectAndPrice.put("name", fieldsName); + subjectAndPrice.put("price", price); + result.add(subjectAndPrice); + } + } + } + } + } + } + } + } + } + return result; + } + /** * 新增合同管理 diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/mapper/ContractManageDetailMapper.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/mapper/ContractManageDetailMapper.java index 7f5d46426..d6e1d6e4f 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/mapper/ContractManageDetailMapper.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/mapper/ContractManageDetailMapper.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.basic.domain.contractManageDetail.entity.ContractManageDetail; import com.mhd.basic.domain.contractManageDetail.repository.po.ContractManageDetailPO; import com.mhd.basic.domain.contractManageDetail.repository.todo.ContractManageDetailDO; +import com.mhd.common.core.domain.po.BillingParamsPO; +import com.mhd.common.core.domain.po.BillingRulesPO; import org.apache.ibatis.annotations.Param; /** * 合同管理详情Mapper接口 @@ -20,4 +22,8 @@ public interface ContractManageDetailMapper extends BaseMapper queryList(@Param("contractManageDetailDO") ContractManageDetailDO contractManageDetailDO); List getListByContractManageId(@Param("contractManageId") Long contractManageId); -} + + BillingRulesPO getBillingRules(@Param("id") Long id); + + List getBillingParams(@Param("id") Long id); +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceDTO.java new file mode 100644 index 000000000..f66603d30 --- /dev/null +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceDTO.java @@ -0,0 +1,30 @@ +package com.mhd.basic.interfaces.dto.contractManage; + +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SubjectAndPriceDTO extends BaseVOEntity { + + @ApiModelProperty("一级组织表ID") + @Excel(name = "一级组织表ID") + private Long topOrganizationId; + + @ApiModelProperty("组织表ID") + @Excel(name = "组织表ID") + private Long organizationId; + + @ApiModelProperty("组织名称") + @Excel(name = "组织名称") + private String organizationName; + + @ApiModelProperty("结算主体") + @Excel(name = "结算主体") + private Long settlementCustomersId; + + @ApiModelProperty("价格") + @Excel(name = "价格") + private String subjectCode; +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java index 5f14c644c..e4e7572ca 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java @@ -3,6 +3,7 @@ package com.mhd.basic.interfaces.facade.contractManage; import java.util.List; import com.mhd.basic.interfaces.assember.contractManage.ContractManageAssembler; +import com.mhd.basic.interfaces.dto.contractManage.SubjectAndPriceDTO; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +47,17 @@ public class ContractManageApi extends BaseController{ return getDataTable(list); } + /** + * 获取科目和单价 + */ + @ApiOperation("获取科目和单价") + @GetMapping("/getSubjectAndPrice") + public AjaxResult getSubjectAndPrice(SubjectAndPriceDTO subjectAndPriceDTO) + { + //转换实体 + return AjaxResult.success(contractManageApplicationService.getSubjectAndPrice(subjectAndPriceDTO)); + } + /** * 保存合同管理 */ @@ -146,4 +158,4 @@ public class ContractManageApi extends BaseController{ -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageDetailMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageDetailMapper.xml index 5dbe93f03..50519dd10 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageDetailMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ContractManageDetailMapper.xml @@ -76,4 +76,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE contract_manage_id = #{contractManageId} - + + + + + \ No newline at end of file diff --git a/sql/wkx20260403.sql b/sql/wkx20260403.sql index c0b8d6c81..228c52986 100644 --- a/sql/wkx20260403.sql +++ b/sql/wkx20260403.sql @@ -4,4 +4,4 @@ ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "out_order_display" COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."in_order_display" IS '入库单是否固定显示 0-否 1-是'; -COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."out_order_display" IS '出库单是否固定显示 0-否 1-是' \ No newline at end of file +COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."out_order_display" IS '出库单是否固定显示 0-否 1-是'; \ No newline at end of file From 39541c700550e5a54084c95fb3725fc50dfafd84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 16:15:00 +0800 Subject: [PATCH 06/30] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=8D=95=EF=BC=8C=E6=8C=89=E7=85=A7=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=A7=92=E8=89=B2=E4=B8=BA=E5=BA=93=E7=AE=A1=E6=9D=A5?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=8A=B6=E6=80=81=E4=B8=BA=E5=B7=B2=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockInOrderApplicationService.java | 29 ++++++++++++++++++ .../StockOutOrderApplicationService.java | 30 +++++++++++++++++++ .../stockInOrder/StockInOrderMapper.xml | 4 +-- 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java index c746d8c57..c2cb61e60 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java @@ -125,6 +125,35 @@ public class StockInOrderApplicationService { } } } + + // 库管角色过滤:不展示已创建(status=1)的入库单 + // 说明:部分场景下角色码可能不在 userPo.roleCode 中,而在 loginUser.roles/roleList 中。 + if (loginUser != null) { + String targetRoleCode = "KGY-001"; + boolean isKuGuan = false; + + String roleCode = loginUser.getUserPo() != null ? loginUser.getUserPo().getRoleCode() : null; + if (StringUtils.isNotBlank(roleCode) && roleCode.contains(targetRoleCode)) { + isKuGuan = true; + } + + if (!isKuGuan && loginUser.getRoleList() != null) { + isKuGuan = loginUser.getRoleList().stream() + .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode)); + } + + if (!isKuGuan && loginUser.getRoles() != null) { + isKuGuan = loginUser.getRoles().stream() + .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode)); + } + + if (isKuGuan) { + Integer currentGtStatus = stockInOrderDO.getGtStatus(); + if (currentGtStatus == null || currentGtStatus < 1) { + stockInOrderDO.setGtStatus(1); // status > 1 + } + } + } return stockInOrderDomainService.queryList(stockInOrderDO); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index e30e3e674..e8a6c9633 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -148,6 +148,36 @@ public class StockOutOrderApplicationService { } } } + + // 库管角色过滤:不展示已创建(status=1)的出库单 + // 出库状态: 1-已创建 ... + if (loginUser != null) { + String targetRoleCode = "KGY-001"; + boolean isKuGuan = false; + + String roleCode = loginUser.getUserPo() != null ? loginUser.getUserPo().getRoleCode() : null; + if (StringUtils.isNotBlank(roleCode) && roleCode.contains(targetRoleCode)) { + isKuGuan = true; + } + + if (!isKuGuan && loginUser.getRoleList() != null) { + isKuGuan = loginUser.getRoleList().stream() + .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode)); + } + + if (!isKuGuan && loginUser.getRoles() != null) { + isKuGuan = loginUser.getRoles().stream() + .anyMatch(rc -> StringUtils.isNotBlank(rc) && rc.contains(targetRoleCode)); + } + + if (isKuGuan) { + Integer currentGtStatus = stockOutOrderDO.getGtStatus(); + if (currentGtStatus == null || currentGtStatus < 1) { + stockOutOrderDO.setGtStatus(1); // status > 1 + } + } + } + List stockOutOrderPOS = stockOutOrderDomainService.queryList(stockOutOrderDO); for (StockOutOrderPO stockOutOrderPO : stockOutOrderPOS) { StockOutOrderPO stockOutOrderPO1 = stockOutOrderDomainService.getInfoChildren(stockOutOrderPO.getOutOrderId()); diff --git a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml index 6e75010e5..52620173c 100644 --- a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml @@ -200,10 +200,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.status = #{status} - and a.status < #{status} + and a.status < #{ltStatus} - and a.status > #{status} + and a.status > #{gtStatus} and a.audit_status = #{auditStatus} From ebb3d7c01989390d02f683b72aec97d7e41889da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 2 Apr 2026 16:20:22 +0800 Subject: [PATCH 07/30] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E5=8D=95=E4=BB=B7;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contractManage/ContractManageApplicationService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 8e696bb0a..4fd467487 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -175,11 +175,14 @@ public class ContractManageApplicationService { if (fieldsName != null && ("装卸费单价".equals(fieldsName) || "纸箱贴标单价".equals(fieldsName)||"木箱贴标单价".equals(fieldsName) || "进出仓操作费单价".equals(fieldsName))) { - Map subjectAndPrice = billingParamsList.get(0); - String sort = (String) stringObjectMap.get("sort"); + Map subjectAndPrice = new HashMap<>(); + Integer sort = (Integer) stringObjectMap.get("sort"); + String chargingId = (String) stringObjectMap.get("chargingId"); String price = (String) stringObjectMap1.get("fields" + sort); subjectAndPrice.put("name", fieldsName); subjectAndPrice.put("price", price); + subjectAndPrice.put("chargingId", chargingId); + subjectAndPrice.put("billingRulesId", billingRulesId); result.add(subjectAndPrice); } } From 4541ce287b4099b9bf6ee01bac40c6476a3bc131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 16:42:35 +0800 Subject: [PATCH 08/30] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86=E6=89=B9=E6=AC=A1=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E5=8F=AF=E4=BB=A5=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialBaseInfoApplicationService.java | 25 +++++++++++++++++++ .../MaterialGoodsRuleDomainService.java | 8 +++--- .../materialBaseInfo/MaterialBaseInfoApi.java | 8 ++++-- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index 128248c22..f1b726cac 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -45,6 +45,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -207,6 +208,30 @@ public class MaterialBaseInfoApplicationService { */ @Transactional(rollbackFor = Exception.class) public Boolean insert(MaterialBaseInfoDO materialBaseInfoDO) { + // 新增时如果前端未传 organizationName,则使用当前登录用户的组织名称补齐 + if (materialBaseInfoDO != null && StringUtils.isBlank(materialBaseInfoDO.getOrganizationName())) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null + && StringUtils.isNotBlank(loginUser.getUserPo().getOrganizationName())) { + materialBaseInfoDO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); + } + } + // 新增时如果前端未传创建人/创建时间,则使用当前登录用户补齐 + if (materialBaseInfoDO != null + && (materialBaseInfoDO.getCreateBy() == null || materialBaseInfoDO.getCreateTime() == null)) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + if (materialBaseInfoDO.getCreateBy() == null) { + materialBaseInfoDO.setCreateBy(loginUser.getUserid()); + } + if (StringUtils.isBlank(materialBaseInfoDO.getCreateByName())) { + materialBaseInfoDO.setCreateByName(loginUser.getUsername()); + } + if (materialBaseInfoDO.getCreateTime() == null) { + materialBaseInfoDO.setCreateTime(new Date()); + } + } + } Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO); materialBaseInfoDO.setMaterialBaseInfoId(materialBaseInfoId); //商品规则 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/service/MaterialGoodsRuleDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/service/MaterialGoodsRuleDomainService.java index 5002bdd30..19861fe89 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/service/MaterialGoodsRuleDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialGoodsRule/service/MaterialGoodsRuleDomainService.java @@ -111,10 +111,12 @@ public class MaterialGoodsRuleDomainService { * @param materialGoodsRuleDO */ private void batchParam(MaterialGoodsRuleDO materialGoodsRuleDO){ - if (ObjectUtil.isNull(materialGoodsRuleDO.getBatchId())){ - throw new ServiceException("批次信息不能为空"); + // 批次信息允许为空:batchId 为空时不做封装,直接跳过即可 + Long batchId = materialGoodsRuleDO.getBatchId(); + if (ObjectUtil.isNull(batchId) || batchId <= 0) { + return; } - AjaxResult ajaxResult = systemServiceFeign.getBatchInfoByBatchId(materialGoodsRuleDO.getBatchId()); + AjaxResult ajaxResult = systemServiceFeign.getBatchInfoByBatchId(batchId); if(!"200".equals(String.valueOf(ajaxResult.get("code")))){ throw new ServiceException("获取批次信息失败"); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java index 763fb455a..1a50ac6ce 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java @@ -1,6 +1,7 @@ package com.mhd.wms.interfaces.facadeApi.materialBaseInfo; import com.mhd.common.core.domain.entity.R; +import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; @@ -54,11 +55,14 @@ public class MaterialBaseInfoApi extends BaseController { @PostMapping("/edit") public AjaxResult edit(@RequestBody MaterialBaseInfoFeign materialBaseInfoDTO) { + if (materialBaseInfoDTO == null) { + throw new ServiceException("请求参数不能为空"); + } //转换实体 MaterialBaseInfoDO materialBaseInfoDO = materialBaseInfoAssembler.toDO2(materialBaseInfoDTO); - if(1 == materialBaseInfoDTO.getUpdateFeign()){ + if (Integer.valueOf(1).equals(materialBaseInfoDTO.getUpdateFeign())) { return toAjax(materialBaseInfoApplicationService.update(materialBaseInfoDO)); - }else { + } else { return toAjax(materialBaseInfoApplicationService.insert(materialBaseInfoDO)); } } From 92d252cbe0c2992327a1ff04a4792fc55c0fd6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Thu, 2 Apr 2026 17:29:18 +0800 Subject: [PATCH 09/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E7=A7=91=E7=9B=AE?= =?UTF-8?q?=E6=8C=89=E6=98=AF=E5=90=A6=E5=87=BA=E5=85=A5=E5=BA=93=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9F=A5=E8=AF=A2=E5=8F=8A=E8=B4=B9=E7=94=A8=E8=A1=A8?= =?UTF-8?q?;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/basic/ExpenseAccountMapper.xml | 8 +- .../entity/ReceiptOrderAccount.java | 99 +++++++++++++++++++ .../facade/IReceiptOrderAccountService.java | 9 ++ .../mapper/ReceiptOrderAccountMapper.java | 8 ++ .../ReceiptOrderAccountServiceImpl.java | 9 ++ .../ReceiptOrderAccountMapper.xml | 7 ++ 6 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/facade/IReceiptOrderAccountService.java create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/mapper/ReceiptOrderAccountMapper.java create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/persistence/ReceiptOrderAccountServiceImpl.java create mode 100644 mhd_wms/src/main/resources/mapper/receiptOrderAccount/ReceiptOrderAccountMapper.xml diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml index 88cf0987e..2cb7e8fc9 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml @@ -223,6 +223,12 @@ and a.fixed_order_display = #{expenseAccountDO.fixedOrderDisplay} + + and a.in_order_display = #{expenseAccountDO.inOrderDisplay} + + + and a.out_order_display = #{expenseAccountDO.outOrderDisplay} + - + \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java new file mode 100644 index 000000000..98a521ef6 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java @@ -0,0 +1,99 @@ +package com.mhd.wms.domain.receiptOrderAccount.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + + +@Data +public class ReceiptOrderAccount extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ID_WORKER_STR) + private String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + @Excel(name = "创建人", width = 15) + private String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + @Excel(name = "创建日期", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + @Excel(name = "更新人", width = 15) + private String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + @Excel(name = "更新日期", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + @Excel(name = "所属部门", width = 15) + private String sysOrgCode; + /**删除标识*/ + @ApiModelProperty(value = "删除标识") + @Excel(name = "删除标识", width = 15) + private Integer isDelete; + /**所属组织*/ + @ApiModelProperty(value = "所属组织") + @Excel(name = "所属组织", width = 15) + private String orgName; + /**组织ID*/ + @ApiModelProperty(value = "组织ID") + @Excel(name = "组织ID", width = 15) + private Long organizationId; + /**一级组织ID*/ + @ApiModelProperty(value = "一级组织ID") + @Excel(name = "一级组织ID", width = 15) + private Long topOrganizationId; + /**组织名称*/ + @ApiModelProperty(value = "组织名称") + @Excel(name = "组织名称", width = 15) + private String organizationName; + /**订单id*/ + @ApiModelProperty(value = "订单id") + @Excel(name = "订单id", width = 15) + private String orderId; + /**科目id*/ + @ApiModelProperty(value = "科目id") + @Excel(name = "科目id", width = 15) + private Long accountId; + /**科目收支类型(1-应收,2-应付*/ + @ApiModelProperty(value = "科目收支类型(1-应收,2-应付") + @Excel(name = "科目收支类型(1-应收,2-应付", width = 15) + private Long accountType; + /**科目编码*/ + @ApiModelProperty(value = "科目编码") + @Excel(name = "科目编码", width = 15) + private String subjectCode; + /**科目名称*/ + @ApiModelProperty(value = "科目名称") + @Excel(name = "科目名称", width = 15) + private String subjectName; + /**科目费率*/ + @ApiModelProperty(value = "科目费率") + @Excel(name = "科目费率", width = 15) + private BigDecimal rate; + + /**金额*/ + @ApiModelProperty(value = "金额") + @Excel(name = "金额", width = 15) + private BigDecimal amount; + @ApiModelProperty(value = "金额") + @Excel(name = "金额", width = 15) + private BigDecimal settlementAmount; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/facade/IReceiptOrderAccountService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/facade/IReceiptOrderAccountService.java new file mode 100644 index 000000000..85e18aa44 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/facade/IReceiptOrderAccountService.java @@ -0,0 +1,9 @@ +package com.mhd.wms.domain.receiptOrderAccount.repository.facade; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; + +public interface IReceiptOrderAccountService extends IService +{ + +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/mapper/ReceiptOrderAccountMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/mapper/ReceiptOrderAccountMapper.java new file mode 100644 index 000000000..5a7cddde1 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/mapper/ReceiptOrderAccountMapper.java @@ -0,0 +1,8 @@ +package com.mhd.wms.domain.receiptOrderAccount.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; + +public interface ReceiptOrderAccountMapper extends BaseMapper +{ +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/persistence/ReceiptOrderAccountServiceImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/persistence/ReceiptOrderAccountServiceImpl.java new file mode 100644 index 000000000..e797143f1 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/repository/persistence/ReceiptOrderAccountServiceImpl.java @@ -0,0 +1,9 @@ +package com.mhd.wms.domain.receiptOrderAccount.repository.persistence; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; +import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; +import com.mhd.wms.domain.receiptOrderAccount.repository.mapper.ReceiptOrderAccountMapper; + +public class ReceiptOrderAccountServiceImpl extends ServiceImpl implements IReceiptOrderAccountService { +} \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/receiptOrderAccount/ReceiptOrderAccountMapper.xml b/mhd_wms/src/main/resources/mapper/receiptOrderAccount/ReceiptOrderAccountMapper.xml new file mode 100644 index 000000000..e72dab535 --- /dev/null +++ b/mhd_wms/src/main/resources/mapper/receiptOrderAccount/ReceiptOrderAccountMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file From 7c314a796f178b6a1912e092bf695d9aece9f01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 17:57:02 +0800 Subject: [PATCH 10/30] =?UTF-8?q?=E4=B8=8A=E6=9E=B6=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E9=BB=98=E8=AE=A4=E4=BF=AE=E6=94=B9=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockShelfOrderDomainService.java | 5 +++++ .../materialInventory/MaterialInventoryApi.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java index 24f9e1c0e..bad4ab18d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java @@ -728,6 +728,11 @@ public class StockShelfOrderDomainService { materialInventory.setCreateByName(loginUser.getUsername()); materialInventory.setCreateTime(new Date()); + // 新增库存时同步更新时间(update_time) + materialInventory.setUpdateBy(loginUser.getUserid()); + materialInventory.setUpdateByName(loginUser.getUsername()); + materialInventory.setUpdateTime(new Date()); + //体积 重量等 materialInventory.setVolume(shelfMaterialDetail.getTotalVolume()); materialInventory.setArea(shelfMaterialDetail.getTotalArea()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java index 5b110472b..ab891ebbb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/materialInventory/MaterialInventoryApi.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Date; import java.util.List; /** @@ -79,6 +80,15 @@ public class MaterialInventoryApi extends BaseController { startPage(); // 使用带批次属性的查询方法,批次属性值从库存表中获取 List list = materialInventoryApplicationService.queryListWithBatchAttributes(materialInventoryDO); + // 按更新时间倒序排序;update_time 为空的数据放最后 + list.sort((o1, o2) -> { + Date t1 = o1.getUpdateTime(); + Date t2 = o2.getUpdateTime(); + if (t1 == null && t2 == null) return 0; + if (t1 == null) return 1; + if (t2 == null) return -1; + return t2.compareTo(t1); // desc + }); TableDataInfo tableDataInfo = getDataTable(list); // 如果查询结果为空,抛出异常提示用户该物料在库存中不存在 // if (tableDataInfo.getTotal() == 0) { @@ -136,6 +146,11 @@ public class MaterialInventoryApi extends BaseController { if(materialInventoryDTO.getMaterialInventoryId() != null){ return toAjax(materialInventoryApplicationService.update(materialInventoryDO)); }else { + // 新增时补齐更新时间(update_time),避免新增数据 update_time 为空 + materialInventoryDO.setUpdateTime(new Date()); + // update_by/update_by_name 与 create_by/create_by_name 保持一致 + materialInventoryDO.setUpdateBy(materialInventoryDO.getCreateBy()); + materialInventoryDO.setUpdateByName(materialInventoryDO.getCreateByName()); return toAjax(materialInventoryApplicationService.insert(materialInventoryDO)); } } From 4977991974e91610f8f232fdd1c943a6a028c3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 17:59:55 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=BA=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../receiptOrderAccount/entity/ReceiptOrderAccount.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java index 98a521ef6..376d669d8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java @@ -23,7 +23,7 @@ public class ReceiptOrderAccount extends BaseVOEntity { /**创建人*/ @ApiModelProperty(value = "创建人") @Excel(name = "创建人", width = 15) - private String createBy; + private Long createBy; /**创建日期*/ @ApiModelProperty(value = "创建日期") @Excel(name = "创建日期", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") @@ -33,7 +33,7 @@ public class ReceiptOrderAccount extends BaseVOEntity { /**更新人*/ @ApiModelProperty(value = "更新人") @Excel(name = "更新人", width = 15) - private String updateBy; + private Long updateBy; /**更新日期*/ @ApiModelProperty(value = "更新日期") @Excel(name = "更新日期", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") From 571c41f6fe25f6634e7a8cdd6e24fe46d4fae9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Thu, 2 Apr 2026 18:21:56 +0800 Subject: [PATCH 12/30] =?UTF-8?q?=E6=8B=A3=E8=B4=A7=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/pickingOrder/PickingOrderApplicationService.java | 5 +++++ .../pickingMaterialDetail/entity/PickingMaterialDetail.java | 2 ++ .../repository/persistence/PickingMaterialDetailImpl.java | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index 3c8b951bc..61a041c6c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -619,6 +619,11 @@ public class PickingOrderApplicationService { PickingMaterialDetailDO returnPickingMaterialDetailDO = new PickingMaterialDetailDO(); BeanUtils.copyProperties(pickingMaterialDetailPO, returnPickingMaterialDetailDO); returnPickingMaterialDetailDO.setActualQuantity(pickingMaterialDetailDO.getActualQuantity()); + + // 尺寸:优先使用前端传递的值(允许拣货确认时修改);否则沿用数据库值 + if (StringUtils.isNotBlank(pickingMaterialDetailDO.getSize())) { + returnPickingMaterialDetailDO.setSize(pickingMaterialDetailDO.getSize()); + } // 毛重、净重、面积、体积:如果前端传递了值,使用前端传递的值(允许修改);否则从出库单明细中自动带出 Long outUniqueId = pickingMaterialDetailPO.getOutUniqueId(); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/entity/PickingMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/entity/PickingMaterialDetail.java index 4c31bee62..3c3e45980 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/entity/PickingMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/entity/PickingMaterialDetail.java @@ -272,9 +272,11 @@ public class PickingMaterialDetail extends BaseVOEntity { @ApiModelProperty("装卸费") @Excel(name = "装卸费") + @TableField(exist = false) private BigDecimal loadUnloadFee; @ApiModelProperty("贴标费") @Excel(name = "贴标费") + @TableField(exist = false) private BigDecimal stickerFee; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java index 3bc65d402..33b650bfc 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingMaterialDetail/repository/persistence/PickingMaterialDetailImpl.java @@ -165,6 +165,10 @@ public class PickingMaterialDetailImpl extends ServiceImpl Date: Fri, 3 Apr 2026 09:11:16 +0800 Subject: [PATCH 13/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mhd-modules/mhd-system/pom.xml | 9 ++- .../ContractManageApplicationService.java | 63 +++++++++++++++++-- .../BillingParamsDetailDTO.java | 36 +++++++++++ .../DynamicCalculationUtil.java | 41 ++++++++++++ .../contractManage/SubjectAndPriceReturn.java | 15 +++++ .../contractManage/ContractManageApi.java | 12 ++++ 6 files changed, 168 insertions(+), 8 deletions(-) create mode 100644 mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/BillingParamsDetailDTO.java create mode 100644 mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/DynamicCalculationUtil.java create mode 100644 mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceReturn.java diff --git a/mhd-modules/mhd-system/pom.xml b/mhd-modules/mhd-system/pom.xml index b58151899..0105f9288 100644 --- a/mhd-modules/mhd-system/pom.xml +++ b/mhd-modules/mhd-system/pom.xml @@ -104,7 +104,12 @@ org.springframework.boot spring-boot-starter-websocket - + + + jep + jep + 2.24 + @@ -163,4 +168,4 @@ - + \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 4fd467487..d9ea39ff7 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -19,8 +19,7 @@ import com.mhd.basic.domain.contractManageDetail.repository.todo.ContractManageD import com.mhd.basic.domain.contractManageDetail.service.ContractManageDetailDomainService; import com.mhd.basic.domain.expenseAccount.repository.po.ExpenseAccountPO; import com.mhd.basic.domain.expenseAccount.service.ExpenseAccountDomainService; -import com.mhd.basic.interfaces.dto.contractManage.ContractManageDTO; -import com.mhd.basic.interfaces.dto.contractManage.SubjectAndPriceDTO; +import com.mhd.basic.interfaces.dto.contractManage.*; import com.mhd.basic.interfaces.dto.contractManageDetail.ContractManageDetailDTO; import com.mhd.common.core.domain.po.*; import com.mhd.common.core.enums.DictCode; @@ -44,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -129,6 +129,54 @@ public class ContractManageApplicationService { return contractManageDomainService.queryList(contractManageDO); } + public BigDecimal getAmount(List subjectAndPriceReturnList) { + if (subjectAndPriceReturnList == null || subjectAndPriceReturnList.size() == 1) { + SubjectAndPriceReturn subjectAndPriceReturn = subjectAndPriceReturnList.get(0); + Long billingRulesId = subjectAndPriceReturn.getBillingRulesId(); + String name = subjectAndPriceReturn.getName(); + BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId); + List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); + if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() { + }); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() { + }); + if (billingParamsList != null && billingParamsList.size() ==2) { + Map targetMap = billingParamsList.stream() + .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 + .findFirst() // 取第一个 + .orElse(null); // 没找到返回null + String chargingId = (String) targetMap.get("chargingId"); + Integer sort = (Integer) targetMap.get("sort"); + Map reles = preSetRulesList.get(0); + String price = (String) reles.get("fields"+sort); + String billingFormula = billingRule.getBillingFormula(); + billingFormula.replace(chargingId, price); + //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); + //将计费参数实体分成两组,即:固定参数和条件参数 + List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + if (ladderParamsEntityList != null && ladderParamsEntityList.size() > 0) { + if (subjectAndPriceReturn.getNum() != null) { + for (BillingParamsDetailDTO ladderParamsEntity : ladderParamsEntityList) { + Integer sort1 = ladderParamsEntity.getSort(); + billingFormula.replace("fields"+sort1, subjectAndPriceReturn.getNum().toEngineeringString()); + } + } + } + return DynamicCalculationUtil.calculate(billingFormula); + } else { + + } + } + } + return null; + } + public List> getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { List> result = new ArrayList<>(); Long settlementCustomersId = contractManageDTO.getSettlementCustomersId(); @@ -178,11 +226,14 @@ public class ContractManageApplicationService { Map subjectAndPrice = new HashMap<>(); Integer sort = (Integer) stringObjectMap.get("sort"); String chargingId = (String) stringObjectMap.get("chargingId"); + String fields = (String) stringObjectMap.get("fields"); String price = (String) stringObjectMap1.get("fields" + sort); - subjectAndPrice.put("name", fieldsName); - subjectAndPrice.put("price", price); - subjectAndPrice.put("chargingId", chargingId); - subjectAndPrice.put("billingRulesId", billingRulesId); + SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn(); + subjectAndPriceReturn.setName(fieldsName); + subjectAndPriceReturn.setPrice(new BigDecimal(price)); + subjectAndPriceReturn.setChargingId(chargingId); + subjectAndPriceReturn.setFields(fields); + subjectAndPriceReturn.setBillingRulesId(billingRulesId); result.add(subjectAndPrice); } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/BillingParamsDetailDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/BillingParamsDetailDTO.java new file mode 100644 index 000000000..124fb3102 --- /dev/null +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/BillingParamsDetailDTO.java @@ -0,0 +1,36 @@ +package com.mhd.basic.interfaces.dto.contractManage; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 计费参数json实体 + */ + +@Data +public class BillingParamsDetailDTO { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("字段名称") + private String fields; + + @ApiModelProperty("计费标识P1、P2") + private String chargingId; + + @ApiModelProperty("阶梯类型(1-固定参数,2-无阶梯,3-到达阶梯,4-累进阶梯)") + private Integer ladderType; + + @ApiModelProperty("1-左开右闭,2-左闭右开") + private Integer ladderRule; + + @ApiModelProperty("阶梯值") + private String ladderNum; + + @ApiModelProperty("标志值") + private String flagValue; + + @ApiModelProperty("排序") + private Integer sort; + +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/DynamicCalculationUtil.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/DynamicCalculationUtil.java new file mode 100644 index 000000000..bd660f743 --- /dev/null +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/DynamicCalculationUtil.java @@ -0,0 +1,41 @@ +package com.mhd.basic.interfaces.dto.contractManage; + + + +import lombok.extern.slf4j.Slf4j; +import org.nfunk.jep.JEP; + +import java.math.BigDecimal; + +/** + * JEP动态计算 + **/ +@Slf4j +public class DynamicCalculationUtil { + + + /** + * 动态计算 + * @param formula 计算公式 + * @return 计算结果 + */ + public static BigDecimal calculate(String formula) { + try { + + // 创建 JEP 实例 + JEP jep = new JEP(); + // 设置要计算的表达式 + jep.parseExpression(formula); + // 计算表达式的结果 + double result = jep.getValue(); + // 将结果转换为 BigDecimal + return new BigDecimal(result); + } catch (Exception e) { + // 处理可能的异常 + log.error("动态计算失败:"+e.getMessage()); + } + return BigDecimal.ZERO; + } + + +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceReturn.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceReturn.java new file mode 100644 index 000000000..3becb1cd5 --- /dev/null +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/SubjectAndPriceReturn.java @@ -0,0 +1,15 @@ +package com.mhd.basic.interfaces.dto.contractManage; + +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class SubjectAndPriceReturn { + + private String name; + private BigDecimal price; + private String chargingId; + private Long billingRulesId; + private String fields; + private BigDecimal num; +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java index e4e7572ca..4f26e2e60 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java @@ -4,6 +4,7 @@ import java.util.List; import com.mhd.basic.interfaces.assember.contractManage.ContractManageAssembler; import com.mhd.basic.interfaces.dto.contractManage.SubjectAndPriceDTO; +import com.mhd.basic.interfaces.dto.contractManage.SubjectAndPriceReturn; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +59,17 @@ public class ContractManageApi extends BaseController{ return AjaxResult.success(contractManageApplicationService.getSubjectAndPrice(subjectAndPriceDTO)); } + /** + * 获取科目和单价 + */ + @ApiOperation("获取科目和单价") + @PostMapping("/getAmount") + public AjaxResult getAmount(@RequestBody List subjectAndPriceReturnList) + { + //转换实体 + return AjaxResult.success(contractManageApplicationService.getAmount(subjectAndPriceReturnList)); + } + /** * 保存合同管理 */ From 11bca1f681f014e457a9d756333c011987956226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:26:26 +0800 Subject: [PATCH 14/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractManageApplicationService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index d9ea39ff7..6aca3f343 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -160,11 +160,13 @@ public class ContractManageApplicationService { //将计费参数实体分成两组,即:固定参数和条件参数 List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); - if (ladderParamsEntityList != null && ladderParamsEntityList.size() > 0) { + if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) { if (subjectAndPriceReturn.getNum() != null) { - for (BillingParamsDetailDTO ladderParamsEntity : ladderParamsEntityList) { - Integer sort1 = ladderParamsEntity.getSort(); - billingFormula.replace("fields"+sort1, subjectAndPriceReturn.getNum().toEngineeringString()); + for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) { + String chargingId1 = ladderParamsEntity.getChargingId(); + if (chargingId1 != chargingId) { + billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); + } } } } From e5fa261edae3507a0f0d66b935a89bee772cac6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:32:58 +0800 Subject: [PATCH 15/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contractManage/ContractManageApplicationService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 6aca3f343..21498be71 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -154,7 +154,7 @@ public class ContractManageApplicationService { Map reles = preSetRulesList.get(0); String price = (String) reles.get("fields"+sort); String billingFormula = billingRule.getBillingFormula(); - billingFormula.replace(chargingId, price); + billingFormula = billingFormula.replace(chargingId, price); //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); //将计费参数实体分成两组,即:固定参数和条件参数 @@ -165,7 +165,7 @@ public class ContractManageApplicationService { for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) { String chargingId1 = ladderParamsEntity.getChargingId(); if (chargingId1 != chargingId) { - billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); + billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); } } } From b34bb5ce36e284689e3e836f8de648602863fe35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:37:03 +0800 Subject: [PATCH 16/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contractManage/ContractManageApplicationService.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index 21498be71..deba0d3f3 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -179,8 +179,8 @@ public class ContractManageApplicationService { return null; } - public List> getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { - List> result = new ArrayList<>(); + public List getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { + List result = new ArrayList<>(); Long settlementCustomersId = contractManageDTO.getSettlementCustomersId(); Long organizationId = contractManageDTO.getOrganizationId(); String sunjectCode = contractManageDTO.getSubjectCode(); @@ -225,7 +225,6 @@ public class ContractManageApplicationService { if (fieldsName != null && ("装卸费单价".equals(fieldsName) || "纸箱贴标单价".equals(fieldsName)||"木箱贴标单价".equals(fieldsName) || "进出仓操作费单价".equals(fieldsName))) { - Map subjectAndPrice = new HashMap<>(); Integer sort = (Integer) stringObjectMap.get("sort"); String chargingId = (String) stringObjectMap.get("chargingId"); String fields = (String) stringObjectMap.get("fields"); @@ -236,7 +235,7 @@ public class ContractManageApplicationService { subjectAndPriceReturn.setChargingId(chargingId); subjectAndPriceReturn.setFields(fields); subjectAndPriceReturn.setBillingRulesId(billingRulesId); - result.add(subjectAndPrice); + result.add(subjectAndPriceReturn); } } } From 9210f4950056bb46cc1e2f62e46833a7db97500f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:50:17 +0800 Subject: [PATCH 17/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractManageApplicationService.java | 80 ++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index deba0d3f3..a3f88d184 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -175,8 +175,86 @@ public class ContractManageApplicationService { } } + } else { + for (SubjectAndPriceReturn subjectAndPriceReturn : subjectAndPriceReturnList) { + Long billingRulesId = subjectAndPriceReturn.getBillingRulesId(); + String name = subjectAndPriceReturn.getName(); + BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId); + List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); + if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() { + }); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() { + }); + if (billingParamsList != null && billingParamsList.size() ==2) { + Map targetMap = billingParamsList.stream() + .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 + .findFirst() // 取第一个 + .orElse(null); // 没找到返回null + String chargingId = (String) targetMap.get("chargingId"); + Integer sort = (Integer) targetMap.get("sort"); + Map reles = preSetRulesList.get(0); + String price = (String) reles.get("fields"+sort); + String billingFormula = billingRule.getBillingFormula(); + billingFormula = billingFormula.replace(chargingId, price); + //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); + //将计费参数实体分成两组,即:固定参数和条件参数 + List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) { + if (subjectAndPriceReturn.getNum() != null) { + for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) { + String chargingId1 = ladderParamsEntity.getChargingId(); + if (chargingId1 != chargingId) { + billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); + } + } + } + } + return DynamicCalculationUtil.calculate(billingFormula); + } else { + Map targetMap = billingParamsList.stream() + .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 + .findFirst() // 取第一个 + .orElse(null); // 没找到返回null + String chargingId = (String) targetMap.get("chargingId"); + Integer sort = (Integer) targetMap.get("sort"); + Map reles = preSetRulesList.get(0); + String price = (String) reles.get("fields"+sort); + String billingFormula = billingRule.getBillingFormula(); + billingFormula = billingFormula.replace(chargingId, price); + //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); + //将计费参数实体分成两组,即:固定参数和条件参数 + List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); + if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) { + if (subjectAndPriceReturn.getNum() != null) { + for (Map ladderParamsEntity : billingParamsList) { + String chargingId1 = (String) ladderParamsEntity.get("chargingId"); + String fieldsName = (String) ladderParamsEntity.get("fieldsName"); + if ("纸箱贴标单价".equals(name)) { + if ("纸箱数量".equals(fieldsName)) { + billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); + } + } else if ("木箱贴标单价".equals(name)){ + if ("木箱数量".equals(fieldsName)) { + billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); + } + } + } + } + } + return DynamicCalculationUtil.calculate(billingFormula); + } + } + } } - return null; + return BigDecimal.ZERO; } public List getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { From fb0de024f8fdffeaba7eef646c55fb58af0d2fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 09:56:49 +0800 Subject: [PATCH 18/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractManageApplicationService.java | 35 ++++--------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index a3f88d184..816feef03 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -176,6 +176,10 @@ public class ContractManageApplicationService { } } } else { + SubjectAndPriceReturn aReturn = subjectAndPriceReturnList.get(0); + Long id = aReturn.getBillingRulesId(); + BillingRulesPO Rule = contractManageDetailMapper.getBillingRules(id); + String billingFormula = Rule.getBillingFormula(); for (SubjectAndPriceReturn subjectAndPriceReturn : subjectAndPriceReturnList) { Long billingRulesId = subjectAndPriceReturn.getBillingRulesId(); String name = subjectAndPriceReturn.getName(); @@ -190,32 +194,6 @@ public class ContractManageApplicationService { List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() { }); if (billingParamsList != null && billingParamsList.size() ==2) { - Map targetMap = billingParamsList.stream() - .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 - .findFirst() // 取第一个 - .orElse(null); // 没找到返回null - String chargingId = (String) targetMap.get("chargingId"); - Integer sort = (Integer) targetMap.get("sort"); - Map reles = preSetRulesList.get(0); - String price = (String) reles.get("fields"+sort); - String billingFormula = billingRule.getBillingFormula(); - billingFormula = billingFormula.replace(chargingId, price); - //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 - List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); - //将计费参数实体分成两组,即:固定参数和条件参数 - List fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); - List ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList()); - if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) { - if (subjectAndPriceReturn.getNum() != null) { - for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) { - String chargingId1 = ladderParamsEntity.getChargingId(); - if (chargingId1 != chargingId) { - billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString()); - } - } - } - } - return DynamicCalculationUtil.calculate(billingFormula); } else { Map targetMap = billingParamsList.stream() .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件 @@ -225,7 +203,7 @@ public class ContractManageApplicationService { Integer sort = (Integer) targetMap.get("sort"); Map reles = preSetRulesList.get(0); String price = (String) reles.get("fields"+sort); - String billingFormula = billingRule.getBillingFormula(); + //String billingFormula = billingRule.getBillingFormula(); billingFormula = billingFormula.replace(chargingId, price); //需要判断阶梯类型进行获取各计费标志的取值,拼接公式 List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class); @@ -249,10 +227,11 @@ public class ContractManageApplicationService { } } } - return DynamicCalculationUtil.calculate(billingFormula); + } } } + return DynamicCalculationUtil.calculate(billingFormula); } return BigDecimal.ZERO; } From b1f304bc54cef1a627803c5a9ab42b6ee782acdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 13:50:51 +0800 Subject: [PATCH 19/30] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/dto/BusinessDataPushDTO.java | 5 +- .../BusinessDocumentApplicationService.java | 48 ++++++++++ .../facadeApi/BusinessDocumentApi.java | 19 ++++ .../entity/ReceiptOrderAccount.java | 18 +++- .../repository/todo/StockReceiptOrderDO.java | 5 +- .../StockReceiptOrderDomainService.java | 92 +++++++++++++++++-- .../StockReceiptOrderDTO.java | 6 +- 7 files changed, 181 insertions(+), 12 deletions(-) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java index ee1ab9eb8..53cf4418e 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java @@ -48,6 +48,9 @@ public class BusinessDataPushDTO{ @ApiModelProperty("账单金额") private BigDecimal billAmount; + @ApiModelProperty("预计费金额") + private BigDecimal estimatedCost; + @ApiModelProperty("费用科目") @NotBlank(message = "费用科目不能为空") private String secondSubjectCode; @@ -81,4 +84,4 @@ public class BusinessDataPushDTO{ private String salesmanId; @ApiModelProperty("业务员名称") private String salesmanName; -} +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java index 37c00a276..c48aaa3d3 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java @@ -997,4 +997,52 @@ public class BusinessDocumentApplicationService { this.auditByIdsBySystem(businessDocumentDTO); return true; } + + @Transactional(rollbackFor = Exception.class) + public Boolean wholeRentSynchronizationZXF(BusinessDocumentDO businessDocumentDO) { + log.info("定时任务进入BMS业务单据保存--开始"); + //根据结算主题id查询 结算对象编码 + Long settlementEntityId = businessDocumentDO.getSettlementEntityId(); + List settlementCustomersList = settlementCustomersService.list(new LambdaQueryWrapper() + .eq(SettlementCustomers::getSettlementEntityId, settlementEntityId) + .eq(SettlementCustomers::getDelFlag, 1) + ); + if (settlementCustomersList != null && settlementCustomersList.size() > 0) { + businessDocumentDO.setSettlementCustomersCode(settlementCustomersList.get(0).getSettlementCustomersCode()); + }else { + return false; + } + //校验使用的表单是否必填校验 + //checkDoucumentType(businessDocumentDO); + //处理数据 + handleDate(businessDocumentDO); + businessDocumentDO.setDataSources(1); + businessDocumentDO.setCreateTime(new Date()); + businessDocumentDO.setCreateByName("system"); + businessDocumentDO.setBusinessFlow(OrderSequence.getOrderCode("LS")); + businessDocumentDO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId()); + businessDocumentDO.setOrganizationId(businessDocumentDO.getOrganizationId()); + businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName()); + //调用费用计算,计算费用金额进行保存 +// CostCalculationDTO costCalculationDTO = new CostCalculationDTO(); +// costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); +// costCalculationDTO.setContractNumber(businessDocumentDO.getContractNumber()); +// costCalculationDTO.setFormJson(businessDocumentDO.getDocumentFormJson()); +// costCalculationDTO.setSubjectCode(StringUtils.isEmpty(businessDocumentDO.getSecondSubjectCode()) ? businessDocumentDO.getFirstSubjectCode():businessDocumentDO.getSecondSubjectCode()); +// costCalculationDTO.setDocumentTypeCode(businessDocumentDO.getDocumentTypeCode()); +// costCalculationDTO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId()); +// costCalculationDTO.setOrganizationId(businessDocumentDO.getOrganizationId()); +// costCalculationDTO.setOrganizationName(businessDocumentDO.getOrganizationName()); +// BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO); +// businessDocumentDO.setEstimatedCost(billingCostPo.getComputationalCost()); +// businessDocumentDO.setBillAmount(billingCostPo.getComputationalCost());//计费金额与计算金额一致 + log.info("定时任务进入BMS业务单据保存--结束"); + BusinessDocument businessDocument = businessDocumentDomainService.insertRetrun(businessDocumentDO); + BusinessDocumentDTO businessDocumentDTO = new BusinessDocumentDTO(); + businessDocumentDTO.setBusinessDocumentIds(String.valueOf(businessDocument.getBusinessDocumentId())); + businessDocumentDTO.setAuditOperation(1); + this.takeEffectByIdsBySystem(businessDocumentDTO); + this.auditByIdsBySystem(businessDocumentDTO); + return true; + } } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BusinessDocumentApi.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BusinessDocumentApi.java index caed51fd4..8301bc5d9 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BusinessDocumentApi.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/BusinessDocumentApi.java @@ -100,6 +100,25 @@ public class BusinessDocumentApi extends BaseController{ } + /** + * 整租推送 + */ + @ApiOperation("装卸费推送") + @PostMapping("/wholeRentSynchronizationZXF") + public AjaxResult wholeRentSynchronizationZXF(@RequestBody BusinessDocumentDTO businessDocumentDTO) + { + try { + //转换实体 + BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO(); + // 拷贝 + com.mhd.common.core.utils.bean.BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO, IgnoreNullUtil.getNullPropertyNames(businessDocumentDTO)); + return toAjax(businessDocumentApplicationService.wholeRentSynchronizationZXF(businessDocumentDO)); + }catch (Exception e){ + return AjaxResult.error("保存业务单据失败" +e.getMessage()); + } + + } + /** * 整租推送 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java index 376d669d8..ebba803c2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java @@ -67,7 +67,7 @@ public class ReceiptOrderAccount extends BaseVOEntity { /**订单id*/ @ApiModelProperty(value = "订单id") @Excel(name = "订单id", width = 15) - private String orderId; + private Long orderId; /**科目id*/ @ApiModelProperty(value = "科目id") @Excel(name = "科目id", width = 15) @@ -84,6 +84,14 @@ public class ReceiptOrderAccount extends BaseVOEntity { @ApiModelProperty(value = "科目名称") @Excel(name = "科目名称", width = 15) private String subjectName; + /**费用类别*/ + @ApiModelProperty(value = "费用类别") + @Excel(name = "费用类别", width = 15) + private String serviceItemsCode; + /**费用类别*/ + @ApiModelProperty(value = "费用类别") + @Excel(name = "费用类别", width = 15) + private String serviceItemsName; /**科目费率*/ @ApiModelProperty(value = "科目费率") @Excel(name = "科目费率", width = 15) @@ -96,4 +104,12 @@ public class ReceiptOrderAccount extends BaseVOEntity { @ApiModelProperty(value = "金额") @Excel(name = "金额", width = 15) private BigDecimal settlementAmount; + + @ApiModelProperty(value = "数量") + @Excel(name = "数量", width = 15) + private BigDecimal num; + + @ApiModelProperty(value = "单价") + @Excel(name = "单价", width = 15) + private BigDecimal price; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/StockReceiptOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/StockReceiptOrderDO.java index 1c889761a..97ed85d4f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/StockReceiptOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/todo/StockReceiptOrderDO.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockReceiptOrder.repository.todo; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderBaseDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -169,4 +170,6 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO { @ApiModelProperty("是否来自PDA收货:true-PDA收货完成,false-PC收货完成(用于上架单是否下发:PDA=是,PC=否)") private Boolean fromPda; -} + @ApiModelProperty("费用") + List receiptOrderAccountList; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index fb68d7b01..82e41d5db 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mhd.common.core.constant.SnowFlakeConstants; +import com.mhd.common.core.domain.dto.BusinessDataPushDTO; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.utils.IgnoreNullUtil; import com.mhd.common.core.utils.OrderSequence; @@ -16,6 +17,7 @@ import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.utils.uuid.IdGenerator; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.system.api.BmsServiceFeign; import com.mhd.system.api.SystemServiceFeign; import com.mhd.system.api.domain.BatchDetailFeignPO; import com.mhd.system.api.domain.ContainerFeignPO; @@ -47,6 +49,8 @@ import com.mhd.wms.domain.receiptMaterialDetail.entity.ReceiptMaterialDetail; import com.mhd.wms.domain.receiptMaterialDetail.repository.facade.IReceiptMaterialDetailService; import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO; import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; +import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO; import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; @@ -64,6 +68,7 @@ import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO; import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO; import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService; import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.todo.TaskReceiptMaterialDetailDO; +import io.swagger.annotations.ApiModelProperty; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -121,6 +126,10 @@ public class StockReceiptOrderDomainService { private IContainerUsageRecordService containerUsageRecordService; @Resource private SystemServiceFeign systemServiceFeign; + @Resource + private BmsServiceFeign bmsServiceFeign; + @Autowired + private IReceiptOrderAccountService receiptOrderAccountService; /** * 分页查询收货单列表 @@ -410,7 +419,7 @@ public class StockReceiptOrderDomainService { genStockReceiptTaskOrderByReceivingGoods(stockReceiptOrderPO,stockReceiptOrderDO); //收货后上架前 生成质检 genQualityInspectionByReceivingGoods(stockReceiptOrderDO); - + saveAmount(stockReceiptOrderDO); //更新入库单状态 updateStockInOrder(stockReceiptOrderPO); //修改收货单 设置收货单收货需要更新的数据数据 @@ -418,6 +427,68 @@ public class StockReceiptOrderDomainService { } + private void saveAmount(StockReceiptOrderDO stockReceiptOrderDO) { + Long receiptOrderId = stockReceiptOrderDO.getReceiptOrderId(); + List receiptOrderAccountList = stockReceiptOrderDO.getReceiptOrderAccountList(); + for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) { + receiptOrderAccount.setOrderId(receiptOrderId); + } + receiptOrderAccountService.remove(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, receiptOrderId)); + receiptOrderAccountService.saveBatch(receiptOrderAccountList); + } + + /** + * 定时任务整租推送到bms装卸费 + */ + public void wholeRentSynchronizationZXF(Long busId) { + StockInOrder stockInOrder = stockInOrderService.getById(busId); + Long shipperId = stockInOrder.getShipperId(); + Long organizationId = stockInOrder.getOrganizationId(); + String organizationName = stockInOrder.getOrganizationName(); + Long topOrganizationId = stockInOrder.getTopOrganizationId(); + List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId)); + for (ReceiptOrderAccount account : accounts) { + String subjectCode = account.getSubjectCode(); + String subjectName = account.getSubjectName(); + String serviceItemsCode = account.getServiceItemsCode(); + if (shipperId == null) { + continue; + } + log.info("开始执行{}", com.alibaba.fastjson.JSONObject.toJSONString(stockInOrder)); + BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO(); + businessDataPushDTO.setOrganizationId(organizationId); + businessDataPushDTO.setTopOrganizationId(topOrganizationId); + businessDataPushDTO.setOrganizationName(organizationName); + businessDataPushDTO.setBelongModuleCode("wms"); + businessDataPushDTO.setBillAmount(account.getAmount());//计费金额 + businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额 + com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); + if ("".equals(subjectName)) { + jsonObject.put("loading_unloading_unit_price", account.getPrice());//装卸货单价 + jsonObject.put("cargo_quantity",account.getNum());//货物数量 + } else if ("".equals(subjectName)) { + jsonObject.put("wooden_case_labeling_unit_price", account.getPrice());//木箱单价 + jsonObject.put("carton_labeling_unit_price",account.getPrice());//纸箱单价 + jsonObject.put("wooden_case_quantity",account.getNum());//木箱数量 + jsonObject.put("carton_quantity",account.getNum());//纸箱数量 + } else if ("".equals(subjectName)) { + jsonObject.put("cargo_quantity", account.getNum());//货物数量 + jsonObject.put("warehouse_handling_unit_price",account.getPrice());//进出仓操作费单价 + } + businessDataPushDTO.setDocumentFormJson(jsonObject.toJSONString()); + businessDataPushDTO.setDocumentTypeCode("WMS_ckjccd"); + businessDataPushDTO.setSettlementEntityId(shipperId); + businessDataPushDTO.setSecondSubjectCode(subjectCode); + businessDataPushDTO.setServiceItemsCode(serviceItemsCode); + businessDataPushDTO.setDataSources(1); + + //businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency()); + //businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId()); + bmsServiceFeign.businessDocumentApiSave(businessDataPushDTO); + } + log.info("定时任务整租推送到bms触发--结束"); + } + /** * 同步更新入库单明细的收货数量(总毛重/总净重/总面积/总体积不再写入入库单明细,逻辑已注释保留) * 根据收货单明细中填写的数据,按 materialDetailId 分组汇总后更新到入库单明细 @@ -632,6 +703,8 @@ public class StockReceiptOrderDomainService { //收货数量大于等于计划数量 直接完成收货 if (stockReceiptOrder.getReceiptQuantity().compareTo(stockReceiptOrderPO.getQuantity()) >= 0 && receiptMaterialQuantity == 0){ completeReceipt(stockReceiptOrderPO.getReceiptOrderId(), stockReceiptOrderDO.getFromPda()); + //推送bms + wholeRentSynchronizationZXF(stockReceiptOrderPO.getReceiptOrderId()); } return true; } @@ -713,13 +786,16 @@ public class StockReceiptOrderDomainService { } // 完成收货:同步更新本单全部明细收货状态(与整单收货 entireReceipt 一致,否则 PDA/列表仍显示收货中) updateReceiptMaterialDetailReceiptStatusWhenOrderCompleted(stockReceiptOrderPO, loginUser, userRealName); - return stockReceiptOrderService.update(null, new UpdateWrapper().lambda() - .set(StockReceiptOrder::getStatus, 3) - .set(StockReceiptOrder::getAbnormal, abnormal) - .set(StockReceiptOrder::getUpdateBy, loginUser.getUserid()) - .set(StockReceiptOrder::getUpdateByName, loginUser.getUsername()) - .set(StockReceiptOrder::getUpdateTime, new Date()) - .eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId)); + boolean update = stockReceiptOrderService.update(null, new UpdateWrapper().lambda() + .set(StockReceiptOrder::getStatus, 3) + .set(StockReceiptOrder::getAbnormal, abnormal) + .set(StockReceiptOrder::getUpdateBy, loginUser.getUserid()) + .set(StockReceiptOrder::getUpdateByName, loginUser.getUsername()) + .set(StockReceiptOrder::getUpdateTime, new Date()) + .eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId)); + //推送bms + wholeRentSynchronizationZXF(receiptOrderId); + return update; } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockReceiptOrder/StockReceiptOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockReceiptOrder/StockReceiptOrderDTO.java index 0aa13cf00..c8d636b29 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockReceiptOrder/StockReceiptOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockReceiptOrder/StockReceiptOrderDTO.java @@ -2,6 +2,7 @@ package com.mhd.wms.interfaces.dto.stockReceiptOrder; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import com.mhd.wms.interfaces.dto.receiptMaterialDetail.ReceiptMaterialDetailDTO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderBaseDTO; import io.swagger.annotations.ApiModelProperty; @@ -152,4 +153,7 @@ public class StockReceiptOrderDTO extends StockInOrderBaseDTO { @ApiModelProperty(name = "创建时间查询条件结束日期") private String createTimeEnd; -} + + @ApiModelProperty("费用") + List receiptOrderAccountList; +} \ No newline at end of file From 843e69ee8430327073725419daa30596c3ca56cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:02:41 +0800 Subject: [PATCH 20/30] =?UTF-8?q?=E6=8E=A8=E9=80=81bms;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../receiptOrderAccount/entity/ReceiptOrderAccount.java | 4 ++-- .../service/StockReceiptOrderDomainService.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java index ebba803c2..040b9b44e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptOrderAccount/entity/ReceiptOrderAccount.java @@ -101,8 +101,8 @@ public class ReceiptOrderAccount extends BaseVOEntity { @ApiModelProperty(value = "金额") @Excel(name = "金额", width = 15) private BigDecimal amount; - @ApiModelProperty(value = "金额") - @Excel(name = "金额", width = 15) + @ApiModelProperty(value = "计算金额") + @Excel(name = "计算金额", width = 15) private BigDecimal settlementAmount; @ApiModelProperty(value = "数量") diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 82e41d5db..68cd5e9dd 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -463,15 +463,15 @@ public class StockReceiptOrderDomainService { businessDataPushDTO.setBillAmount(account.getAmount());//计费金额 businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额 com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); - if ("".equals(subjectName)) { + if ("装卸费".equals(subjectName)) { jsonObject.put("loading_unloading_unit_price", account.getPrice());//装卸货单价 jsonObject.put("cargo_quantity",account.getNum());//货物数量 - } else if ("".equals(subjectName)) { + } else if ("贴标费".equals(subjectName)) { jsonObject.put("wooden_case_labeling_unit_price", account.getPrice());//木箱单价 jsonObject.put("carton_labeling_unit_price",account.getPrice());//纸箱单价 jsonObject.put("wooden_case_quantity",account.getNum());//木箱数量 jsonObject.put("carton_quantity",account.getNum());//纸箱数量 - } else if ("".equals(subjectName)) { + } else if ("进出仓操作费".equals(subjectName)) { jsonObject.put("cargo_quantity", account.getNum());//货物数量 jsonObject.put("warehouse_handling_unit_price",account.getPrice());//进出仓操作费单价 } From 1dab99f7c1bfabee7221ea8eb9f8696e0f24683e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:03:27 +0800 Subject: [PATCH 21/30] =?UTF-8?q?=E6=8E=A8=E9=80=81bms;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockReceiptOrderDomainService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 68cd5e9dd..7d7a690d3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -484,7 +484,7 @@ public class StockReceiptOrderDomainService { //businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency()); //businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId()); - bmsServiceFeign.businessDocumentApiSave(businessDataPushDTO); + bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO); } log.info("定时任务整租推送到bms触发--结束"); } From 91368e7468aec52a50aefadd2cdd16ef29e8d2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:03:47 +0800 Subject: [PATCH 22/30] =?UTF-8?q?=E6=8E=A8=E9=80=81bms;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java index e378a2f5b..c216ea5b6 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java @@ -55,4 +55,10 @@ public interface BmsServiceFeign { */ @PostMapping("/businessDocumentApi/wholeRentSynchronization") public AjaxResult businessDocumentApiSave(@RequestBody BusinessDataPushDTO businessDataPushDTO); -} + + /** + * 定时任务整租推送到bms + */ + @PostMapping("/businessDocumentApi/wholeRentSynchronizationZXF") + public AjaxResult wholeRentSynchronizationZXF(@RequestBody BusinessDataPushDTO businessDataPushDTO); +} \ No newline at end of file From 0afadd336c2ba3cebe686a31c680af22c4b56606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=AD=A3=E6=9D=A8?= <8915035+gao-zhengyang123@user.noreply.gitee.com> Date: Fri, 3 Apr 2026 15:18:34 +0800 Subject: [PATCH 23/30] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/factory/RemoteBmsFeignFallbackFactory.java | 5 +++++ .../persistence/ReceiptOrderAccountServiceImpl.java | 2 ++ .../service/StockReceiptOrderDomainService.java | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java index debc58c13..f2fb2db79 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java @@ -56,6 +56,11 @@ public class RemoteBmsFeignFallbackFactory implements FallbackFactory implements IReceiptOrderAccountService { } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 7d7a690d3..909c64b34 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -128,7 +128,7 @@ public class StockReceiptOrderDomainService { private SystemServiceFeign systemServiceFeign; @Resource private BmsServiceFeign bmsServiceFeign; - @Autowired + @Resource private IReceiptOrderAccountService receiptOrderAccountService; /** From b535ad9bc60adf94c974c41af18575926c17ac02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:28:37 +0800 Subject: [PATCH 24/30] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=8F=82=E6=95=B0;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockReceiptOrder/StockReceiptOrderApplicationService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index e3b07e8e7..9af4b8416 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -1703,6 +1703,7 @@ public class StockReceiptOrderApplicationService { throw new ServiceException("收货单已完成收货"); } StockReceiptOrderDO returnStockReceiptOrderDO = new StockReceiptOrderDO(); + returnStockReceiptOrderDO.setReceiptOrderAccountList(stockReceiptOrderDO.getReceiptOrderAccountList()); returnStockReceiptOrderDO.setUpdateTime(stockReceiptOrderDO.getUpdateTime()); returnStockReceiptOrderDO.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId()); returnStockReceiptOrderDO.setOrganizationId(stockReceiptOrderPO.getOrganizationId()); From 01984812eded4b86ed222ccee4cb3ace24bbb613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:36:01 +0800 Subject: [PATCH 25/30] =?UTF-8?q?=E6=94=B6=E8=B4=A7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=87=91=E9=A2=9D;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockReceiptOrderApplicationService.java | 13 ++++++++++++- .../repository/po/StockReceiptOrderPO.java | 5 ++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java index 9af4b8416..f95481384 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mhd.common.core.constant.SnowFlakeConstants; import com.mhd.common.core.domain.po.UserPo; import com.mhd.common.core.enums.DictCode; @@ -36,6 +37,8 @@ import com.mhd.wms.domain.materialMoreDetail.service.MaterialMoreDetailDomainSer import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO; import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO; import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; +import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO; @@ -91,6 +94,8 @@ public class StockReceiptOrderApplicationService { private UserServiceFeign userServiceFeign; @Autowired private IdGenerator idGenerator; + @Autowired + private IReceiptOrderAccountService receiptOrderAccountService; /** @@ -159,7 +164,13 @@ public class StockReceiptOrderApplicationService { log.warn("获取用户关联仓库信息失败,将查询所有仓库数据,用户ID:{},错误:{}", loginUser.getUserid(), e.getMessage()); } } - return stockReceiptOrderDomainService.queryList(stockReceiptOrderDO); + List stockReceiptOrderPOS = stockReceiptOrderDomainService.queryList(stockReceiptOrderDO); + for (StockReceiptOrderPO stockReceiptOrderPO : stockReceiptOrderPOS) { + Long receiptOrderId = stockReceiptOrderPO.getReceiptOrderId(); + List accounts = receiptOrderAccountService.list(new LambdaQueryWrapper().eq(ReceiptOrderAccount::getOrderId, receiptOrderId)); + stockReceiptOrderPO.setReceiptOrderAccountList(accounts); + } + return stockReceiptOrderPOS; } /** diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java index 7899a4d28..9f21eaaca 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java @@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockReceiptOrder.repository.po; import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderBasePO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -156,4 +157,6 @@ public class StockReceiptOrderPO extends StockInOrderBasePO { @ApiModelProperty("总面积(SQM)") @Excel(name = "总面积(SQM)") private BigDecimal totalArea; -} + @ApiModelProperty("费用") + List receiptOrderAccountList; +} \ No newline at end of file From 4a155cc95a865805f51dcb1ae7373333d603cb8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 15:54:42 +0800 Subject: [PATCH 26/30] =?UTF-8?q?=E6=8E=A8=E9=80=81bms=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockReceiptOrderDomainService.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 909c64b34..418e5faa2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -703,8 +703,6 @@ public class StockReceiptOrderDomainService { //收货数量大于等于计划数量 直接完成收货 if (stockReceiptOrder.getReceiptQuantity().compareTo(stockReceiptOrderPO.getQuantity()) >= 0 && receiptMaterialQuantity == 0){ completeReceipt(stockReceiptOrderPO.getReceiptOrderId(), stockReceiptOrderDO.getFromPda()); - //推送bms - wholeRentSynchronizationZXF(stockReceiptOrderPO.getReceiptOrderId()); } return true; } From c8aade107b6c3f83b320793214388fec1e00b48c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 16:27:08 +0800 Subject: [PATCH 27/30] =?UTF-8?q?sql=E6=95=B4=E7=90=86;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/wkx20260403.sql | 96 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 4 deletions(-) diff --git a/sql/wkx20260403.sql b/sql/wkx20260403.sql index 228c52986..99515425c 100644 --- a/sql/wkx20260403.sql +++ b/sql/wkx20260403.sql @@ -1,7 +1,95 @@ -ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "in_order_display" INT DEFAULT 0; +ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "IN_ORDER_DISPLAY" INT DEFAULT 0; -ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "out_order_display" INT; +ALTER TABLE "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT" ADD COLUMN "OUT_ORDER_DISPLAY" INT; -COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."in_order_display" IS '入库单是否固定显示 0-否 1-是'; +COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."IN_ORDER_DISPLAY" IS '入库单是否固定显示 0-否 1-是'; -COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."out_order_display" IS '出库单是否固定显示 0-否 1-是'; \ No newline at end of file +COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS '出库单是否固定显示 0-否 1-是'; + + + + +/* + Navicat Premium Dump SQL + + Source Server : 113.44.106.61 + Source Server Type : Dameng + Source Server Version : 8014116 (08.01.4116) + Source Host : 113.44.106.61:5236 + Source Schema : NGWL_TEST_WMS + + Target Server Type : Dameng + Target Server Version : 8014116 (08.01.4116) + File Encoding : 65001 + + Date: 03/04/2026 16:20:24 +*/ + + +-- ---------------------------- +-- Table structure for RECEIPT_ORDER_ACCOUNT +-- ---------------------------- +DROP TABLE IF EXISTS "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"; +CREATE TABLE "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT" ( + "ID" VARCHAR(36) NOT NULL, + "SYS_ORG_CODE" VARCHAR(64) DEFAULT NULL, + "IS_DELETE" INT DEFAULT '0', + "ORG_NAME" VARCHAR(255) DEFAULT NULL, + "ORGANIZATION_ID" INT DEFAULT '0', + "TOP_ORGANIZATION_ID" INT DEFAULT '0', + "ORGANIZATION_NAME" VARCHAR(255) DEFAULT NULL, + "ORDER_ID" BIGINT DEFAULT NULL, + "ACCOUNT_ID" INT DEFAULT '0', + "ACCOUNT_TYPE" INT DEFAULT '0', + "SUBJECT_CODE" VARCHAR(255) DEFAULT NULL, + "SUBJECT_NAME" VARCHAR(255) DEFAULT NULL, + "RATE" DECIMAL(10,2) DEFAULT '0.00', + "AMOUNT" DECIMAL(10,2) DEFAULT '0.00', + "TAX_AMOUNT" DECIMAL(10,2), + "TAX_FREE_FEE" DECIMAL(10,2), + "RECEIVE_ACCOUNT" VARCHAR2(200), + "SETTLEMENT_AMOUNT" DECIMAL(10,2), + "PRICE" DECIMAL(10,2), + "NUM" DECIMAL(10,2), + "SERVICE_ITEMS_CODE" VARCHAR2(255), + "SERVICE_ITEMS_NAME" VARCHAR2(255), + "CREATE_TIME" TIMESTAMP(6), + "CREATE_BY" BIGINT DEFAULT 0, + "CREATE_BY_NAME" VARCHAR(20 CHAR) DEFAULT '', + "UPDATE_TIME" TIMESTAMP(6), + "UPDATE_BY" BIGINT DEFAULT 0, + "UPDATE_BY_NAME" VARCHAR(20 CHAR) DEFAULT '', + "DEL_FLAG" TINYINT DEFAULT 1 +) +; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SYS_ORG_CODE" IS '所属部门'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."IS_DELETE" IS '删除标识'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ORG_NAME" IS '所属组织'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ORGANIZATION_ID" IS '组织ID'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."TOP_ORGANIZATION_ID" IS '一级组织ID'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ORGANIZATION_NAME" IS '组织名称'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ORDER_ID" IS '订单id'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ACCOUNT_ID" IS '科目id'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."ACCOUNT_TYPE" IS '科目收支类型(1-应收,2-应付)'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SUBJECT_CODE" IS '科目编码'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SUBJECT_NAME" IS '科目名称'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."RATE" IS '科目费率'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."AMOUNT" IS '金额'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."TAX_AMOUNT" IS '税额'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."TAX_FREE_FEE" IS '无税费用'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."RECEIVE_ACCOUNT" IS '收款帐户'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SETTLEMENT_AMOUNT" IS '计算金额'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."PRICE" IS '单价'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."NUM" IS '数量'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."CREATE_BY" IS '创建人用户ID'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."CREATE_BY_NAME" IS '创建人姓名'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_TIME" IS '最后修改时间'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_BY" IS '最后修改人用户ID'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_BY_NAME" IS '修改人姓名'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."DEL_FLAG" IS '删除标记:0-无状态,1-正常,2-已删除'; + +-- ---------------------------- +-- Primary Key structure for table RECEIPT_ORDER_ACCOUNT +-- ---------------------------- +ALTER TABLE "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT" ADD PRIMARY KEY ("ID"); \ No newline at end of file From d7b6394674748853b84c96c347f847d527c5be9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 16:29:08 +0800 Subject: [PATCH 28/30] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mhd-system/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_bms/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_product/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_wms/src/main/resources/bootstrap.yml | 16 ++++++++-------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/resources/bootstrap.yml b/mhd-modules/mhd-system/src/main/resources/bootstrap.yml index d2ad81e8f..2afad33b3 100644 --- a/mhd-modules/mhd-system/src/main/resources/bootstrap.yml +++ b/mhd-modules/mhd-system/src/main/resources/bootstrap.yml @@ -14,20 +14,20 @@ spring: nacos: discovery: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.105:6848 config: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.105:6848 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 diff --git a/mhd_bms/src/main/resources/bootstrap.yml b/mhd_bms/src/main/resources/bootstrap.yml index c2e820837..086a1e8b7 100644 --- a/mhd_bms/src/main/resources/bootstrap.yml +++ b/mhd_bms/src/main/resources/bootstrap.yml @@ -18,17 +18,17 @@ spring: discovery: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - # server-addr: 10.33.0.129:6010 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 + server-addr: 10.33.0.129:6010 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 config: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - # server-addr: 10.33.0.129:6010 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 + server-addr: 10.33.0.129:6010 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 file-extension: yml #默认properties # 开启nacos自动刷新,如果这个配置没有或者为false会导致配置不能自动刷新 diff --git a/mhd_product/src/main/resources/bootstrap.yml b/mhd_product/src/main/resources/bootstrap.yml index af8ac0130..a6edc6d14 100644 --- a/mhd_product/src/main/resources/bootstrap.yml +++ b/mhd_product/src/main/resources/bootstrap.yml @@ -19,20 +19,20 @@ spring: nacos: discovery: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 #线上正式环境 # server-addr: 10.33.0.129:6010 config: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 #线上正式环境 # server-addr: 10.33.0.129:6010 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 diff --git a/mhd_wms/src/main/resources/bootstrap.yml b/mhd_wms/src/main/resources/bootstrap.yml index cbf579019..4123b7a99 100644 --- a/mhd_wms/src/main/resources/bootstrap.yml +++ b/mhd_wms/src/main/resources/bootstrap.yml @@ -14,20 +14,20 @@ spring: nacos: discovery: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 + # server-addr: 10.102.192.5:6848 + # username: nacos + # password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.105:6848 config: # server-addr: 127.0.0.1:8848 -# server-addr: 10.33.0.129:6010 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 - server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 + # server-addr: 10.102.192.5:6848 + # username: nacos + # password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.105:6848 # 配置文件格式 From 9e6ae389c2436b86df69f037c48332672c509f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 17:10:46 +0800 Subject: [PATCH 29/30] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/StockReceiptOrderDomainService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 418e5faa2..2dcbf30d7 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -441,7 +441,9 @@ public class StockReceiptOrderDomainService { * 定时任务整租推送到bms装卸费 */ public void wholeRentSynchronizationZXF(Long busId) { - StockInOrder stockInOrder = stockInOrderService.getById(busId); + StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getById(busId); + String inOrderNumber = stockReceiptOrder.getInOrderNumber(); + StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper().lambda().eq(StockInOrder::getInOrderNumber, inOrderNumber),false); Long shipperId = stockInOrder.getShipperId(); Long organizationId = stockInOrder.getOrganizationId(); String organizationName = stockInOrder.getOrganizationName(); @@ -454,7 +456,7 @@ public class StockReceiptOrderDomainService { if (shipperId == null) { continue; } - log.info("开始执行{}", com.alibaba.fastjson.JSONObject.toJSONString(stockInOrder)); + log.info("开始执行{}", com.alibaba.fastjson.JSONObject.toJSONString(stockReceiptOrder)); BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO(); businessDataPushDTO.setOrganizationId(organizationId); businessDataPushDTO.setTopOrganizationId(topOrganizationId); From f49753b630e58e5c53a2a9ba3aebf6b5bd630f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 3 Apr 2026 17:30:29 +0800 Subject: [PATCH 30/30] =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A8=8E=E7=8E=87;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java | 1 + .../service/StockReceiptOrderDomainService.java | 1 + 2 files changed, 2 insertions(+) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java index 53cf4418e..79520de89 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDataPushDTO.java @@ -84,4 +84,5 @@ public class BusinessDataPushDTO{ private String salesmanId; @ApiModelProperty("业务员名称") private String salesmanName; + private BigDecimal taxRate; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java index 2dcbf30d7..c12cb8157 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java @@ -483,6 +483,7 @@ public class StockReceiptOrderDomainService { businessDataPushDTO.setSecondSubjectCode(subjectCode); businessDataPushDTO.setServiceItemsCode(serviceItemsCode); businessDataPushDTO.setDataSources(1); + businessDataPushDTO.setTaxRate(account.getRate()); //businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency()); //businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId());