From e9d4f699ee0d3a7d5ef8df2aee08293680e2034d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Sat, 11 Apr 2026 15:35:16 +0800 Subject: [PATCH] =?UTF-8?q?wms=E8=B4=B9=E7=94=A8=E7=A7=91=E7=9B=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/common/core/domain/po/UserPo.java | 5 +- .../ContractManageApplicationService.java | 298 ++++++++++++------ .../contractManage/SubjectAndPriceReturn.java | 10 +- .../contractManage/ContractManageApi.java | 11 + .../src/main/resources/mapper/UserMapper.xml | 5 +- .../BusinessDocumentApplicationService.java | 1 + .../HandoverTaskOrderApplicationService.java | 4 +- .../StockInOrderApplicationService.java | 200 +++++++++++- .../StockOutOrderApplicationService.java | 6 + .../StockReceiptOrderApplicationService.java | 6 + .../entity/HandoverTaskOrder.java | 5 +- .../repository/po/HandoverTaskOrderPO.java | 5 +- .../repository/todo/HandoverTaskOrderDO.java | 4 +- .../HandoverTaskOrderDomainService.java | 8 +- .../entity/ReceiptOrderAccount.java | 3 + .../stockInOrder/entity/StockInOrder.java | 8 + .../repository/po/StockInOrderPO.java | 12 + .../repository/todo/StockInOrderDO.java | 12 + .../stockOutOrder/entity/StockOutOrder.java | 10 + .../repository/po/StockOutOrderPO.java | 12 +- .../repository/todo/StockOutOrderDO.java | 11 + .../entity/StockReceiptOrder.java | 5 +- .../repository/po/StockReceiptOrderPO.java | 3 + .../repository/todo/StockReceiptOrderDO.java | 3 + .../StockReceiptOrderDomainService.java | 69 +--- .../HandoverTaskOrderDTO.java | 4 +- .../dto/stockInOrder/StockInOrderDTO.java | 12 + .../dto/stockOutOrder/StockOutOrderDTO.java | 11 + .../StockReceiptOrderDTO.java | 3 + .../stockInOrder/StockInOrderApi.java | 29 +- .../StockReceiptOrderAppApi.java | 3 +- .../HandoverTaskOrderMapper.xml | 3 +- .../stockInOrder/StockInOrderMapper.xml | 7 +- .../stockOutOrder/StockOutOrderMapper.xml | 7 +- .../StockReceiptOrderMapper.xml | 3 +- sql/wkx20260403.sql | 94 ++++-- 36 files changed, 687 insertions(+), 205 deletions(-) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java index 8e2d71869..c801c53d7 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java @@ -250,4 +250,7 @@ public class UserPo { @ApiModelProperty("备注") private String remark; -} + + @ApiModelProperty("结算币种") + private String settlementCurrency; +} \ 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 816feef03..5afefe17d 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 @@ -129,111 +129,137 @@ public class ContractManageApplicationService { return contractManageDomainService.queryList(contractManageDO); } - public BigDecimal getAmount(List subjectAndPriceReturnList) { +// 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 = 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 { +// +// } +// } +// } 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(); +// 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) { +// } 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 BigDecimal.ZERO; +// } + public Map getAmount(List subjectAndPriceReturnList) { + Map map = new HashMap<>(); 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 = 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 { - - } - } } 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(); - 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) { - } 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()); - } - } - } - } - } - - } + BigDecimal price = subjectAndPriceReturn.getPrice(); + BigDecimal num = subjectAndPriceReturn.getNum(); + String chargingId = subjectAndPriceReturn.getChargingId(); + Integer isFee = subjectAndPriceReturn.getIsFee(); + if (isFee != null && isFee == 1) { + billingFormula = billingFormula.replace(chargingId, price.toEngineeringString()); + } else { + billingFormula = billingFormula.replace(chargingId, num.toEngineeringString()); } } - return DynamicCalculationUtil.calculate(billingFormula); + BigDecimal calculate = DynamicCalculationUtil.calculate(billingFormula); + map.put("amount", calculate); + map.put("billingRulesId", id); + return map; } - return BigDecimal.ZERO; + return map; } public List getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) { @@ -274,14 +300,16 @@ public class ContractManageApplicationService { BillingParamsPO billingParam = billingParams.get(0); String billingParamsJson = billingParam.getBillingParamsJson(); String preSetRules = billingParam.getPreSetRules(); + Long billingParamsId = billingParam.getBillingParamsId(); 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))) { + Integer isShow = (Integer) stringObjectMap.get("isShow"); + Integer isFee = (Integer) stringObjectMap.get("isFee"); + Integer isPush = (Integer) stringObjectMap.get("isPush"); + if (isFee==1) { Integer sort = (Integer) stringObjectMap.get("sort"); String chargingId = (String) stringObjectMap.get("chargingId"); String fields = (String) stringObjectMap.get("fields"); @@ -292,6 +320,80 @@ public class ContractManageApplicationService { subjectAndPriceReturn.setChargingId(chargingId); subjectAndPriceReturn.setFields(fields); subjectAndPriceReturn.setBillingRulesId(billingRulesId); + subjectAndPriceReturn.setIsShow(isShow); + subjectAndPriceReturn.setIsFee(isFee); + subjectAndPriceReturn.setIsPush(isPush); + subjectAndPriceReturn.setRulesId(billingParamsId); + result.add(subjectAndPriceReturn); + } + } + } + } + } + } + } + } + } + return result; + } + + public List getSubject(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(); + Long billingParamsId = billingParam.getBillingParamsId(); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + for (Map stringObjectMap : billingParamsList) { + String fieldsName = (String) stringObjectMap.get("fieldsName"); + Integer isShow = (Integer) stringObjectMap.get("isShow"); + Integer isFee = (Integer) stringObjectMap.get("isFee"); + Integer isPush = (Integer) stringObjectMap.get("isPush"); + if (isShow==1) { + String chargingId = (String) stringObjectMap.get("chargingId"); + String fields = (String) stringObjectMap.get("fields"); + SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn(); + subjectAndPriceReturn.setName(fieldsName); + subjectAndPriceReturn.setChargingId(chargingId); + subjectAndPriceReturn.setFields(fields); + subjectAndPriceReturn.setBillingRulesId(billingRulesId); + subjectAndPriceReturn.setIsShow(isShow); + subjectAndPriceReturn.setIsFee(isFee); + subjectAndPriceReturn.setIsPush(isPush); + subjectAndPriceReturn.setRulesId(billingParamsId); result.add(subjectAndPriceReturn); } } 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 index 3becb1cd5..d223c12e9 100644 --- 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 @@ -1,15 +1,23 @@ package com.mhd.basic.interfaces.dto.contractManage; import lombok.Data; - import java.math.BigDecimal; + @Data public class SubjectAndPriceReturn { + private Long rulesId; private String name; private BigDecimal price; private String chargingId; private Long billingRulesId; private String fields; private BigDecimal num; + private Integer isShow; + private Integer isPush; + private Integer isFee; + private String subjectCode; + private String subjectName; + private String serviceItemsCode; + private String serviceItemsName; } \ 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 4f26e2e60..2dd6e4bd1 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 @@ -59,6 +59,17 @@ public class ContractManageApi extends BaseController{ return AjaxResult.success(contractManageApplicationService.getSubjectAndPrice(subjectAndPriceDTO)); } + /** + * 获取科目和单价 + */ + @ApiOperation("获取需要显示的计费字段") + @GetMapping("/getSubject") + public AjaxResult getSubject(SubjectAndPriceDTO subjectAndPriceDTO) + { + //转换实体 + return AjaxResult.success(contractManageApplicationService.getSubject(subjectAndPriceDTO)); + } + /** * 获取科目和单价 */ diff --git a/mhd-user-center/src/main/resources/mapper/UserMapper.xml b/mhd-user-center/src/main/resources/mapper/UserMapper.xml index b9e38a167..0af63c215 100644 --- a/mhd-user-center/src/main/resources/mapper/UserMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserMapper.xml @@ -79,8 +79,9 @@ a.payment_bank, a.payment_account, a.invoice_title, - a.tax_number - FROM "USER" a + a.tax_number, + b.SETTLEMENT_CURRENCY + FROM "USER" a left join USER_SHIPPER b on a.user_id = b.user_id where a.del_flag = 1 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 c48aaa3d3..d722338b5 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 @@ -1023,6 +1023,7 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId()); businessDocumentDO.setOrganizationId(businessDocumentDO.getOrganizationId()); businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName()); + businessDocumentDO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); //调用费用计算,计算费用金额进行保存 // CostCalculationDTO costCalculationDTO = new CostCalculationDTO(); // costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java index c64618805..dd81ae725 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java @@ -268,11 +268,13 @@ public class HandoverTaskOrderApplicationService { // 1. PDA上传图片插入交接作业单 handoverTaskOrderService.update(new LambdaUpdateWrapper() .eq(HandoverTaskOrder::getOrderNumber, orderNumber) + .set(HandoverTaskOrder::getBillingJson, handoverTaskOrderDO.getBillingJson()) .set(HandoverTaskOrder::getPictureApp, handoverTaskOrderDO.getPictureApp())); // 2. PDA上传图片插入出库管理,状态改为已出库 stockOutOrderService.update(new LambdaUpdateWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber) .set(StockOutOrder::getStatus, "9") + .set(StockOutOrder::getBillingJson, handoverTaskOrderDO.getBillingJson()) .set(StockOutOrder::getPictureApp, handoverTaskOrderDO.getPictureApp())); // 3. 参考PC端完成交接:根据orderNumber查询交接单ID,执行库存扣减+交接状态更新 List handoverList = handoverTaskOrderService.list( @@ -290,4 +292,4 @@ public class HandoverTaskOrderApplicationService { } } } -} +} \ No newline at end of file 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 c2cb61e60..c7367f879 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 @@ -4,6 +4,10 @@ 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.mhd.common.core.domain.dto.BusinessDataPushDTO; import com.mhd.common.core.domain.po.UserPo; import com.mhd.common.core.enums.DictCode; import com.mhd.common.core.exception.ServiceException; @@ -11,6 +15,7 @@ import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.utils.poi.ExcelUtil; 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.UserServiceFeign; import com.mhd.system.api.domain.SysDictData; @@ -18,14 +23,26 @@ import com.mhd.system.api.domain.WarehouseFeignPO; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.domain.cache.SystemServiceCacheUtil; import com.mhd.system.api.model.LoginUser; +import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; +import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo; import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService; import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; +import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; +import com.mhd.wms.domain.stockInOrder.entity.StockInOrder; +import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService; +import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; +import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; +import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; +import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder; +import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrderService; +import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderImportRowDTO; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.*; @@ -34,6 +51,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.io.InputStream; import java.math.BigDecimal; import java.text.ParseException; @@ -55,12 +73,24 @@ import java.util.stream.Collectors; public class StockInOrderApplicationService { @Autowired private StockInOrderDomainService stockInOrderDomainService; - @Autowired + @Resource private UserServiceFeign userServiceFeign; - @Autowired + @Resource private SystemServiceFeign systemServiceFeign; + @Resource + private BmsServiceFeign bmsServiceFeign; @Autowired private IMaterialBaseInfoService materialBaseInfoService; + @Resource + private IReceiptOrderAccountService receiptOrderAccountService; + @Autowired + private IStockInOrderService stockInOrderService; + @Autowired + private IStockReceiptOrderService stockReceiptOrderService; + @Autowired + private IStockOutOrderService stockOutOrderService; + @Autowired + private IHandoverTaskOrderService handoverTaskOrderService; /** @@ -154,7 +184,13 @@ public class StockInOrderApplicationService { } } } - return stockInOrderDomainService.queryList(stockInOrderDO); + List stockInOrderPOS = stockInOrderDomainService.queryList(stockInOrderDO); + for (StockInOrderPO stockInOrderPO : stockInOrderPOS) { + Long inOrderId = stockInOrderPO.getInOrderId(); + List list = receiptOrderAccountService.list(new LambdaQueryWrapper().eq(ReceiptOrderAccount::getOrderId, inOrderId)); + stockInOrderPO.setReceiptOrderAccountList(list); + } + return stockInOrderPOS; } @@ -200,6 +236,162 @@ public class StockInOrderApplicationService { return stockInOrderDomainService.update(stockInOrderDO); } + public Boolean saveAmount(StockInOrderDO stockInOrderDO) { + boolean r = true; + Long inOrderId = stockInOrderDO.getInOrderId(); + String inOrderNumber = stockInOrderDO.getInOrderNumber(); + String billingJson = stockInOrderDO.getBillingJson(); + if (billingJson != null) { + stockInOrderService.update(null,new LambdaUpdateWrapper().set(StockInOrder::getBillingJson,billingJson).eq(StockInOrder::getInOrderId,inOrderId)); + stockReceiptOrderService.update(null,new LambdaUpdateWrapper().set(StockReceiptOrder::getBillingJson,billingJson).eq(StockReceiptOrder::getInOrderNumber,inOrderNumber)); + } + receiptOrderAccountService.remove(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, inOrderId)); + List receiptOrderAccountList = stockInOrderDO.getReceiptOrderAccountList(); + if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) { + for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) { + receiptOrderAccount.setOrderId(inOrderId); + } + r = receiptOrderAccountService.saveBatch(receiptOrderAccountList); + wholeRentSynchronizationZXF(inOrderId); + } + return r; + } + + public Boolean saveOutAmount(StockOutOrderDO stockOutOrderDO) { + boolean r = true; + Long outOrderId = stockOutOrderDO.getOutOrderId(); + String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); + String billingJson = stockOutOrderDO.getBillingJson(); + if (billingJson != null) { + stockOutOrderService.update(null,new LambdaUpdateWrapper().set(StockOutOrder::getBillingJson,billingJson).eq(StockOutOrder::getOutOrderId,outOrderId)); + handoverTaskOrderService.update(null,new LambdaUpdateWrapper().set(HandoverTaskOrder::getBillingJson,billingJson).eq(HandoverTaskOrder::getOrderNumber,outOrderNumber)); + } + receiptOrderAccountService.remove(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, outOrderId)); + List receiptOrderAccountList = stockOutOrderDO.getReceiptOrderAccountList(); + if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) { + for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) { + receiptOrderAccount.setOrderId(outOrderId); + } + r = receiptOrderAccountService.saveBatch(receiptOrderAccountList); + wholeRentSynchronizationZXF(outOrderId); + } + return r; + } + + /** + * 定时任务整租推送到bms装卸费 + */ + public void wholeRentSynchronizationZXF(Long busId) { + StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper().lambda().eq(StockInOrder::getInOrderId, busId),false); + StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper().lambda().eq(StockOutOrder::getOutOrderId, busId),false); + if (stockInOrder != null) { + Long shipperId = stockInOrder.getShipperId(); + Long organizationId = stockInOrder.getOrganizationId(); + String organizationName = stockInOrder.getOrganizationName(); + Long topOrganizationId = stockInOrder.getTopOrganizationId(); + String inOrderNumber = stockInOrder.getInOrderNumber(); + String settlementCurrency = stockInOrder.getSettlementCurrency(); + String salesmanId = stockInOrder.getSalesmanId(); + List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId)); + for (ReceiptOrderAccount account : accounts) { + BigDecimal amount = account.getAmount(); + String subjectCode = account.getSubjectCode(); + String subjectName = account.getSubjectName(); + String serviceItemsCode = account.getServiceItemsCode(); + if (shipperId == null) { + continue; + } + BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO(); + businessDataPushDTO.setOrganizationId(organizationId); + businessDataPushDTO.setTopOrganizationId(topOrganizationId); + businessDataPushDTO.setOrganizationName(organizationName); + businessDataPushDTO.setBelongModuleCode("wms"); + businessDataPushDTO.setBillAmount(account.getAmount());//计费金额 + businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额 + businessDataPushDTO.setOriginalBusinessNum(inOrderNumber); + 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.setTaxRate(account.getRate()); + + businessDataPushDTO.setSettlementCurrency(settlementCurrency); + businessDataPushDTO.setSalesmanId(salesmanId); + if (amount != null&&amount.compareTo(BigDecimal.ZERO)!=0) { + bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO); + } + } + } else if (stockOutOrder != null) { + Long shipperId = stockOutOrder.getShipperId(); + Long organizationId = stockOutOrder.getOrganizationId(); + String organizationName = stockOutOrder.getOrganizationName(); + Long topOrganizationId = stockOutOrder.getTopOrganizationId(); + String inOrderNumber = stockOutOrder.getOutOrderNumber(); + String settlementCurrency = stockOutOrder.getSettlementCurrency(); + String salesmanId = stockOutOrder.getSalesmanId(); + 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; + } + BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO(); + businessDataPushDTO.setOrganizationId(organizationId); + businessDataPushDTO.setTopOrganizationId(topOrganizationId); + businessDataPushDTO.setOrganizationName(organizationName); + businessDataPushDTO.setBelongModuleCode("wms"); + businessDataPushDTO.setBillAmount(account.getAmount());//计费金额 + businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额 + businessDataPushDTO.setOriginalBusinessNum(inOrderNumber); + 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.setTaxRate(account.getRate()); + + businessDataPushDTO.setSettlementCurrency(settlementCurrency); + businessDataPushDTO.setSalesmanId(salesmanId); + bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO); + } + } else { + throw new RuntimeException("未找到业务单!"); + } + + log.info("定时任务整租推送到bms触发--结束"); + } + /** * 批量删除入库单 * 只有已创建状态(status = 1)的入库单可以删除 @@ -1867,4 +2059,4 @@ public class StockInOrderApplicationService { } } -} +} \ No newline at end of file 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 e8a6c9633..c67dd46a0 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 @@ -38,6 +38,8 @@ import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService; import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; +import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO; @@ -84,6 +86,8 @@ public class StockOutOrderApplicationService { private IOutMaterialDetailService outMaterialDetailService; @Autowired private IPickingMaterialDetailService pickingMaterialDetailService; + @Autowired + private IReceiptOrderAccountService receiptOrderAccountService; /** @@ -210,6 +214,8 @@ public class StockOutOrderApplicationService { // 复核总数量:从out_material_detail汇总check_quantity BigDecimal checkSum = materialDetailList.stream().map(OutMaterialDetailPO::getCheckQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); stockOutOrderPO.setCheckQuantity(checkSum); + List list = receiptOrderAccountService.list(new LambdaQueryWrapper().eq(ReceiptOrderAccount::getOrderId, stockOutOrderPO.getOutOrderId())); + stockOutOrderPO.setReceiptOrderAccountList(list); } return stockOutOrderPOS; } 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 e7190ac8f..15500256b 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 @@ -44,6 +44,7 @@ import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO; import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService; +import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -1561,6 +1562,10 @@ public class StockReceiptOrderApplicationService { return stockReceiptOrderDomainService.completeReceipt(receiptOrderId, true); } + public void updateInOrder(StockReceiptOrderDTO stockReceiptOrderDTO){ + stockReceiptOrderDomainService.updateInOrder(stockReceiptOrderDTO); + } + public Boolean genStockShelfOrder(Long receiptOrderId){ return stockReceiptOrderDomainService.genStockShelfOrder(receiptOrderId); } @@ -1912,6 +1917,7 @@ public class StockReceiptOrderApplicationService { throw new ServiceException("收货单已完成收货"); } StockReceiptOrderDO returnStockReceiptOrderDO = new StockReceiptOrderDO(); + returnStockReceiptOrderDO.setBillingJson(stockReceiptOrderDO.getBillingJson()); returnStockReceiptOrderDO.setReceiptOrderAccountList(stockReceiptOrderDO.getReceiptOrderAccountList()); returnStockReceiptOrderDO.setUpdateTime(stockReceiptOrderDO.getUpdateTime()); returnStockReceiptOrderDO.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId()); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java index d1878b73b..53f593487 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/entity/HandoverTaskOrder.java @@ -142,5 +142,6 @@ public class HandoverTaskOrder extends BaseVOEntity { @ApiModelProperty("作业人姓名") private String operatorsName; - -} + @ApiModelProperty("计费信息") + private String billingJson; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java index 6b1077fbb..ba3f625e1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/po/HandoverTaskOrderPO.java @@ -141,5 +141,6 @@ public class HandoverTaskOrderPO extends BaseVOEntity { @ApiModelProperty("物料明细(根据复核单数据生成,数量为复核数量)") private List materialDetailList; - -} + @ApiModelProperty("计费信息") + private String billingJson; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java index 04f91dd83..21fc3823c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/repository/todo/HandoverTaskOrderDO.java @@ -142,4 +142,6 @@ public class HandoverTaskOrderDO extends BaseVOEntity { @ApiModelProperty("app上传的图片") private String pictureApp; -} + + private String billingJson; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 01024d5ed..ff13acbca 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -25,6 +25,7 @@ import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper; import com.mhd.wms.domain.pickingMaterialDetail.repository.mapper.PickingMaterialDetailMapper; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO; +import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService; import com.mhd.wms.domain.taskHandoverMaterialDetail.repository.po.TaskHandoverMaterialDetailPO; import com.mhd.wms.domain.shiftManage.repository.po.ShiftManagePO; import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO; @@ -70,6 +71,8 @@ public class HandoverTaskOrderDomainService { private PickingMaterialDetailMapper pickingMaterialDetailMapper; @Autowired private IMaterialBarCodeService materialBarCodeService; + @Autowired + private IStockOutOrderService stockOutOrderService; /** @@ -277,11 +280,14 @@ public class HandoverTaskOrderDomainService { LoginUser loginUser = SecurityUtils.getLoginUser(); //修改库存 xgkc(handoverTaskOrderIds,loginUser); + HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getById(handoverTaskOrderIds.get(0)); + stockOutOrderService.update(null,new UpdateWrapper().lambda().set(StockOutOrder::getBillingJson,handoverTaskOrderDO.getBillingJson()).eq(StockOutOrder::getOutOrderNumber,handoverTaskOrder.getOrderNumber())); return handoverTaskOrderService.update(null, new UpdateWrapper().lambda() .set(HandoverTaskOrder::getStatus, 2) .set(HandoverTaskOrder::getUpdateBy, loginUser.getUserid()) .set(HandoverTaskOrder::getUpdateByName, loginUser.getUsername()) .set(HandoverTaskOrder::getUpdateTime, new Date()) + .set(HandoverTaskOrder::getBillingJson, handoverTaskOrderDO.getBillingJson()) .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds) ); } @@ -524,4 +530,4 @@ public class HandoverTaskOrderDomainService { -} +} \ 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 index 040b9b44e..3f7cadb60 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 @@ -112,4 +112,7 @@ public class ReceiptOrderAccount extends BaseVOEntity { @ApiModelProperty(value = "单价") @Excel(name = "单价", width = 15) private BigDecimal price; + + @ApiModelProperty(value = "计算价格json") + private String amountJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java index a2421881a..52fb4b9cb 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java @@ -352,4 +352,12 @@ public class StockInOrder extends BaseVOEntity { @ApiModelProperty("订单状态") @Excel(name = "订单状态") private String orderStatus; + @ApiModelProperty(name = "费用参数json") + private String billingJson; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java index 86d541606..54a436040 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -373,4 +374,15 @@ public class StockInOrderPO extends BaseVOEntity { @ApiModelProperty("订单状态") @Excel(name = "订单状态") private String orderStatus; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; + @ApiModelProperty("费用") + List receiptOrderAccountList; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java index 4d17f7a14..e9915f1a1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -379,4 +380,15 @@ public class StockInOrderDO extends BaseVOEntity { @ApiModelProperty("入库明细-物料编码,模糊匹配") private String materialCode; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; + @ApiModelProperty("费用") + List receiptOrderAccountList; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java index a6329a461..6bca69d9c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java @@ -369,4 +369,14 @@ public class StockOutOrder extends BaseVOEntity { @ApiModelProperty("app上传的图片") private String pictureApp; + @ApiModelProperty("计费信息") + private String billingJson; + + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java index ab73715ac..964426fce 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java @@ -5,6 +5,7 @@ import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -379,5 +380,14 @@ public class StockOutOrderPO extends BaseVOEntity { @ApiModelProperty("出库总数量") private BigDecimal totalOutboundQuantity; - + @ApiModelProperty("计费信息") + private String billingJson; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; + @ApiModelProperty("费用") + List receiptOrderAccountList; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java index c5afac898..dd7ad74f3 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO; +import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -415,4 +416,14 @@ public class StockOutOrderDO extends BaseVOEntity { @ApiModelProperty(name = "已分配数量总数量") private BigDecimal alreadyAllocationQuantityAll; + @ApiModelProperty("计费信息") + private String billingJson; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; + @ApiModelProperty("费用") + List receiptOrderAccountList; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/entity/StockReceiptOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/entity/StockReceiptOrder.java index d01544e79..b379008b5 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/entity/StockReceiptOrder.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/entity/StockReceiptOrder.java @@ -129,8 +129,9 @@ public class StockReceiptOrder extends BaseVOEntity { @ApiModelProperty("备注") @Excel(name = "备注") private String remark; + @ApiModelProperty(name = "费用参数json") + private String billingJson; - -} +} \ No newline at end of file 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 9f21eaaca..a0a2f1e43 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 @@ -159,4 +159,7 @@ public class StockReceiptOrderPO extends StockInOrderBasePO { private BigDecimal totalArea; @ApiModelProperty("费用") List receiptOrderAccountList; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; } \ 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 612ad1a7c..e63d99ffd 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 @@ -179,4 +179,7 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO { @ApiModelProperty("费用") List receiptOrderAccountList; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; } \ 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 b527af8be..942b8506a 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 @@ -68,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 com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO; import io.swagger.annotations.ApiModelProperty; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -419,8 +420,9 @@ public class StockReceiptOrderDomainService { genStockReceiptTaskOrderByReceivingGoods(stockReceiptOrderPO,stockReceiptOrderDO); //收货后上架前 生成质检 genQualityInspectionByReceivingGoods(stockReceiptOrderDO); - saveAmount(stockReceiptOrderDO); + //saveAmount(stockReceiptOrderDO); //更新入库单状态 + stockReceiptOrderPO.setBillingJson(stockReceiptOrderDO.getBillingJson()); updateStockInOrder(stockReceiptOrderPO); //修改收货单 设置收货单收货需要更新的数据数据 return updateStockReceiptOrder(stockReceiptOrderDO, stockReceiptOrderPO); @@ -439,60 +441,7 @@ public class StockReceiptOrderDomainService { } } - /** - * 定时任务整租推送到bms装卸费 - */ - public void wholeRentSynchronizationZXF(Long 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(); - 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(stockReceiptOrder)); - 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.setTaxRate(account.getRate()); - //businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency()); - //businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId()); - bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO); - } - log.info("定时任务整租推送到bms触发--结束"); - } /** * 同步更新入库单明细的收货数量(总毛重/总净重/总面积/总体积不再写入入库单明细,逻辑已注释保留) @@ -709,6 +658,7 @@ public class StockReceiptOrderDomainService { int addArm = stockReceiptOrderDO.getActualReceiptMaterialQuantity() != null ? stockReceiptOrderDO.getActualReceiptMaterialQuantity() : 0; stockReceiptOrder.setReceiptMaterialQuantity(prevRmq + addArm); } + stockReceiptOrder.setBillingJson(stockReceiptOrderDO.getBillingJson()); stockReceiptOrder.setStatus(2); stockReceiptOrder.setUpdateBy(loginUser.getUserid()); stockReceiptOrder.setUpdateByName(loginUser.getUsername()); @@ -736,6 +686,7 @@ public class StockReceiptOrderDomainService { StockInOrder stockInOrder = new StockInOrder(); stockInOrder.setInOrderNumber(stockReceiptOrderPO.getInOrderNumber()); stockInOrder.setStatus(3); + stockInOrder.setBillingJson(stockReceiptOrderPO.getBillingJson()); stockInOrder.setUpdateBy(loginUser.getUserid()); stockInOrder.setUpdateByName(loginUser.getUsername()); stockInOrder.setUpdateTime(new Date()); @@ -808,10 +759,18 @@ public class StockReceiptOrderDomainService { .set(StockReceiptOrder::getUpdateTime, new Date()) .eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId)); //推送bms - wholeRentSynchronizationZXF(receiptOrderId); + //wholeRentSynchronizationZXF(receiptOrderId); return update; } + public void updateInOrder(StockReceiptOrderDTO stockReceiptOrderDTO) { + String inOrderNumber = stockReceiptOrderDTO.getInOrderNumber(); + Long receiptOrderId = stockReceiptOrderDTO.getReceiptOrderId(); + String billingJson = stockReceiptOrderDTO.getBillingJson(); + stockInOrderService.update(null, new UpdateWrapper().lambda().set(StockInOrder::getBillingJson,billingJson).eq(StockInOrder::getInOrderNumber, inOrderNumber)); + stockReceiptOrderService.update(null, new UpdateWrapper().lambda().set(StockReceiptOrder::getBillingJson,billingJson).eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId)); + } + /** * 收货单完成时:按累计已收与计划数量比较,更新明细 receipt_status(3 正常收完 / 4 少收 / 5 超收) *

PC 主子行拆分收货时:计划数量只在主行(level=1),子行 quantity 常为 0;须按「主行已收 + 其下子行已收」与主行计划比较, diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java index 1f64a802a..882b70500 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/handoverTaskOrder/HandoverTaskOrderDTO.java @@ -172,4 +172,6 @@ public class HandoverTaskOrderDTO extends BaseVOEntity { @ApiModelProperty("app上传的图片") private String pictureApp; -} + + private String billingJson; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java index f1c28feed..821b7aa27 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java @@ -2,6 +2,7 @@ package com.mhd.wms.interfaces.dto.stockInOrder; 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.inMaterialDetail.InMaterialDetailDTO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -376,4 +377,15 @@ public class StockInOrderDTO extends StockInOrderBaseDTO { @ApiModelProperty("入库明细-物料编码,模糊匹配,与前端参数 materialCode 一致") private String materialCode; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; + @ApiModelProperty("费用") + List receiptOrderAccountList; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java index fe35ca819..c5dff7226 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java @@ -3,6 +3,7 @@ package com.mhd.wms.interfaces.dto.stockOutOrder; import com.fasterxml.jackson.annotation.JsonAlias; 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.outMaterialDetail.OutMaterialDetailDTO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -405,4 +406,14 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO { @ApiModelProperty("出库交接图片,PDA出库交接时上传的照片,多张图片以逗号隔开") private String pictureApp; + @ApiModelProperty("计费信息") + private String billingJson; + @ApiModelProperty("结算币种") + private String settlementCurrency; + @ApiModelProperty("业务员ID") + private String salesmanId; + @ApiModelProperty("业务员名称") + private String salesmanName; + @ApiModelProperty("费用") + List receiptOrderAccountList; } \ No newline at end of file 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 c8d636b29..47c50905d 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 @@ -156,4 +156,7 @@ public class StockReceiptOrderDTO extends StockInOrderBaseDTO { @ApiModelProperty("费用") List receiptOrderAccountList; + + @ApiModelProperty(name = "费用参数json") + private String billingJson; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java index 8d4f913a0..5ea8e1829 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java @@ -8,8 +8,11 @@ import com.mhd.common.core.utils.StringUtils; import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService; import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO; import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO; +import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import com.mhd.wms.interfaces.assember.stockInOrder.StockInOrderAssembler; +import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler; import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO; +import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -32,6 +35,8 @@ public class StockInOrderApi extends BaseController { @Resource private StockInOrderAssembler stockInOrderAssembler; + @Resource + private StockOutOrderAssembler stockOutOrderAssembler; /** * 分页查询入库单列表 @@ -63,6 +68,28 @@ public class StockInOrderApi extends BaseController { } } + /** + * 编辑入库单 + */ + @ApiOperation("编辑入库单") + @PostMapping("/saveAmount") + public AjaxResult saveAmount(@RequestBody StockInOrderDTO stockInOrderDTO) + { + StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO); + return toAjax(stockInOrderApplicationService.saveAmount(stockInOrderDO)); + } + + /** + * 编辑入库单 + */ + @ApiOperation("编辑入库单") + @PostMapping("/saveOutAmount") + public AjaxResult saveOutAmount(@RequestBody StockOutOrderDTO stockOutOrderDTO) + { + StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO); + return toAjax(stockInOrderApplicationService.saveOutAmount(stockOutOrderDO)); + } + /** * 批量删除入库单 */ @@ -129,4 +156,4 @@ public class StockInOrderApi extends BaseController { return AjaxResult.success(stockInOrderApplicationService.closeOrder(stockInOrderDO)); } -} +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java index f4fde3d96..c754e9311 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java @@ -79,6 +79,7 @@ public class StockReceiptOrderAppApi extends BaseController { @ApiOperation("完成收货") @PostMapping("/completeReceipt") public AjaxResult completeReceipt(@RequestBody StockReceiptOrderDTO stockReceiptOrderDTO) { + stockReceiptOrderApplicationService.updateInOrder(stockReceiptOrderDTO); return toAjax(stockReceiptOrderApplicationService.completeReceiptByApp(stockReceiptOrderDTO.getReceiptOrderId())); } @@ -98,4 +99,4 @@ public class StockReceiptOrderAppApi extends BaseController { return toAjax(stockReceiptOrderApplicationService.noOrderReceipt(stockReceiptOrderDO)); } -} +} \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml index 020429b49..58d336659 100644 --- a/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/handoverTaskOrder/HandoverTaskOrderMapper.xml @@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -48,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time, a.platform_use_status, a.order_type_code, a.order_type_name, a.expect_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_name, a.order_number, a.picking_order_number, a.remark, a.task_distribution, a.task_distribution_time, a.create_time, a.create_by, a.create_by_name, a.update_time, - a.update_by, a.update_by_name, a.del_flag, a.picture_app + a.update_by, a.update_by_name, a.del_flag, a.picture_app,a.billing_json diff --git a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml index 52620173c..dac04de19 100644 --- a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml @@ -80,6 +80,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -87,7 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.in_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.notice_number, a.in_order_number, a.status, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, - a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity, + a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.billing_json,a.SETTLEMENT_CURRENCY, + a.SALESMAN_ID,a.SALESMAN_NAME, -- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总 (select ifnull(sum(imd.quantity), 0) from in_material_detail imd diff --git a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml index b5c129e52..8b198f3a3 100644 --- a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml @@ -82,6 +82,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -97,7 +101,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.CONTACT_PERSON,a.VEHICLE_MODEL_PLATE,a.ENTRUST_NO,a.TEL,a.DRIVER_SIGN,a.FAX,a.DECLARE_CUSTOMS,a.MANUFACTURER, a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE, a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME, - a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app + a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.billing_json,a.SETTLEMENT_CURRENCY, + a.SALESMAN_ID,a.SALESMAN_NAME diff --git a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml index 6994de923..a338e3392 100644 --- a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml @@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -43,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.status, a.platform_id, a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time, a.platform_use_status, a.quantity, a.receipt_quantity, a.receipt_material_quantity, a.material_quantity, a.abnormal, a.task_distribution, a.task_distribution_time, a.operators_by, a.operators_name, a.remark, a.create_time, a.create_by, a.create_by_name, - a.update_time, a.update_by, a.update_by_name, a.del_flag + a.update_time, a.update_by, a.update_by_name, a.del_flag, a.billing_json diff --git a/sql/wkx20260403.sql b/sql/wkx20260403.sql index 99515425c..8570e6346 100644 --- a/sql/wkx20260403.sql +++ b/sql/wkx20260403.sql @@ -6,7 +6,45 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."IN_ORDER_DISPLAY" IS ' COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS '出库单是否固定显示 0-否 1-是'; +ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SALESMAN_NAME" VARCHAR(100); +ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SETTLEMENT_CURRENCY" VARCHAR(100); + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SALESMAN_ID" VARCHAR(100); + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SALESMAN_NAME" IS '业务员名称'; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SETTLEMENT_CURRENCY" IS '结算币种'; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SALESMAN_ID" IS '业务员id'; + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SALESMAN_NAME" VARCHAR(100); + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SETTLEMENT_CURRENCY" VARCHAR(100); + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SALESMAN_ID" VARCHAR(100); + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SALESMAN_NAME" IS '业务员名称'; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SETTLEMENT_CURRENCY" IS '结算币种'; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SALESMAN_ID" IS '业务员id' + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "BILLING_JSON" CLOB; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."BILLING_JSON" IS '计费信息'; + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "BILLING_JSON" CLOB; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."BILLING_JSON" IS '计费信息'; + +ALTER TABLE "NGWL_TEST_WMS"."HANDOVER_TASK_ORDER" ADD COLUMN "BILLING_JSON" CLOB; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."HANDOVER_TASK_ORDER"."BILLING_JSON" IS '计费信息'; + +ALTER TABLE "NGWL_TEST_WMS"."STOCK_RECEIPT_ORDER" ADD COLUMN "BILLING_JSON" CLOB; + +COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_RECEIPT_ORDER"."BILLING_JSON" IS '计费信息'; /* @@ -22,7 +60,7 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS ' Target Server Version : 8014116 (08.01.4116) File Encoding : 65001 - Date: 03/04/2026 16:20:24 + Date: 10/04/2026 21:00:36 */ @@ -31,35 +69,36 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS ' -- ---------------------------- 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 '', + "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 + "DEL_FLAG" TINYINT DEFAULT 1, + "AMOUNT_JSON" CLOB ) ; COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SYS_ORG_CODE" IS '所属部门'; @@ -88,6 +127,7 @@ 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-已删除'; +COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."AMOUNT_JSON" IS '计算价格参数json'; -- ---------------------------- -- Primary Key structure for table RECEIPT_ORDER_ACCOUNT