From a8f9d218051c3d3ba93df40d73d14b4d5bfbd3bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Tue, 28 Apr 2026 14:42:31 +0800 Subject: [PATCH 01/96] =?UTF-8?q?=E6=8E=A8=E9=80=81nc=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B4=B9=E7=94=A8=E7=A7=91=E7=9B=AE=E4=BF=A1=E6=81=AF;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/persistence/ReconciliationImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java index 8e6ee732a..19c67e240 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java @@ -794,6 +794,12 @@ public class ReconciliationImpl extends ServiceImpl Date: Tue, 28 Apr 2026 14:50:25 +0800 Subject: [PATCH 02/96] =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mhd-system/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd-user-center/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_bms/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_oms/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_wms/src/main/resources/bootstrap.yml | 16 ++++++++-------- 5 files changed, 40 insertions(+), 40 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-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml index ca12007b7..90cf188c9 100644 --- a/mhd-user-center/src/main/resources/bootstrap.yml +++ b/mhd-user-center/src/main/resources/bootstrap.yml @@ -20,17 +20,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 # 共享配置 diff --git a/mhd_bms/src/main/resources/bootstrap.yml b/mhd_bms/src/main/resources/bootstrap.yml index d00f66d31..b11cbb3d6 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_oms/src/main/resources/bootstrap.yml b/mhd_oms/src/main/resources/bootstrap.yml index 721ea37d6..d05dfce77 100644 --- a/mhd_oms/src/main/resources/bootstrap.yml +++ b/mhd_oms/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 #线上正式环境 # server-addr: 10.102.192.105:6848 # 锁定server端的配置文件(读取它的配置项) diff --git a/mhd_wms/src/main/resources/bootstrap.yml b/mhd_wms/src/main/resources/bootstrap.yml index 0f3f546c5..51545071f 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 7a11d68b8f63837d810820ea3a3281f8e6be7515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Tue, 28 Apr 2026 15:11:57 +0800 Subject: [PATCH 03/96] =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mhd_product/src/main/resources/bootstrap.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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,如果使用默认分组可以不配置 From 8f5bf5362029b812165b5444286c8c165d3de57a Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Tue, 28 Apr 2026 16:59:41 +0800 Subject: [PATCH 04/96] =?UTF-8?q?OMS-=E5=95=86=E4=B8=9A=E5=90=88=E4=BD=9C?= =?UTF-8?q?=E4=BC=99=E4=BC=B4=E9=A1=B5=E9=9D=A2=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/UserServiceFeign.java | 17 ++++++ .../RemoteUserFeignFallbackFactory.java | 5 ++ .../BusinessPartnerApplicationService.java | 51 ++++++++++++++++++ .../businessPartner/BusinessPartnerDTO.java | 52 +++++++++++++++++++ .../businessPartner/BusinessPartnerApi.java | 30 +++++++++++ 5 files changed, 155 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index 506727a20..e4e2aa9b2 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -191,4 +191,21 @@ public interface UserServiceFeign { @ApiOperation("根据用户ID查询货主信息") @GetMapping("/userShipperApi/getShipperByUserId/{userId}") public AjaxResult getShipperByUserId(@PathVariable("userId") Long userId); + + + + + @ApiOperation("商业合作伙伴-分页查询托运人列表") + @GetMapping("/userShipperApi/userShipperList") + public AjaxResult userShipperList(@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize, + @RequestParam(value = "userAccount", required = false) String userAccount, + @RequestParam(value = "shipperEnterpriseName", required = false) String shipperEnterpriseName, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam(value = "organizationName", required = false) String organizationName, + @RequestParam(value = "createTimeFrom", required = false) String createTimeFrom, + @RequestParam(value = "createTimeTo", required = false) String createTimeTo, + @RequestParam(value = "updateTimeFrom", required = false) String updateTimeFrom, + @RequestParam(value = "updateTimeTo", required = false) String updateTimeTo, + @RequestParam(value = "shipperType", required = false) Integer shipperType); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java index 08ff38640..f2c96baf3 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java @@ -181,6 +181,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory getShipperByUserId(Long userId) { return AjaxResult.error("查询失败" + throwable.getMessage()); } + + @Override + public AjaxResult userShipperList(Integer pageNum, Integer pageSize, String userAccount, String shipperEnterpriseName, Long organizationId, String organizationName, String createTimeFrom, String createTimeTo, String updateTimeFrom, String updateTimeTo, Integer shipperType) { + return AjaxResult.error("查询失败" + throwable.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java new file mode 100644 index 000000000..ea6a50c8e --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -0,0 +1,51 @@ +package com.mhd.oms.application.service.businessPartner; + + +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.interfaces.dto.businessPartner.BusinessPartnerDTO; +import com.mhd.system.api.UserServiceFeign; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class BusinessPartnerApplicationService { + + @Resource + private UserServiceFeign userServiceFeign; + + + + public TableDataInfo queryShipperPage(BusinessPartnerDTO businessPartnerDTO) { + AjaxResult result = userServiceFeign.userShipperList( + businessPartnerDTO.getPageNum(), + businessPartnerDTO.getPageSize(), + businessPartnerDTO.getUserAccount(), + businessPartnerDTO.getShipperEnterpriseName(), + businessPartnerDTO.getOrganizationId(), + businessPartnerDTO.getOrganizationName(), + businessPartnerDTO.getCreateTimeFrom(), + businessPartnerDTO.getCreateTimeTo(), + businessPartnerDTO.getUpdateTimeFrom(), + businessPartnerDTO.getUpdateTimeTo(), + businessPartnerDTO.getShipperType() + ); + + if ("200".equals((String.valueOf(result.get("code"))))){ + List list = (List) result.get("data"); + + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + } + return null; + } + + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java new file mode 100644 index 000000000..af8ba281f --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java @@ -0,0 +1,52 @@ +package com.mhd.oms.interfaces.dto.businessPartner; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "商业合作伙伴DTO") +public class BusinessPartnerDTO { + + @ApiModelProperty(value = "登录账号") + private String userAccount; + + @ApiModelProperty(value = "企业名称") + private String shipperEnterpriseName; + + @ApiModelProperty(value = "组织ID") + private Long organizationId; + + @ApiModelProperty(value = "组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建时间起") + private String createTimeFrom; + + @ApiModelProperty(value = "创建时间止") + private String createTimeTo; + + @ApiModelProperty(value = "更新时间起") + private String updateTimeFrom; + + @ApiModelProperty(value = "更新时间止") + private String updateTimeTo; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "货主类型:1-个人,2-企业") + private Integer shipperType; + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + + +} \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java new file mode 100644 index 000000000..27de7d862 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java @@ -0,0 +1,30 @@ +package com.mhd.oms.interfaces.facade.businessPartner; + + +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.businessPartner.BusinessPartnerApplicationService; +import com.mhd.oms.interfaces.dto.businessPartner.BusinessPartnerDTO; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@RestController +@RequestMapping("/businessPartnerApi") +public class BusinessPartnerApi { + + @Resource + private BusinessPartnerApplicationService businessPartnerApplicationService; + + @ApiOperation("商业合作伙伴-分页查询委托方列表") + @GetMapping("/shippperList") + public TableDataInfo shipperList(BusinessPartnerDTO businessPartnerDTO){ + return businessPartnerApplicationService.queryShipperPage(businessPartnerDTO); + + } + + +} From 3759a54b4955610f70668388dff6af100bbd1ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Wed, 29 Apr 2026 09:40:44 +0800 Subject: [PATCH 05/96] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A1=E8=B4=B9?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99=E4=BF=AE?= =?UTF-8?q?=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mhd/system/api/SystemServiceFeign.java | 5 +- .../ContractManageApplicationService.java | 94 +++++++++++++++++++ .../contractManage/ContractManageApi.java | 7 ++ .../BusinessDocumentApplicationService.java | 2 +- 4 files changed, 106 insertions(+), 2 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/SystemServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/SystemServiceFeign.java index 066fd3c56..12993e41f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/SystemServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/SystemServiceFeign.java @@ -363,6 +363,9 @@ public interface SystemServiceFeign { @GetMapping("/contractManageApi/getInfoByCustomer2") public AjaxResult getInfoByCustomer2(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("topOrganizationId") Long topOrganizationId); + @GetMapping("/contractManageApi/getInfoByCustomerAndOrganizationId") + public AjaxResult getInfoByCustomerAndOrganizationId(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("topOrganizationId") Long topOrganizationId,@RequestParam("organizationId") Long organizationId); + @GetMapping("/contractManageApi/queryList") public AjaxResult queryList(); @@ -377,4 +380,4 @@ public interface SystemServiceFeign { public AjaxResult matchForMaterialImport(@RequestParam("keyword") String keyword, @RequestParam("organizationId") Long organizationId); -} +} \ 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 f22d0d317..ba5d69631 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 @@ -757,6 +757,100 @@ public class ContractManageApplicationService { return resultContract; } + /** + * 根据结算主体获取合同信息 + * @param settlementCustomersCode 结算主体code + * @param contractType 合同类型 + */ + public ContractManagePO getInfoByCustomerAndOrganizationId(String settlementCustomersCode,Integer contractType, Long topOrganizationId, Long organizationId) { + /* + 首先根据合同类型(仓储、运输),以及结算客户,查询合同信息 + 如果传了结算主体,则根据结算主体以及当前时间查询有效的特殊合同,如果特殊合同没有,则查询通用合同 + */ + //获取当前登录人信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser) && topOrganizationId == null) { + throw new DigitalLogisticsException(UserError.TIMEOUT); + } + if(contractType==null){ + throw new ServiceException("合同类型不能为空"); + } + ContractManagePO resultContract = new ContractManagePO(); + //查询当前日期在有效期内的合同 + ContractManageDO queryParam = new ContractManageDO(); + queryParam.setNowDateString(DateUtil.format(new Date(),"yyyy-MM-dd")); + if (!ObjectUtil.isNull(loginUser)) { + queryParam.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + }else { + queryParam.setTopOrganizationId(topOrganizationId); + } + if (ObjectUtil.isNotEmpty(organizationId)) { + queryParam.setOrganizationId(organizationId); + } + List contractManagePOList = contractManageDomainService.queryList(queryParam); + if(contractManagePOList != null && contractManagePOList.size()>0){ + if(StringUtils.isNotEmpty(settlementCustomersCode)){ + //根据结算对象,及合同的类型 查询对应合同信息 + ContractManagePO contractManagePO = contractManagePOList.stream() + .filter(item -> item.getSettlementCustomersCode().equals(settlementCustomersCode) && Objects.equals(item.getContractType(), contractType)).findFirst().orElse(null); + if(null == contractManagePO){ + if(contractType==1){ + //仓储合同 + resultContract = contractManagePOList.stream() + .filter(item -> + item.getContractType()==1 && + item.getCommonContractFlag() == 1 && item.getContractState() ==2) + .findFirst().orElse(null); + }else{ + //运输合同 + resultContract = contractManagePOList.stream().filter(item -> item.getContractType()==2 + && item.getCommonContractFlag() == 1 && item.getContractState() ==2).findFirst().orElse(null); + } + }else { + resultContract = contractManagePO; + } + }else { + if(contractType==1){ + //仓储合同 + resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==1 + && contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null); + }else{ + //运输合同 + resultContract = contractManagePOList.stream().filter(contractManagePO -> contractManagePO.getContractType()==2 + && contractManagePO.getCommonContractFlag() == 1 && contractManagePO.getContractState() ==2).findFirst().orElse(null); + } + } + if(null == resultContract){ + throw new ServiceException("找不到匹配的合同,请重试"); + } + //得到合同后,查询合同明细 + List contractManageDetailPOList = contractManageDetailDomainService.queryListByManageId(resultContract.getContractManageId()); + List contractManageDetailSaveList = new ArrayList<>(); + if(contractManageDetailPOList != null && contractManageDetailPOList.size()>0){ + //将临时合同中没有,但是通用合同中有的数据过滤出(使用 ObjectUtil.equal 避免 firstSubjectCode/secondSubjectCode 为 null 时 NPE) + contractManageDetailSaveList = contractManageDetailPOList.stream().filter(item -> contractManageDetailPOList.stream().noneMatch(item1 -> ObjectUtil.equal(item1.getFirstSubjectCode(), item.getFirstSubjectCode()) && ObjectUtil.equal(item1.getSecondSubjectCode(), item.getSecondSubjectCode()) && item1.getSubjectType()==1)).collect(Collectors.toList()); + //首先根据结算科目类型将临时合同过滤出 + List tempContractManageDetailPOList = contractManageDetailPOList.stream().filter(item -> item.getSubjectType()==2).collect(Collectors.toList()); + //遍历两个集合,将相同费用科目code的数据,进行比较,如果结算科目类型是临时且合同有效期有效,则使用该条数据,将另一条移除 + for (ContractManageDetailPO manageDetailPO : tempContractManageDetailPOList) { + for (ContractManageDetailPO contractManageDetailPO : contractManageDetailPOList) { + if(ObjectUtil.equal(contractManageDetailPO.getFirstSubjectCode(), manageDetailPO.getFirstSubjectCode()) && ObjectUtil.equal(contractManageDetailPO.getSecondSubjectCode(), manageDetailPO.getSecondSubjectCode())){ + //判断如果是临时合同在有效期内,则将该条数据保存到集合contractManageDetailSaveList + DateTime start = DateUtil.parseDate(DateUtil.format(manageDetailPO.getSubjectEffectiveDate(),"yyyy-MM-dd")); + DateTime end = DateUtil.parseDateTime(DateUtil.format(manageDetailPO.getSubjectEffectiveDate(),"yyyy-MM-dd")); + DateTime now = DateUtil.beginOfDay(DateUtil.date()); + if (now.isAfterOrEquals(start) && now.isBefore(end)) { + contractManageDetailSaveList.add(manageDetailPO); + } + } + } + } + } + resultContract.setContractManageDetailPOList(contractManageDetailSaveList); + } + return resultContract; + } + /** * 作废合同 * @param contractManageDTO 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 2dd6e4bd1..502883e1c 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 @@ -154,6 +154,13 @@ public class ContractManageApi extends BaseController{ return AjaxResult.success(contractManageApplicationService.getInfoByCustomer(settlementCustomersCode,contractType,topOrganizationId)); } + @ApiOperation("根据结算主体获取合同信息") + @GetMapping(value = "/getInfoByCustomerAndOrganizationId") + public AjaxResult getInfoByCustomerAndOrganizationId(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("topOrganizationId") Long topOrganizationId,@RequestParam("organizationId") Long organizationId) + { + return AjaxResult.success(contractManageApplicationService.getInfoByCustomerAndOrganizationId(settlementCustomersCode,contractType,topOrganizationId,organizationId)); + } + @ApiOperation("根据合同编码获取合同管理") @GetMapping(value = "/getInfoByCode") public AjaxResult getInfoByCode(@RequestParam(value = "contractNumber",required = true) String contractNumber) 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 7b7014500..67c69da6a 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 @@ -412,7 +412,7 @@ public class BusinessDocumentApplicationService { if(businessDocumentDO.getBelongModuleCode().equals(BelongModuleCode.WMS.getCode())){ contractType = 1; } - AjaxResult ajaxResult = systemServiceFeign.getInfoByCustomer2(businessDocumentDO.getSettlementCustomersCode(),contractType,businessDocumentDO.getTopOrganizationId()); + AjaxResult ajaxResult = systemServiceFeign.getInfoByCustomerAndOrganizationId(businessDocumentDO.getSettlementCustomersCode(),contractType,businessDocumentDO.getTopOrganizationId(),businessDocumentDO.getOrganizationId()); if(!"200".equals(String.valueOf(ajaxResult.get("code")))) { throw new ServiceException("合同信息未找到"); } From 7d1254d237fc85603a9fee3290189831ef147618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Wed, 29 Apr 2026 11:42:10 +0800 Subject: [PATCH 06/96] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 ce67818f8..c4b4d8db4 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 74b14a737..cdb81ac6f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index 5297c1fc5..da0eb2638 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 815c7f04e..48ccc2788 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** From feafc19e179ad97a19184d0ea5918980d944ec12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Wed, 29 Apr 2026 11:54:25 +0800 Subject: [PATCH 07/96] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/factory/RemoteSystemFeignFallbackFactory.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java index dd89359aa..41f189f1f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java @@ -289,6 +289,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory Date: Wed, 29 Apr 2026 13:24:25 +0800 Subject: [PATCH 08/96] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A1=E8=B4=B9?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99=E4=BF=AE?= =?UTF-8?q?=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockInOrderApplicationService.java | 20 ++++++++++--------- .../entity/ReceiptOrderAccount.java | 2 ++ 2 files changed, 13 insertions(+), 9 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 9d82a46bc..7af387146 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 @@ -255,9 +255,10 @@ public class StockInOrderApplicationService { if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) { for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) { receiptOrderAccount.setOrderId(inOrderId); + receiptOrderAccount.setInOrOut("in"); } r = receiptOrderAccountService.saveBatch(receiptOrderAccountList); - wholeRentSynchronizationZXF(inOrderId); + wholeRentSynchronizationZXF(inOrderId,"in"); } return r; } @@ -276,9 +277,10 @@ public class StockInOrderApplicationService { if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) { for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) { receiptOrderAccount.setOrderId(outOrderId); + receiptOrderAccount.setInOrOut("out"); } r = receiptOrderAccountService.saveBatch(receiptOrderAccountList); - wholeRentSynchronizationZXF(outOrderId); + wholeRentSynchronizationZXF(outOrderId,"out"); } return r; } @@ -286,10 +288,10 @@ public class StockInOrderApplicationService { /** * 定时任务整租推送到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) { + public void wholeRentSynchronizationZXF(Long busId,String inOrOut) { + StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper().lambda().eq(StockInOrder::getInOrderId, busId).eq(StockInOrder::getDelFlag, 1),false); + StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper().lambda().eq(StockOutOrder::getOutOrderId, busId).eq(StockOutOrder::getDelFlag, 1),false); + if ("in".equals(inOrOut)) { Long shipperId = stockInOrder.getShipperId(); Long organizationId = stockInOrder.getOrganizationId(); String organizationName = stockInOrder.getOrganizationName(); @@ -297,7 +299,7 @@ public class StockInOrderApplicationService { String inOrderNumber = stockInOrder.getInOrderNumber(); String settlementCurrency = stockInOrder.getSettlementCurrency(); String salesmanId = stockInOrder.getSalesmanId(); - List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId)); + List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId).eq(ReceiptOrderAccount::getInOrOut, "in")); for (ReceiptOrderAccount account : accounts) { BigDecimal amount = account.getAmount(); String subjectCode = account.getSubjectCode(); @@ -355,7 +357,7 @@ public class StockInOrderApplicationService { bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO); } } - } else if (stockOutOrder != null) { + } else if ("out".equals(inOrOut)) { Long shipperId = stockOutOrder.getShipperId(); Long organizationId = stockOutOrder.getOrganizationId(); String organizationName = stockOutOrder.getOrganizationName(); @@ -363,7 +365,7 @@ public class StockInOrderApplicationService { String inOrderNumber = stockOutOrder.getOutOrderNumber(); String settlementCurrency = stockOutOrder.getSettlementCurrency(); String salesmanId = stockOutOrder.getSalesmanId(); - List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId)); + List accounts = receiptOrderAccountService.list(new QueryWrapper().lambda().eq(ReceiptOrderAccount::getOrderId, busId).eq(ReceiptOrderAccount::getInOrOut, "out")); for (ReceiptOrderAccount account : accounts) { String subjectCode = account.getSubjectCode(); String subjectName = account.getSubjectName(); 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 3f7cadb60..04ee86b95 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 @@ -115,4 +115,6 @@ public class ReceiptOrderAccount extends BaseVOEntity { @ApiModelProperty(value = "计算价格json") private String amountJson; + @ApiModelProperty(value = "出入库区别标识") + private String inOrOut; } \ No newline at end of file From 8f7d44d72521565ad1adc6b157bd5e1b26b43a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Wed, 29 Apr 2026 13:26:53 +0800 Subject: [PATCH 09/96] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../java/com/mhd/system/api/WmsServiceFeign.java | 2 +- .../mhd-system/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_bms/src/main/resources/bootstrap.yml | 16 ++++++++-------- mhd_wms/src/main/resources/bootstrap.yml | 16 ++++++++-------- 7 files changed, 28 insertions(+), 28 deletions(-) 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 c4b4d8db4..ce67818f8 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index cdb81ac6f..74b14a737 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index da0eb2638..5297c1fc5 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 48ccc2788..815c7f04e 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** diff --git a/mhd-modules/mhd-system/src/main/resources/bootstrap.yml b/mhd-modules/mhd-system/src/main/resources/bootstrap.yml index 2afad33b3..d2ad81e8f 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 b11cbb3d6..d00f66d31 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_wms/src/main/resources/bootstrap.yml b/mhd_wms/src/main/resources/bootstrap.yml index 51545071f..0f3f546c5 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 b934fe9628b0cba8649afdc468f68b4193396188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Thu, 30 Apr 2026 10:56:37 +0800 Subject: [PATCH 10/96] =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaces/facade/sysTableConfig/SysTableConfigApi.java | 6 +++--- .../facadeApi/sysTableConfig/SysTableConfigApi.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/sysTableConfig/SysTableConfigApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/sysTableConfig/SysTableConfigApi.java index 91e982a6d..b1be6a7b4 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/sysTableConfig/SysTableConfigApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/sysTableConfig/SysTableConfigApi.java @@ -66,9 +66,9 @@ public class SysTableConfigApi extends BaseController { @RequestParam(name="key") String key) { try { SysTableConfig config = sysTableConfigService.getByOrgIdAndKey(organizationId, key, warehouseId); - if (config == null) { - return Result.ok("未找到对应配置"); - } +// if (config == null) { +// return Result.ok("未找到对应配置"); +// } return Result.ok(config); } catch (Exception e) { log.error(e.getMessage(), e); diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sysTableConfig/SysTableConfigApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sysTableConfig/SysTableConfigApi.java index c7826d35b..39a02f1de 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sysTableConfig/SysTableConfigApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/sysTableConfig/SysTableConfigApi.java @@ -74,9 +74,9 @@ public class SysTableConfigApi extends BaseController { @RequestParam(name="key") String key) { try { SysTableConfig config = sysTableConfigService.getByOrgIdAndKey(organizationId, key, warehouseId); - if (config == null) { - return Result.ok("未找到对应配置"); - } +// if (config == null) { +// return Result.ok("未找到对应配置"); +// } return Result.ok(config); } catch (Exception e) { log.error(e.getMessage(), e); From 6faccde5e618c73ff3249bb7084a8ccd5a5f99c3 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, 30 Apr 2026 15:05:24 +0800 Subject: [PATCH 11/96] =?UTF-8?q?feign=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 ce67818f8..c4b4d8db4 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 74b14a737..cdb81ac6f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index 5297c1fc5..da0eb2638 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 815c7f04e..48ccc2788 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** From 2973c0c4b1bef3c15434ab386ffa5fbd3fd724e2 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 30 Apr 2026 16:38:29 +0800 Subject: [PATCH 12/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E5=95=86?= =?UTF-8?q?=E4=B8=9A=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4-user=5Fcenter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserShipperApplicationService.java | 21 ++++++++++++++++++- .../entity/UserShipperEntity.java | 11 ++++++++++ .../repository/mapper/UserShipperMapper.java | 8 +++++++ .../interfaces/facade/UserShipperAPI.java | 17 +++++++++++++++ .../resources/mapper/UserShipperMapper.xml | 12 +++++++++++ 5 files changed, 68 insertions(+), 1 deletion(-) diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index 94c6cec03..aaff62243 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -33,6 +33,7 @@ import com.mhd.common.core.domain.po.RolePO; import com.mhd.user.domain.userAggregate.entity.UserRoleEntity; import com.mhd.user.domain.userAggregate.entity.UserShipperEntity; import com.mhd.user.domain.userAggregate.event.ShipperEventPublisher; +import com.mhd.user.domain.userAggregate.repository.mapper.UserShipperMapper; import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo; import com.mhd.user.domain.userAggregate.repository.todo.*; import com.mhd.user.domain.userAggregate.service.*; @@ -112,6 +113,9 @@ public class UserShipperApplicationService { @Resource private WlhyServiceFeign wlhyServiceFeign; + @Resource + private UserShipperMapper userShipperMapper; + /** * @Description 查询托运人列表 * @Author Alex @@ -1209,5 +1213,20 @@ public class UserShipperApplicationService { } } - + /** + * 推送状态更新 + * @param shipperId + * @param pushStatus + * @param pushTime + * @param pushBy + * @return + */ + public int updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + UserShipperEntity userShipper = new UserShipperEntity(); + userShipper.setShipperId(shipperId); + userShipper.setPushStatus(pushStatus); + userShipper.setPushTime(pushTime); + userShipper.setPushBy(pushBy); + return userShipperMapper.updatePushStatus(userShipper); + } } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java index c3e4a8879..c18bfb7db 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java @@ -263,4 +263,15 @@ public class UserShipperEntity extends BaseVOEntity { @ApiModelProperty(name = "组织名称") private String organizationName; + + @ApiModelProperty(name = "推送状态 1-未推送 2-推送中 3-推送成功 4-推送失败") + private Integer pushStatus; + @ApiModelProperty(name = "推送时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pushTime; + @ApiModelProperty(name = "推送人") + private Long pushBy; + + } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java index 96f7cb79c..3631288cb 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java @@ -7,6 +7,7 @@ import com.mhd.user.domain.userAggregate.repository.todo.UserShipperDO; import com.mhd.user.domain.userAggregate.repository.po.UserShipperPo; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface UserShipperMapper extends BaseMapper { @@ -28,4 +29,11 @@ public interface UserShipperMapper extends BaseMapper { List selectBySealId(@Param("userShipperEntity") UserShipperEntity userShipperEntity); public com.mhd.common.core.domain.po.UserShipperPo getShipperSummaryData(Long userId); + + /** + * + * @param userShipper + * @return + */ + int updatePushStatus(UserShipperEntity userShipper); } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java index 863b63d10..97972a569 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java @@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Api(tags = "用户中台管理-托运人管理") @@ -235,4 +236,20 @@ public class UserShipperAPI extends BaseController { } } + @ApiOperation("商业合作伙伴-更新推送状态") + @PostMapping("/updatePushStatus") + public AjaxResult updatePushStatus(@RequestParam("shipperId") Long shipperId, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam("pushTime") Date pushTime, + @RequestParam("pushBy") Long pushBy){ + + try{ + int result = userShipperApplicationService.updatePushStatus(shipperId,pushStatus,pushTime,pushBy); + return result > 0 ? AjaxResult.success() : AjaxResult.error("更新失败"); + }catch (Exception e){ + log.error("更新推送状态异常: shipperId = {} , error = ", e.getMessage()); + return AjaxResult.error("更新推送状态异常:" + e.getMessage()); + } + } + } diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index 7a1343681..edc7e1d30 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -401,4 +401,16 @@ and esign_enterprise_status = #{userShipperEntity.esignEnterpriseStatus} + + + UPDATE user_shipper + + push_status = #{pushStatus}, + push_time = #{pushTime}, + push_by = #{pushBy}, + + WHERE shipper_id = #{shipperId} + + + \ No newline at end of file From b2a01f1738948b880f5eb55284c424aa37b37b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Thu, 30 Apr 2026 16:55:39 +0800 Subject: [PATCH 13/96] =?UTF-8?q?=E8=B4=A7=E4=B8=BB=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E4=B8=8E=E7=94=B5=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java index 2034e51b9..c66ff4d73 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java @@ -27,6 +27,8 @@ public class TmsShipperDTO implements Serializable { /**货主类型(0-个人货主,1-企业货主))*/ @ApiModelProperty(value = "货主类型(0-个人货主,1-企业货主))") private Integer shipperType; + @ApiModelProperty(name = "货主账号") + private String userAccount; @ApiModelProperty(name = "最高组织id") private Long topOrganizationId; @ApiModelProperty(name = "归属组织id") From b62fc345b04fe31eca11d2465b332d3cc5a4773a Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 11:20:41 +0800 Subject: [PATCH 14/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E5=95=86?= =?UTF-8?q?=E4=B8=9A=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/UserServiceFeign.java | 8 ++ .../RemoteUserFeignFallbackFactory.java | 6 + .../BusinessPartnerApplicationService.java | 133 ++++++++++++++++++ .../mhd/oms/domain/gwLog/entity/GwLog.java | 64 +++++++++ .../gwLog/repository/mapper/GwLogMapper.java | 10 ++ .../businessPartner/BusinessPartnerDTO.java | 7 + .../businessPartner/BusinessPartnerApi.java | 11 +- 7 files changed, 236 insertions(+), 3 deletions(-) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/entity/GwLog.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index e4e2aa9b2..93264d5e9 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -18,6 +18,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.List; import java.util.Map; @@ -208,4 +209,11 @@ public interface UserServiceFeign { @RequestParam(value = "updateTimeFrom", required = false) String updateTimeFrom, @RequestParam(value = "updateTimeTo", required = false) String updateTimeTo, @RequestParam(value = "shipperType", required = false) Integer shipperType); + + @ApiOperation("商业合作伙伴-更新推送") + @PostMapping("/userShipperApi/updatePushStatus") + void updatePushStatus(@RequestParam(value = "shipperId") Long shipperId, + @RequestParam(value = "pushStatus") Integer pushStatus, + @RequestParam(value = "pushTime") Date pushTime, + @RequestParam(value = "pushBy") Long pushBy); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java index f2c96baf3..dbbf0623b 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Date; import java.util.List; import java.util.Map; @@ -186,6 +187,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory userShipperList(Integer pageNum, Integer pageSize, String userAccount, String shipperEnterpriseName, Long organizationId, String organizationName, String createTimeFrom, String createTimeTo, String updateTimeFrom, String updateTimeTo, Integer shipperType) { return AjaxResult.error("查询失败" + throwable.getMessage()); } + + @Override + public void updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + log.error("更新失败" + throwable.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java index ea6a50c8e..b922182b4 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -1,23 +1,49 @@ package com.mhd.oms.application.service.businessPartner; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.oms.interfaces.dto.businessPartner.BusinessPartnerDTO; import com.mhd.system.api.UserServiceFeign; +import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j public class BusinessPartnerApplicationService { + private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String API_NAME = "saveCorporation"; + + @Resource private UserServiceFeign userServiceFeign; + @Resource + private GwLogMapper gwLogMapper; + + + + public TableDataInfo queryShipperPage(BusinessPartnerDTO businessPartnerDTO) { @@ -48,4 +74,111 @@ public class BusinessPartnerApplicationService { } + public AjaxResult batchPush(List businessPartnerDTOList) { + if(businessPartnerDTOList == null || businessPartnerDTOList.isEmpty()){ + return AjaxResult.error("没有数据需要推送"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long pushBy = loginUser != null ? loginUser.getUserid() : null; + Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; + Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; + String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; + + int successCount = 0; + int failCount = 0; + StringBuilder failMsg = new StringBuilder(); + + for (BusinessPartnerDTO businessPartnerDTO :businessPartnerDTOList){ + + Map body = new HashMap<>(); + body.put("copyCode",businessPartnerDTO.getCorpCode()); + body.put("copyName",businessPartnerDTO.getCorpName()); + + GwLog gwLog = new GwLog(); + gwLog.setType("商业合作伙伴"); + gwLog.setBusinessId(businessPartnerDTO.getShipperId()); + gwLog.setRequestBody(JSONObject.toJSONString(body)); + gwLog.setResponseBody(""); + gwLog.setStatus(1); + gwLog.setSendTime(new Date()); + gwLog.setOrganizationId(organizationId); + gwLog.setTopOrganizationId(topOrganizationId); + gwLog.setOrganizationName(organizationName); + gwLog.setCreateBy(pushBy); + gwLog.setCreateTime(new Date()); + gwLog.setDelFlag(1); + gwLogMapper.insert(gwLog); + + updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),2,null,pushBy); + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(PUSH_API_URL); + StringEntity postingString = new StringEntity(JSONObject.toJSONString(body),"UTF-8"); + httpPost.setEntity(postingString); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("apiName", API_NAME); + + try{ + CloseableHttpResponse response = httpClient.execute(httpPost); + String responseString = EntityUtils.toString(response.getEntity()); + gwLog.setResponseBody(responseString); + + if(response.getStatusLine().getStatusCode() == 200){ + gwLog.setStatus(2); + updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),3, new Date(), pushBy); + successCount++; + }else{ + gwLog.setStatus(3); + gwLog.setErrorMsg(responseString); + updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),4, new Date(), pushBy); + failCount++; + failMsg.append("CorpCode:").append(businessPartnerDTO.getCorpCode()).append("失败:"); + } + gwLogMapper.updateById(gwLog); + response.close(); + + + + } catch (IOException e) { + gwLog.setStatus(3); + gwLog.setErrorMsg(e.getMessage()); + gwLogMapper.updateById(gwLog); + updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),4, new Date(), pushBy); + failCount++; + failMsg.append("CorpCode:").append(businessPartnerDTO.getCorpCode()).append("异常:").append(e.getMessage()).append(":"); + log.error("GW推送异常:shipperId={}, error={}",businessPartnerDTO.getShipperId(),e.getMessage()); + + } finally { + try{ + httpClient.close(); + }catch (Exception e){ + log.error("关闭httpClient异常:{}" + e.getMessage()); + } + + } + + } + + String resultMsg = "推送完成:成功" + successCount + "条,失败" + failCount +"条"; + if(failCount > 0){ + resultMsg += "[" + failMsg.toString() + "]"; + } + + return AjaxResult.success(resultMsg); + } + + + + private void updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + try { + // 调用user-center的Feign接口,更新货主的推送状态 + userServiceFeign.updatePushStatus(shipperId, pushStatus, pushTime, pushBy); + } catch (Exception e) { + // 如果更新失败,记录错误日志,但不阻断主流程 + log.info("更新推送状态失败: shipperId={}, error={}", shipperId, e.getMessage()); + } + } + + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/entity/GwLog.java b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/entity/GwLog.java new file mode 100644 index 000000000..de8e44b30 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/entity/GwLog.java @@ -0,0 +1,64 @@ +package com.mhd.oms.domain.gwLog.entity; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("gw_log") +public class GwLog implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("日志id") + @TableId(type = IdType.AUTO) + private Long logId; + + @ApiModelProperty("类型") + private String type; + + @ApiModelProperty("业务ID") + private String businessId; + + @ApiModelProperty("请求报文") + private String requestBody; + + @ApiModelProperty("响应报文") + private String responseBody; + + @ApiModelProperty("状态(1-初始,2-成功,3-失败)") + private Integer status; + + @ApiModelProperty("错误信息") + private String errorMsg; + + @ApiModelProperty("推送时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + @ApiModelProperty("组织ID") + private Long organizationId; + + @ApiModelProperty("一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("组织名称") + private String organizationName; + + @ApiModelProperty("创建人") + private Long createBy; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("删除标记:1-正常,0-删除") + private Integer delFlag; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java new file mode 100644 index 000000000..65484ad4b --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java @@ -0,0 +1,10 @@ +package com.mhd.oms.domain.gwLog.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import org.apache.ibatis.annotations.Mapper; + + +@Mapper +public interface GwLogMapper extends BaseMapper { +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java index af8ba281f..acd43a1ec 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java @@ -48,5 +48,12 @@ public class BusinessPartnerDTO { @ApiModelProperty(value = "每页数量") private Integer pageSize = 10; + @ApiModelProperty(value = "合作伙伴代码") + private String corpCode; + @ApiModelProperty(value = "公司中文名称") + private String corpName; + + @ApiModelProperty(value = "货主id") + private String shipperId; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java index 27de7d862..f7c504bc7 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/businessPartner/BusinessPartnerApi.java @@ -1,15 +1,15 @@ package com.mhd.oms.interfaces.facade.businessPartner; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.businessPartner.BusinessPartnerApplicationService; import com.mhd.oms.interfaces.dto.businessPartner.BusinessPartnerDTO; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; @RestController @@ -26,5 +26,10 @@ public class BusinessPartnerApi { } + @ApiOperation("商业合作伙伴-批量推送") + @PostMapping("/batchPush") + public AjaxResult batchPush(@RequestBody List businessPartnerDTOList){ + return businessPartnerApplicationService.batchPush(businessPartnerDTOList); + } } From 4d732b1bf80b21d0dbaeda38fb68590dddd25b13 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 13:51:57 +0800 Subject: [PATCH 15/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E5=95=86?= =?UTF-8?q?=E4=B8=9A=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mhd/system/api/UserServiceFeign.java | 10 +++++----- .../api/factory/RemoteUserFeignFallbackFactory.java | 4 ++-- .../com/mhd/user/interfaces/facade/UserShipperAPI.java | 4 +++- .../BusinessPartnerApplicationService.java | 5 +++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index 93264d5e9..d99a28b8a 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -210,10 +210,10 @@ public interface UserServiceFeign { @RequestParam(value = "updateTimeTo", required = false) String updateTimeTo, @RequestParam(value = "shipperType", required = false) Integer shipperType); - @ApiOperation("商业合作伙伴-更新推送") + @PostMapping("/userShipperApi/updatePushStatus") - void updatePushStatus(@RequestParam(value = "shipperId") Long shipperId, - @RequestParam(value = "pushStatus") Integer pushStatus, - @RequestParam(value = "pushTime") Date pushTime, - @RequestParam(value = "pushBy") Long pushBy); + public AjaxResult updatePushStatus(@RequestParam(value = "shipperId") Long shipperId, + @RequestParam(value = "pushStatus", required = false) Integer pushStatus, + @RequestParam(value = "pushTime", required = false) Date pushTime, + @RequestParam(value = "pushBy", required = false) Long pushBy); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java index dbbf0623b..85a7f0d36 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java @@ -189,8 +189,8 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + return AjaxResult.error("更新失败" + throwable.getMessage()); } }; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java index 97972a569..484768893 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java @@ -20,6 +20,7 @@ import com.mhd.user.interfaces.vo.SettlementInfoQueryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -240,7 +241,8 @@ public class UserShipperAPI extends BaseController { @PostMapping("/updatePushStatus") public AjaxResult updatePushStatus(@RequestParam("shipperId") Long shipperId, @RequestParam("pushStatus") Integer pushStatus, - @RequestParam("pushTime") Date pushTime, + @RequestParam("pushTime") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date pushTime, @RequestParam("pushBy") Long pushBy){ try{ diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java index b922182b4..fb1e26a78 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -110,7 +110,7 @@ public class BusinessPartnerApplicationService { gwLog.setDelFlag(1); gwLogMapper.insert(gwLog); - updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),2,null,pushBy); + updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),2,new Date(),pushBy); CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(PUSH_API_URL); @@ -173,7 +173,8 @@ public class BusinessPartnerApplicationService { private void updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { try { // 调用user-center的Feign接口,更新货主的推送状态 - userServiceFeign.updatePushStatus(shipperId, pushStatus, pushTime, pushBy); + AjaxResult result = userServiceFeign.updatePushStatus(shipperId, pushStatus, pushTime, pushBy); + log.info("更新返回结果:{}",result); } catch (Exception e) { // 如果更新失败,记录错误日志,但不阻断主流程 log.info("更新推送状态失败: shipperId={}, error={}", shipperId, e.getMessage()); From d32e7e97f6bd87cfd567dcd71e6ce6c9f6abc7db Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 14:16:14 +0800 Subject: [PATCH 16/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E5=95=86?= =?UTF-8?q?=E4=B8=9A=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/UserServiceFeign.java | 2 +- .../system/api/factory/RemoteUserFeignFallbackFactory.java | 2 +- .../application/service/UserShipperApplicationService.java | 6 ++++-- .../java/com/mhd/user/interfaces/facade/UserShipperAPI.java | 5 ++--- .../businessPartner/BusinessPartnerApplicationService.java | 3 ++- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index d99a28b8a..37e2cffba 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -214,6 +214,6 @@ public interface UserServiceFeign { @PostMapping("/userShipperApi/updatePushStatus") public AjaxResult updatePushStatus(@RequestParam(value = "shipperId") Long shipperId, @RequestParam(value = "pushStatus", required = false) Integer pushStatus, - @RequestParam(value = "pushTime", required = false) Date pushTime, + @RequestParam(value = "pushTime", required = false) String pushTime, @RequestParam(value = "pushBy", required = false) Long pushBy); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java index 85a7f0d36..dd85a7f9b 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java @@ -189,7 +189,7 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + public AjaxResult updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy) { return AjaxResult.error("更新失败" + throwable.getMessage()); } }; diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index aaff62243..9faccfa09 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -1221,11 +1221,13 @@ public class UserShipperApplicationService { * @param pushBy * @return */ - public int updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { + public int updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy) { UserShipperEntity userShipper = new UserShipperEntity(); userShipper.setShipperId(shipperId); userShipper.setPushStatus(pushStatus); - userShipper.setPushTime(pushTime); + if (pushTime != null && !"".equals(pushTime)) { + userShipper.setPushTime(DateUtil.parse(pushTime)); + } userShipper.setPushBy(pushBy); return userShipperMapper.updatePushStatus(userShipper); } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java index 484768893..a21505014 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java @@ -241,9 +241,8 @@ public class UserShipperAPI extends BaseController { @PostMapping("/updatePushStatus") public AjaxResult updatePushStatus(@RequestParam("shipperId") Long shipperId, @RequestParam("pushStatus") Integer pushStatus, - @RequestParam("pushTime") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date pushTime, - @RequestParam("pushBy") Long pushBy){ + @RequestParam(value = "pushTime", required = false) String pushTime, + @RequestParam(value = "pushBy", required = false) Long pushBy){ try{ int result = userShipperApplicationService.updatePushStatus(shipperId,pushStatus,pushTime,pushBy); diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java index fb1e26a78..46645d011 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -173,7 +173,8 @@ public class BusinessPartnerApplicationService { private void updatePushStatus(Long shipperId, Integer pushStatus, Date pushTime, Long pushBy) { try { // 调用user-center的Feign接口,更新货主的推送状态 - AjaxResult result = userServiceFeign.updatePushStatus(shipperId, pushStatus, pushTime, pushBy); + String pushTimeStr = pushTime != null ? DateUtil.format(pushTime, "yyyy-MM-dd HH:mm:ss") : null; + AjaxResult result = userServiceFeign.updatePushStatus(shipperId, pushStatus, pushTimeStr, pushBy); log.info("更新返回结果:{}",result); } catch (Exception e) { // 如果更新失败,记录错误日志,但不阻断主流程 From e5b836012b57b13aea5a08a3f328f85b450470b6 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 16:05:38 +0800 Subject: [PATCH 17/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E5=95=86?= =?UTF-8?q?=E4=B8=9A=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../userAggregate/repository/po/UserShipperPo.java | 11 +++++++++++ .../src/main/resources/mapper/UserShipperMapper.xml | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java index 7b3cd24b4..2dd5170d8 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java @@ -321,4 +321,15 @@ public class UserShipperPo implements Serializable { @ApiModelProperty(name = "备注") private String userRemarkShipper; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTime; + + @ApiModelProperty(value = "推送人ID") + private Long pushBy; } diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index edc7e1d30..b64400011 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -161,7 +161,10 @@ b.invoice_title, b.tax_number, b.user_email, - b.user_remark as userRemarkShipper + b.user_remark as userRemarkShipper, + b.push_status, + b.push_time, + b.push_by FROM "USER" a LEFT JOIN user_shipper b ON a.user_id = b.user_id left join (select user_id, LISTAGG(DISTINCT r.role_name, '&') WITHIN GROUP(ORDER BY r.role_name) AS roleName From 9d1b13d4d39fce6980a4469b8d853e893bd90487 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 17:43:47 +0800 Subject: [PATCH 18/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E5=B8=81=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WlhyServiceFeign.java | 8 +++ .../factory/RemoteWlhyFallbackFactory.java | 5 ++ .../ExchangeRateApplicationService.java | 59 +++++++++++++++++++ .../facade/exchangeRate/ExchangeRateApi.java | 37 ++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index da0eb2638..d2b8ed1fb 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -538,4 +538,12 @@ public interface WlhyServiceFeign { @GetMapping("/feign/order/cancelIssueDocuments") public AjaxResult cancelIssueDocuments(@RequestParam(name="executeOrderId") String executeOrderId); + + @GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryList") + public AjaxResult queryList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="pushStatus", required = false) String pushStatus, + @RequestParam(name="organizationId", required = false) String organizationId); + + } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java index 23fb98c50..be28da5dd 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java @@ -550,6 +550,11 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory queryList(Integer pageNo, Integer pageSize, String pushStatus, String organizationId) { + return AjaxResult.error(cause.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java new file mode 100644 index 000000000..f9376ee76 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java @@ -0,0 +1,59 @@ +package com.mhd.oms.application.service.exchangeRate; + + +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.system.api.WlhyServiceFeign; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +@Service +@Slf4j +public class ExchangeRateApplicationService { + + @Resource + private WlhyServiceFeign wlhyServiceFeign; + + public TableDataInfo queryExchangeRateList(Integer pageNum, Integer pageSize, String pushStatus, String organizationId) { + try { + log.info("查询汇率列表: pageNum={}, pageSize={}, pushStatus={}, organizationId={}", + pageNum, pageSize, pushStatus, organizationId); + AjaxResult result = wlhyServiceFeign.queryList(pageNum, pageSize, pushStatus, organizationId); + log.info("查询汇率列表结果: code={}, result={}", result.get("code"), result.get("result")); + + if (result != null) { + Object wlhyResult = result.get("result"); + if (wlhyResult != null) { + Map map = (Map) wlhyResult; + Object records = map.get("records"); + Object total = map.get("total"); + List list = records instanceof List ? (List) records : new ArrayList<>(); + + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(total instanceof Number ? ((Number) total).longValue() : list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + } + } + } catch (Exception e) { + log.error("查询汇率列表异常: {}", e.getMessage()); + e.printStackTrace(); + } + return buildTableDataInfo(new ArrayList<>()); + } + + private TableDataInfo buildTableDataInfo(List list) { + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java new file mode 100644 index 000000000..825287645 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java @@ -0,0 +1,37 @@ +package com.mhd.oms.interfaces.facade.exchangeRate; + + +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.exchangeRate.ExchangeRateApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +import static com.mhd.common.core.utils.PageUtils.startPage; + + +@Api(tags = "汇率管理") +@RestController +@RequestMapping("exchangeRateApi") +public class ExchangeRateApi { + + @Resource + private ExchangeRateApplicationService exchangeRateApplicationService; + + @ApiOperation("查询汇率列表") + @GetMapping("/list") + public TableDataInfo list(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(value = "pushStatus", required = false) String pushStatus, + @RequestParam(value = "organizationId", required = false) String organizationId) { + startPage(); + return exchangeRateApplicationService.queryExchangeRateList(pageNum, pageSize, pushStatus, organizationId); + } + +} From c5a2d458df8646b2e5975d9427167e3e467c5abc Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Wed, 6 May 2026 19:42:10 +0800 Subject: [PATCH 19/96] =?UTF-8?q?OMS-GW=E6=8E=A8=E9=80=81-=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E5=B8=81=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WlhyServiceFeign.java | 6 + .../factory/RemoteWlhyFallbackFactory.java | 5 + .../ExchangeRateApplicationService.java | 127 +++++++++++++++++- .../dto/exchangeRate/ExchangeRateDTO.java | 19 +++ .../facade/exchangeRate/ExchangeRateApi.java | 12 ++ 5 files changed, 166 insertions(+), 3 deletions(-) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/exchangeRate/ExchangeRateDTO.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index d2b8ed1fb..e9518c713 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -546,4 +546,10 @@ public interface WlhyServiceFeign { @RequestParam(name="organizationId", required = false) String organizationId); + @ApiOperation("汇率-更新推送状态") + @PostMapping("/ntocc/tmsSettlementExchangeRate/updatePushStatus") + void updateExchangeRatePushStatus(@RequestParam("id") String id, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam("pushTime") String pushTime, + @RequestParam("pushBy") Long pushBy); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java index be28da5dd..430061dd5 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java @@ -555,6 +555,11 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory queryList(Integer pageNo, Integer pageSize, String pushStatus, String organizationId) { return AjaxResult.error(cause.getMessage()); } + + @Override + public void updateExchangeRatePushStatus(String id, Integer pushStatus, String pushTime, Long pushBy) { + + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java index f9376ee76..81d5af512 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java @@ -1,25 +1,43 @@ package com.mhd.oms.application.service.exchangeRate; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; +import com.mhd.oms.interfaces.dto.exchangeRate.ExchangeRateDTO; import com.mhd.system.api.WlhyServiceFeign; +import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.io.IOException; +import java.util.*; @Service @Slf4j public class ExchangeRateApplicationService { + private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String API_NAME = "saveCurr"; + @Resource private WlhyServiceFeign wlhyServiceFeign; + @Resource + private GwLogMapper gwLogMapper; + public TableDataInfo queryExchangeRateList(Integer pageNum, Integer pageSize, String pushStatus, String organizationId) { try { log.info("查询汇率列表: pageNum={}, pageSize={}, pushStatus={}, organizationId={}", @@ -56,4 +74,107 @@ public class ExchangeRateApplicationService { tableDataInfo.setCode(200); return tableDataInfo; } + + + + + public AjaxResult batchPushExchangeRate(List exchangeRateDTOList) { + if (exchangeRateDTOList == null || exchangeRateDTOList.isEmpty()) { + return AjaxResult.error("没有数据需要推送"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long pushBy = loginUser != null ? loginUser.getUserid() : null; + Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; + Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; + String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; + + int successCount = 0; + int failCount = 0; + StringBuilder failMsg = new StringBuilder(); + + for (ExchangeRateDTO dto : exchangeRateDTOList) { + Map body = new HashMap<>(); + body.put("erpCurrCode", dto.getErpCurrCode()); + body.put("erpCurrName", dto.getErpCurrName()); + + GwLog gwLog = new GwLog(); + gwLog.setType("汇率管理"); + gwLog.setBusinessId(String.valueOf(dto.getId())); + gwLog.setRequestBody(JSONObject.toJSONString(body)); + gwLog.setResponseBody(""); + gwLog.setStatus(1); + gwLog.setSendTime(new Date()); + gwLog.setOrganizationId(organizationId); + gwLog.setTopOrganizationId(topOrganizationId); + gwLog.setOrganizationName(organizationName); + gwLog.setCreateBy(pushBy); + gwLog.setCreateTime(new Date()); + gwLog.setDelFlag(1); + gwLogMapper.insert(gwLog); + + // 更新为推送中 + updateExchangeRatePushStatus(dto.getId(), 2, new Date(), pushBy); + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(PUSH_API_URL); + StringEntity postingString = new StringEntity(JSONObject.toJSONString(body), "UTF-8"); + httpPost.setEntity(postingString); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("apiName", API_NAME); + + try { + CloseableHttpResponse response = httpClient.execute(httpPost); + String responseString = EntityUtils.toString(response.getEntity()); + gwLog.setResponseBody(responseString); + + if (response.getStatusLine().getStatusCode() == 200) { + gwLog.setStatus(2); + updateExchangeRatePushStatus(dto.getId(), 3, new Date(), pushBy); + successCount++; + } else { + gwLog.setStatus(3); + gwLog.setErrorMsg(responseString); + updateExchangeRatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpCurrCode:").append(dto.getErpCurrCode()).append("失败;"); + } + gwLogMapper.updateById(gwLog); + response.close(); + } catch (IOException e) { + gwLog.setStatus(3); + gwLog.setErrorMsg(e.getMessage()); + gwLogMapper.updateById(gwLog); + updateExchangeRatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpCurrCode:").append(dto.getErpCurrCode()).append("异常:").append(e.getMessage()).append(";"); + log.error("汇率推送异常: id={}, error={}", dto.getId(), e.getMessage()); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + log.error("关闭httpClient异常: {}", e.getMessage()); + } + } + } + + String resultMsg = "推送完成: 成功" + successCount + "条, 失败" + failCount + "条"; + if (failCount > 0) { + resultMsg += "[" + failMsg.toString() + "]"; + } + return AjaxResult.success(resultMsg); + } + + private void updateExchangeRatePushStatus(String id, Integer pushStatus, Date pushTime, Long pushBy) { + try { + String pushTimeStr = pushTime != null ? DateUtil.format(pushTime, "yyyy-MM-dd HH:mm:ss") : null; + wlhyServiceFeign.updateExchangeRatePushStatus(id, pushStatus, pushTimeStr, pushBy); + } catch (Exception e) { + log.error("更新汇率推送状态失败: id={}, error={}", id, e.getMessage()); + } + } + + + + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/exchangeRate/ExchangeRateDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/exchangeRate/ExchangeRateDTO.java new file mode 100644 index 000000000..6d76960aa --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/exchangeRate/ExchangeRateDTO.java @@ -0,0 +1,19 @@ +package com.mhd.oms.interfaces.dto.exchangeRate; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "汇率批量推送DTO") +public class ExchangeRateDTO { + + @ApiModelProperty(value = "汇率ID") + private String id; + + @ApiModelProperty(value = "币种编码(ERP编码)") + private String erpCurrCode; + + @ApiModelProperty(value = "币种名称(ERP名称)") + private String erpCurrName; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java index 825287645..8efc3f8da 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java @@ -1,8 +1,10 @@ package com.mhd.oms.interfaces.facade.exchangeRate; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.exchangeRate.ExchangeRateApplicationService; +import com.mhd.oms.interfaces.dto.exchangeRate.ExchangeRateDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; @@ -13,6 +15,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; + import static com.mhd.common.core.utils.PageUtils.startPage; @@ -34,4 +38,12 @@ public class ExchangeRateApi { return exchangeRateApplicationService.queryExchangeRateList(pageNum, pageSize, pushStatus, organizationId); } + @ApiOperation("批量推送汇率") + @PostMapping("/batchPush") + public AjaxResult batchPush(@RequestBody List exchangeRateDTOList) { + return exchangeRateApplicationService.batchPushExchangeRate(exchangeRateDTOList); + } + + + } From 03a9c47db5e170f5b3b8c4b4ef54b86bee12972a Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 11:38:22 +0800 Subject: [PATCH 20/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=8D=95?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpEnterpriseUnitApplicationService.java | 30 ++++++++ .../entity/ErpEnterpriseUnit.java | 66 ++++++++++++++++++ .../mapper/ErpEnterpriseUnitMapper.java | 22 ++++++ .../repository/po/ErpEnterpriseUnitPO.java | 68 +++++++++++++++++++ .../repository/todo/ErpEnterpriseUnitDO.java | 56 +++++++++++++++ .../ErpEnterpriseUnitAssembler.java | 56 +++++++++++++++ .../ErpEnterpriseUnitDTO.java | 54 +++++++++++++++ .../ErpEnterpriseUnitApi.java | 43 ++++++++++++ .../ErpEnterpriseUnitMapper.xml | 39 +++++++++++ 9 files changed, 434 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/todo/ErpEnterpriseUnitDO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/assembler/erpEnterpriseUnit/ErpEnterpriseUnitAssembler.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpEnterpriseUnit/ErpEnterpriseUnitDTO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java create mode 100644 mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java new file mode 100644 index 000000000..c688eafc6 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java @@ -0,0 +1,30 @@ +package com.mhd.oms.application.service.erpEnterpriseUnit; + + +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.mapper.ErpEnterpriseUnitMapper; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.po.ErpEnterpriseUnitPO; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; +import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class ErpEnterpriseUnitApplicationService { + + @Resource + private ErpEnterpriseUnitMapper erpEnterpriseUnitMapper; + + public TableDataInfo queryList(ErpEnterpriseUnitDO erpEnterpriseUnitDO) { + List list = erpEnterpriseUnitMapper.queryList(erpEnterpriseUnitDO); + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java new file mode 100644 index 000000000..b646c7c10 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java @@ -0,0 +1,66 @@ +package com.mhd.oms.domain.erpEnterpriseUnit.entity; + + + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + + +import java.util.Date; + +@Data +@ApiModel(description = "企业单位") +public class ErpEnterpriseUnit { + + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "ERP单位编码") + private String erpCode; + + @ApiModelProperty(value = "ERP单位名称") + private String erpName; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "推送时间") + private Date pushTime; + + @ApiModelProperty(value = "推送人") + private String pushBy; + + @ApiModelProperty(value = "所属组织ID") + private Long organizationId; + + @ApiModelProperty(value = "一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty(value = "所属组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建人") + private Long createBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新人") + private Long updateBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + @ApiModelProperty(value = "删除标记:1-正常,0-删除") + private Integer delFlag; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java new file mode 100644 index 000000000..c44aaf297 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java @@ -0,0 +1,22 @@ +package com.mhd.oms.domain.erpEnterpriseUnit.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.oms.domain.erpEnterpriseUnit.entity.ErpEnterpriseUnit; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.po.ErpEnterpriseUnitPO; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +@Mapper +public interface ErpEnterpriseUnitMapper extends BaseMapper { + + /** + * + * @param erpEnterpriseUnitDO + * @return + */ + List queryList(@Param("erpEnterpriseUnitDO")ErpEnterpriseUnitDO erpEnterpriseUnitDO); +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java new file mode 100644 index 000000000..65909bd05 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java @@ -0,0 +1,68 @@ +package com.mhd.oms.domain.erpEnterpriseUnit.repository.po; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@ApiModel(description = "企业单位PO") +public class ErpEnterpriseUnitPO extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "ERP单位编码") + private String erpCode; + + @ApiModelProperty(value = "ERP单位名称") + private String erpName; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "推送时间") + private Date pushTime; + + @ApiModelProperty(value = "推送人") + private String pushBy; + + @ApiModelProperty(value = "所属组织ID") + private Long organizationId; + + @ApiModelProperty(value = "一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty(value = "所属组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建人") + private Long createBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新人") + private Long updateBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + @ApiModelProperty(value = "删除标记:1-正常,0-删除") + private Integer delFlag; + + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/todo/ErpEnterpriseUnitDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/todo/ErpEnterpriseUnitDO.java new file mode 100644 index 000000000..effedcf9f --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/todo/ErpEnterpriseUnitDO.java @@ -0,0 +1,56 @@ +package com.mhd.oms.domain.erpEnterpriseUnit.repository.todo; + + +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ErpEnterpriseUnitDO extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "ERP单位编码") + private String erpCode; + + @ApiModelProperty(value = "ERP单位名称") + private String erpName; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间") + private String pushTime; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "推送人") + private String pushBy; + + @ApiModelProperty(value = "所属组织ID") + private Long organizationId; + + @ApiModelProperty(value = "所属组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建时间起") + private String createTimeFrom; + + @ApiModelProperty(value = "创建时间止") + private String createTimeTo; + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + + + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/assembler/erpEnterpriseUnit/ErpEnterpriseUnitAssembler.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/assembler/erpEnterpriseUnit/ErpEnterpriseUnitAssembler.java new file mode 100644 index 000000000..eacab45de --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/assembler/erpEnterpriseUnit/ErpEnterpriseUnitAssembler.java @@ -0,0 +1,56 @@ +package com.mhd.oms.interfaces.assembler.erpEnterpriseUnit; + +import cn.hutool.core.util.ObjectUtil; +import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; +import com.mhd.common.core.exception.digitalLogisticsException.UserError; +import com.mhd.common.core.utils.IgnoreNullUtil; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; +import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; +import com.mhd.system.api.model.LoginUser; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class ErpEnterpriseUnitAssembler { + + /** + * 转换实体 + */ + public ErpEnterpriseUnitDO toDO(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) { + ErpEnterpriseUnitDO erpEnterpriseUnitDO = new ErpEnterpriseUnitDO(); + BeanUtils.copyProperties(erpEnterpriseUnitDTO, erpEnterpriseUnitDO, IgnoreNullUtil.getNullPropertyNames(erpEnterpriseUnitDTO)); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + throw new DigitalLogisticsException(UserError.TIMEOUT); + } + String userName = loginUser.getUsername(); + Long userId = loginUser.getUserid(); + if (erpEnterpriseUnitDTO.getId() != null) { + if (userId != null) { + erpEnterpriseUnitDO.setUpdateBy(userId); + } else { + erpEnterpriseUnitDO.setUpdateBy(new Long("0")); + } + erpEnterpriseUnitDO.setUpdateByName(userName); + erpEnterpriseUnitDO.setUpdateTime(new Date()); + } else { + if (userId != null) { + erpEnterpriseUnitDO.setCreateBy(userId); + erpEnterpriseUnitDO.setUpdateBy(userId); + } else { + erpEnterpriseUnitDO.setCreateBy(new Long("0")); + erpEnterpriseUnitDO.setUpdateBy(new Long("0")); + } + erpEnterpriseUnitDO.setCreateByName(userName); + erpEnterpriseUnitDO.setUpdateByName(userName); + erpEnterpriseUnitDO.setCreateTime(new Date()); + erpEnterpriseUnitDO.setUpdateTime(new Date()); + erpEnterpriseUnitDO.setDelFlag(1); + } + return erpEnterpriseUnitDO; + } + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpEnterpriseUnit/ErpEnterpriseUnitDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpEnterpriseUnit/ErpEnterpriseUnitDTO.java new file mode 100644 index 000000000..412e80c2b --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpEnterpriseUnit/ErpEnterpriseUnitDTO.java @@ -0,0 +1,54 @@ +package com.mhd.oms.interfaces.dto.erpEnterpriseUnit; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "企业单位DTO") +public class ErpEnterpriseUnitDTO { + + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "ERP单位编码") + private String erpCode; + + @ApiModelProperty(value = "ERP单位名称") + private String erpName; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间") + private String pushTime; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "推送人") + private String pushBy; + + @ApiModelProperty(value = "所属组织ID") + private Long organizationId; + + @ApiModelProperty(value = "所属组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建时间起") + private String createTimeFrom; + + @ApiModelProperty(value = "创建时间止") + private String createTimeTo; + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java new file mode 100644 index 000000000..ccca9f8c5 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java @@ -0,0 +1,43 @@ +package com.mhd.oms.interfaces.facade.erpEnterpriseUnit; + + +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.erpEnterpriseUnit.ErpEnterpriseUnitApplicationService; +import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; +import com.mhd.oms.interfaces.assembler.erpEnterpriseUnit.ErpEnterpriseUnitAssembler; +import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + + +@Api(tags = "企业单位管理") +@RestController +@RequestMapping("/erpEnterpriseUnitApi") +@Slf4j +public class ErpEnterpriseUnitApi extends BaseController { + + @Resource + private ErpEnterpriseUnitApplicationService erpEnterpriseUnitApplicationService; + + @Resource + private ErpEnterpriseUnitAssembler erpEnterpriseUnitAssembler; + + + @ApiOperation("查询企业单位列表") + @GetMapping("/list") + public TableDataInfo list(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO){ + ErpEnterpriseUnitDO erpEnterpriseUnitDO = erpEnterpriseUnitAssembler.toDO(erpEnterpriseUnitDTO); + startPage(); + return erpEnterpriseUnitApplicationService.queryList(erpEnterpriseUnitDO); + + } + +} diff --git a/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml new file mode 100644 index 000000000..26c60b791 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + \ No newline at end of file From 71defc2e0b91de7d89e0984751a3e3e0715cf04e Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 14:03:20 +0800 Subject: [PATCH 21/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=8D=95?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpEnterpriseUnitApplicationService.java | 33 +++++++++++++++++++ .../ErpEnterpriseUnitApi.java | 16 +++++++-- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java index c688eafc6..5c956715e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java @@ -1,15 +1,20 @@ package com.mhd.oms.application.service.erpEnterpriseUnit; +import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.erpEnterpriseUnit.entity.ErpEnterpriseUnit; import com.mhd.oms.domain.erpEnterpriseUnit.repository.mapper.ErpEnterpriseUnitMapper; import com.mhd.oms.domain.erpEnterpriseUnit.repository.po.ErpEnterpriseUnitPO; import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; +import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Service @@ -27,4 +32,32 @@ public class ErpEnterpriseUnitApplicationService { tableDataInfo.setCode(200); return tableDataInfo; } + + public int update(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) { + ErpEnterpriseUnit erpEnterpriseUnit = new ErpEnterpriseUnit(); + BeanUtils.copyProperties(erpEnterpriseUnitDTO,erpEnterpriseUnit); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if(loginUser != null){ + erpEnterpriseUnit.setUpdateBy(loginUser.getUserid()); + erpEnterpriseUnit.setUpdateTime(new Date()); + } + return erpEnterpriseUnitMapper.updateById(erpEnterpriseUnit); + } + + public int insert(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) { + ErpEnterpriseUnit erpEnterpriseUnit = new ErpEnterpriseUnit(); + BeanUtils.copyProperties(erpEnterpriseUnitDTO,erpEnterpriseUnit); + erpEnterpriseUnit.setPushStatus(1); + erpEnterpriseUnit.setDelFlag(1); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if(loginUser != null){ + erpEnterpriseUnit.setCreateBy(loginUser.getUserid()); + //erpEnterpriseUnit.setCreateTime(new Date()); + erpEnterpriseUnit.setOrganizationId(loginUser.getUserPo().getOrganizationId()); + erpEnterpriseUnit.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + erpEnterpriseUnit.setCreateTime(new Date()); + return erpEnterpriseUnitMapper.insert(erpEnterpriseUnit); + + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java index ccca9f8c5..c5ce46abd 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java @@ -2,6 +2,7 @@ package com.mhd.oms.interfaces.facade.erpEnterpriseUnit; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.erpEnterpriseUnit.ErpEnterpriseUnitApplicationService; import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; @@ -10,9 +11,7 @@ import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -40,4 +39,15 @@ public class ErpEnterpriseUnitApi extends BaseController { } + + @ApiOperation("编辑企业单位") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody ErpEnterpriseUnitDTO erpEnterpriseUnitDTO){ + if(erpEnterpriseUnitDTO.getId() !=null){ + return toAjax(erpEnterpriseUnitApplicationService.update(erpEnterpriseUnitDTO)); + }else{ + return toAjax(erpEnterpriseUnitApplicationService.insert(erpEnterpriseUnitDTO)); + } + } + } From da20e2a6164e1f01eae96968474e0ac8220e0091 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 15:25:23 +0800 Subject: [PATCH 22/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=8D=95?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpEnterpriseUnitApplicationService.java | 125 ++++++++++++++++++ .../mapper/ErpEnterpriseUnitMapper.java | 8 ++ .../ErpEnterpriseUnitApi.java | 24 +++- .../ErpEnterpriseUnitMapper.xml | 7 + 4 files changed, 163 insertions(+), 1 deletion(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java index 5c956715e..07a24d3e6 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java @@ -1,29 +1,48 @@ package com.mhd.oms.application.service.erpEnterpriseUnit; +import com.alibaba.fastjson.JSONObject; import com.mhd.common.core.utils.bean.BeanUtils; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.oms.domain.erpEnterpriseUnit.entity.ErpEnterpriseUnit; import com.mhd.oms.domain.erpEnterpriseUnit.repository.mapper.ErpEnterpriseUnitMapper; import com.mhd.oms.domain.erpEnterpriseUnit.repository.po.ErpEnterpriseUnitPO; import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j public class ErpEnterpriseUnitApplicationService { + private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String API_NAME = "saveUnit"; + @Resource private ErpEnterpriseUnitMapper erpEnterpriseUnitMapper; + @Resource + private GwLogMapper gwLogMapper; + public TableDataInfo queryList(ErpEnterpriseUnitDO erpEnterpriseUnitDO) { List list = erpEnterpriseUnitMapper.queryList(erpEnterpriseUnitDO); TableDataInfo tableDataInfo = new TableDataInfo(); @@ -60,4 +79,110 @@ public class ErpEnterpriseUnitApplicationService { return erpEnterpriseUnitMapper.insert(erpEnterpriseUnit); } + + public AjaxResult batchPush(List dtoList) { + if (dtoList == null || dtoList.isEmpty()) { + return AjaxResult.error("没有数据需要推送"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long pushBy = loginUser != null ? loginUser.getUserid() : null; + Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; + Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; + String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; + + int successCount = 0; + int failCount = 0; + StringBuilder failMsg = new StringBuilder(); + + for (ErpEnterpriseUnitDTO dto : dtoList) { + Map body = new HashMap<>(); + body.put("erpUnitCode", dto.getErpCode()); + body.put("erpUnitName", dto.getErpName()); + + GwLog gwLog = new GwLog(); + gwLog.setType("企业单位"); + gwLog.setBusinessId(String.valueOf(dto.getId())); + gwLog.setRequestBody(JSONObject.toJSONString(body)); + gwLog.setResponseBody(""); + gwLog.setStatus(1); + gwLog.setSendTime(new Date()); + gwLog.setOrganizationId(organizationId); + gwLog.setTopOrganizationId(topOrganizationId); + gwLog.setOrganizationName(organizationName); + gwLog.setCreateBy(pushBy); + gwLog.setCreateTime(new Date()); + gwLog.setDelFlag(1); + gwLogMapper.insert(gwLog); + + updatePushStatus(dto.getId(), 2, new Date(), pushBy); + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(PUSH_API_URL); + StringEntity postingString = new StringEntity(JSONObject.toJSONString(body), "UTF-8"); + httpPost.setEntity(postingString); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("apiName", API_NAME); + + try { + CloseableHttpResponse response = httpClient.execute(httpPost); + String responseString = EntityUtils.toString(response.getEntity()); + gwLog.setResponseBody(responseString); + + if (response.getStatusLine().getStatusCode() == 200) { + gwLog.setStatus(2); + updatePushStatus(dto.getId(), 3, new Date(), pushBy); + successCount++; + } else { + gwLog.setStatus(3); + gwLog.setErrorMsg(responseString); + updatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpUnitCode:").append(dto.getErpCode()).append("失败;"); + } + gwLogMapper.updateById(gwLog); + response.close(); + } catch (IOException e) { + gwLog.setStatus(3); + gwLog.setErrorMsg(e.getMessage()); + gwLogMapper.updateById(gwLog); + updatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpUnitCode:").append(dto.getErpCode()).append("异常:").append(e.getMessage()).append(";"); + log.error("企业单位推送异常: id={}, error={}", dto.getId(), e.getMessage()); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + log.error("关闭httpClient异常: {}", e.getMessage()); + } + } + } + + String resultMsg = "推送完成: 成功" + successCount + "条, 失败" + failCount + "条"; + if (failCount > 0) { + resultMsg += "[" + failMsg.toString() + "]"; + } + return AjaxResult.success(resultMsg); + } + + private void updatePushStatus(Long id, Integer pushStatus, Date pushTime, Long pushBy) { + ErpEnterpriseUnit entity = new ErpEnterpriseUnit(); + entity.setId(id); + entity.setPushStatus(pushStatus); + if (pushTime != null) { + entity.setPushTime(pushTime); + } + if (pushBy != null) { + entity.setPushBy(String.valueOf(pushBy)); + } + erpEnterpriseUnitMapper.updateById(entity); + } + + public int deleteByIds(List idList) { + if(idList == null || idList.isEmpty()){ + return 0; + } + return erpEnterpriseUnitMapper.deleteByIds(idList); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java index c44aaf297..7d70ef7f2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/mapper/ErpEnterpriseUnitMapper.java @@ -19,4 +19,12 @@ public interface ErpEnterpriseUnitMapper extends BaseMapper { * @return */ List queryList(@Param("erpEnterpriseUnitDO")ErpEnterpriseUnitDO erpEnterpriseUnitDO); + + /** + * + * @param idList + * @return + */ + int deleteByIds(@Param("idList") List idList); + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java index c5ce46abd..9ab418e71 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java @@ -14,7 +14,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; - +import java.util.ArrayList; +import java.util.List; @Api(tags = "企业单位管理") @@ -50,4 +51,25 @@ public class ErpEnterpriseUnitApi extends BaseController { } } + + @ApiOperation("批量推送企业单位") + @PostMapping("/batchPush") + public AjaxResult batchPush(@RequestBody List dtoList) { + return erpEnterpriseUnitApplicationService.batchPush(dtoList); + } + + @ApiOperation("批量删除企业单位") + @DeleteMapping("/deleteBatch") + public AjaxResult deleteBatch(@RequestParam("ids") String ids) { + if (ids == null || ids.isEmpty()) { + return AjaxResult.error("没有选择要删除的数据"); + } + List idList = new ArrayList<>(); + for (String id : ids.split(",")) { + idList.add(Long.parseLong(id)); + } + return toAjax(erpEnterpriseUnitApplicationService.deleteByIds(idList)); + } + + } diff --git a/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml index 26c60b791..828884083 100644 --- a/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml +++ b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml @@ -36,4 +36,11 @@ ORDER BY create_time DESC + + UPDATE erp_enterprise_unit set del_flag = 0 where id IN + + #{id} + + + \ No newline at end of file From afdea9dbf1aa1ab07fe628b6acc305563499b413 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 17:20:28 +0800 Subject: [PATCH 23/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=9B=BD?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpCountryApplicationService.java | 33 ++++++++ .../domain/erpCountry/entity/ErpCountry.java | 76 +++++++++++++++++++ .../repository/mapper/ErpCountryMapper.java | 21 +++++ .../repository/po/ErpCountryPO.java | 64 ++++++++++++++++ .../dto/erpCountry/ErpCountryDTO.java | 32 ++++++++ .../facade/erpCountry/ErpCountryApi.java | 31 ++++++++ .../mapper/erpCountry/ErpCountryMapper.xml | 26 +++++++ 7 files changed, 283 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpCountry/ErpCountryDTO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java create mode 100644 mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java new file mode 100644 index 000000000..e39317e01 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -0,0 +1,33 @@ +package com.mhd.oms.application.service.erpCountry; + + +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.domain.erpCountry.entity.ErpCountry; +import com.mhd.oms.domain.erpCountry.repository.mapper.ErpCountryMapper; +import com.mhd.oms.domain.erpCountry.repository.po.ErpCountryPO; +import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class ErpCountryApplicationService { + + @Resource + private ErpCountryMapper erpCountryMapper; + + public TableDataInfo queryList(ErpCountryDTO erpCountryDTO) { + List list = erpCountryMapper.queryList(erpCountryDTO); + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + + + + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java new file mode 100644 index 000000000..9aa16f177 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java @@ -0,0 +1,76 @@ +package com.mhd.oms.domain.erpCountry.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + + +@Data +@TableName("erp_country") +@ApiModel(description = "企业国别实体") +public class ErpCountry implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) + @ApiModelProperty("主键ID") + private Long id; + + @ApiModelProperty("ERP国别编码") + private String erpCountryCode; + + @ApiModelProperty("ERP国别名称") + private String erpCountryName; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("推送时间") + private Date pushTime; + + @ApiModelProperty("推送人") + private String pushBy; + + @ApiModelProperty("所属组织ID") + private Long organizationId; + + @ApiModelProperty("一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("所属组织名称") + private String organizationName; + + @ApiModelProperty("创建人") + private Long createBy; + + @ApiModelProperty("创建人姓名") + private String createByName; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("更新人") + private Long updateBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("更新时间") + private Date updateTime; + + @ApiModelProperty("删除标记:1-正常,0-删除") + private Integer delFlag; +} \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java new file mode 100644 index 000000000..434d4a3c4 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java @@ -0,0 +1,21 @@ +package com.mhd.oms.domain.erpCountry.repository.mapper; + + +import com.mhd.oms.domain.erpCountry.entity.ErpCountry; +import com.mhd.oms.domain.erpCountry.repository.po.ErpCountryPO; +import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface ErpCountryMapper { + + /** + * + * @param erpCountryDTO + * @return + */ + List queryList(@Param("erpCountryDTO") ErpCountryDTO erpCountryDTO); +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java new file mode 100644 index 000000000..2aa20e182 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java @@ -0,0 +1,64 @@ +package com.mhd.oms.domain.erpCountry.repository.po; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class ErpCountryPO { + + @ApiModelProperty("主键ID") + private Long id; + + @ApiModelProperty("ERP国别编码") + private String erpCountryCode; + + @ApiModelProperty("ERP国别名称") + private String erpCountryName; + + @ApiModelProperty("推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("推送时间") + private Date pushTime; + + @ApiModelProperty("推送人") + private String pushBy; + + @ApiModelProperty("所属组织ID") + private Long organizationId; + + @ApiModelProperty("一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("所属组织名称") + private String organizationName; + + @ApiModelProperty("创建人") + private Long createBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("更新人") + private Long updateBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("更新时间") + private Date updateTime; + + @ApiModelProperty("删除标记:1-正常,0-删除") + private Integer delFlag; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpCountry/ErpCountryDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpCountry/ErpCountryDTO.java new file mode 100644 index 000000000..486af6f3c --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/erpCountry/ErpCountryDTO.java @@ -0,0 +1,32 @@ +package com.mhd.oms.interfaces.dto.erpCountry; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "企业国别DTO") +public class ErpCountryDTO { + + @ApiModelProperty(value = "主键id") + private Long id; + + @ApiModelProperty(value = "ERP国别编码") + private String erpCountryCode; + + @ApiModelProperty(value = "ERP国别名称") + private String erpCountryName; + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "所属组织ID") + private Long organizationId; +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java new file mode 100644 index 000000000..b17ea0881 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java @@ -0,0 +1,31 @@ +package com.mhd.oms.interfaces.facade.erpCountry; + + +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.erpCountry.ErpCountryApplicationService; +import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(tags = "企业国别管理") +@RestController +@RequestMapping("/erpCountryApi") +public class ErpCountryApi extends BaseController{ + @Autowired + private ErpCountryApplicationService erpCountryApplicationService; + + @ApiOperation("查询企业国别列表") + @GetMapping("/list") + public TableDataInfo list(ErpCountryDTO erpCountryDTO){ + startPage(); + return erpCountryApplicationService.queryList(erpCountryDTO); + } + + +} diff --git a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml new file mode 100644 index 000000000..72ef2edf0 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file From b754aaf949e6918f692b54a99462a0506a8eb167 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, 7 May 2026 17:43:54 +0800 Subject: [PATCH 24/96] =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BatchDetailApplicationService.java | 3 ++- .../service/BatchDetailDomainService.java | 5 +++++ .../PickingOrderApplicationService.java | 22 ++++++++++++++----- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java index 9ca5b92f5..4bcf0b956 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java @@ -106,7 +106,8 @@ public class BatchDetailApplicationService { throw new ServiceException("获取物料规则信息失败"); } MaterialGoodsRuleFeign materialGoodsRuleFeign = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), MaterialGoodsRuleFeign.class); - if (ObjectUtil.isNull(materialGoodsRuleFeign)){ + // 无商品规则或未绑定批次模板时,不返回任何批次属性(避免 batchId 空导致查全表) + if (ObjectUtil.isNull(materialGoodsRuleFeign) || materialGoodsRuleFeign.getBatchId() == null) { return new ArrayList<>(); } return getBatchDetailListByBatchId(materialGoodsRuleFeign.getBatchId()); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java index 17fec80d7..f35e219fe 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** * 批次管理详情 @@ -66,6 +67,10 @@ public class BatchDetailDomainService { * 获取批次管理详情详细信息 */ public List getBatchDetailListByBatchId(Long batchId) { + // batchId 为空时不能查列表:XML 中 batchId 为 null 不拼条件,会返回全部批次属性 + if (batchId == null) { + return new ArrayList<>(); + } BatchDetailDO batchDetailDO = new BatchDetailDO(); batchDetailDO.setBatchId(batchId); return batchDetailService.queryList(batchDetailDO); 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 fdf823e1d..6fa84ad4d 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 @@ -24,9 +24,11 @@ import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDom import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO; import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO; import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService; +import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService; import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService; import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO; +import com.mhd.wms.util.ReceiptBatchDetailFilter; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -58,6 +60,8 @@ public class PickingOrderApplicationService { @Autowired private SystemServiceFeign systemServiceFeign; @Autowired + private IMaterialGoodsRuleService materialGoodsRuleService; + @Autowired private IOutMaterialDetailService outMaterialDetailService; @@ -212,11 +216,19 @@ public class PickingOrderApplicationService { if (ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))) { List batchDetailFeignPOList = JSON.parseArray( JSONObject.toJSONString(ajaxResult.get("data")), BatchDetailFeignPO.class); - if (!CollectionUtils.isEmpty(batchDetailFeignPOList)) { - // 过滤isDisplay=1的属性 - List filteredList = batchDetailFeignPOList.stream() - .filter(batchDetail -> batchDetail.getIsDisplay() != null && batchDetail.getIsDisplay() == 1) - .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(batchDetailFeignPOList)) { + continue; + } + // 物料未在商品规则中绑定批次模板时不返回批次属性(与收货单组装逻辑一致) + List alignedToRule = ReceiptBatchDetailFilter.filterByMaterialGoodsRule( + materialBaseInfoId, batchDetailFeignPOList, materialGoodsRuleService); + if (CollectionUtils.isEmpty(alignedToRule)) { + continue; + } + List filteredList = alignedToRule.stream() + .filter(batchDetail -> batchDetail.getIsDisplay() != null && batchDetail.getIsDisplay() == 1) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(filteredList)) { batchDetailMap.put(materialBaseInfoId, filteredList); } } From 0c2dff7faff32a2b2f5dc748c9d33580ccfa8c66 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 17:44:07 +0800 Subject: [PATCH 25/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=9B=BD?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpCountryApplicationService.java | 36 ++++++++++++++++++- .../repository/mapper/ErpCountryMapper.java | 5 ++- .../facade/erpCountry/ErpCountryApi.java | 32 +++++++++++++++-- .../mapper/erpCountry/ErpCountryMapper.xml | 7 ++++ 4 files changed, 75 insertions(+), 5 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java index e39317e01..a55282432 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -2,19 +2,23 @@ package com.mhd.oms.application.service.erpCountry; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; import com.mhd.oms.domain.erpCountry.entity.ErpCountry; import com.mhd.oms.domain.erpCountry.repository.mapper.ErpCountryMapper; import com.mhd.oms.domain.erpCountry.repository.po.ErpCountryPO; import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; +import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Service @Slf4j -public class ErpCountryApplicationService { +public class ErpCountryApplicationService{ @Resource private ErpCountryMapper erpCountryMapper; @@ -30,4 +34,34 @@ public class ErpCountryApplicationService { } + + public int insert(ErpCountryDTO erpCountryDTO) { + ErpCountry erpCountry = new ErpCountry(); + BeanUtils.copyProperties(erpCountryDTO, erpCountry); + erpCountry.setPushStatus(1); + erpCountry.setDelFlag(1); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + erpCountry.setCreateBy(loginUser.getUserid()); + erpCountry.setOrganizationId(loginUser.getUserPo().getOrganizationId()); + erpCountry.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + erpCountry.setCreateTime(new Date()); + return erpCountryMapper.insert(erpCountry); + } + + public int update(ErpCountryDTO erpCountryDTO) { + ErpCountry erpCountry = new ErpCountry(); + BeanUtils.copyProperties(erpCountryDTO, erpCountry); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + erpCountry.setUpdateBy(loginUser.getUserid()); + erpCountry.setUpdateTime(new Date()); + } + return erpCountryMapper.updateById(erpCountry); + } + + public int deleteByIds(List idList) { + return erpCountryMapper.deleteByIds(idList); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java index 434d4a3c4..2d8e6fedf 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/mapper/ErpCountryMapper.java @@ -1,6 +1,7 @@ package com.mhd.oms.domain.erpCountry.repository.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.oms.domain.erpCountry.entity.ErpCountry; import com.mhd.oms.domain.erpCountry.repository.po.ErpCountryPO; import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; @@ -10,7 +11,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper -public interface ErpCountryMapper { +public interface ErpCountryMapper extends BaseMapper { /** * @@ -18,4 +19,6 @@ public interface ErpCountryMapper { * @return */ List queryList(@Param("erpCountryDTO") ErpCountryDTO erpCountryDTO); + + int deleteByIds(@Param("idList") List idList); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java index b17ea0881..038560e02 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java @@ -2,15 +2,17 @@ package com.mhd.oms.interfaces.facade.erpCountry; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.erpCountry.ErpCountryApplicationService; import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; @Api(tags = "企业国别管理") @@ -27,5 +29,29 @@ public class ErpCountryApi extends BaseController{ return erpCountryApplicationService.queryList(erpCountryDTO); } + @ApiOperation("编辑企业国别") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody ErpCountryDTO erpCountryDTO) { + if (erpCountryDTO.getId() != null) { + return toAjax(erpCountryApplicationService.update(erpCountryDTO)); + } else { + return toAjax(erpCountryApplicationService.insert(erpCountryDTO)); + } + } + + + @ApiOperation("删除企业国别") + @DeleteMapping("/deleteBatch") + public AjaxResult deleteBatch(@RequestParam("ids") String ids) { + if (ids == null || ids.isEmpty()) { + return AjaxResult.error("没有选择要删除的数据"); + } + List idList = new ArrayList<>(); + for (String id : ids.split(",")) { + idList.add(Long.parseLong(id)); + } + return toAjax(erpCountryApplicationService.deleteByIds(idList)); + } + } diff --git a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml index 72ef2edf0..d3ac78fc3 100644 --- a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml +++ b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml @@ -23,4 +23,11 @@ ORDER BY CREATE_TIME DESC + + UPDATE ERP_COUNTRY SET DEL_FLAG = 0 WHERE ID IN + + #{id} + + + \ No newline at end of file From 9b67df1e8882e27b26e973c525ab4281d040d4be Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 18:29:40 +0800 Subject: [PATCH 26/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=9B=BD?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpCountryApplicationService.java | 117 ++++++++++++++++++ .../facade/erpCountry/ErpCountryApi.java | 5 + 2 files changed, 122 insertions(+) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java index a55282432..1a6e1a377 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -1,28 +1,46 @@ package com.mhd.oms.application.service.erpCountry; +import com.alibaba.fastjson.JSONObject; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.oms.domain.erpCountry.entity.ErpCountry; import com.mhd.oms.domain.erpCountry.repository.mapper.ErpCountryMapper; import com.mhd.oms.domain.erpCountry.repository.po.ErpCountryPO; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j public class ErpCountryApplicationService{ + private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String API_NAME = "saveCountry"; @Resource private ErpCountryMapper erpCountryMapper; + @Resource + private GwLogMapper gwLogMapper; + public TableDataInfo queryList(ErpCountryDTO erpCountryDTO) { List list = erpCountryMapper.queryList(erpCountryDTO); TableDataInfo tableDataInfo = new TableDataInfo(); @@ -64,4 +82,103 @@ public class ErpCountryApplicationService{ public int deleteByIds(List idList) { return erpCountryMapper.deleteByIds(idList); } + + public AjaxResult batchPush(List dtoList) { + if (dtoList == null || dtoList.isEmpty()) { + return AjaxResult.error("没有数据需要推送"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long pushBy = loginUser != null ? loginUser.getUserid() : null; + Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; + Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; + String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; + + int successCount = 0; + int failCount = 0; + StringBuilder failMsg = new StringBuilder(); + + for (ErpCountryDTO dto : dtoList) { + Map body = new HashMap<>(); + body.put("erpCountryCode", dto.getErpCountryCode()); + body.put("erpCountryName", dto.getErpCountryName()); + + GwLog gwLog = new GwLog(); + gwLog.setType("企业国别"); + gwLog.setBusinessId(String.valueOf(dto.getId())); + gwLog.setRequestBody(JSONObject.toJSONString(body)); + gwLog.setResponseBody(""); + gwLog.setStatus(1); + gwLog.setSendTime(new Date()); + gwLog.setOrganizationId(organizationId); + gwLog.setTopOrganizationId(topOrganizationId); + gwLog.setOrganizationName(organizationName); + gwLog.setCreateBy(pushBy); + gwLog.setCreateTime(new Date()); + gwLog.setDelFlag(1); + gwLogMapper.insert(gwLog); + + updatePushStatus(dto.getId(), 2, new Date(), pushBy); + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(PUSH_API_URL); + StringEntity postingString = new StringEntity(JSONObject.toJSONString(body), "UTF-8"); + httpPost.setEntity(postingString); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("apiName", API_NAME); + + try { + CloseableHttpResponse response = httpClient.execute(httpPost); + String responseString = EntityUtils.toString(response.getEntity()); + gwLog.setResponseBody(responseString); + + if (response.getStatusLine().getStatusCode() == 200) { + gwLog.setStatus(2); + updatePushStatus(dto.getId(), 3, new Date(), pushBy); + successCount++; + } else { + gwLog.setStatus(3); + gwLog.setErrorMsg(responseString); + updatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpCountryCode:").append(dto.getErpCountryCode()).append("失败;"); + } + gwLogMapper.updateById(gwLog); + response.close(); + } catch (IOException e) { + gwLog.setStatus(3); + gwLog.setErrorMsg(e.getMessage()); + gwLogMapper.updateById(gwLog); + updatePushStatus(dto.getId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("erpCountryCode:").append(dto.getErpCountryCode()).append("异常:").append(e.getMessage()).append(";"); + log.error("企业国别推送异常: id={}, error={}", dto.getId(), e.getMessage()); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + log.error("关闭httpClient异常: {}", e.getMessage()); + } + } + } + + String resultMsg = "推送完成: 成功" + successCount + "条, 失败" + failCount + "条"; + if (failCount > 0) { + resultMsg += "[" + failMsg.toString() + "]"; + } + return AjaxResult.success(resultMsg); + } + + private void updatePushStatus(Long id, Integer pushStatus, Date pushTime, Long pushBy) { + ErpCountry entity = new ErpCountry(); + entity.setId(id); + entity.setPushStatus(pushStatus); + if (pushTime != null) { + entity.setPushTime(pushTime); + } + if (pushBy != null) { + entity.setPushBy(String.valueOf(pushBy)); + } + erpCountryMapper.updateById(entity); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java index 038560e02..afdd6e8c9 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java @@ -53,5 +53,10 @@ public class ErpCountryApi extends BaseController{ return toAjax(erpCountryApplicationService.deleteByIds(idList)); } + @ApiOperation("批量推送企业国别") + @PostMapping("/batchPush") + public AjaxResult batchPush(@RequestBody List dtoList) { + return erpCountryApplicationService.batchPush(dtoList); + } } From 8c3d44d7da8bb78c8274c6e76e2615dae43f8482 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 18:49:37 +0800 Subject: [PATCH 27/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=9B=BD?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erpCountry/ErpCountryApplicationService.java | 4 ++++ .../mhd/oms/domain/erpCountry/entity/ErpCountry.java | 6 ------ .../interfaces/facade/erpCountry/ErpCountryApi.java | 11 +++++++++++ .../resources/mapper/erpCountry/ErpCountryMapper.xml | 12 +++++------- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java index 1a6e1a377..ef545052f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -181,4 +181,8 @@ public class ErpCountryApplicationService{ } erpCountryMapper.updateById(entity); } + + public ErpCountry getById(Long id) { + return erpCountryMapper.selectById(id); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java index 9aa16f177..2bbb7b0cf 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java @@ -29,9 +29,6 @@ public class ErpCountry implements Serializable { @ApiModelProperty("ERP国别名称") private String erpCountryName; - @ApiModelProperty("备注") - private String remark; - @ApiModelProperty("推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") private Integer pushStatus; @@ -55,9 +52,6 @@ public class ErpCountry implements Serializable { @ApiModelProperty("创建人") private Long createBy; - @ApiModelProperty("创建人姓名") - private String createByName; - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("创建时间") diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java index afdd6e8c9..fb5c8beb2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpCountry/ErpCountryApi.java @@ -5,6 +5,7 @@ import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.erpCountry.ErpCountryApplicationService; +import com.mhd.oms.domain.erpCountry.entity.ErpCountry; import com.mhd.oms.interfaces.dto.erpCountry.ErpCountryDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -59,4 +60,14 @@ public class ErpCountryApi extends BaseController{ return erpCountryApplicationService.batchPush(dtoList); } + @ApiOperation("获取企业国别详情") + @GetMapping("/getInfo") + public AjaxResult getInfo(Long id) { + if (id == null) { + return AjaxResult.error("ID不能为空"); + } + ErpCountry erpCountry = erpCountryApplicationService.getById(id); + return AjaxResult.success(erpCountry); + } + } diff --git a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml index d3ac78fc3..e56558ea3 100644 --- a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml +++ b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml @@ -3,22 +3,20 @@ From 84fdb36465582565304e4a4d6a4ad9f0b9c0ec18 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 7 May 2026 18:57:43 +0800 Subject: [PATCH 28/96] =?UTF-8?q?OMS-GW-=E4=BC=81=E4=B8=9A=E5=8D=95?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ErpEnterpriseUnitApplicationService.java | 4 ++++ .../erpEnterpriseUnit/ErpEnterpriseUnitApi.java | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java index 07a24d3e6..bfff5115e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java @@ -185,4 +185,8 @@ public class ErpEnterpriseUnitApplicationService { } return erpEnterpriseUnitMapper.deleteByIds(idList); } + + public ErpEnterpriseUnit getById(Long id) { + return erpEnterpriseUnitMapper.selectById(id); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java index 9ab418e71..025e34fb3 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/erpEnterpriseUnit/ErpEnterpriseUnitApi.java @@ -5,6 +5,7 @@ import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.erpEnterpriseUnit.ErpEnterpriseUnitApplicationService; +import com.mhd.oms.domain.erpEnterpriseUnit.entity.ErpEnterpriseUnit; import com.mhd.oms.domain.erpEnterpriseUnit.repository.todo.ErpEnterpriseUnitDO; import com.mhd.oms.interfaces.assembler.erpEnterpriseUnit.ErpEnterpriseUnitAssembler; import com.mhd.oms.interfaces.dto.erpEnterpriseUnit.ErpEnterpriseUnitDTO; @@ -71,5 +72,15 @@ public class ErpEnterpriseUnitApi extends BaseController { return toAjax(erpEnterpriseUnitApplicationService.deleteByIds(idList)); } + @ApiOperation("获取企业单位详情") + @GetMapping("/getInfo") + public AjaxResult getInfo(Long id) { + if (id == null) { + return AjaxResult.error("ID不能为空"); + } + ErpEnterpriseUnit erpEnterpriseUnit = erpEnterpriseUnitApplicationService.getById(id); + return AjaxResult.success(erpEnterpriseUnit); + } + } From ea2f070bfc30d0dc89fdc0ece80d440321132c1a 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, 7 May 2026 21:14:55 +0800 Subject: [PATCH 29/96] =?UTF-8?q?hs=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialBaseInfoApplicationService.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) 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 8879dc1c6..065e374f3 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 @@ -444,6 +444,8 @@ public class MaterialBaseInfoApplicationService { if (StringUtils.isBlank(row.getHsCode()) && StringUtils.isNotBlank(row.getHsCodeImport())) { row.setHsCode(row.getHsCodeImport().trim()); } + // Excel 表头错位或重复时,HS 可能被读入「物料条形码」列;与 HS 完全相同时视为误填,保留 hsCode、清空条码 + normalizeImportBarCodeWhenDuplicateOfHs(row); fillOrganizationName(row, loginUser); String shipperCode = StringUtils.defaultString(row.getShipperCode(), ""); @@ -964,6 +966,25 @@ public class MaterialBaseInfoApplicationService { } } + /** + * 导入约定:「HS码/HS编码」与「物料条形码」为不同列。模板表头错位或两列误填相同 HS 时, + * barCode 会与 hsCode 相同;此时保留 hsCode,清空主表/子表条码,避免 HS 写入 bar_code。 + */ + private void normalizeImportBarCodeWhenDuplicateOfHs(MaterialBaseInfoDTO row) { + if (row == null) { + return; + } + if (StringUtils.isBlank(row.getBarCode())) { + row.setBarCode(null); + return; + } + row.setBarCode(row.getBarCode().trim()); + String hs = StringUtils.isNotBlank(row.getHsCode()) ? row.getHsCode().trim() : ""; + if (StringUtils.isNotBlank(hs) && row.getBarCode().equals(hs)) { + row.setBarCode(null); + } + } + private List buildImportBarCodeList(MaterialBaseInfoDTO row) { if (StringUtils.isBlank(row.getBarCode())) { return null; From 326bd9089bb52fa8bef55f556f410f2cc3ef64ed 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, 8 May 2026 08:45:32 +0800 Subject: [PATCH 30/96] =?UTF-8?q?feign=E6=94=B9=E4=B8=BA=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?url;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 c4b4d8db4..ce67818f8 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index cdb81ac6f..74b14a737 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index e9518c713..a30cd0746 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 48ccc2788..815c7f04e 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** From 32d56a9a1d8c502a52fc8345ffed498300c7297a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Fri, 8 May 2026 09:03:48 +0800 Subject: [PATCH 31/96] =?UTF-8?q?=E5=87=BA=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/OutMaterialDetailImpl.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java index 2a483b3f5..29de9624a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java @@ -201,12 +201,18 @@ public class OutMaterialDetailImpl extends ServiceImpl materialBaseInfos = materialBaseInfoMapper.selectList(new QueryWrapper().lambda().eq(MaterialBaseInfo::getMaterialCode, materialNo)); if (!CollectionUtils.isEmpty(materialBaseInfos) && materialBaseInfos.size() > 0) { - outMaterialDetail.setCommodityName(materialBaseInfos.get(0).getMaterialName()); - outMaterialDetail.setBarCode(materialBaseInfos.get(0).getBarCode()); - outMaterialDetail.setPackName(materialBaseInfos.get(0).getPackName()); - outMaterialDetail.setPackCode(materialBaseInfos.get(0).getPackCode()); - outMaterialDetail.setUnitCode(materialBaseInfos.get(0).getUnitCode()); - outMaterialDetail.setUnitName(materialBaseInfos.get(0).getUnitName()); + MaterialBaseInfo mbi = materialBaseInfos.get(0); + outMaterialDetail.setCommodityName(mbi.getMaterialName()); + // 主数据未维护条码时不写入明细,避免误带主表 bar_code(如历史脏数据);有维护再回填 + if (StringUtils.isNotBlank(mbi.getBarCode())) { + outMaterialDetail.setBarCode(mbi.getBarCode().trim()); + } else { + outMaterialDetail.setBarCode(null); + } + outMaterialDetail.setPackName(mbi.getPackName()); + outMaterialDetail.setPackCode(mbi.getPackCode()); + outMaterialDetail.setUnitCode(mbi.getUnitCode()); + outMaterialDetail.setUnitName(mbi.getUnitName()); } outMaterialDetailList.add(outMaterialDetail); } From 506f9ef56930a9cac8bcbf5f56949b55295d9e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Fri, 8 May 2026 10:18:16 +0800 Subject: [PATCH 32/96] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83feign?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 ce67818f8..238124640 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE,url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 74b14a737..cdb81ac6f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index a30cd0746..e9518c713 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 815c7f04e..48ccc2788 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** From 5235076d2dd614e4db5d25c6c31c870399278b50 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 8 May 2026 11:06:49 +0800 Subject: [PATCH 33/96] OMS-GW-log --- .../gwLog/GwLogApplicationService.java | 41 ++++++++++++ .../gwLog/repository/mapper/GwLogMapper.java | 11 ++++ .../domain/gwLog/repository/po/GwLogPO.java | 63 +++++++++++++++++++ .../oms/interfaces/dto/gwLog/GwLogDTO.java | 39 ++++++++++++ .../oms/interfaces/facade/gwLog/GwLogApi.java | 39 ++++++++++++ .../resources/mapper/gwLog/GwLogMapper.xml | 27 ++++++++ 6 files changed, 220 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/po/GwLogPO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/gwLog/GwLogDTO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java create mode 100644 mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java new file mode 100644 index 000000000..1575df9b8 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java @@ -0,0 +1,41 @@ +package com.mhd.oms.application.service.gwLog; + + +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; +import com.mhd.oms.domain.gwLog.repository.po.GwLogPO; +import com.mhd.oms.interfaces.dto.gwLog.GwLogDTO; +import com.mhd.system.api.model.LoginUser; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class GwLogApplicationService { + + + private final GwLogMapper gwLogMapper; + + public GwLogApplicationService(GwLogMapper gwLogMapper) { + this.gwLogMapper = gwLogMapper; + } + + public TableDataInfo queryList(GwLogDTO gwLogDTO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null){ + Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); + if (topOrganizationId != null && topOrganizationId != 1){ + gwLogDTO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + } + List list = gwLogMapper.queryList(gwLogDTO); + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(list); + tableDataInfo.setTotal(list.size()); + tableDataInfo.setCode(200); + return tableDataInfo; + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java index 65484ad4b..2ae8cdc6d 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/mapper/GwLogMapper.java @@ -2,9 +2,20 @@ package com.mhd.oms.domain.gwLog.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.po.GwLogPO; +import com.mhd.oms.interfaces.dto.gwLog.GwLogDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface GwLogMapper extends BaseMapper { + /** + * + * @param gwLogDTO + * @return + */ + List queryList(GwLogDTO gwLogDTO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/po/GwLogPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/po/GwLogPO.java new file mode 100644 index 000000000..0b40de423 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/gwLog/repository/po/GwLogPO.java @@ -0,0 +1,63 @@ +package com.mhd.oms.domain.gwLog.repository.po; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + + +@Data +public class GwLogPO { + + @ApiModelProperty("日志id") + private Long logId; + + @ApiModelProperty("类型") + private String type; + + @ApiModelProperty("业务ID") + private String businessId; + + @ApiModelProperty("请求报文") + private String requestBody; + + @ApiModelProperty("响应报文") + private String responseBody; + + @ApiModelProperty("状态(1-初始,2-成功,3-失败)") + private Integer status; + + @ApiModelProperty("错误信息") + private String errorMsg; + + @ApiModelProperty("推送时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + @ApiModelProperty("组织ID") + private Long organizationId; + + @ApiModelProperty("一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("组织名称") + private String organizationName; + + @ApiModelProperty("创建人") + private Long createBy; + + @ApiModelProperty("创建时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("删除标记:1-正常,0-删除") + private Integer delFlag; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/gwLog/GwLogDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/gwLog/GwLogDTO.java new file mode 100644 index 000000000..4b46e8df9 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/gwLog/GwLogDTO.java @@ -0,0 +1,39 @@ +package com.mhd.oms.interfaces.dto.gwLog; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +@Data +public class GwLogDTO { + + + @ApiModelProperty("日志类型") + private String type; + + @ApiModelProperty("业务Id") + private Long businessId; + + @ApiModelProperty("状态:1-初始 2-成功 3-失败") + private Integer status; + + @ApiModelProperty("组织id") + private Long organizationId ; + + @ApiModelProperty("推送时间起") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String sendTimeFrom; + + @ApiModelProperty("推送时间止") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String sendTimeTo; + + @ApiModelProperty("一级组织id") + private Long topOrganizationId ; + +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java new file mode 100644 index 000000000..5e0c5f0ff --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java @@ -0,0 +1,39 @@ +package com.mhd.oms.interfaces.facade.gwLog; + + +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.gwLog.GwLogApplicationService; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.interfaces.dto.gwLog.GwLogDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@Api(tags = "GW日志管理") +@RestController +@RequestMapping("/gwLogApi") +public class GwLogApi extends BaseController { + + @Resource + private GwLogApplicationService gwLogApplicationService; + + + @ApiOperation("查询GW日志") + @GetMapping("/queryList") + public TableDataInfo queryList(GwLogDTO gwLogDTO){ + startPage(); + return gwLogApplicationService.queryList(gwLogDTO); + + } + + + +} diff --git a/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml b/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml new file mode 100644 index 000000000..adbd43daa --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file From e059b80071e90bab6a81955c79b3e9e5d6da17f7 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, 8 May 2026 14:11:02 +0800 Subject: [PATCH 34/96] =?UTF-8?q?wms=E4=B8=8A=E6=9E=B6=E6=96=B0=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=86=BB=E7=BB=93=E6=95=B0=E9=87=8F=E6=9C=89=E5=80=BC?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/persistence/MaterialInventoryImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java index 6d3ef620f..19e88a9e9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java @@ -871,7 +871,7 @@ public class MaterialInventoryImpl extends ServiceImpl Date: Fri, 8 May 2026 14:13:46 +0800 Subject: [PATCH 35/96] =?UTF-8?q?feign=E6=AD=A3=E5=BC=8F=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +- .../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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 238124640..055817bad 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 @@ -18,7 +18,7 @@ import java.util.Set; /** * bms财务结算系统feign调用接口 */ -@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE,url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE,url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface BmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index cdb81ac6f..74b14a737 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -11,7 +11,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.33.0.99:8017", configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index e9518c713..a30cd0746 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 48ccc2788..815c7f04e 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -19,7 +19,7 @@ import java.util.Map; * @description: TODO * @date 2024/5/10 8:58 **/ -@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface WmsServiceFeign { /** From f3e7317132949914c23eb1c18a4906b687d30344 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 8 May 2026 17:06:48 +0800 Subject: [PATCH 36/96] =?UTF-8?q?OMS-GW-=E7=89=A9=E6=96=99=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WmsServiceFeign.java | 4 ++ .../system/api/domain/MaterialInfoDTO.java | 43 +++++++++++++++++++ .../api/factory/RemoteWmsFallbackFactory.java | 5 +++ .../MaterialInfoApplicationService.java | 38 ++++++++++++++++ .../facade/materialInfo/MaterialInfoApi.java | 35 +++++++++++++++ .../entity/MaterialBaseInfo.java | 12 ++++++ .../repository/po/MaterialBaseInfoPO.java | 15 +++++++ .../repository/todo/MaterialBaseInfoDO.java | 21 +++++++++ .../materialBaseInfo/MaterialBaseInfoDTO.java | 21 +++++++++ .../MaterialBaseInfoMapper.xml | 25 +++++++++++ 10 files changed, 219 insertions(+) create mode 100644 mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 815c7f04e..29d153011 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -95,4 +95,8 @@ public interface WmsServiceFeign { @ApiOperation("oms下发单明细保存") @PostMapping(value = "/stockInOrderApi/omsInOrderAddDetail") public void omsInOrderAddDetail(@RequestBody List inMaterialDetails); + + @ApiOperation("oms查询物料列表") + @GetMapping("/materialBaseInfoApi/list") + public AjaxResult getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java new file mode 100644 index 000000000..27a4d5563 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java @@ -0,0 +1,43 @@ +package com.mhd.system.api.domain; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + + + +@Data +@ApiModel(description = "物料信息查询DTO") +public class MaterialInfoDTO { + + @ApiModelProperty("物料名称") + private String materialName; + + @ApiModelProperty("组织ID") + private Long organizationId; + + @ApiModelProperty("创建时间起") + private String createTimeStart; + + @ApiModelProperty("创建时间止") + private String createTimeEnd; + + @ApiModelProperty("更新时间起") + private String updateTimeStart; + + @ApiModelProperty("更新时间止") + private String updateTimeEnd; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeStart; + + @ApiModelProperty("推送时间止") + private String pushTimeEnd; + + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java index 954a979b6..1de843791 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java @@ -69,6 +69,11 @@ public class RemoteWmsFallbackFactory implements FallbackFactory inMaterialDetails) { } + + @Override + public AjaxResult getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO) { + return AjaxResult.error(cause.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java new file mode 100644 index 000000000..831360140 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java @@ -0,0 +1,38 @@ +package com.mhd.oms.application.service.materialInfo; + + +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.system.api.WmsServiceFeign; +import com.mhd.system.api.domain.MaterialInfoDTO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class MaterialInfoApplicationService { + + + private final WmsServiceFeign wmsServiceFeign; + + public MaterialInfoApplicationService(WmsServiceFeign wmsServiceFeign) { + this.wmsServiceFeign = wmsServiceFeign; + } + + public TableDataInfo queryList(MaterialInfoDTO materialInfoDTO) { + AjaxResult ajaxResult = wmsServiceFeign.getMaterialBaseInfoList(materialInfoDTO); + if(ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))){ + List data = (List) ajaxResult.get("data"); + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(data); + tableDataInfo.setCode(200); + return tableDataInfo; + } + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setCode(500); + tableDataInfo.setMsg("查询失败"); + return tableDataInfo; + } +} diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java new file mode 100644 index 000000000..fa862116d --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java @@ -0,0 +1,35 @@ +package com.mhd.oms.interfaces.facade.materialInfo; + + +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.materialInfo.MaterialInfoApplicationService; +import com.mhd.system.api.domain.MaterialInfoDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +@Api(tags = "物料信息管理") +@RestController +@RequestMapping("/materialInfoApi") +public class MaterialInfoApi extends BaseController { + + + @Resource + private MaterialInfoApplicationService materialInfoApplicationService; + + @ApiOperation("查询物料信息列表") + @GetMapping("/queryList") + public TableDataInfo queryList(MaterialInfoDTO materialInfoDTO){ + startPage(); + return materialInfoApplicationService.queryList(materialInfoDTO); + } + + + +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java index c71655d58..ab0ebe082 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.handler.ListTypeHandler; 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; import java.util.List; @@ -204,4 +207,13 @@ public class MaterialBaseInfo extends BaseVOEntity { @TableField("copy_code") private Integer copyCode; + @ApiModelProperty(name = "推送状态 1-未推送 2-推送中 3-推送成功 4-推送失败") + private Integer pushStatus; + @ApiModelProperty(name = "推送时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pushTime; + @ApiModelProperty(name = "推送人") + private Long pushBy; + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index 8867ac844..8d1eae44f 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -1,6 +1,8 @@ package com.mhd.wms.domain.materialBaseInfo.repository.po; +import com.alibaba.nacos.shaded.io.grpc.Internal; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.handler.ListTypeHandler; import com.mhd.common.core.web.domain.BaseVOEntity; @@ -13,8 +15,10 @@ import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehou import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.util.Date; import java.util.List; @@ -249,4 +253,15 @@ public class MaterialBaseInfoPO extends BaseVOEntity { @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + @ApiModelProperty("推送状态 1-未推送 2推送中 3-推送成功 4-推送失败") + private Integer pushStatus; + + @ApiModelProperty("推送时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTime; + + @ApiModelProperty("推送人") + private Long pushBy; + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java index 23cbec64a..3147f8b64 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java @@ -221,4 +221,25 @@ public class MaterialBaseInfoDO extends BaseVOEntity { @ApiModelProperty("是否抄码: 1-是 2-否") @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeStart; + + @ApiModelProperty("推送时间止") + private String pushTimeEnd; + + @ApiModelProperty("创建时间起") + private String createTimeStart; + + @ApiModelProperty("创建时间止") + private String createTimeEnd; + + @ApiModelProperty("更新时间起") + private String updateTimeStart; + + @ApiModelProperty("更新时间止") + private String updateTimeEnd; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index 9a6b163e4..d0b44f655 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -264,4 +264,25 @@ public class MaterialBaseInfoDTO extends BaseVOEntity { @ApiModelProperty("是否抄码: 1-是 2-否") @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeStart; + + @ApiModelProperty("推送时间止") + private String pushTimeEnd; + + @ApiModelProperty("创建时间起") + private String createTimeStart; + + @ApiModelProperty("创建时间止") + private String createTimeEnd; + + @ApiModelProperty("更新时间起") + private String updateTimeStart; + + @ApiModelProperty("更新时间止") + private String updateTimeEnd; } diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index ce37e1502..dd489a4ec 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -58,6 +58,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -66,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_classify_name, a.material_type, a.material_type_name, a.pack_id, a.pack_code, a.pack_name, a.unit_code, a.unit_name, a.brand_id, a.brand_code, a.brand_name, a.shelf_life, a.weight_limit, a.volume_limit, a.material_shape, material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common, sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code, + a.push_status,a.push_time,a.push_by, specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity from material_base_info a left join ( select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id ) b on a.material_base_info_id = b.material_base_info_id @@ -209,6 +213,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mgr.batch_id = #{batchId} and mgr.del_flag = 1 ) + + + and a.push_status = #{pushStatus} + + + and date_format(a.push_time,'%Y-%m-%d') >= #{pushTimeStart} + + + and date_format(a.push_time,'%Y-%m-%d') <= #{pushTimeEnd} + + + and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart} + + + and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + + + and date_format(a.update_time,'%Y-%m-%d') >= #{updateTimeStart} + + + and date_format(a.update_time,'%Y-%m-%d') <= #{updateTimeEnd} From 7f131c8790cd0f5a930c14f0f6aa8213b93f8b25 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, 8 May 2026 18:04:42 +0800 Subject: [PATCH 37/96] =?UTF-8?q?=E4=B8=8A=E6=9E=B6=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockShelfOrder/service/StockShelfOrderDomainService.java | 4 ++++ 1 file changed, 4 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 c36a9c83a..bab7e9be0 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 @@ -1302,6 +1302,10 @@ public class StockShelfOrderDomainService { break; } } + } else { + param.setBoxPalletNo(shelfMaterialDetail.getBoxPalletNo()); + param.setSheetRefNo(shelfMaterialDetail.getSheetRefNo()); + param.setBatchRefNo(shelfMaterialDetail.getBatchRefNo()); } return param; } From 4d71a2e6e1c24d074490895d970cb64bedafd464 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 8 May 2026 19:11:19 +0800 Subject: [PATCH 38/96] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF-?= =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86-=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20=E6=B7=BB=E5=8A=A0=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/OmsServiceFeign.java | 5 +++++ .../api/domain/ErpEnterpriseUnitDTO.java | 22 +++++++++++++++++++ .../RemoteOmsFeignFallbackFactory.java | 5 +++++ .../materialBaseInfo/MaterialBaseInfoApi.java | 12 ++++++++++ .../ErpEnterpriseUnitApi.java | 8 +++++++ 5 files changed, 52 insertions(+) create mode 100644 mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 74b14a737..783cb3508 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -8,6 +8,7 @@ import com.mhd.system.api.factory.RemoteOmsFeignFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -35,4 +36,8 @@ public interface OmsServiceFeign { @ApiOperation("编辑物料库存") @PostMapping("/materialInventoryApi/omsEdit") public AjaxResult omsEdit(@RequestBody MaterialInventoryOmsParamDO materialInventoryOmsParamDO); + + @ApiOperation("查询企业单位列表-新增物料时显示下拉框数据") + @GetMapping("/erpEnterpriseUnitApi/unitList") + public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java new file mode 100644 index 000000000..f30e6662d --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java @@ -0,0 +1,22 @@ +package com.mhd.system.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "企业单位DTO") +public class ErpEnterpriseUnitDTO { + + @ApiModelProperty("企业单位id") + private Long id; + + @ApiModelProperty("企业单位名称") + private String erpName; + + @ApiModelProperty("企业单位编码") + private String erpCode; + + @ApiModelProperty("组织ID") + private Long organizationId; +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteOmsFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteOmsFeignFallbackFactory.java index ff04d9baf..caf15aa6e 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteOmsFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteOmsFeignFallbackFactory.java @@ -53,6 +53,11 @@ public class RemoteOmsFeignFallbackFactory implements FallbackFactory Date: Fri, 8 May 2026 20:22:59 +0800 Subject: [PATCH 39/96] =?UTF-8?q?=E7=94=9F=E4=BA=A7=EF=BC=9B=E7=8E=AF?= =?UTF-8?q?=E5=A2=83feign=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mhd_finance/src/main/resources/bootstrap.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mhd_finance/src/main/resources/bootstrap.yml b/mhd_finance/src/main/resources/bootstrap.yml index 16a84eea7..00fee5904 100644 --- a/mhd_finance/src/main/resources/bootstrap.yml +++ b/mhd_finance/src/main/resources/bootstrap.yml @@ -20,17 +20,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 #线上正式环境 # server-addr: 10.102.192.105:6848 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 From b456fb45f72f737be3cf731360b695fcc614b0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sat, 9 May 2026 10:21:49 +0800 Subject: [PATCH 40/96] =?UTF-8?q?=E5=8F=8A=E6=97=B6=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=9F=A5=E8=AF=A2=EF=BC=8C=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B0=BA=E5=AF=B8=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=AF=BC=E5=85=A5=E6=8F=90=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MaterialBaseInfoApplicationService.java | 38 ++++++-- .../service/ReviewOrderDomainService.java | 4 + .../entity/ReviewMaterialDetail.java | 4 + .../repository/po/ReviewMaterialDetailPO.java | 3 + .../po/ImmediateInventoryPO.java | 20 ++++ .../StatementStatisticsApi.java | 15 +++ .../MaterialInventoryMapper.xml | 95 ++++++++++++++++++- .../mapper/reviewOrder/ReviewOrderMapper.xml | 2 + 8 files changed, 170 insertions(+), 11 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 065e374f3..456706af6 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 @@ -473,18 +473,36 @@ public class MaterialBaseInfoApplicationService { fillClassifyTypeAndUnit(row); Object result = systemServiceFeign.getPackList(null, row.getPackName(), row.getOrganizationId()); + if (result == null) { + errors.append("第").append(rowNum).append("行:包装规格查询无返回,请稍后重试或检查系统服务;"); + continue; + } Map resultMap = JSON.parseObject(JSONObject.toJSONString(result), new TypeReference>() {}); List> rowsPack = extractTableDataRows(resultMap); - Map stringObjectMap = rowsPack.get(0); - if (stringObjectMap != null){ - String packCode = stringObjectMap.get("packCode") == null ? "" : String.valueOf(stringObjectMap.get("packCode")); - row.setPackCode(packCode); - String packId = stringObjectMap.get("packId") == null ? "" : String.valueOf(stringObjectMap.get("packId")); - row.setPackId(Long.valueOf(packId)); - String unitName = stringObjectMap.get("unitName") == null ? "" : String.valueOf(stringObjectMap.get("unitName")); - row.setUnitCode("EA"); - row.setUnitName(unitName); + if (CollectionUtils.isEmpty(rowsPack)) { + if (StringUtils.isNotBlank(row.getPackName())) { + errors.append("第").append(rowNum).append("行:包装规格「").append(row.getPackName()).append("」不存在或未在系统中维护,请先在主数据维护该包装;"); + } else { + errors.append("第").append(rowNum).append("行:包装规格未填写,或系统中无匹配的包装数据,请填写正确的包装规格名称;"); + } + continue; } + Map stringObjectMap = rowsPack.get(0); + if (stringObjectMap == null) { + errors.append("第").append(rowNum).append("行:包装规格查询结果为空,请检查包装主数据;"); + continue; + } + String packCode = stringObjectMap.get("packCode") == null ? "" : String.valueOf(stringObjectMap.get("packCode")); + row.setPackCode(packCode); + String packId = stringObjectMap.get("packId") == null ? "" : String.valueOf(stringObjectMap.get("packId")); + if (StringUtils.isBlank(packId) || !StringUtils.isNumeric(packId)) { + errors.append("第").append(rowNum).append("行:包装规格数据异常(缺少包装ID),请检查系统包装主数据;"); + continue; + } + row.setPackId(Long.valueOf(packId)); + String unitName = stringObjectMap.get("unitName") == null ? "" : String.valueOf(stringObjectMap.get("unitName")); + row.setUnitCode("EA"); + row.setUnitName(unitName); MaterialBaseInfoDO materialBaseInfoDO = new MaterialBaseInfoDO(); BeanUtils.copyProperties(row, materialBaseInfoDO); @@ -496,7 +514,7 @@ public class MaterialBaseInfoApplicationService { Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId(); //商品规则批次 - if (StringUtils.isNotBlank(row.getBatchRuleNameImport())){ + if (StringUtils.isNotBlank(row.getBatchRuleNameImport())) { MaterialGoodsRuleDO materialGoodsRuleDO = new MaterialGoodsRuleDO(); Object batchListByName = systemServiceFeign.getBatchListByName(row.getBatchRuleNameImport(), row.getOrganizationId()); Map batchListByNameMap = JSON.parseObject(JSONObject.toJSONString(batchListByName), new TypeReference>() {}); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java index 525b069a6..f2e8dd727 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java @@ -210,6 +210,7 @@ public class ReviewOrderDomainService { d.setMaterialCode(line.getMaterialCode()); d.setMaterialName(line.getMaterialName()); d.setBarCode(line.getBarCode()); + d.setSize(line.getSize()); d.setUnitCode(line.getUnitCode()); d.setUnitName(line.getUnitName()); d.setLotNo(line.getLotNo()); @@ -272,6 +273,9 @@ public class ReviewOrderDomainService { if (!StringUtils.hasText(d.getBarCode())) { d.setBarCode(outMd.getBarCode()); } + if (!StringUtils.hasText(d.getSize()) && StringUtils.hasText(outMd.getSize())) { + d.setSize(outMd.getSize()); + } if (d.getMaterialBaseInfoId() == null) { d.setMaterialBaseInfoId(outMd.getMaterialBaseInfoId()); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java index 6430dbcb6..30a5c5291 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java @@ -42,6 +42,10 @@ public class ReviewMaterialDetail extends BaseVOEntity { private String barCode; + @ApiModelProperty("尺寸") + @TableField("SIZE") + private String size; + private String unitCode; private String unitName; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java index 8eb89e324..12328c7e4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java @@ -49,6 +49,9 @@ public class ReviewMaterialDetailPO extends BaseVOEntity { @ApiModelProperty("物料条码") private String barCode; + @ApiModelProperty("尺寸") + private String size; + @ApiModelProperty("单位代码") private String unitCode; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java index a3885172a..58685fd21 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java @@ -134,4 +134,24 @@ public class ImmediateInventoryPO { @ApiModelProperty("LOT编号") @Excel(name = "LOT编号") private String lotNumber; + + @ApiModelProperty("库存更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date inventoryUpdateTime; + + @ApiModelProperty("拣货明细最近更新时间(本库存相关已拣货明细)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pickLastUpdateTime; + + @ApiModelProperty("复核明细最近更新时间(本库存相关复核条件内明细)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date checkLastUpdateTime; + + @ApiModelProperty("列表排序用时间(库存/拣货/复核三者最晚)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date latestChangeTime; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java index bd3a59e68..f4b7232de 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java @@ -1,8 +1,11 @@ package com.mhd.wms.interfaces.facadeApi.statementStatistics; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.utils.PageUtils; +import com.mhd.common.core.web.page.PageDomain; +import com.mhd.common.core.web.page.TableSupport; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.wms.application.service.statementStatistics.StatementStatisticsService; import com.mhd.wms.domain.statementStatistics.po.ImmediateInventoryPO; @@ -100,6 +103,18 @@ public class StatementStatisticsApi { PageUtils.startPage(); } + /** + * 即时库存分页:不注入 PageHelper 的 orderBy,保证仅使用 SQL 中的倒序(时间由晚到早)。 + */ + private void startPageImmediateInventory() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(pageNum, pageSize, "").setReasonable(reasonable); + } + /** * 响应请求分页数据 */ diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 980657c29..f04f9873b 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -540,6 +540,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + select - * - from expense_account + a.* + from expense_account a left join service_items_manage b ON a.service_items_manage_id = b.service_items_manage_id where - del_flag = 1 - and status = 1 - and first_subject_flag = 1 + a.del_flag = 1 + and a.status = 1 + and a.first_subject_flag = 1 select - * - from settlement_customers - where del_flag = 1 + a.*,b.SETTLEMENT_CURRENCY + from settlement_customers a left join "NGWL_TEST_USER"."USER_SHIPPER" b on a.settlement_entity_id = b.user_id + where a.del_flag = 1 ORDER BY create_time IS NULL, create_time DESC @@ -106,40 +107,40 @@ - and settlement_entity like concat('%', #{settlementCustomersDO.settlementEntity}, '%') + and a.settlement_entity like concat('%', #{settlementCustomersDO.settlementEntity}, '%') - and settlement_customers_code like concat('%', #{settlementCustomersDO.settlementCustomersCode}, '%') + and a.settlement_customers_code like concat('%', #{settlementCustomersDO.settlementCustomersCode}, '%') - and settlement_method like concat('%', #{settlementCustomersDO.settlementMethod}, '%') + and a.settlement_method like concat('%', #{settlementCustomersDO.settlementMethod}, '%') - and remark like concat('%', #{settlementCustomersDO.remark}, '%') + and a.remark like concat('%', #{settlementCustomersDO.remark}, '%') - AND date_format(create_time,'%Y-%m-%d') =]]> #{settlementCustomersDO.createTimeStart} + AND date_format(a.create_time,'%Y-%m-%d') =]]> #{settlementCustomersDO.createTimeStart} - AND date_format(create_time,'%Y-%m-%d') #{settlementCustomersDO.createTimeEnd} + AND date_format(a.create_time,'%Y-%m-%d') #{settlementCustomersDO.createTimeEnd} - and create_by_name like concat('%', #{settlementCustomersDO.createByName}, '%') + and a.create_by_name like concat('%', #{settlementCustomersDO.createByName}, '%') - and main_role = #{settlementCustomersDO.mainRole} + and a.main_role = #{settlementCustomersDO.mainRole} - and organization_id = #{settlementCustomersDO.organizationId} + and a.organization_id = #{settlementCustomersDO.organizationId} - and top_organization_id = #{settlementCustomersDO.topOrganizationId} + and a.top_organization_id = #{settlementCustomersDO.topOrganizationId} - and customer_type = #{settlementCustomersDO.customerType} + and a.customer_type = #{settlementCustomersDO.customerType} - and customer_type_code = #{settlementCustomersDO.customerTypeCode} + and a.customer_type_code = #{settlementCustomersDO.customerTypeCode} - + \ No newline at end of file From 18f4f963596122b024a2e2f02e1fd6f0521b9f0d Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Sat, 9 May 2026 17:23:24 +0800 Subject: [PATCH 45/96] =?UTF-8?q?oms-gw=E6=8E=A8=E9=80=81-=E7=89=A9?= =?UTF-8?q?=E6=96=99=E7=AE=A1=E7=90=86=20=20=E4=BF=AE=E6=94=B9=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E5=9B=BD=E5=88=AB=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WmsServiceFeign.java | 7 + .../system/api/domain/MaterialInfoDTO.java | 9 ++ .../api/factory/RemoteWmsFallbackFactory.java | 5 + .../ErpCountryApplicationService.java | 2 +- .../MaterialInfoApplicationService.java | 133 ++++++++++++++++++ .../domain/erpCountry/entity/ErpCountry.java | 2 +- .../repository/po/ErpCountryPO.java | 2 +- .../facade/materialInfo/MaterialInfoApi.java | 11 +- .../MaterialBaseInfoApplicationService.java | 12 ++ .../materialBaseInfo/MaterialBaseInfoApi.java | 16 ++- 10 files changed, 192 insertions(+), 7 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 29d153011..249511e40 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -99,4 +99,11 @@ public interface WmsServiceFeign { @ApiOperation("oms查询物料列表") @GetMapping("/materialBaseInfoApi/list") public AjaxResult getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO); + + @ApiOperation("oms物料列表推送-更新推送信息") + @PostMapping("/materialBaseInfoApi/updatePushStatus") + public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam("pushTime") String pushTime, + @RequestParam("pushBy") Long pushBy); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java index 27a4d5563..c27259590 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java @@ -12,9 +12,18 @@ import lombok.Data; @ApiModel(description = "物料信息查询DTO") public class MaterialInfoDTO { + @ApiModelProperty("物料id") + private Long materialBaseInfoId; + + @ApiModelProperty("物料id") + private String materialCode; + @ApiModelProperty("物料名称") private String materialName; + @ApiModelProperty("货物类型 0-料件 1-半成品 2-成品") + private Integer goodsType; + @ApiModelProperty("组织ID") private Long organizationId; diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java index 1de843791..763cad26f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java @@ -74,6 +74,11 @@ public class RemoteWmsFallbackFactory implements FallbackFactory updateMaterialPushStatus(Long materialBaseInfoId, Integer pushStatus, String pushTime, Long pushBy) { + return AjaxResult.error(cause.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java index ef545052f..ae1b832aa 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -177,7 +177,7 @@ public class ErpCountryApplicationService{ entity.setPushTime(pushTime); } if (pushBy != null) { - entity.setPushBy(String.valueOf(pushBy)); + entity.setPushBy(pushBy); } erpCountryMapper.updateById(entity); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java index 831360140..bf31b9e85 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java @@ -1,19 +1,42 @@ package com.mhd.oms.application.service.materialInfo; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.gwLog.entity.GwLog; +import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.domain.MaterialInfoDTO; +import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j public class MaterialInfoApplicationService { + private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String API_NAME = "saveOrgGoods"; + + @Resource + private GwLogMapper gwLogMapper; private final WmsServiceFeign wmsServiceFeign; @@ -35,4 +58,114 @@ public class MaterialInfoApplicationService { tableDataInfo.setMsg("查询失败"); return tableDataInfo; } + + public AjaxResult batchPush(List dtoList) { + if (dtoList == null || dtoList.isEmpty()) { + return AjaxResult.error("没有数据需要推送"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + Long pushBy = loginUser != null ? loginUser.getUserid() : null; + Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; + Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; + String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; + + int successCount = 0; + int failCount = 0; + StringBuilder failMsg = new StringBuilder(); + + for (MaterialInfoDTO dto : dtoList) { + Map body = new HashMap<>(); + body.put("goodsCode", dto.getMaterialCode()); + + String goodsTypeString; + if(dto.getGoodsType() == 0){ + goodsTypeString = "0"; + }else if(dto.getGoodsType() == 1){ + goodsTypeString = "1"; + }else if(dto.getGoodsType() == 2){ + goodsTypeString = "2"; + }else{ + throw new ServiceException("货物类型不存在"); + } + body.put("goodsType", goodsTypeString); + body.put("erpName", dto.getMaterialName()); + + + GwLog gwLog = new GwLog(); + gwLog.setType("物料管理"); + gwLog.setBusinessId(String.valueOf(dto.getMaterialBaseInfoId())); + gwLog.setRequestBody(JSONObject.toJSONString(body)); + gwLog.setResponseBody(""); + gwLog.setStatus(1); + gwLog.setSendTime(new Date()); + gwLog.setOrganizationId(organizationId); + gwLog.setTopOrganizationId(topOrganizationId); + gwLog.setOrganizationName(organizationName); + gwLog.setCreateBy(pushBy); + gwLog.setCreateTime(new Date()); + gwLog.setDelFlag(1); + gwLogMapper.insert(gwLog); + + updatePushStatus(dto.getMaterialBaseInfoId(), 2, new Date(), pushBy); + + CloseableHttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(PUSH_API_URL); + StringEntity postingString = new StringEntity(JSONObject.toJSONString(body), "UTF-8"); + httpPost.setEntity(postingString); + httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("apiName", API_NAME); + + try { + CloseableHttpResponse response = httpClient.execute(httpPost); + String responseString = EntityUtils.toString(response.getEntity()); + gwLog.setResponseBody(responseString); + + if (response.getStatusLine().getStatusCode() == 200) { + gwLog.setStatus(2); + updatePushStatus(dto.getMaterialBaseInfoId(), 3, new Date(), pushBy); + successCount++; + } else { + gwLog.setStatus(3); + gwLog.setErrorMsg(responseString); + updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("materialCode:").append(dto.getMaterialCode()).append("失败;"); + } + gwLogMapper.updateById(gwLog); + response.close(); + } catch (IOException e) { + gwLog.setStatus(3); + gwLog.setErrorMsg(e.getMessage()); + gwLogMapper.updateById(gwLog); + updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy); + failCount++; + failMsg.append("materialCode:").append(dto.getMaterialCode()).append("异常:").append(e.getMessage()).append(";"); + log.error("物料推送异常: id={}, error={}", dto.getMaterialBaseInfoId(), e.getMessage()); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + log.error("关闭httpClient异常: {}", e.getMessage()); + } + } + } + + String resultMsg = "推送完成: 成功" + successCount + "条, 失败" + failCount + "条"; + if (failCount > 0) { + resultMsg += "[" + failMsg.toString() + "]"; + } + return AjaxResult.success(resultMsg); + } + + private void updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTime, Long pushBy) { + try { + String pushTimeStr = pushTime != null ? DateUtil.format(pushTime, "yyyy-MM-dd HH:mm:ss") : null; + wmsServiceFeign.updateMaterialPushStatus(materialBaseInfoId, pushStatus, pushTimeStr, pushBy); + log.info("更新返回结果: materialBaseInfoId={}", materialBaseInfoId); + } catch (Exception e) { + log.info("更新推送状态失败: materialBaseInfoId={}, error={}", materialBaseInfoId, e.getMessage()); + } + } + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java index 2bbb7b0cf..5525d2cfb 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/entity/ErpCountry.java @@ -38,7 +38,7 @@ public class ErpCountry implements Serializable { private Date pushTime; @ApiModelProperty("推送人") - private String pushBy; + private Long pushBy; @ApiModelProperty("所属组织ID") private Long organizationId; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java index 2aa20e182..7ef930c85 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java @@ -31,7 +31,7 @@ public class ErpCountryPO { private Date pushTime; @ApiModelProperty("推送人") - private String pushBy; + private Long pushBy; @ApiModelProperty("所属组织ID") private Long organizationId; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java index fa862116d..0787c3da0 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/materialInfo/MaterialInfoApi.java @@ -2,16 +2,16 @@ package com.mhd.oms.interfaces.facade.materialInfo; import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.oms.application.service.materialInfo.MaterialInfoApplicationService; import com.mhd.system.api.domain.MaterialInfoDTO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; @Api(tags = "物料信息管理") @@ -30,6 +30,11 @@ public class MaterialInfoApi extends BaseController { return materialInfoApplicationService.queryList(materialInfoDTO); } + @ApiOperation("批量推送物料") + @PostMapping("/batchPush") + public AjaxResult batchPush(@RequestBody List dtoList) { + return materialInfoApplicationService.batchPush(dtoList); + } } 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 456706af6..db763293d 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 @@ -20,6 +20,7 @@ import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService; import com.mhd.wms.domain.materialBarCode.repository.todo.MaterialBarCodeDO; import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo; import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService; +import com.mhd.wms.domain.materialBaseInfo.repository.mapper.MaterialBaseInfoMapper; import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO; import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService; @@ -49,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.io.InputStream; import java.util.ArrayList; import java.util.Date; @@ -97,6 +99,8 @@ public class MaterialBaseInfoApplicationService { @Autowired private IMaterialWarehouseControlService materialWarehouseControlService; + @Resource + private MaterialBaseInfoMapper materialBaseInfoMapper; /** * 分页查询物料基础信息列表 */ @@ -1148,4 +1152,12 @@ public class MaterialBaseInfoApplicationService { return orgCandidates; } + public int updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTimeDate, Long pushBy) { + MaterialBaseInfo materialBaseInfo = new MaterialBaseInfo(); + materialBaseInfo.setMaterialBaseInfoId(materialBaseInfoId); + materialBaseInfo.setPushStatus(pushStatus); + materialBaseInfo.setPushTime(pushTimeDate); + materialBaseInfo.setPushBy(pushBy); + return materialBaseInfoMapper.updateById(materialBaseInfo); + } } 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 1a50ac6ce..4cd524029 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,7 +1,9 @@ package com.mhd.wms.interfaces.facadeApi.materialBaseInfo; +import cn.hutool.core.date.DateUtil; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.exception.ServiceException; +import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; @@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.util.Date; import java.util.List; /** @@ -109,7 +112,18 @@ public class MaterialBaseInfoApi extends BaseController { return materialBaseInfoApplicationService.importData(file); } - + @ApiOperation("物料管理更新推送信息") + @PostMapping("/updatePushStatus") + public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam("pushTime") String pushTime, + @RequestParam("pushBy") Long pushBy){ + Date pushTimeDate = null; + if (StringUtils.isNotBlank(pushTime)) { + pushTimeDate = DateUtil.parse(pushTime); + } + return toAjax(materialBaseInfoApplicationService.updatePushStatus(materialBaseInfoId, pushStatus, pushTimeDate, pushBy)); + } From 424621143dbb328ecee8ac62a5d49b99476a27fd Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Sat, 9 May 2026 19:33:36 +0800 Subject: [PATCH 46/96] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=B7=BB=E5=8A=A0=E6=9D=A1=E4=BB=B6=20=20oms?= =?UTF-8?q?-gw=E6=8E=A8=E9=80=81-=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WmsServiceFeign.java | 4 ++-- .../repository/todo/UserShipperDO.java | 15 +++++++++++++++ .../resources/mapper/UserShipperMapper.xml | 18 ++++++++++++++++++ .../materialBaseInfo/MaterialBaseInfoApi.java | 4 ++-- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 249511e40..ad996d832 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -104,6 +104,6 @@ public interface WmsServiceFeign { @PostMapping("/materialBaseInfoApi/updatePushStatus") public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, @RequestParam("pushStatus") Integer pushStatus, - @RequestParam("pushTime") String pushTime, - @RequestParam("pushBy") Long pushBy); + @RequestParam(value = "pushTime",required = false) String pushTime, + @RequestParam(value = "pushBy",required = false) Long pushBy); } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java index d58dc3547..5d0438c74 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java @@ -288,4 +288,19 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "备注") private String userRemark; + + @ApiModelProperty("更新时间起") + private String updateTimeFrom; + + @ApiModelProperty("更新时间止") + private String updateTimeTo; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeFrom; + + @ApiModelProperty("推送时间止") + private String pushTimeTo; } diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index b64400011..86bf79790 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -315,6 +315,24 @@ and DATE_FORMAT(a.create_time,'%Y-%m-%d') DATE_FORMAT(#{createTimeTo},'%Y-%m-%d') + /*更新时间*/ + + and DATE_FORMAT(a.update_time,'%Y-%m-%d') >= #{updateTimeFrom} + + + and DATE_FORMAT(a.update_time,'%Y-%m-%d') <= #{updateTimeTo} + + /*推送状态*/ + + and b.push_status = #{pushStatus} + + /*推送时间*/ + + and DATE_FORMAT(b.push_time,'%Y-%m-%d') >= #{pushTimeFrom} + + + and DATE_FORMAT(b.push_time,'%Y-%m-%d') <= #{pushTimeTo} + /*审核时间*/ and DATE_FORMAT(b.shipper_fill_time,'%Y-%m-%d') =]]> 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 4cd524029..779f6d345 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 @@ -116,8 +116,8 @@ public class MaterialBaseInfoApi extends BaseController { @PostMapping("/updatePushStatus") public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, @RequestParam("pushStatus") Integer pushStatus, - @RequestParam("pushTime") String pushTime, - @RequestParam("pushBy") Long pushBy){ + @RequestParam(value = "pushTime",required = false) String pushTime, + @RequestParam(value = "pushBy",required = false) Long pushBy){ Date pushTimeDate = null; if (StringUtils.isNotBlank(pushTime)) { pushTimeDate = DateUtil.parse(pushTime); From 11a0b15d198b0b4f45b7b9dd6d64b1cdeecb9dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Mon, 11 May 2026 09:00:48 +0800 Subject: [PATCH 47/96] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/AssociationWarehouseImpl.java | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java index dc3fc8eb6..5860b8df2 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java @@ -107,7 +107,31 @@ public class AssociationWarehouseImpl extends ServiceImpl().lambda() + .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) + .eq(AssociationWarehouse::getDelFlag, 1) + .and(w -> w.isNull(AssociationWarehouse::getIsDefault) + .or() + .ne(AssociationWarehouse::getIsDefault, 2))); + List stillBoundRows = associationWarehouseMapper.selectList(new QueryWrapper().lambda() + .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) + .eq(AssociationWarehouse::getDelFlag, 1)); + Set alreadyBoundCorrelationIds = stillBoundRows.stream() + .map(AssociationWarehouse::getCorrelationId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + LinkedHashSet distinctCorrelationIds = CollectionUtils.isEmpty(associationWarehouseDO.getCorrelationIdList()) + ? new LinkedHashSet<>() + : new LinkedHashSet<>(associationWarehouseDO.getCorrelationIdList()); + for (Long correlationId : distinctCorrelationIds) { + if (correlationId == null) { + continue; + } + // 仍在库内的绑定(多为创建人默认仓 is_default=2)不再插入,否则撞唯一 IDX_ASS_COR_WAR_ID + if (alreadyBoundCorrelationIds.contains(correlationId)) { + continue; + } AssociationWarehouse associationWarehouse = new AssociationWarehouse(); associationWarehouse.setOrganizationId(loginUser.getUserPo().getOrganizationId()); associationWarehouse.setOrganizationName(loginUser.getUserPo().getOrganizationName()); @@ -121,13 +145,6 @@ public class AssociationWarehouseImpl extends ServiceImpl().lambda() - .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) - .eq(AssociationWarehouse::getDelFlag, 1) - .and(w -> w.isNull(AssociationWarehouse::getIsDefault) - .or() - .ne(AssociationWarehouse::getIsDefault, 2))); } return saveBatch(associationWarehouseList); } From 836e0582497fc105f42981952ca7c5cec5612861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Mon, 11 May 2026 09:06:04 +0800 Subject: [PATCH 48/96] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index dc0d1f3f3..bcea2793b 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -41,6 +41,7 @@ public interface OmsServiceFeign { @GetMapping("/erpEnterpriseUnitApi/unitList") public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO); + //查询企业国别列表-新增物料时显示下拉框数据 @ApiOperation("查询企业国别列表-新增物料时显示下拉框数据") @GetMapping("/erpCountryApi/countryList") public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO); From 0e0bc88ecfb399ea4bc5afd592af24b39a42e901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Mon, 11 May 2026 09:28:25 +0800 Subject: [PATCH 49/96] =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E7=99=BB=E8=AE=B0=E6=8C=89=E9=92=AE=E9=97=AE=E9=A2=98?= =?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/stockInOrder/StockInOrderApplicationService.java | 2 +- .../service/stockOutOrder/StockOutOrderApplicationService.java | 2 +- 2 files changed, 2 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 7af387146..d1e80b821 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 @@ -192,7 +192,7 @@ public class StockInOrderApplicationService { List stockInOrderPOS = stockInOrderDomainService.queryList(stockInOrderDO); for (StockInOrderPO stockInOrderPO : stockInOrderPOS) { Long inOrderId = stockInOrderPO.getInOrderId(); - List list = receiptOrderAccountService.list(new LambdaQueryWrapper().eq(ReceiptOrderAccount::getOrderId, inOrderId)); + List list = receiptOrderAccountService.list(new LambdaQueryWrapper().eq(ReceiptOrderAccount::getOrderId, inOrderId).eq(ReceiptOrderAccount::getInOrOut, "in")); stockInOrderPO.setReceiptOrderAccountList(list); } return stockInOrderPOS; 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 f1a4a255f..80f9f16b9 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 @@ -210,7 +210,7 @@ public class StockOutOrderApplicationService { Map> accountByOrderId = Collections.emptyMap(); if (!CollectionUtils.isEmpty(orderIds)) { List accounts = receiptOrderAccountService.list( - new LambdaQueryWrapper().in(ReceiptOrderAccount::getOrderId, orderIds)); + new LambdaQueryWrapper().in(ReceiptOrderAccount::getOrderId, orderIds).eq(ReceiptOrderAccount::getInOrOut, "out")); accountByOrderId = accounts.stream().collect(Collectors.groupingBy(ReceiptOrderAccount::getOrderId)); } From 7198b01a23737df2d36a59b714faf063e503e74d Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Mon, 11 May 2026 13:50:24 +0800 Subject: [PATCH 50/96] =?UTF-8?q?oms-=E8=BF=90=E8=BE=93=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=8D=95-=E6=96=B0=E5=A2=9E=E6=B7=BB=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E5=87=BA=E5=8F=A3=E6=96=B9=E5=BC=8F=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/BusinessDocumentOrder.java | 4 ++++ .../repository/po/BusinessDocumentOrderPO.java | 9 +++++++++ .../repository/todo/BusinessDocumentOrderDO.java | 3 +++ .../businessDocumentOrder/BusinessDocumentOrderDTO.java | 3 +++ .../BusinessDocumentOrderMapper.xml | 1 + 5 files changed, 20 insertions(+) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java index 7aae3b309..69d8e48ce 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java @@ -756,4 +756,8 @@ public class BusinessDocumentOrder extends BaseVOEntity{ @ApiModelProperty("仓库负责人电话") private String directorPhone; + + @ApiModelProperty("进出口方式:I-进口,E-出口") + private String ieType; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java index d82d72f6d..8490ea181 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java @@ -765,6 +765,15 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("出入库单号") private String inOrderNumber; + @ApiModelProperty("仓库负责人") + private String directorName; + + @ApiModelProperty("仓库负责人电话") + private String directorPhone; + + @ApiModelProperty("进出口方式:I-进口,E-出口") + private String ieType; + @ApiModelProperty("执行单") private List executeOrderList; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java index b0dcb690b..3a9648d5b 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java @@ -790,6 +790,9 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty("仓库负责人电话") private String directorPhone; + @ApiModelProperty("进出口方式:I-进口,E-出口") + private String ieType; + @ApiModelProperty("费用科目明细") private List businessOrderAccountList; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java index 6e75b9a37..bb159aa82 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java @@ -777,6 +777,9 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{ @ApiModelProperty("仓库负责人电话") private String directorPhone; + @ApiModelProperty("进出口方式:I-进口,E-出口") + private String ieType; + @ApiModelProperty("业务单地址集合") private List businessDocumentAddressMultiDTOList; diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index ff5421695..543821a70 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -168,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + From 594cd7a2695d10ac72ace596c268bb68e681714e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Mon, 11 May 2026 15:43:57 +0800 Subject: [PATCH 51/96] =?UTF-8?q?oms=E9=A2=84=E7=BA=A6=E5=8D=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/domain/po/UserShipperPo.java | 5 + .../todo/BusinessDocumentOrderDO.java | 2 +- .../BusinessDocumentOrderDomainService.java | 17 + .../entity/ReservationOrder.java | 10 +- .../facade/IOmsAddressMultiService.java | 22 +- .../repository/po/ReservationOrderPO.java | 7 +- .../service/OmsAddressMultiService.java | 577 ++++++++++++++---- .../BusinessAuditDTO.java | 6 + .../dto/resevationOrder/OmsOrderDTO.java | 23 + .../resevationOrder/ResevationOrderApi.java | 117 +++- .../ReservationDocumentOrderMapper.xml | 14 +- 11 files changed, 676 insertions(+), 124 deletions(-) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java index 72525bfaf..97d9bd4e4 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java @@ -1,6 +1,7 @@ package com.mhd.common.core.domain.po; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.annotation.fieldsetvalue.NeedSetValue; import io.swagger.annotations.ApiModelProperty; @@ -12,6 +13,7 @@ import java.math.BigDecimal; import java.util.Date; @Data +@JsonIgnoreProperties(ignoreUnknown = true) public class UserShipperPo { private static final long serialVersionUID = 1L; @@ -266,6 +268,9 @@ public class UserShipperPo { @ApiModelProperty("结算币种") private String settlementCurrency; + + @ApiModelProperty("货主code") + private String roleCodeShipper; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java index 3a9648d5b..baf558719 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java @@ -775,7 +775,7 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty(value = "审核意见") private String reviewOpinion; - @ApiModelProperty("订单来源") + @ApiModelProperty("订单来源 0.运输,1.仓储") private String orderSource; @ApiModelProperty(value = "出入库单号") diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 0a2a5922b..ceaee187c 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -19,6 +19,8 @@ import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOr import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO; import com.mhd.oms.domain.businessOrderAccount.BusinessOrderAccount; import com.mhd.oms.domain.businessOrderAccount.repository.mapper.BusinessOrderAccountMapper; +import com.mhd.oms.domain.reservationOrder.entity.ReservationOrder; +import com.mhd.oms.domain.reservationOrder.repository.mapper.ReservationOrderMapper; import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO; import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO; @@ -64,6 +66,9 @@ public class BusinessDocumentOrderDomainService { @Resource private BusinessOrderAccountMapper businessOrderAccountMapper; + + @Resource + private ReservationOrderMapper reservationOrderMapper; /** * 分页查询【请填写功能名称】列表 */ @@ -564,7 +569,19 @@ public class BusinessDocumentOrderDomainService { tmsOrder.setTopOrganizationId(businessDocumentOrderDO.getTopOrganizationId()); } // boolean istrue=businessDocumentOrderService.update(businessDocumentOrderDO); + int i = businessDocumentOrderMapper.updateById(tmsOrder); + if (deliveryFreight != null && deliveryFreight.compareTo(BigDecimal.ZERO) > 0){ + List reservationOrderList = reservationOrderMapper.selectList(new LambdaQueryWrapper().eq(ReservationOrder::getGoodsNumber, businessDocumentOrderDO.getGoodsNumber())); + if (ObjectUtil.isNotEmpty(reservationOrderList) && reservationOrderList.size() > 0) { + for (ReservationOrder reservationOrder : reservationOrderList){ + reservationOrder.setDeliveryFreight(deliveryFreight); + reservationOrderMapper.updateById(reservationOrder); + } + + } + + } //保存货物信息及地址信息 saveAddress2CargoInfo(tmsOrder.getId(), allCargoList, loadingAddressList, unloadAddressList); diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/entity/ReservationOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/entity/ReservationOrder.java index 5c7f2d5c8..90c791405 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/entity/ReservationOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/entity/ReservationOrder.java @@ -504,9 +504,6 @@ public class ReservationOrder { @ApiModelProperty(value = "订单结算状态:1未出账、2已出账、3部分结算、4已结算") private Integer settlementStatus; - @ApiModelProperty(value = "订单类型:0-预约单,1-业务单") - private Integer orderType; - @ApiModelProperty(value = "订单运费结算时间") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @@ -701,9 +698,16 @@ public class ReservationOrder { @ApiModelProperty("业务单号") private String businessOrderNumber; + @ApiModelProperty("订单状态(0.待确认,1.待提货,2.待补充,3.运输中,4.已完成,5.已取消)") + private Integer orderType; @ApiModelProperty("起运时间") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private java.util.Date departureTime; + + @ApiModelProperty("业务主管") + private String salesManager; + @ApiModelProperty("审核意见") + private String reviewOpinion; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/facade/IOmsAddressMultiService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/facade/IOmsAddressMultiService.java index e7c2b1654..33d79db43 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/facade/IOmsAddressMultiService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/facade/IOmsAddressMultiService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; import com.mhd.oms.domain.reservationOrder.entity.ReservationOrder; import com.mhd.oms.domain.reservationOrder.repository.po.ReservationOrderPO; +import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; import com.mhd.oms.interfaces.dto.resevationOrder.OmsOrderAddDTO; import com.mhd.oms.interfaces.dto.resevationOrder.OmsOrderDTO; import com.mhd.common.core.utils.sms.Result; @@ -16,11 +17,18 @@ import java.security.spec.InvalidKeySpecException; import com.mhd.oms.interfaces.facade.resevationOrder.BatchConfirmResult; import java.util.List; +import java.util.Map; public interface IOmsAddressMultiService { void save(OmsOrderAddDTO tmsOrderAddDTO) throws InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException; + /** + * 更新预约单 + * @param tmsOrderAddDTO 预约单信息 + */ + void update(OmsOrderAddDTO tmsOrderAddDTO) throws InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException; + List queryList(OmsOrderDTO omsOrderDTO); /** @@ -28,14 +36,24 @@ public interface IOmsAddressMultiService { * @param goodsNumber 预约单号 * @return 业务单信息 */ - BusinessDocumentOrderPO confirmReservationOrder(String goodsNumber); + Boolean confirmReservationOrder(String goodsNumber); /** * 批量确认预约单,生成业务单 * @param goodsNumbers 预约单号列表 * @return 批量处理结果 */ - Result batchConfirmReservationOrder(List goodsNumbers); + Result batchConfirmReservationOrder(BusinessAuditDTO businessAuditDTO); Result batchRejectReservationOrder(List goodsNumbers); + + /** + * 根据订单状态(orderType)统计各状态的数量 + * @return Map key为orderType值,value为对应数量 + */ + Map countByOrderType(); + + Integer cancelReserve(List goodsNumbers); + + OmsOrderDTO getResevationOrderInfo(String goodsNumber); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/po/ReservationOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/po/ReservationOrderPO.java index 7e1848a55..c4cbea7c6 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/po/ReservationOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/repository/po/ReservationOrderPO.java @@ -723,7 +723,7 @@ public class ReservationOrderPO { private String executor; @ApiModelProperty("业务单id") - private Long businesssOrderId ; + private Long businessOrderId ; @ApiModelProperty("业务单号") private String businessOrderNumber; @@ -735,4 +735,9 @@ public class ReservationOrderPO { @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private java.util.Date departureTime; + + @ApiModelProperty("业务主管") + private String salesManager; + @ApiModelProperty("审核意见") + private String reviewOpinion; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/service/OmsAddressMultiService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/service/OmsAddressMultiService.java index c1ecf088f..c3c4a6025 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/service/OmsAddressMultiService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationOrder/service/OmsAddressMultiService.java @@ -12,6 +12,7 @@ import com.mhd.common.core.utils.sms.Result; import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService; import com.mhd.oms.domain.businessDocumentOrder.repository.facade.IBusinessDocumentOrderService; import com.mhd.oms.domain.businessDocumentOrder.entity.BusinessDocumentOrder; +import com.mhd.oms.domain.businessDocumentOrder.repository.mapper.BusinessDocumentOrderMapper; import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; import com.mhd.oms.domain.businessDocumentCargoMulti.entity.BusinessDocumentCargoMulti; import com.mhd.oms.domain.businessDocumentCargoMulti.repository.mapper.BusinessDocumentCargoMultiMapper; @@ -30,6 +31,9 @@ import com.mhd.oms.domain.reservationOrder.repository.po.ReservationOrderPO; import com.mhd.oms.enums.*; import com.mhd.oms.infrastructure.feign.ThirdPartyServiceFeign; //import com.mhd.oms.infrastructure.feign.TransportServiceFeign; +import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; +import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessDocumentAddressMultiDTO; +import com.mhd.oms.interfaces.dto.businessDocumentCargoMulti.BusinessDocumentCargoMultiDTO; import com.mhd.oms.interfaces.dto.resevationOrder.*; import com.mhd.oms.interfaces.facade.resevationOrder.BatchConfirmResult; import com.mhd.oms.util.DictDataUtils; @@ -41,12 +45,16 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.domain.po.UserPo; import com.mhd.common.core.domain.po.UserShipperPo; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import java.math.BigDecimal; @@ -114,6 +122,9 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { @Autowired private IBusinessDocumentOrderService businessDocumentOrderService; + @Resource + private BusinessDocumentOrderMapper businessDocumentOrderMapper; + @Transactional(rollbackFor = Exception.class) @@ -424,10 +435,10 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { resevationOrder.setLoadingPhone(firstAddress.getContactPhone()); resevationOrder.setLoadingDate(firstAddress.getLayDate()); - resevationOrder.setUnloadAreaId(lastAddress.getAreaCode()); - resevationOrder.setUnloadName(lastAddress.getAreaCode()); - resevationOrder.setUnloadAddress(lastAddress.getAddress()); - String unarea = lastAddress.getAreaCode() + lastAddress.getAddress(); + resevationOrder.setUnloadAreaId(lastAddress.getAreaCode()); + resevationOrder.setUnloadName(lastAddress.getAreaCode()); + resevationOrder.setUnloadAddress(lastAddress.getAddress()); + String unarea = lastAddress.getAreaCode() + lastAddress.getAddress(); /*String ungeo = amapService.geo(unarea); String unloadingLatitude = ungeo.substring(ungeo.indexOf(",") + 1); String unloadingLongitude = ungeo.substring(0,ungeo.indexOf(",")); @@ -524,11 +535,11 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { resevationOrder.setTransportationModeId(1); } } - //设置是否自动审核 - //自动审核用户信息(0否1是) + //设置是否自动审核 + //自动审核用户信息(0否1是) // SysConfigSwitch configSwitch = sysConfigSwitchService.queryBySysOrgCode(); - //查询平台业务员 - // 从UserCenter服务获取平台业务员信息 + //查询平台业务员 + // 从UserCenter服务获取平台业务员信息 // UserDTO userDTO = new UserDTO(); // userDTO.setUserRole("platAuther"); // AjaxResult platAutherResult = AjaxResult.success(userServiceFeign.getUserByTopOrganizationUserAccount(userDTO, "oms")); @@ -867,12 +878,272 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { // tmsBidingDocumentLine.setServiceRate(tmsOrderAddDTO.getServiceRate()); // tmsBidingDocumentLine.setSingleVehicleWeight(tmsOrderAddDTO.getSingleVehicleWeight()); - // tmsBidingDocumentLineMapper.insert(tmsBidingDocumentLine); + // tmsBidingDocumentLineMapper.insert(tmsBidingDocumentLine); // } + } + @Transactional(rollbackFor = Exception.class) + @Override + public void update(OmsOrderAddDTO tmsOrderAddDTO) throws InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException { + if (StringUtils.isBlank(tmsOrderAddDTO.getGoodsQuantity())) { + tmsOrderAddDTO.setGoodsQuantity("0"); + } + + LoginUser loginUser = SecurityUtils.getLoginUser(); + //获取登录人 + // 从UserCenter服务获取用户信息 + AjaxResult userInfoResult = userServiceFeign.getInfo(Long.valueOf(loginUser.getUserid())); + if (!userInfoResult.get("code").toString().equals("200")) { + throw new ServiceException("获取用户信息失败"); + } + ObjectMapper objectMapper = new ObjectMapper(); + UserPo userPo = objectMapper.convertValue(userInfoResult.get("data"), UserPo.class); + + // 从UserCenter服务获取货主信息 + AjaxResult shipperInfoResult = userServiceFeign.getShipperByUserId(Long.valueOf(loginUser.getUserid())); + if (!shipperInfoResult.get("code").toString().equals("200")) { + throw new ServiceException("获取货主信息失败"); + } + + //处理费用默认值 + handFee(tmsOrderAddDTO); + + //组织赋值 + Long organizationId = tmsOrderAddDTO.getOrganizationId(); + if (ObjectUtil.isNotEmpty(organizationId)) { + tmsOrderAddDTO.setOrgId(String.valueOf(organizationId)); + tmsOrderAddDTO.setOrgName(tmsOrderAddDTO.getOrganizationName()); + } + + // 获取一份副本等一会需要存储到数据库 + String swzlUserId = String.valueOf(loginUser.getUserid()); + + // 从UserCenter服务获取当前登录用户的货主信息 + AjaxResult shipperResult = userServiceFeign.getShipperByUserId(Long.valueOf(loginUser.getUserid())); + if (!shipperResult.get("code").toString().equals("200")) { + throw new ServiceException("您非货主角色或账号已被删除!"); + } + UserShipperPo userShipperPoInfo = objectMapper.convertValue(shipperResult.get("data"), UserShipperPo.class); + + if (userShipperPoInfo == null) { + throw new ServiceException("您非货主角色或账号已被删除!"); + } + + String orderRemark = tmsOrderAddDTO.getOrderRemark(); + tmsOrderAddDTO.setRemarks(orderRemark); + + tmsOrderAddDTO.setAppointShipperId(String.valueOf(userShipperPoInfo.getShipperId())); + + // 分类处理货物列表 + List allCargoList = tmsOrderAddDTO.getCargoInfoList(); + + //获取货主月结标识, + int receivableType; + int autoAuditOrder; + if (userShipperPoInfo.getShipperType() == 2) { + // 从UserCenter服务获取企业货主信息 + AjaxResult companyShipperResult = userServiceFeign.getShipperByUserId(userShipperPoInfo.getUserId()); + if (!companyShipperResult.get("code").toString().equals("200")) { + throw new ServiceException("获取企业货主信息失败"); + } + UserShipperPo companyUserShipperPo = objectMapper.convertValue(companyShipperResult.get("data"), UserShipperPo.class); + receivableType = companyUserShipperPo.getMonthlySettlementFlag(); + autoAuditOrder = companyUserShipperPo.getIsAutoAuditOrder(); + } else { + receivableType = userShipperPoInfo.getMonthlySettlementFlag(); + autoAuditOrder = userShipperPoInfo.getIsAutoAuditOrder(); + } + tmsOrderAddDTO.setReceivableType(receivableType); + + //非企业员工判断个人信息审核状态x + if (userShipperPoInfo.getShipperType() != 2 && userShipperPoInfo.getShipperFill() != 3) { // 假设3代表审核通过 + throw new ServiceException("未提交个人信息认证或认证未通过,请先认证!"); + } + //企业员工判断企业货主审核状态 + if (userShipperPoInfo.getShipperType() == 2) { + // 从UserCenter服务获取企业用户信息 + AjaxResult companyUserResult = userServiceFeign.getInfo(userShipperPoInfo.getUserId()); + if (!companyUserResult.get("code").toString().equals("200")) { + throw new ServiceException("获取企业用户信息失败"); + } + userPo = objectMapper.convertValue(companyUserResult.get("data"), UserPo.class); + } + + //企业员工判断企业货主审核状态 + if (userShipperPoInfo.getShipperType() == 2) { + // 从UserCenter服务获取企业货主信息 + AjaxResult companyShipperResult = userServiceFeign.getShipperByUserId(userShipperPoInfo.getUserId()); + if (!companyShipperResult.get("code").toString().equals("200")) { + throw new ServiceException("获取企业货主信息失败"); + } + UserShipperPo companyUserShipperPo = objectMapper.convertValue(companyShipperResult.get("data"), UserShipperPo.class); + if (companyUserShipperPo.getShipperFill() != 3) { // 假设3代表审核通过 + throw new ServiceException("未提交个人信息认证或认证未通过,请先认证!"); + } + } + + /** + * 更新货源单信息 + */ + ReservationOrder resevationOrder = new ReservationOrder(); + BeanUtils.copyProperties(tmsOrderAddDTO, resevationOrder); + String id = tmsOrderAddDTO.getId(); + resevationOrder.setId(Long.valueOf(id)); + + // 设置更新时间戳和用户信息 + resevationOrder.setUpdateTime(new Date()); + resevationOrder.setUpdateBy(loginUser.getWlhyLoginUser().getRealname()); +// resevationOrder.setUpdateByName(userPo.getUserName()); + + // 检查ID是否为空 + if (resevationOrder.getId() == null || resevationOrder.getId() <= 0) { + throw new ServiceException("预约单ID不能为空,无法执行更新操作"); + } + List loadingAddressList = tmsOrderAddDTO.getLoadingAddressList();//装货地信息集合 + List unloadAddressList = tmsOrderAddDTO.getUnloadAddressList();//卸货地信息集合 + + /*if (CollUtil.isEmpty(loadingAddressList)) { + throw new ServiceException("请传入装货地址!"); + } + + if (CollUtil.isEmpty(unloadAddressList)) { + throw new ServiceException("请传入卸货地址!"); + }*/ + + String loadCityCounty = "", unloadCityCounty = ""; + //当是短驳的时候不走这个逻辑 + /*for (int i = 0; i < loadingAddressList.size(); i++) { + //根据行政区划代码获取省市县名称 + String areaName= sysComboService.getLoadOrUnloadName(loadingAddressList.get(i).getAreaCode()); + loadingAddressList.get(i).setAreaName(areaName); + // 简称 + String shortName= sysComboService.getCityCountyName(loadingAddressList.get(i).getAreaCode()); + loadingAddressList.get(i).setShortName(shortName); + //获取装卸货地经纬度 + String[] lng2Lat = setLngAndLat(loadingAddressList.get(i).getAreaCode(), loadingAddressList.get(i).getLongitude(), + loadingAddressList.get(i).getLatitude(), loadingAddressList.get(i).getAddress()); + if (null != lng2Lat) { + loadingAddressList.get(i).setLongitude(lng2Lat[0]); + loadingAddressList.get(i).setLatitude(lng2Lat[1]); + } + //获取装货时间 + SysDictData sysDictData = getLayTime(loadingAddressList.get(i).getLayTimeId()); + if (sysDictData != null) { + loadingAddressList.get(i).setLayTimeId(sysDictData.getDictValue()); + loadingAddressList.get(i).setLayTime(sysDictData.getDictLabel()); + } + + loadingAddressList.get(i).setSort(i); + } + for (int i = 0; i < unloadAddressList.size(); i++) { + //根据行政区划代码获取省市县名称 + //String areaName= sysComboService.getLoadOrUnloadName(unloadAddressList.get(i).getAreaCode()); + //unloadAddressList.get(i).setAreaName(areaName); + // 简称 + //String shortName= sysComboService.getCityCountyName(unloadAddressList.get(i).getAreaCode()); + //unloadAddressList.get(i).setShortName(shortName); + //获取装卸货地经纬度 + String[] lng2Lat = setLngAndLat(unloadAddressList.get(i).getAreaCode(), unloadAddressList.get(i).getLongitude(), + unloadAddressList.get(i).getLatitude(), unloadAddressList.get(i).getAddress()); + if (null != lng2Lat) { + unloadAddressList.get(i).setLongitude(lng2Lat[0]); + unloadAddressList.get(i).setLatitude(lng2Lat[1]); + } + //获取装货时间 + SysDictData sysDictData = getLayTime(unloadAddressList.get(i).getLayTimeId()); + if (sysDictData != null) { + unloadAddressList.get(i).setLayTimeId(sysDictData.getDictValue()); + unloadAddressList.get(i).setLayTime(sysDictData.getDictLabel()); + } + + + unloadAddressList.get(i).setSort(i); +// } + //多装多卸获取第一个装货地址和最后一个卸货地址 获取省市县简称 + loadCityCounty = sysComboService.getCityCountyName(loadingAddressList.get(0).getAreaCode()); + unloadCityCounty = sysComboService.getCityCountyName(unloadAddressList.get(unloadAddressList.size() - 1).getAreaCode()); + resevationOrder.setLineTitleLeft(loadCityCounty); + resevationOrder.setLineTitleRight(unloadCityCounty); + }*/ + //获取第一条装货地址和获取最后一条卸货地址 + OmsAddressMultiDTO firstAddress = loadingAddressList.get(0); + OmsAddressMultiDTO lastAddress = unloadAddressList.get(unloadAddressList.size() - 1); + resevationOrder.setLoadingAreaId(firstAddress.getAreaCode()); + resevationOrder.setLoadingName(firstAddress.getAreaCode()); + resevationOrder.setLoadingAddress(firstAddress.getAddress()); + String area = firstAddress.getAreaCode() + firstAddress.getAddress(); + /*String geo = amapService.geo(area); + String loadingLatitude = geo.substring(geo.indexOf(",") + 1); + String loadingLongitude = geo.substring(0,geo.indexOf(",")); + resevationOrder.setLoadingLongitude(loadingLongitude); + resevationOrder.setLoadingLatitude(loadingLatitude); + firstAddress.setLatitude(loadingLatitude); + firstAddress.setLongitude(loadingLongitude);*/ + resevationOrder.setLineTitleLeft(firstAddress.getAreaCode()); + resevationOrder.setLineTitleRight(lastAddress.getAreaCode()); + resevationOrder.setFreighterName(firstAddress.getContactName()); + resevationOrder.setLoadingPhone(firstAddress.getContactPhone()); + resevationOrder.setLoadingDate(firstAddress.getLayDate()); + + resevationOrder.setUnloadAreaId(lastAddress.getAreaCode()); + resevationOrder.setUnloadName(lastAddress.getAreaCode()); + resevationOrder.setUnloadAddress(lastAddress.getAddress()); + String unarea = lastAddress.getAreaCode() + lastAddress.getAddress(); + /*String ungeo = amapService.geo(unarea); + String unloadingLatitude = ungeo.substring(ungeo.indexOf(",") + 1); + String unloadingLongitude = ungeo.substring(0,ungeo.indexOf(",")); + lastAddress.setLatitude(unloadingLatitude); + lastAddress.setLongitude(unloadingLongitude); + resevationOrder.setUnloadLongitude(unloadingLongitude); + resevationOrder.setUnloadLatitude(unloadingLatitude);*/ + resevationOrder.setDischargerName(lastAddress.getContactName()); + resevationOrder.setUnloadPhone(lastAddress.getContactPhone()); + resevationOrder.setUnloadingData(lastAddress.getLayDate()); + // 执行更新操作 + int result = resevationOrderMapper.updateById(resevationOrder); + if (result == 0) { + throw new ServiceException("更新失败:未找到对应的预约单记录"); + } + + // 更新费用科目信息 + List tmsOrderAccountList = tmsOrderAddDTO.getTmsOrderAccountList(); + if (ObjectUtil.isNotNull(tmsOrderAccountList) && tmsOrderAccountList.size() > 0) { + // 先删除旧的费用科目信息 + tmsOrderAccountMapper.delete(new LambdaQueryWrapper().eq(OmsOrderAccount::getOrderId, String.valueOf(resevationOrder.getId()))); + + // 插入新的费用科目信息 + for (OmsOrderAccount tmsOrderAccount : tmsOrderAccountList) { + tmsOrderAccount.setIsDelete(0); + tmsOrderAccount.setOrderId(String.valueOf(resevationOrder.getId())); + tmsOrderAccount.setCreateBy(String.valueOf(userPo.getUserId())); + tmsOrderAccount.setCreateTime(new Date()); + + // 设置组织信息 + if (tmsOrderAddDTO.getOrganizationId() != null) { + tmsOrderAccount.setOrganizationId(tmsOrderAddDTO.getOrganizationId()); + } + if (tmsOrderAddDTO.getOrganizationName() != null) { + tmsOrderAccount.setOrganizationName(tmsOrderAddDTO.getOrganizationName()); + } + if (tmsOrderAddDTO.getTopOrganizationId() != null) { + tmsOrderAccount.setTopOrganizationId(tmsOrderAddDTO.getTopOrganizationId()); + } + + tmsOrderAccountMapper.insert(tmsOrderAccount); + } + } + + // 更新货物信息及地址信息 + saveAddress2CargoInfo(String.valueOf(resevationOrder.getId()), allCargoList, tmsOrderAddDTO.getLoadingAddressList(), tmsOrderAddDTO.getUnloadAddressList()); + } + + + + + @Override public List queryList(OmsOrderDTO omsOrderDTO) { LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -882,6 +1153,10 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { omsOrderDTO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); } } + Long organizationId = loginUser.getUserPo().getOrganizationId(); + if (organizationId !=2827L){ + omsOrderDTO.setOrganizationId(loginUser.getUserPo().getOrganizationId()); + } List reservationOrderPOS = reservationOrderDomainService.queryList(omsOrderDTO); for (ReservationOrderPO reservationOrderPO : reservationOrderPOS){ List reservationCargoInfoList = reservationCargoInfoMapper.selectList(new LambdaQueryWrapper().eq(ReservationCargoInfo::getOrderId, reservationOrderPO.getId())); @@ -1078,7 +1353,7 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { // } @Override - public BusinessDocumentOrderPO confirmReservationOrder(String goodsNumber) { + public Boolean confirmReservationOrder(String goodsNumber) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ReservationOrder::getGoodsNumber, goodsNumber); @@ -1102,71 +1377,27 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { BusinessDocumentOrderDO businessDocumentOrderDO = new BusinessDocumentOrderDO(); - // 基本信息映射 - businessDocumentOrderDO.setGoodsNumber(OrderSequence.getOrderCodeByDate(new Date())); // 生成业务单号 + businessDocumentOrderDO.setGoodsNumber(reservationOrder.getGoodsNumber()); // 生成业务单号 businessDocumentOrderDO.setOrderStatus(0L); // 业务单状态:0-待审核 businessDocumentOrderDO.setReviewStatus(0L); // 审核状态:0-未审核 - businessDocumentOrderDO.setExecuteStatus(0L); // 执行状态:0-无状态 + businessDocumentOrderDO.setExecuteStatus(0L); businessDocumentOrderDO.setReservationOrderId(reservationOrder.getId()); businessDocumentOrderDO.setReservationOrderNumber(reservationOrder.getGoodsNumber()); + BeanUtils.copyProperties(reservationOrder, businessDocumentOrderDO); - businessDocumentOrderDO.setGoodsName(reservationOrder.getGoodsName()); - businessDocumentOrderDO.setGoodsTypeId(reservationOrder.getGoodsTypeId()); - businessDocumentOrderDO.setWeightMin(reservationOrder.getWeightMin()); - businessDocumentOrderDO.setWeightMax(reservationOrder.getWeightMax()); - businessDocumentOrderDO.setGoodsUntis(reservationOrder.getGoodsUntis()); - businessDocumentOrderDO.setGoodsUntisId(reservationOrder.getGoodsUntisId()); - businessDocumentOrderDO.setLoadingName(reservationOrder.getLoadingName()); - businessDocumentOrderDO.setLoadingAreaId(reservationOrder.getLoadingAreaId()); - businessDocumentOrderDO.setLoadingAddress(reservationOrder.getLoadingAddress()); - businessDocumentOrderDO.setLoadingLongitude(reservationOrder.getLoadingLongitude()); - businessDocumentOrderDO.setLoadingLatitude(reservationOrder.getLoadingLatitude()); - businessDocumentOrderDO.setLoadingPhone(reservationOrder.getLoadingPhone()); - businessDocumentOrderDO.setLoadingDate(reservationOrder.getLoadingDate()); - - businessDocumentOrderDO.setUnloadName(reservationOrder.getUnloadName()); - businessDocumentOrderDO.setUnloadAreaId(reservationOrder.getUnloadAreaId()); - businessDocumentOrderDO.setUnloadAddress(reservationOrder.getUnloadAddress()); - businessDocumentOrderDO.setUnloadLongitude(reservationOrder.getUnloadLongitude()); - businessDocumentOrderDO.setUnloadLatitude(reservationOrder.getUnloadLatitude()); - businessDocumentOrderDO.setUnloadPhone(reservationOrder.getUnloadPhone()); - businessDocumentOrderDO.setUnloadingData(reservationOrder.getUnloadingData()); - businessDocumentOrderDO.setFreighterName(reservationOrder.getFreighterName()); - businessDocumentOrderDO.setDischargerName(reservationOrder.getDischargerName()); - businessDocumentOrderDO.setRemarks(reservationOrder.getRemarks()); - businessDocumentOrderDO.setTransportationModeId(reservationOrder.getTransportationModeId() != null ? - reservationOrder.getTransportationModeId().longValue() : null); - businessDocumentOrderDO.setTransportationName(reservationOrder.getTransportationName()); - businessDocumentOrderDO.setCarType(reservationOrder.getCarType()); - businessDocumentOrderDO.setCarTypeName(reservationOrder.getCarTypeName()); - businessDocumentOrderDO.setServiceRequireId(reservationOrder.getServiceRequireId()); - businessDocumentOrderDO.setServiceRequire(reservationOrder.getServiceRequire()); - businessDocumentOrderDO.setAppointShipperId(reservationOrder.getAppointShipperId()); - businessDocumentOrderDO.setAppointShipper(reservationOrder.getAppointShipper()); businessDocumentOrderDO.setReceivableType(reservationOrder.getReceivableType() != null ? reservationOrder.getReceivableType().longValue() : 2L); businessDocumentOrderDO.setOrderShippingType(reservationOrder.getOrderShippingType() != null ? reservationOrder.getOrderShippingType().longValue() : 1L); - - businessDocumentOrderDO.setOrganizationId(reservationOrder.getOrganizationId()); - businessDocumentOrderDO.setOrganizationName(reservationOrder.getOrganizationName()); - businessDocumentOrderDO.setTopOrganizationId(reservationOrder.getTopOrganizationId()); - businessDocumentOrderDO.setOrgId(reservationOrder.getOrgId()); - businessDocumentOrderDO.setOrgName(reservationOrder.getOrgName()); - - - businessDocumentOrderDO.setRealCreateBy(String.valueOf(loginUser.getUserid())); - businessDocumentOrderDO.setRealCreateName(loginUser.getUsername()); - businessDocumentOrderDO.setCreateBy(loginUser.getUserid()); - businessDocumentOrderDO.setCreateByName(loginUser.getUsername()); - businessDocumentOrderDO.setCreateTime(new Date()); businessDocumentOrderDO.setUpdateTime(new Date()); businessDocumentOrderDO.setDocumentDate(new Date()); + businessDocumentOrderDO.setPayerType(1L); + businessDocumentOrderDO.setLayDate(reservationOrder.getDepartureTime()); if (businessDocumentOrderDO.getOrderShippingType() == null) { businessDocumentOrderDO.setOrderShippingType(1L); // 默认设置为1 @@ -1175,53 +1406,103 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { businessDocumentOrderDO.setInfoFeePayeeType(0L); // 默认设置为0 } - BusinessDocumentOrder businessDocumentOrder = new BusinessDocumentOrder(); - BeanUtils.copyProperties(businessDocumentOrderDO, businessDocumentOrder); - businessDocumentOrder.setId(null); // 确保是新记录 - businessDocumentOrder.setCreateBy(Long.valueOf(loginUser.getUserid())); - businessDocumentOrder.setCreateByName(loginUser.getUsername()); - businessDocumentOrder.setCreateTime(new Date()); - businessDocumentOrder.setUpdateTime(new Date()); - businessDocumentOrder.setDelFlag(1); - - boolean insertResult = businessDocumentOrderService.save(businessDocumentOrder); + // 组装货物信息 - 从 RESERVATION_CARGO_INFO 表查询 + List businessDocumentCargoMultiList = new ArrayList<>(); + LambdaQueryWrapper cargoQueryWrapper = new LambdaQueryWrapper<>(); + cargoQueryWrapper.eq(ReservationCargoInfo::getOrderId, reservationOrder.getId()); + List reservationCargoList = reservationCargoInfoMapper.selectList(cargoQueryWrapper); + if (reservationCargoList.size() > 0) { + for (ReservationCargoInfo reservationCargo : reservationCargoList) { + BusinessDocumentCargoMultiDTO cargoDTO = new BusinessDocumentCargoMultiDTO(); + cargoDTO.setCargoName(reservationCargo.getCargoName()); + cargoDTO.setCargoNum(reservationCargo.getCargoNum() != null ? reservationCargo.getCargoNum() : BigDecimal.ZERO); + cargoDTO.setCargoWeight(reservationCargo.getCargoWeight() != null ? reservationCargo.getCargoWeight() : BigDecimal.ZERO); + cargoDTO.setCargoUnitName(reservationCargo.getCargoUnitName()); + cargoDTO.setWeightUnit(reservationCargo.getCargoUnitName()); + cargoDTO.setGoodsTypeId(reservationCargo.getGoodsTypeId()); + cargoDTO.setGoodsType(reservationCargo.getGoodsType()); + cargoDTO.setGoodsNameId(reservationCargo.getGoodsNameId()); + cargoDTO.setGoodsName(reservationCargo.getGoodsName()); + cargoDTO.setMaterialContent(reservationCargo.getCargoContent()); + cargoDTO.setMachineCode(reservationCargo.getMachineCode()); + businessDocumentCargoMultiList.add(cargoDTO); + } + } + businessDocumentOrderDO.setBusinessDocumentCargoMultiList(businessDocumentCargoMultiList); + + // 组装装卸货地址信息 - 从 RESERVATION_ADDRESS_MULTI 表查询 + List loadingAddressList = new ArrayList<>(); + List unloadAddressList = new ArrayList<>(); + + + // 查询装货地址 (layType = 1) + LambdaQueryWrapper loadingQueryWrapper = new LambdaQueryWrapper<>(); + loadingQueryWrapper.eq(ReservationAddressMulti::getOrderId, reservationOrder.getId()) + .eq(ReservationAddressMulti::getLayType, 1); + List loadingAddressList1 = reservationAddressMultiMapper.selectList(loadingQueryWrapper); +// @ApiModelProperty(value = "装货地址集合") +// private List loadingAddressList; +// @ApiModelProperty(value = "卸货地址集合") +// private List unloadAddressList; + if (loadingAddressList1.size() > 0) { + for (ReservationAddressMulti address : loadingAddressList1) { + BusinessDocumentAddressMultiDTO loadingAddress = new BusinessDocumentAddressMultiDTO(); + loadingAddress.setAreaCode(address.getAreaCode()); + loadingAddress.setAreaName(address.getAreaName()); + loadingAddress.setAddress(address.getAddress()); + loadingAddress.setLongitude(address.getLongitude()); + loadingAddress.setLatitude(address.getLatitude()); + loadingAddress.setContactName(address.getContactName()); + loadingAddress.setContactPhone(address.getContactPhone()); + loadingAddress.setLayDate(address.getLayDate()); + loadingAddress.setLayTimeId(address.getLayTimeId()); + loadingAddress.setLayType(Long.valueOf(address.getLayType())); +// loadingAddress.setSort(Long.valueOf(address.getSort())); +// loadingAddress.setShortName(address.getShortName()); + loadingAddressList.add(loadingAddress); + } + } + + // 查询卸货地址 (layType = 2) + LambdaQueryWrapper unloadQueryWrapper = new LambdaQueryWrapper<>(); + unloadQueryWrapper.eq(ReservationAddressMulti::getOrderId, reservationOrder.getId()) + .eq(ReservationAddressMulti::getLayType, 2); + List unloadAddressList1 = reservationAddressMultiMapper.selectList(unloadQueryWrapper); + if (unloadAddressList1.size() > 0) { + for (ReservationAddressMulti address : unloadAddressList1) { + BusinessDocumentAddressMultiDTO unloadAddress = new BusinessDocumentAddressMultiDTO(); + unloadAddress.setAreaCode(address.getAreaCode()); + unloadAddress.setAreaName(address.getAreaName()); + unloadAddress.setAddress(address.getAddress()); + unloadAddress.setLongitude(address.getLongitude()); + unloadAddress.setLatitude(address.getLatitude()); + unloadAddress.setContactName(address.getContactName()); + unloadAddress.setContactPhone(address.getContactPhone()); + unloadAddress.setLayDate(address.getLayDate()); + unloadAddress.setLayTimeId(address.getLayTimeId()); + unloadAddress.setLayType(Long.valueOf(address.getLayType())); + unloadAddress.setShortName(address.getShortName()); + unloadAddressList.add(unloadAddress); + } + } + + businessDocumentOrderDO.setLoadingAddressList(loadingAddressList); + businessDocumentOrderDO.setUnloadAddressList(unloadAddressList); + businessDocumentOrderDO.setOrderSource("0"); + + // 插入业务单 + Boolean insertResult = businessDocumentOrderApplicationService.insert(businessDocumentOrderDO); if (!insertResult) { throw new ServiceException("创建业务单失败"); } - - - LambdaQueryWrapper orderQueryWrapper = new LambdaQueryWrapper<>(); - orderQueryWrapper.eq(BusinessDocumentOrder::getGoodsNumber, businessDocumentOrderDO.getGoodsNumber()); - BusinessDocumentOrder createdOrder = businessDocumentOrderService.getOne(orderQueryWrapper); - if (createdOrder == null) { - throw new ServiceException("创建业务单后查询失败"); - } - - // 处理货物信息(从预约单获取) -// handleCargoInfoFromReservation(createdOrder.getId(), reservationOrder.getId()); - - // 处理地址信息(从预约单获取) - handleAddressInfoFromReservation(createdOrder.getId(), reservationOrder.getId()); - - // 更新预约单状态 - reservationOrder.setOrderType(1); // 设置为业务单类型 - reservationOrder.setBusinessOrderId(businessDocumentOrder.getId()); // 关联业务单ID - reservationOrder.setBusinessOrderNumber(businessDocumentOrder.getGoodsNumber()); // 关联业务单号 - reservationOrder.setUpdateTime(new Date()); - reservationOrder.setUpdateBy(String.valueOf(loginUser.getUserid())); - - int updateResult = resevationOrderMapper.updateById(reservationOrder); - if (updateResult <= 0) { - throw new ServiceException("更新预约单状态失败"); - } - - - BusinessDocumentOrderPO businessDocumentOrderPO = new BusinessDocumentOrderPO(); - BeanUtils.copyProperties(businessDocumentOrder, businessDocumentOrderPO); - - return businessDocumentOrderPO; + BusinessDocumentOrder businessDocumentOrder = businessDocumentOrderMapper.selectOne(new LambdaQueryWrapper().eq(BusinessDocumentOrder::getGoodsNumber, goodsNumber)); + reservationOrder.setBusinessOrderId(businessDocumentOrder.getId()); + reservationOrder.setBusinessOrderNumber(businessDocumentOrderDO.getGoodsNumber()); + reservationOrder.setOrderType(1); + resevationOrderMapper.updateById(reservationOrder); + return insertResult; } private void saveAddress2CargoInfo(String id, List cargoInfoList, List loadingAddressList, List unloadAddressList) { @@ -1356,7 +1637,8 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { @Override - public Result batchConfirmReservationOrder(List goodsNumbers) { + public Result batchConfirmReservationOrder(BusinessAuditDTO businessAuditDTO) { + List goodsNumbers = businessAuditDTO.getGoodsNumber(); BatchConfirmResult result = new BatchConfirmResult(); result.setTotal(goodsNumbers.size()); result.setSuccessList(new ArrayList<>()); @@ -1365,8 +1647,17 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { // 同步处理,避免线程池问题 for (String goodsNumber : goodsNumbers) { try { - BusinessDocumentOrderPO businessOrder = confirmReservationOrder(goodsNumber); - result.getSuccessList().add(businessOrder); + Boolean businessOrder = confirmReservationOrder(goodsNumber); + if (businessOrder) { + + } else { + result.getFailList().add(new BatchConfirmResult.FailItem(goodsNumber, "确认失败")); + } + ReservationOrder reservationOrder = resevationOrderMapper.selectOne(new LambdaQueryWrapper().eq(ReservationOrder::getGoodsNumber, goodsNumber)); + reservationOrder.setSalesManager(businessAuditDTO.getSalesManager()); + reservationOrder.setReviewOpinion(businessAuditDTO.getReviewOpinion()); + reservationOrder.setSalesmanName(businessAuditDTO.getSalesmanName()); + resevationOrderMapper.updateById(reservationOrder); result.setSuccessCount(result.getSuccessCount() + 1); } catch (Exception e) { result.getFailList().add(new BatchConfirmResult.FailItem(goodsNumber, e.getMessage())); @@ -1389,6 +1680,84 @@ public class OmsAddressMultiService implements IOmsAddressMultiService { } } + @Override + public Map countByOrderType() { + // 使用MyBatis Plus的LambdaQueryWrapper进行分组统计 + Map countMap = new HashMap<>(); + + // 查询所有非删除的订单,按orderType值分别计数 + for (int i = 0; i <= 5; i++) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ReservationOrder::getIsDelete, 0) + .eq(ReservationOrder::getOrderType, i); + long count = resevationOrderMapper.selectCount(queryWrapper); + countMap.put(i, count); + } + + return countMap; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Integer cancelReserve(List goodsNumbers) { + int count = 0; + + for (String goodsNumber : goodsNumbers) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ReservationOrder::getGoodsNumber, goodsNumber); + ReservationOrder reservationOrder = resevationOrderMapper.selectOne(queryWrapper); + List businessDocumentOrders = businessDocumentOrderMapper.selectList(new LambdaQueryWrapper().eq(BusinessDocumentOrder::getGoodsNumber, goodsNumber)); + if (businessDocumentOrders != null && businessDocumentOrders.size() > 0) { + BusinessDocumentOrder businessDocumentOrder = businessDocumentOrders.get(0); + Long orderStatus = businessDocumentOrder.getOrderStatus(); + if (orderStatus ==0L || orderStatus == 1L) { + businessDocumentOrder.setOrderStatus(4L); + businessDocumentOrderMapper.updateById(businessDocumentOrder); + reservationOrder.setOrderType(5); + resevationOrderMapper.updateById(reservationOrder); + count++; + + }else { + throw new ServiceException("订单进行中无法取消,请联系运营人员处理"); + } + }else { + reservationOrder.setOrderType(5); + resevationOrderMapper.updateById(reservationOrder); + count++; + } + } + + // 返回成功修改的条数 + return count; + } + + @Override + public OmsOrderDTO getResevationOrderInfo(String goodsNumber) { + OmsOrderDTO omsOrderDTO = new OmsOrderDTO(); + ReservationOrder reservationOrder = resevationOrderMapper.selectOne(new LambdaQueryWrapper().eq(ReservationOrder::getGoodsNumber, goodsNumber)); + if (reservationOrder == null) { + throw new ServiceException("订单不存在"); + } + BeanUtils.copyProperties(reservationOrder, omsOrderDTO); + Long id = reservationOrder.getId(); + List reservationCargoInfos = reservationCargoInfoMapper.selectList(new LambdaQueryWrapper().eq(ReservationCargoInfo::getOrderId, id)); + if (reservationCargoInfos != null && reservationCargoInfos.size() > 0) { + omsOrderDTO.setReservationCargoInfo(reservationCargoInfos); + } + ReservationAddressMulti loadingAddressMulti = reservationAddressMultiMapper.selectOne(new LambdaQueryWrapper().eq(ReservationAddressMulti::getOrderId, id).eq(ReservationAddressMulti::getLayType,1).eq(ReservationAddressMulti::getDelFlag, 1)); + if (loadingAddressMulti != null) { + omsOrderDTO.setLoadingAddressMulti(loadingAddressMulti); + } + ReservationAddressMulti unloadAddressMulti = reservationAddressMultiMapper.selectOne(new LambdaQueryWrapper().eq(ReservationAddressMulti::getOrderId, id).eq(ReservationAddressMulti::getLayType,2).eq(ReservationAddressMulti::getDelFlag, 1)); + if (unloadAddressMulti != null) { + omsOrderDTO.setUnloadAddressMulti(unloadAddressMulti); + } + + + return omsOrderDTO; + } + @Override public Result batchRejectReservationOrder(List goodsNumbers) { BatchConfirmResult result = new BatchConfirmResult(); diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentAddressMulti/BusinessAuditDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentAddressMulti/BusinessAuditDTO.java index 4de71763d..9611b8cd6 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentAddressMulti/BusinessAuditDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentAddressMulti/BusinessAuditDTO.java @@ -14,11 +14,17 @@ import java.util.List; public class BusinessAuditDTO { private List ids; + //业务主管 private String salesManager; + //审核意见 private String reviewOpinion; private Long reviewStatus; private String salesManagerName; private String reviewOpinionName; @ApiModelProperty("组织id") private Long organizationId; + private List goodsNumber; + //业务员 + private String salesmanName; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/resevationOrder/OmsOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/resevationOrder/OmsOrderDTO.java index 6f5f47bcb..24f22ef88 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/resevationOrder/OmsOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/resevationOrder/OmsOrderDTO.java @@ -4,6 +4,8 @@ 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.oms.domain.reservationOrder.entity.ReservationAddressMulti; +import com.mhd.oms.domain.reservationOrder.entity.ReservationCargoInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -29,6 +31,10 @@ public class OmsOrderDTO { // // @ApiModelProperty(value = "运距(千米)") // private BigDecimal haulDistance; + @ApiModelProperty(value = "订单创建时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date createTime; @ApiModelProperty(value = "订单开始时间") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @@ -786,5 +792,22 @@ public class OmsOrderDTO { @ApiModelProperty("业务单号") private String businessOrderNumber; + + @ApiModelProperty("货物信息") + private List reservationCargoInfo; + + @ApiModelProperty("装货地址") + private ReservationAddressMulti loadingAddressMulti; + + @ApiModelProperty("卸货地址") + private ReservationAddressMulti unloadAddressMulti; + + @ApiModelProperty("业务主管") + private String salesManager; + @ApiModelProperty("审核意见") + private String reviewOpinion; + @ApiModelProperty("起运时间") + private Date departureTime; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/resevationOrder/ResevationOrderApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/resevationOrder/ResevationOrderApi.java index 58dd7b06d..cc4aee747 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/resevationOrder/ResevationOrderApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/resevationOrder/ResevationOrderApi.java @@ -1,12 +1,18 @@ package com.mhd.oms.interfaces.facade.resevationOrder; import com.aliyun.oss.ServiceException; +import com.github.pagehelper.PageHelper; import com.mhd.common.core.utils.sms.CommonConstant; import com.mhd.common.core.utils.sms.Result; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; +import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO; +import com.mhd.oms.domain.reservationOrder.entity.ReservationOrder; import com.mhd.oms.domain.reservationOrder.repository.facade.IOmsAddressMultiService; import com.mhd.oms.domain.reservationOrder.repository.po.ReservationOrderPO; +import com.mhd.oms.interfaces.dto.businessDocumentAddressMulti.BusinessAuditDTO; +import com.mhd.oms.interfaces.dto.businessDocumentOrder.BusinessDocumentOrderDTO; import com.mhd.oms.interfaces.dto.resevationOrder.OmsOrderAddDTO; import com.mhd.oms.interfaces.dto.resevationOrder.OmsOrderDTO; import com.mhd.system.api.domain.TmsTransportNote; @@ -17,6 +23,8 @@ import org.springframework.web.bind.annotation.*; import com.mhd.common.core.web.controller.BaseController; import javax.annotation.Resource; import java.util.List; +import java.util.Map; + import com.mhd.common.core.web.domain.AjaxResult; //import static com.mhd.common.core.utils.PageUtils.startPage; @@ -80,19 +88,80 @@ public class ResevationOrderApi extends BaseController{ } return result; } + + + /** + * 修改预约单 + * + * @param tmsOrderAddDTO + * @return +*/ + @ApiOperation(value = "货源表-修改预约单", notes = "货源表-修改预约单") + @PostMapping(value = "/edit") + public Result edit(@RequestBody OmsOrderAddDTO tmsOrderAddDTO) { + Result result = new Result(); + try { + // 获取当前登录用户的组织信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null) { + // 设置组织ID + if (loginUser.getUserPo().getOrganizationId() != null) { + tmsOrderAddDTO.setOrganizationId(loginUser.getUserPo().getOrganizationId()); + } + // 设置组织名称 + if (loginUser.getUserPo().getOrganizationName() != null) { + tmsOrderAddDTO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); + } + // 设置上级组织ID + if (loginUser.getUserPo().getTopOrganizationId() != null) { + tmsOrderAddDTO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + } + + omsAddressMultiService.update(tmsOrderAddDTO); + + result.success("修改成功"); + result.setCode(CommonConstant.SC_OK_200); + } catch (ServiceException e) { + e.printStackTrace(); + result.error500("修改失败:"+e.getErrorMessage()); + } catch (Exception e) { + e.printStackTrace(); + result.error500("修改失败"); + } + return result; + } + @ApiOperation("获取预约单详情") + @GetMapping("/getResevationOrderInfo") + public Result getResevationOrderInfo(@RequestParam("goodsNumber") String goodsNumber) { + try { + OmsOrderDTO detail = omsAddressMultiService.getResevationOrderInfo(goodsNumber); + if (detail == null) { + return Result.error("未查询到该预约单信息"); + } + return Result.ok(detail); + } catch (Exception e) { + return Result.error("查询预约单详情失败:" + e.getMessage()); + } + } + + /** * 分页查询【预约单】列表 */ @ApiOperation("查询【预约单】列表") @GetMapping("/list") - public TableDataInfo list(OmsOrderDTO omsOrderDTO) + public TableDataInfo list(OmsOrderDTO omsOrderDTO, + @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize) { //转换实体 - startPage(); + PageHelper.startPage(pageNo, pageSize); List list = omsAddressMultiService.queryList(omsOrderDTO); return getDataTable(list); } + /** @@ -100,16 +169,12 @@ public class ResevationOrderApi extends BaseController{ */ @ApiOperation("批量确认预约单") @PostMapping("/batchConfirm") - public Result batchConfirm(@RequestBody List goodsNumbers) { + public Result batchConfirm(@RequestBody BusinessAuditDTO businessAuditDTO) { Result result = new Result<>(); try { - if (goodsNumbers == null || goodsNumbers.isEmpty()) { - result.error500("预约单号列表不能为空"); - return result; - } // 调用服务层方法 - 现在服务层直接返回Result - return omsAddressMultiService.batchConfirmReservationOrder(goodsNumbers); + return omsAddressMultiService.batchConfirmReservationOrder(businessAuditDTO); } catch (ServiceException e) { result.error500("批量确认失败: " + e.getErrorMessage()); } catch (Exception e) { @@ -139,5 +204,41 @@ public class ResevationOrderApi extends BaseController{ return result; } + /** + * 根据订单状态(orderType)统计各状态的数量 + */ + @ApiOperation("根据订单状态统计数量") + @GetMapping("/countByOrderType") + public Result> countByOrderType() { + Result> result = new Result<>(); + try { + Map countMap = omsAddressMultiService.countByOrderType(); + result.success("统计成功"); + result.setResult(countMap); + result.setCode(CommonConstant.SC_OK_200); + } catch (Exception e) { + e.printStackTrace(); + result.error500("统计失败: " + e.getMessage()); + } + return result; + } + @ApiOperation("取消预约") + @PostMapping("/cancelReserve") + public Result cancelReserve(@RequestBody List goodsNumbers) { + Result result = new Result<>(); + try { + Integer count = omsAddressMultiService.cancelReserve(goodsNumbers); + if (count > 0) { + return Result.ok("取消预约成功,共处理:" + count + "条"); + } else { + return Result.error("取消预约失败,订单不存在或已取消"); + } + + } catch (Exception e) { + e.printStackTrace(); + return Result.error("取消预约失败:" + e.getMessage()); + } + } + } diff --git a/mhd_oms/src/main/resources/mapper/reservationOrder/ReservationDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reservationOrder/ReservationDocumentOrderMapper.xml index 9870e67fe..fc2c78f06 100644 --- a/mhd_oms/src/main/resources/mapper/reservationOrder/ReservationDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationOrder/ReservationDocumentOrderMapper.xml @@ -35,9 +35,7 @@ - - and GOODS_NUMBER = #{goodsNumber} - + and LOADING_AREA_ID = #{loadingAreaId} @@ -56,6 +54,9 @@ and LOADING_UNIT = #{loadingUnit} + + and ORGANIZATION_ID= #{organizationId} + and FREIGHTER_NAME like concat('%', #{freighterName}, '%') @@ -218,8 +219,11 @@ and CREATE_USER_ID = #{createUserId} - - and APPOINT_SHIPPER = #{appointShipper} + + and GOODS_NUMBER LIKE CONCAT('%', #{goodsNumber}, '%') + + + and APPOINT_SHIPPER LIKE CONCAT('%', #{appointShipper}, '%') and IS_STATUS = #{isStatus} From e7202f100d46bfea1bf53dbd933a1bee5f8d41a3 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Mon, 11 May 2026 15:55:43 +0800 Subject: [PATCH 52/96] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E6=96=B0=E5=A2=9E/=E7=BC=96=E8=BE=91-=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=AF=9B=E9=87=8D=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=B1=87=E7=8E=87?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java | 4 ++++ .../domain/materialBaseInfo/entity/MaterialBaseInfo.java | 4 ++++ .../materialBaseInfo/repository/po/MaterialBaseInfoPO.java | 4 ++++ .../materialBaseInfo/repository/todo/MaterialBaseInfoDO.java | 3 +++ .../interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java | 4 ++++ .../mapper/basic/materialBaseInfo/MaterialBaseInfoMapper.xml | 4 ++-- .../oms/interfaces/facade/exchangeRate/ExchangeRateApi.java | 2 +- .../wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java | 4 ++++ .../materialBaseInfo/repository/po/MaterialBaseInfoPO.java | 4 ++++ .../materialBaseInfo/repository/todo/MaterialBaseInfoDO.java | 4 ++++ .../interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java | 4 ++++ .../mapper/materialBaseInfo/MaterialBaseInfoMapper.xml | 3 ++- 12 files changed, 40 insertions(+), 4 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java index 71517982e..79b899031 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java @@ -211,6 +211,10 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{ @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + /** * 规格型号 */ diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java index e594ff73a..267d6da50 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -394,4 +394,8 @@ public class MaterialBaseInfo extends BaseVOEntity{ @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index dfaa9e609..28b99e2f6 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -369,6 +369,10 @@ public class MaterialBaseInfoPO extends BaseVOEntity{ @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + @ApiModelProperty("商品规则") private MaterialGoodsRuleFeign materialGoodsRule; diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java index d5cb6c2ff..a71a79e8e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java @@ -390,4 +390,7 @@ public class MaterialBaseInfoDO extends BaseVOEntity{ @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index 067a9f45d..7704c15c9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -369,4 +369,8 @@ public class MaterialBaseInfoDTO extends BaseVOEntity{ @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/materialBaseInfo/MaterialBaseInfoMapper.xml index e511d7f5e..f399c48be 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -58,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_classify_name, material_type, material_type_name, pack_id, pack_code, pack_name, unit_code, unit_name, brand_id, brand_code, brand_name, shelf_life, weight_limit, volume_limit, material_shape, material_shape_name, material_size, material_length, material_width, material_height, remark, nullify, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag, common,material_model,material_unit,machine_code,sku_code, unit_price, currency, origin_country, hs_code, declaration_unit, statutory_unit, statutory_second_unit, copy_code, - goods_type + goods_type,gross_weight from material_base_info diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java index 8efc3f8da..ef1cd1e62 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/exchangeRate/ExchangeRateApi.java @@ -22,7 +22,7 @@ import static com.mhd.common.core.utils.PageUtils.startPage; @Api(tags = "汇率管理") @RestController -@RequestMapping("exchangeRateApi") +@RequestMapping("/exchangeRateApi") public class ExchangeRateApi { @Resource diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java index e2a841c65..0acb506a9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -220,4 +220,8 @@ public class MaterialBaseInfo extends BaseVOEntity { @ApiModelProperty(name = "推送人") private Long pushBy; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index 4ea8aa1bb..bc6c3adbd 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -257,6 +257,10 @@ public class MaterialBaseInfoPO extends BaseVOEntity { @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + @ApiModelProperty("推送状态 1-未推送 2推送中 3-推送成功 4-推送失败") private Integer pushStatus; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java index 4219d4815..18d71d9d8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java @@ -226,6 +226,10 @@ public class MaterialBaseInfoDO extends BaseVOEntity { @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + @ApiModelProperty("推送状态") private Integer pushStatus; diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index f55a80d2b..b5505a50a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -269,6 +269,10 @@ public class MaterialBaseInfoDTO extends BaseVOEntity { @Excel(name = "货物类型:0-物料 1-半成品 2-成品") private Integer goodsType; + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + @ApiModelProperty("推送状态") private Integer pushStatus; diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index fd6072c5b..26bc1aad1 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -62,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -70,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_classify_name, a.material_type, a.material_type_name, a.pack_id, a.pack_code, a.pack_name, a.unit_code, a.unit_name, a.brand_id, a.brand_code, a.brand_name, a.shelf_life, a.weight_limit, a.volume_limit, a.material_shape, material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common, sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code, - a.push_status,a.push_time,a.push_by,a.goods_type, + a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight, specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity from material_base_info a left join ( select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id ) b on a.material_base_info_id = b.material_base_info_id From 62da999f949fc354ce01f0ca9e59fe290d4174e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Mon, 11 May 2026 16:02:51 +0800 Subject: [PATCH 53/96] =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=88=86=E9=85=8D?= =?UTF-8?q?=E8=B7=9F=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/todo/MaterialInventoryDO.java | 3 +++ .../dto/materialInventory/MaterialInventoryDTO.java | 4 ++++ .../facadeApi/materialInventory/MaterialInventoryApi.java | 8 ++++++-- .../mapper/materialInventory/MaterialInventoryMapper.xml | 3 +++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java index cdef48701..104b44a95 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java @@ -244,4 +244,7 @@ public class MaterialInventoryDO extends MaterialBaseDO { @ApiModelProperty("LOT编号") @Excel(name = "LOT编号") private String lotNumber; + + /** 为 true 时 SQL 排除库存数量为 0(含 null 视为 0) */ + private Boolean excludeZeroInventoryQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java index 003cbdf71..59449f3d4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialInventory/MaterialInventoryDTO.java @@ -185,4 +185,8 @@ public class MaterialInventoryDTO extends MaterialBaseDTO { @Excel(name = "冻结数量大于0条件") private String greaterThanFreezeQuantity; + /** 为 true 时排除库存数量为 0 的行(出库分配选库存用);库存查询页不传或 false */ + @ApiModelProperty(value = "是否排除库存数量为0", example = "false") + private Boolean excludeZeroInventoryQuantity; + } \ No newline at end of file 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 ab891ebbb..e8b3fce35 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 @@ -48,11 +48,15 @@ public class MaterialInventoryApi extends BaseController { /** * 分页查询物料库存列表 */ - @ApiOperation("查询物料库存列表") + @ApiOperation(value = "查询物料库存列表", notes = "库存查询页不传 excludeZeroInventoryQuantity 可查出数量为0;出库分配页传 excludeZeroInventoryQuantity=true 排除库存数量为0") @GetMapping("/list") public TableDataInfo list(MaterialInventoryDTO materialInventoryDTO, - @RequestParam(value = "customerName", required = false) String customerName) + @RequestParam(value = "customerName", required = false) String customerName, + @RequestParam(value = "excludeZeroInventoryQuantity", required = false) Boolean excludeZeroInventoryQuantity) { + if (Boolean.TRUE.equals(excludeZeroInventoryQuantity)) { + materialInventoryDTO.setExcludeZeroInventoryQuantity(true); + } // 出库分配前端传的是客户名称 customerName,这里通过名称查询货主ID,使用精确匹配(不模糊匹配) String shipperName = null; // 保存查询到的货主名称 if (StringUtils.isNotBlank(customerName) && materialInventoryDTO.getShipperId() == null) { diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index f04f9873b..bbda42547 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -183,6 +183,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.freeze_quantity = #{freezeQuantity} + + and COALESCE(a.inventory_quantity, 0) > 0 + and a.create_by_name like concat('%', #{createByName}, '%') From acbc8bfe0255dd5acb3acddf8ed37cb31963d15d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Mon, 11 May 2026 17:41:35 +0800 Subject: [PATCH 54/96] =?UTF-8?q?=E8=AE=A1=E8=B4=B9=E5=8D=95=E6=8D=AE=20?= =?UTF-8?q?=E8=AE=A1=E8=B4=B9=E6=B5=81=E6=B0=B4=20=E8=B4=B9=E7=94=A8?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E6=B7=BB=E5=8A=A0=E8=AE=A1=E8=B4=B9=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E7=AD=89=E4=BF=A1=E6=81=AF;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/dto/BusinessDocumentDTO.java | 12 ++ .../expenseAccount/entity/ExpenseAccount.java | 22 ++++ .../repository/po/ExpenseAccountPO.java | 23 ++++ .../repository/todo/ExpenseAccountDO.java | 22 ++++ .../dto/expenseAccount/ExpenseAccountDTO.java | 22 ++++ .../CostCalculationApplicationService.java | 1 + .../BusinessDocumentApplicationService.java | 118 ++++++++++++++++-- .../repository/mapper/BillManageMapper.java | 2 + .../persistence/BillManageImpl.java | 6 + .../entity/BillingStatement.java | 12 ++ .../repository/po/BillingStatementPO.java | 11 ++ .../repository/todo/BillingStatementDO.java | 11 ++ .../entity/BusinessDocument.java | 12 ++ .../repository/po/BusinessDocumentPO.java | 11 ++ .../repository/todo/BusinessDocumentDO.java | 11 ++ .../entity/BillingParamsEntity.java | 8 +- .../costCalculation/po/BillingCostPo.java | 5 +- .../feign/vo/ExpenseAccountPO.java | 39 +++++- .../billingStatement/BillingStatementDTO.java | 11 ++ .../resources/mapper/BillManageMapper.xml | 4 + 20 files changed, 348 insertions(+), 15 deletions(-) diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java index 67055a95b..457658fe8 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java @@ -1,5 +1,6 @@ package com.mhd.common.core.domain.dto; +import com.baomidou.mybatisplus.annotation.TableField; import com.mhd.common.core.annotation.Excel; import lombok.Data; import java.util.Date; @@ -233,4 +234,15 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file 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 26c82423b..88d5cf7fa 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 @@ -1,6 +1,7 @@ package com.mhd.basic.domain.expenseAccount.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -113,4 +114,25 @@ public class ExpenseAccount extends BaseVOEntity{ @ApiModelProperty("费率") private BigDecimal rate; + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + } \ 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 dfbd0e340..07cca5026 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 @@ -1,5 +1,6 @@ package com.mhd.basic.domain.expenseAccount.repository.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.mhd.common.core.annotation.Excel; import lombok.Data; import java.util.Date; @@ -136,4 +137,26 @@ public class ExpenseAccountPO extends BaseVOEntity{ @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ 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 1fafefb54..cb47009f1 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 @@ -153,4 +153,26 @@ public class ExpenseAccountDO extends BaseVOEntity{ @ApiModelProperty(name = "创建者姓名") private String updateByName; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ 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 c6fbe3362..5bc54f46a 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 @@ -138,4 +138,26 @@ public class ExpenseAccountDTO extends BaseVOEntity{ @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java index 7e907c2d6..c3492d48a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java @@ -92,6 +92,7 @@ public class CostCalculationApplicationService { //第二步 根据计费策略公式进行替换,并根据配置的公式计算结果 BigDecimal computationalCost = computational(billingRulesPO,costCalculationDTO,taskFlowRecordsDO); result.setComputationalCost(computationalCost); + result.setBillingRulesPO(billingRulesPO); //第三步 产生计费任务记录 taskFlowRecordsDO.setBillingResults(computationalCost.toString()); 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 67c69da6a..ce684c175 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 @@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.mhd.bms.application.server.billingRules.CostCalculationApplicationService; import com.mhd.bms.application.server.settlementCustomers.SettlementCustomersApplicationService; +import com.mhd.bms.domain.billingRules.repository.po.BillingParamsPO; +import com.mhd.bms.domain.billingRules.repository.po.BillingRulesPO; import com.mhd.bms.domain.billingStatement.service.BillingStatementDomainService; import com.mhd.bms.domain.businessDocument.entity.BusinessDocument; import com.mhd.bms.domain.businessDocument.repository.po.BusinessDocumentPO; import com.mhd.bms.domain.businessDocument.repository.todo.BusinessDocumentDO; import com.mhd.bms.domain.businessDocument.service.BusinessDocumentDomainService; +import com.mhd.bms.domain.costCalculation.entity.BillingParamsEntity; import com.mhd.bms.domain.costCalculation.po.BillingCostPo; import com.mhd.bms.domain.documentType.entity.DocumentFromEntity; import com.mhd.bms.domain.documentType.entity.DocumentType; @@ -173,10 +176,52 @@ public class BusinessDocumentApplicationService { costCalculationDTO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO); businessDocumentDO.setEstimatedCost(billingCostPo.getComputationalCost()); + BillingRulesPO billingRulesPO = billingCostPo.getBillingRulesPO(); + List billingParamsPOList = billingRulesPO.getBillingParamsPOList(); + if (ObjectUtil.isNotNull(billingParamsPOList)&&billingParamsPOList.size()>0) { + BillingParamsPO billingParamsPO = billingParamsPOList.get(0); + String billingParamsJson = billingParamsPO.getBillingParamsJson(); + String preSetRules = billingParamsPO.getPreSetRules(); + String documentFormJson = businessDocumentDO.getDocumentFormJson(); + JSONObject paramObj = JSONObject.parseObject(documentFormJson); + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsEntity.class); + for (BillingParamsEntity billingParamsEntity : billingParamsEntityList) { + String isFee = billingParamsEntity.getIsFee(); + String fields = billingParamsEntity.getFields(); + // 安全获取值并转 BigDecimal(不会报错) + BigDecimal value = getSafeBigDecimal(paramObj, fields); + + if ("1".equals(isFee)) { + businessDocumentDO.setBillingUnitPrice(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + businessDocumentDO.setBillingNum(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } + } + } // businessDocumentDO.setEstimatedCost(new BigDecimal("100")); return businessDocumentDomainService.insert(businessDocumentDO); } + /** + * 从 JSONObject 安全获取 BigDecimal,支持: + * 数字、整数字符串、小数字符串、null、空字符串 + */ + private BigDecimal getSafeBigDecimal(JSONObject paramObj, String fields) { + Object obj = paramObj.get(fields); + + if (obj == null) { + return BigDecimal.ZERO; // 空值默认返回0,避免空指针 + } + + try { + // 统一转字符串再转 BigDecimal,最安全 + return new BigDecimal(obj.toString().trim()); + } catch (Exception e) { + // 无法解析的非法值,默认返回0 + return BigDecimal.ZERO; + } + } + /** * 新增业务单据 @@ -390,12 +435,39 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setFirstSubjectName(expenseAccountPO.getSubjectName()); businessDocumentDO.setFirstSubjectCode(expenseAccountPO.getSubjectCode()); businessDocumentDO.setSecondSubjectCode(""); + String billingUnitDefaultCn = expenseAccountPO.getBillingUnitDefaultCn(); + String billingUnitDefaultEn = expenseAccountPO.getBillingUnitDefaultEn(); + if ("1".equals(billingUnitDefaultCn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } else if ("1".equals(billingUnitDefaultEn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnitEn()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnitEn2()); + } else { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } + + businessDocumentDO.setNcSubjectCode(expenseAccountPO.getNcSubjectCode()); }else { //不是一级科目 businessDocumentDO.setFirstSubjectName(expenseAccountPO.getUpperSubject()); businessDocumentDO.setFirstSubjectCode(expenseAccountPO.getUpperSubjectCode()); businessDocumentDO.setSecondSubjectCode(expenseAccountPO.getSubjectCode()); businessDocumentDO.setSecondSubjectName(expenseAccountPO.getSubjectName()); + String billingUnitDefaultCn = expenseAccountPO.getBillingUnitDefaultCn(); + String billingUnitDefaultEn = expenseAccountPO.getBillingUnitDefaultEn(); + if ("1".equals(billingUnitDefaultCn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } else if ("1".equals(billingUnitDefaultEn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnitEn()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnitEn2()); + } else { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } + businessDocumentDO.setNcSubjectCode(expenseAccountPO.getNcSubjectCode()); } //判断如果前端没有传费用类别,则此处根据费用科目获取关联费用类别 if(StringUtils.isEmpty(businessDocumentDO.getServiceItemsCode())){ @@ -1026,18 +1098,40 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName()); businessDocumentDO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); //调用费用计算,计算费用金额进行保存 -// 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());//计费金额与计算金额一致 + 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); + + BillingRulesPO billingRulesPO = billingCostPo.getBillingRulesPO(); + List billingParamsPOList = billingRulesPO.getBillingParamsPOList(); + if (ObjectUtil.isNotNull(billingParamsPOList)&&billingParamsPOList.size()>0) { + BillingParamsPO billingParamsPO = billingParamsPOList.get(0); + String billingParamsJson = billingParamsPO.getBillingParamsJson(); + String preSetRules = billingParamsPO.getPreSetRules(); + String documentFormJson = businessDocumentDO.getDocumentFormJson(); + JSONObject paramObj = JSONObject.parseObject(documentFormJson); + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsEntity.class); + for (BillingParamsEntity billingParamsEntity : billingParamsEntityList) { + String isFee = billingParamsEntity.getIsFee(); + String fields = billingParamsEntity.getFields(); + // 安全获取值并转 BigDecimal(不会报错) + BigDecimal value = getSafeBigDecimal(paramObj, fields); + + if ("1".equals(isFee)) { + businessDocumentDO.setBillingUnitPrice(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + businessDocumentDO.setBillingNum(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } + } + } + log.info("定时任务进入BMS业务单据保存--结束"); BusinessDocument businessDocument = businessDocumentDomainService.insertRetrun(businessDocumentDO); BusinessDocumentDTO businessDocumentDTO = new BusinessDocumentDTO(); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java index a2b77b5f7..f0f3c4f7a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java @@ -21,6 +21,8 @@ public interface BillManageMapper extends BaseMapper String getInvoiceItemName(@Param("invoiceItemId") String invoiceItemId); + String getInvoiceItemNcCode(@Param("invoiceItemId") String invoiceItemId); + String getCustomerCodeNc(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); String getDocumentPreparerNcCode(@Param("salesmanId") String salesmanId); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java index d08e95350..486aab1ae 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java @@ -240,11 +240,14 @@ public class BillManageImpl extends ServiceImpl im item.setDirection("1"); String invoiceItem = item1.getInvoiceItem(); List names = new ArrayList<>(); + List nccodes = new ArrayList<>(); if (invoiceItem != null && !invoiceItem.isEmpty()) { String[] items = invoiceItem.split(","); for (String s : items) { String invoiceItemName1 = billManageMapper.getInvoiceItemName(s); + String invoiceItemNcCode1 = billManageMapper.getInvoiceItemNcCode(s); names.add(invoiceItemName1); + nccodes.add(invoiceItemNcCode1); } } String invoiceItemName = String.join(",", names); @@ -282,6 +285,9 @@ public class BillManageImpl extends ServiceImpl im item.setDef29(split[0]); //item.setDef29(invoiceItem1); } + if (nccodes != null && !nccodes.isEmpty()&&nccodes.size()>0) { + item.setDef29(nccodes.get(0)); + } item.setTaxcodeid("ZL01"); item.setInvoiceno(invoiceNumber); ysitemList.add(item); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java index 3be326aac..e0978f0dd 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java @@ -1,6 +1,7 @@ package com.mhd.bms.domain.billingStatement.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -210,4 +211,15 @@ public class BillingStatement extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java index f77d82eda..2a6ec910a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java @@ -221,4 +221,15 @@ public class BillingStatementPO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java index bdc1ee675..438a1e6ac 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java @@ -239,4 +239,15 @@ public class BillingStatementDO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java index 5eb6a0dbf..c1b895398 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java @@ -1,6 +1,7 @@ package com.mhd.bms.domain.businessDocument.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -182,4 +183,15 @@ public class BusinessDocument extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("计费数量") + private BigDecimal billingNum; + @ApiModelProperty("计费单价") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java index 6b27d16ee..fb85c302b 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java @@ -187,4 +187,15 @@ public class BusinessDocumentPO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java index a8cffd45b..129e88965 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java @@ -207,4 +207,15 @@ public class BusinessDocumentDO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java index 2922a4c04..6e747cf1c 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java @@ -35,4 +35,10 @@ public class BillingParamsEntity { @ApiModelProperty("排序") private Integer sort; -} + private String isPush; + + private String isFee; + + private String isShow; + +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java index 145c9faa3..ab7d2957e 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java @@ -1,5 +1,6 @@ package com.mhd.bms.domain.costCalculation.po; +import com.mhd.bms.domain.billingRules.repository.po.BillingRulesPO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,5 +31,7 @@ public class BillingCostPo { @ApiModelProperty("预计金额") private BigDecimal computationalCost; + private BillingRulesPO billingRulesPO; -} + +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java index e1d138975..aaace0e1a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java @@ -102,4 +102,41 @@ public class ExpenseAccountPO extends BaseVOEntity{ @ApiModelProperty("服务项税率") @Excel(name = "服务项税率") private BigDecimal taxRate; -} + + + + @ApiModelProperty("费率") + private BigDecimal rate; + + @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") + private Integer fixedOrderDisplay; + + + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java index 1fc8a6da9..a87587d0b 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java @@ -250,4 +250,15 @@ public class BillingStatementDTO extends BaseVOEntity{ private String paymentAccountName; private List billingStatementList; + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + } \ No newline at end of file diff --git a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml index 43b20f2b6..951903728 100644 --- a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml @@ -110,6 +110,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select SUBJECT_NAME from "NGWL_TEST_SYSTEM".EXPENSE_ACCOUNT where status = 1 and SUBJECT_CODE = #{invoiceItemId} limit 1 + + From 2fb2f6e905137282013cc9b5a3e865f8abecb3f1 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Mon, 11 May 2026 18:09:34 +0800 Subject: [PATCH 55/96] =?UTF-8?q?oms-=E8=BF=9B=E5=87=BA=E5=8F=A3=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E5=8D=95=E8=AF=81=E6=9F=A5=E8=AF=A2=E5=88=97=E8=A1=A8?= =?UTF-8?q?=EF=BC=88=E9=83=A8=E5=88=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OriginalImportExportDocumentApi.java | 46 +++++++++++++++++++ .../BusinessDocumentOrderMapper.xml | 3 ++ 2 files changed, 49 insertions(+) create mode 100644 mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java new file mode 100644 index 000000000..166943959 --- /dev/null +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java @@ -0,0 +1,46 @@ +package com.mhd.oms.interfaces.facade.originalImportExportDocument; + + +import com.github.pagehelper.PageHelper; +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.page.TableDataInfo; +import com.mhd.oms.application.service.businessDocumentOrder.BusinessDocumentOrderApplicationService; +import com.mhd.oms.domain.businessDocumentOrder.repository.po.BusinessDocumentOrderPO; +import com.mhd.oms.domain.businessDocumentOrder.repository.todo.BusinessDocumentOrderDO; +import com.mhd.oms.interfaces.assembler.businessDocumentOrder.BusinessDocumentOrderAssembler; +import com.mhd.oms.interfaces.dto.businessDocumentOrder.BusinessDocumentOrderDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +@Api(tags = "进出口原始单证") +@RestController +@RequestMapping("/OriginalImportExportDocument") +public class OriginalImportExportDocumentApi extends BaseController { + + @Resource + private BusinessDocumentOrderApplicationService businessDocumentOrderApplicationService; + + @Resource + private BusinessDocumentOrderAssembler businessDocumentOrderAssembler; + + @ApiOperation("进出口原始单证查询列表") + @GetMapping("/list") + public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO, + @RequestParam(value = "pageNo",required = false , defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize",required = false , defaultValue = "10") Integer pageSize){ + BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); + PageHelper.startPage(pageNo,pageSize); + List list = businessDocumentOrderApplicationService.queryList(businessDocumentOrderDO); + return getDataTable(list); + } + + + +} diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index 543821a70..fc3b94f2a 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -670,6 +670,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and DOCUMENT_DATE = #{documentDate} + + and IE_TYPE = #{ieType} + From 5958db4fc22c8331b308e07d159c9b9ca932c2b2 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Tue, 12 May 2026 09:46:43 +0800 Subject: [PATCH 56/96] =?UTF-8?q?oms-=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/UserServiceFeign.java | 14 ++--- .../api/domain/UserShipperQueryDTO.java | 52 +++++++++++++++++++ .../RemoteUserFeignFallbackFactory.java | 4 +- .../repository/todo/UserShipperDO.java | 6 +++ .../interfaces/dto/addDTO/UserShipperDTO.java | 15 ++++++ .../BusinessPartnerApplicationService.java | 22 ++++---- .../businessPartner/BusinessPartnerDTO.java | 3 ++ 7 files changed, 91 insertions(+), 25 deletions(-) create mode 100644 mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index 37e2cffba..fbc1404de 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -10,12 +10,14 @@ import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.todo.StatisticalMattersDo; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.system.api.domain.UserDTO; +import com.mhd.system.api.domain.UserShipperQueryDTO; import com.mhd.system.api.domain.UserUpdateDTO; import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; import com.mhd.system.api.model.LoginUser; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import java.util.Date; @@ -198,17 +200,7 @@ public interface UserServiceFeign { @ApiOperation("商业合作伙伴-分页查询托运人列表") @GetMapping("/userShipperApi/userShipperList") - public AjaxResult userShipperList(@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, - @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize, - @RequestParam(value = "userAccount", required = false) String userAccount, - @RequestParam(value = "shipperEnterpriseName", required = false) String shipperEnterpriseName, - @RequestParam(value = "organizationId", required = false) Long organizationId, - @RequestParam(value = "organizationName", required = false) String organizationName, - @RequestParam(value = "createTimeFrom", required = false) String createTimeFrom, - @RequestParam(value = "createTimeTo", required = false) String createTimeTo, - @RequestParam(value = "updateTimeFrom", required = false) String updateTimeFrom, - @RequestParam(value = "updateTimeTo", required = false) String updateTimeTo, - @RequestParam(value = "shipperType", required = false) Integer shipperType); + public AjaxResult userShipperList(@SpringQueryMap UserShipperQueryDTO userShipperQueryDTO); @PostMapping("/userShipperApi/updatePushStatus") diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java new file mode 100644 index 000000000..3370f6a0a --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java @@ -0,0 +1,52 @@ +package com.mhd.system.api.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class UserShipperQueryDTO { + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + + @ApiModelProperty(value = "登录账号") + private String userAccount; + + @ApiModelProperty(value = "企业名称") + private String shipperEnterpriseName; + + @ApiModelProperty(value = "组织ID") + private String organizationId; + + @ApiModelProperty(value = "组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建时间起") + private String createTimeFrom; + + @ApiModelProperty(value = "创建时间止") + private String createTimeTo; + + @ApiModelProperty(value = "更新时间起") + private String updateTimeFrom; + + @ApiModelProperty(value = "更新时间止") + private String updateTimeTo; + + @ApiModelProperty(value = "货主类型") + private String shipperType; + + @ApiModelProperty(value = "推送状态") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java index dd85a7f9b..a3dd70192 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java @@ -7,6 +7,7 @@ import com.mhd.common.core.domain.dto.UserDriverDTO; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.system.api.UserServiceFeign; import com.mhd.system.api.domain.UserDTO; +import com.mhd.system.api.domain.UserShipperQueryDTO; import com.mhd.system.api.domain.UserUpdateDTO; import com.mhd.system.api.model.LoginUser; import com.mhd.common.core.domain.entity.R; @@ -184,10 +185,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory userShipperList(Integer pageNum, Integer pageSize, String userAccount, String shipperEnterpriseName, Long organizationId, String organizationName, String createTimeFrom, String createTimeTo, String updateTimeFrom, String updateTimeTo, Integer shipperType) { + public AjaxResult userShipperList(UserShipperQueryDTO userShipperQueryDTO) { return AjaxResult.error("查询失败" + throwable.getMessage()); } + @Override public AjaxResult updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy) { return AjaxResult.error("更新失败" + throwable.getMessage()); diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java index 5d0438c74..d779cab3e 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java @@ -289,6 +289,12 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "备注") private String userRemark; + @ApiModelProperty("创建时间起") + private Date createTimeFrom; + + @ApiModelProperty("创建时间止") + private Date createTimeTo; + @ApiModelProperty("更新时间起") private String updateTimeFrom; diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java index 27944fa50..f79f793d0 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java @@ -235,4 +235,19 @@ public class UserShipperDTO extends UserDTO { private String taxNumber; + + @ApiModelProperty(value = "更新时间起") + private String updateTimeFrom; + + @ApiModelProperty(value = "更新时间止") + private String updateTimeTo; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "推送状态") + private Integer pushStatus; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java index 46645d011..6d2cb8c73 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -3,6 +3,7 @@ package com.mhd.oms.application.service.businessPartner; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.common.security.utils.SecurityUtils; @@ -10,6 +11,7 @@ import com.mhd.oms.domain.gwLog.entity.GwLog; import com.mhd.oms.domain.gwLog.repository.mapper.GwLogMapper; import com.mhd.oms.interfaces.dto.businessPartner.BusinessPartnerDTO; import com.mhd.system.api.UserServiceFeign; +import com.mhd.system.api.domain.UserShipperQueryDTO; import com.mhd.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; import org.apache.http.client.methods.CloseableHttpResponse; @@ -47,19 +49,13 @@ public class BusinessPartnerApplicationService { public TableDataInfo queryShipperPage(BusinessPartnerDTO businessPartnerDTO) { - AjaxResult result = userServiceFeign.userShipperList( - businessPartnerDTO.getPageNum(), - businessPartnerDTO.getPageSize(), - businessPartnerDTO.getUserAccount(), - businessPartnerDTO.getShipperEnterpriseName(), - businessPartnerDTO.getOrganizationId(), - businessPartnerDTO.getOrganizationName(), - businessPartnerDTO.getCreateTimeFrom(), - businessPartnerDTO.getCreateTimeTo(), - businessPartnerDTO.getUpdateTimeFrom(), - businessPartnerDTO.getUpdateTimeTo(), - businessPartnerDTO.getShipperType() - ); + UserShipperQueryDTO userShipperQueryDTO = new UserShipperQueryDTO(); + BeanUtils.copyProperties(businessPartnerDTO,userShipperQueryDTO); + if(businessPartnerDTO.getOrganizationId()!=null){ + userShipperQueryDTO.setOrganizationId(String.valueOf(businessPartnerDTO.getOrganizationId())); + } + + AjaxResult result = userServiceFeign.userShipperList(userShipperQueryDTO); if ("200".equals((String.valueOf(result.get("code"))))){ List list = (List) result.get("data"); diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java index acd43a1ec..46b79aa2a 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessPartner/BusinessPartnerDTO.java @@ -39,6 +39,9 @@ public class BusinessPartnerDTO { @ApiModelProperty(value = "推送时间止") private String pushTimeTo; + @ApiModelProperty(value = "推送状态") + private Integer pushStatus; + @ApiModelProperty(value = "货主类型:1-个人,2-企业") private Integer shipperType; From 4b609f32ec9784afab57b4d73fd8ba6eb604d13d Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Tue, 12 May 2026 11:27:20 +0800 Subject: [PATCH 57/96] =?UTF-8?q?oms-=E4=BC=81=E4=B8=9A=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java index b646c7c10..aa41ceafa 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/entity/ErpEnterpriseUnit.java @@ -2,6 +2,8 @@ package com.mhd.oms.domain.erpEnterpriseUnit.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -16,6 +18,7 @@ import java.util.Date; public class ErpEnterpriseUnit { @ApiModelProperty(value = "主键ID") + @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty(value = "ERP单位编码") From 97b4e5028e6f539dfbe9e6ba05f4555eef3b15cf Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Tue, 12 May 2026 14:17:01 +0800 Subject: [PATCH 58/96] =?UTF-8?q?oms-=E5=8E=9F=E5=A7=8B=E5=8D=95=E8=AF=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=88=E9=83=A8=E5=88=86=EF=BC=89=E7=89=A9?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessDocumentOrderApplicationService.java | 11 +++++++++++ .../facade/IBusinessDocumentOrderService.java | 2 ++ .../mapper/BusinessDocumentOrderMapper.java | 1 + .../persistence/BusinessDocumentOrderImpl.java | 6 ++++++ .../repository/po/BusinessDocumentOrderPO.java | 4 ++++ .../service/BusinessDocumentOrderDomainService.java | 7 +++++++ .../OriginalImportExportDocumentApi.java | 6 ++++-- .../BusinessDocumentOrderMapper.xml | 10 ++++++++++ 8 files changed, 45 insertions(+), 2 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java index 2a503b9d7..0430cdacc 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java @@ -102,4 +102,15 @@ public class BusinessDocumentOrderApplicationService { List businessOrderAccounts = businessOrderAccountMapper.selectList(new LambdaQueryWrapper().eq(BusinessOrderAccount::getOrderId, id).eq(BusinessOrderAccount::getIsDelete, 0)); return businessOrderAccounts; } + + public List queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null){ + Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId(); + if (topOrganizationId != null && topOrganizationId != 1){ + businessDocumentOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); + } + } + return businessDocumentOrderDomainService.queryListAndMaterial(businessDocumentOrderDO); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java index fcb935293..948412564 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/facade/IBusinessDocumentOrderService.java @@ -52,4 +52,6 @@ public interface IBusinessDocumentOrderService extends IService queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java index 59ae93e04..3d0b8c67c 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/mapper/BusinessDocumentOrderMapper.java @@ -23,4 +23,5 @@ public interface BusinessDocumentOrderMapper extends BaseMapper queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java index fcccc579e..e45c25531 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/persistence/BusinessDocumentOrderImpl.java @@ -449,4 +449,10 @@ public class BusinessDocumentOrderImpl extends ServiceImpl queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO) + { + return businessDocumentOrderMapper.queryListAndMaterial(businessDocumentOrderDO); + } } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java index 8490ea181..cbb645983 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java @@ -779,4 +779,8 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("货物信息") private List businessDocumentCargoMultiList; + + @ApiModelProperty("物料编码") + private String materialCode; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index ceaee187c..2d5308f99 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -804,4 +804,11 @@ public class BusinessDocumentOrderDomainService { } return null; } + + + + public List queryListAndMaterial(BusinessDocumentOrderDO businessDocumentOrderDO) { + return businessDocumentOrderService.queryListAndMaterial(businessDocumentOrderDO); + } + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java index 166943959..f3bcd4bb0 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java @@ -21,7 +21,7 @@ import java.util.List; @Api(tags = "进出口原始单证") @RestController -@RequestMapping("/OriginalImportExportDocument") +@RequestMapping("/OriginalImportExportDocumentApi") public class OriginalImportExportDocumentApi extends BaseController { @Resource @@ -37,7 +37,9 @@ public class OriginalImportExportDocumentApi extends BaseController { @RequestParam(value = "pageSize",required = false , defaultValue = "10") Integer pageSize){ BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); PageHelper.startPage(pageNo,pageSize); - List list = businessDocumentOrderApplicationService.queryList(businessDocumentOrderDO); + List list = businessDocumentOrderApplicationService.queryListAndMaterial(businessDocumentOrderDO); + + return getDataTable(list); } diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index fc3b94f2a..30bb8a320 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -169,6 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -685,4 +686,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select DOCUMENT_PREPARER_NC_code from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc} + + + From ff95284448f96d64e17b3c63fac5e4b5cc929e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Tue, 12 May 2026 15:36:04 +0800 Subject: [PATCH 59/96] =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=8D=95=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E8=AE=A1=E5=88=92=E6=95=B0=E9=87=8F=E4=B8=8D=E5=8F=98?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/MaterialInventoryMapper.java | 2 + .../persistence/MaterialInventoryImpl.java | 2 + .../repository/todo/MaterialInventoryDO.java | 2 +- .../service/StockOutOrderDomainService.java | 5 + .../MaterialInventoryDTO.java | 2 +- .../MaterialInventoryApi.java | 6 +- .../MaterialInventoryMapper.xml | 199 +++++++++++++++++- 7 files changed, 213 insertions(+), 5 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java index a333dd8a8..5a42b31a8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/mapper/MaterialInventoryMapper.java @@ -33,6 +33,8 @@ public interface MaterialInventoryMapper extends BaseMapper public List queryListByWl(MaterialInventoryDO materialInventoryDO); //查物料库存列表-货主 public List queryListByHz(MaterialInventoryDO materialInventoryDO); + //查物料库存列表-货主+物料(同一物料在不同货主下各一行) + public List queryListByHzWl(MaterialInventoryDO materialInventoryDO); /** * @description 批量增加库存 diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java index 19e88a9e9..fbed436d4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/persistence/MaterialInventoryImpl.java @@ -74,6 +74,8 @@ public class MaterialInventoryImpl extends ServiceImpl list = materialInventoryApplicationService.queryList(materialInventoryDO); return getDataTable(list); } diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index bbda42547..64b1b5548 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -89,6 +89,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.in_order_number,a.lot_number + + + a.material_inventory_id, a.organization_id, a.organization_name, a.top_organization_id, + a.shipper_id, a.shipper_code, a.shipper_name, + loc.warehouse_id, loc.warehouse_code, loc.warehouse_name, + loc.storage_section_id, loc.storage_code, loc.storage_name, loc.storage_location_id, loc.storage_location_code, loc.storage_location_name, a.material_base_info_id,a.material_detail_id, + a.batch_number,a.material_status_code,a.material_status_name,a.container_id,a.container_code,a.container_type,a.container_type_name + ,IFNULL (sum(a.freeze_quantity), 0) freeze_quantity,a.is_able, + IFNULL (sum(a.inventory_quantity), 0) inventory_quantity, + IFNULL (sum(a.allocation_quantity), 0) allocation_quantity, + 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.unit, + IFNULL (sum(a.area), 0) area, + IFNULL (sum(a.NET_WEIGHT), 0) NET_WEIGHT, + IFNULL (sum(a.GROSS_WEIGHT), 0) GROSS_WEIGHT, + IFNULL (sum(a.VOLUME), 0) VOLUME, + a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4, + a.production_date, a.expiry_date, a.inventory_date, + a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name, + a.bar_code as inv_bar_code, + a.in_order_number,a.lot_number + + and a.material_inventory_id = #{materialInventoryId} @@ -211,6 +234,124 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + and mi.material_inventory_id = #{materialInventoryId} + + + and mi.organization_id = #{organizationId} + + + and mi.organization_name like concat('%', #{organizationName}, '%') + + + and mi.top_organization_id = #{topOrganizationId} + + + and mi.warehouse_id = #{warehouseId} + + + and mi.shipper_id = #{shipperId} + + + and mi.warehouse_code = #{warehouseCode} + + + and mi.warehouse_name like concat('%', #{warehouseName}, '%') + + + and mi.storage_section_id = #{storageSectionId} + + + and mi.storage_code = #{storageCode} + + + and mi.storage_name like concat('%', #{storageName}, '%') + + + and mi.storage_location_id = #{storageLocationId} + + + and mi.storage_location_code = #{storageLocationCode} + + + and mi.storage_location_name like concat('%', #{storageLocationName}, '%') + + + and mi.material_base_info_id = #{materialBaseInfoId} + + + and mi.material_detail_id, = #{materialDetailId} + + + + and (mi.container_code like concat('%', #{containerOrBatch}, '%') or mi.batch_number like concat('%', #{containerOrBatch}, '%')) + + + and (mi.batch_number like concat('%', #{batchNumber}, '%') or mi.container_code like concat('%', #{containerCode}, '%')) + + + + and mi.batch_number like concat('%', #{batchNumber}, '%') + + + and mi.container_code like concat('%', #{containerCode}, '%') + + + + + and mi.material_status_code like concat('%', #{materialStatusCode}, '%') + + + and mi.material_status_name like concat('%', #{materialStatusName}, '%') + + + and mi.container_id = #{containerId} + + + and mi.container_type like concat('%', #{containerType}, '%') + + + and mi.container_type_name like concat('%', #{containerTypeName}, '%') + + + and mi.inventory_quantity = #{inventoryQuantity} + + + and mi.allocation_quantity = #{allocationQuantity} + + + and mi.freeze_quantity = #{freezeQuantity} + + + and COALESCE(mi.inventory_quantity, 0) > 0 + + + + and mi.create_by_name like concat('%', #{createByName}, '%') + + + and mi.update_by_name like concat('%', #{updateByName}, '%') + + + and mi.del_flag = #{delFlag} + and mi.del_flag = 1 + + + and (mi.storage_location_code = #{storageInfo} or material_code = #{storageInfo} or material_name like concat('%', #{storageInfo}, '%') or bar_code = #{storageInfo}) + + + and mi.BATCH_REF_NO like concat('%', #{batchRefNo}, '%') + + + and mi.SHEET_REF_NO like concat('%', #{sheetRefNo}, '%') + + + and mi.BOX_PALLET_NO like concat('%', #{boxPalletNo}, '%') + + + select - + from material_inventory a left join material_base_info b on a.material_base_info_id = b.material_base_info_id + inner join ( + select material_base_info_id, warehouse_id, warehouse_code, warehouse_name, + storage_section_id, storage_code, storage_name, + storage_location_id, storage_location_code, storage_location_name + from ( + select mi.material_base_info_id, mi.warehouse_id, mi.warehouse_code, mi.warehouse_name, + mi.storage_section_id, mi.storage_code, mi.storage_name, + mi.storage_location_id, mi.storage_location_code, mi.storage_location_name, + row_number() over (partition by mi.material_base_info_id order by mi.create_time desc, mi.material_inventory_id desc) as wl_rn + from material_inventory mi + left join material_base_info b on mi.material_base_info_id = b.material_base_info_id + + + + + ) wl_ranked where wl_ranked.wl_rn = 1 + ) loc on loc.material_base_info_id = a.material_base_info_id - GROUP BY a.MATERIAL_BASE_INFO_ID + GROUP BY a.MATERIAL_BASE_INFO_ID, + loc.warehouse_id, loc.warehouse_code, loc.warehouse_name, + loc.storage_section_id, loc.storage_code, loc.storage_name, + loc.storage_location_id, loc.storage_location_code, loc.storage_location_name + + + + @@ -73,7 +76,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -108,8 +113,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dict_code = #{dictCode} - - update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} + + update sys_dict_data set dict_type = #{newDictType} + where dict_type = #{oldDictType} + and IFNULL(organization_id, 0) = IFNULL(#{organizationId}, 0) + + + + update sys_dict_data + set organization_id = #{organizationId}, + organization_name = #{organizationName}, + top_organization_id = #{topOrganizationId}, + update_time = sysdate() + where dict_type = #{dictType} + and IFNULL(organization_id, 0) = IFNULL(#{scopeOrganizationId}, 0) diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml index be77ef468..e55ad2b78 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml @@ -13,10 +13,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - select dict_id, dict_name, dict_type, status, create_by, create_time, remark + select dict_id, dict_name, dict_type, status, create_by, create_time, remark, + organization_id, organization_name, top_organization_id from sys_dict_type @@ -32,6 +37,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND dict_type like concat('%', #{dictType}, '%') + + AND organization_id = #{organizationId} + + + AND (top_organization_id = #{topOrganizationId} OR IFNULL(organization_id, 0) = 0) + and date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') @@ -53,11 +64,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where dict_type = #{dictType} limit 1 + where dict_type = #{dictType} + and IFNULL(organization_id, 0) = IFNULL(#{organizationId}, 0) + limit 1 @@ -78,6 +93,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dict_type = #{dictType}, status = #{status}, remark = #{remark}, + organization_id = #{organizationId}, + organization_name = #{organizationName}, + top_organization_id = #{topOrganizationId}, update_by = #{updateBy}, update_time = sysdate() @@ -90,6 +108,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dict_type, status, remark, + organization_id, + organization_name, + top_organization_id, create_by, create_time )values( @@ -97,6 +118,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{dictType}, #{status}, #{remark}, + #{organizationId}, + #{organizationName}, + #{topOrganizationId}, #{createBy}, sysdate() ) From 06abee70e389fa7bca09204151a044d9b93575e5 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, 14 May 2026 15:23:48 +0800 Subject: [PATCH 79/96] =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E7=BB=84=E7=BB=87=E5=AD=97=E6=AE=B5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDictTypeController.java | 6 +- .../mhd/system/mapper/SysDictDataMapper.java | 8 +- .../service/impl/SysDictDataServiceImpl.java | 129 ++++++++++++++--- .../service/impl/SysDictTypeServiceImpl.java | 135 ++++++++++++------ .../mapper/system/SysDictDataMapper.xml | 14 +- .../mapper/system/SysDictTypeMapper.xml | 7 +- 6 files changed, 208 insertions(+), 91 deletions(-) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java index 6618ee0f2..e9d4c29c6 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java @@ -79,7 +79,7 @@ public class SysDictTypeController extends BaseController fillDictTypeOrganization(dict); if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型编码「" + dict.getDictType() + "」已存在(全局不可重复)"); } dict.setCreateBy(SecurityUtils.getUsername()); return toAjax(dictTypeService.insertDictType(dict)); @@ -119,7 +119,7 @@ public class SysDictTypeController extends BaseController dict.setTopOrganizationId(userPo.getTopOrganizationId()); } if (StringUtils.isEmpty(dict.getOrganizationName()) - && dict.getOrganizationId().equals(userPo.getOrganizationId())) + && java.util.Objects.equals(dict.getOrganizationId(), userPo.getOrganizationId())) { dict.setOrganizationName(userPo.getOrganizationName()); } @@ -137,7 +137,7 @@ public class SysDictTypeController extends BaseController fillDictTypeOrganization(dict); if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型编码「" + dict.getDictType() + "」已存在(全局不可重复)"); } dict.setUpdateBy(SecurityUtils.getUsername()); return toAjax(dictTypeService.updateDictType(dict)); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java index 162c54935..e7c16554a 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java @@ -56,7 +56,7 @@ public interface SysDictDataMapper extends BaseMapper * @param dictType 字典类型 * @return 字典数据 */ - int countDictDataByType(@Param("dictType") String dictType, @Param("organizationId") Long organizationId); + public int countDictDataByType(String dictType); /** * 通过字典ID删除字典数据信息 @@ -97,8 +97,7 @@ public interface SysDictDataMapper extends BaseMapper * @param newDictType 新旧字典类型 * @return 结果 */ - int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType, - @Param("organizationId") Long organizationId); + public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); /** * 按字典类型批量同步字典数据的组织信息(与字典类型归属一致) @@ -106,6 +105,5 @@ public interface SysDictDataMapper extends BaseMapper int updateDictDataOrganizationByDictType(@Param("dictType") String dictType, @Param("organizationId") Long organizationId, @Param("organizationName") String organizationName, - @Param("topOrganizationId") Long topOrganizationId, - @Param("scopeOrganizationId") Long scopeOrganizationId); + @Param("topOrganizationId") Long topOrganizationId); } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java index b59dba788..e2ec28888 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java @@ -4,17 +4,24 @@ import java.util.ArrayList; import java.util.List; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.basic.infrastructure.feign.ProductServiceFeign; import com.mhd.basic.infrastructure.util.annotation.DataPermissions; +import com.mhd.common.core.domain.po.OrganizationPo; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; import com.mhd.common.core.exception.digitalLogisticsException.UserError; +import com.mhd.common.core.utils.StringUtils; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.system.api.domain.SysDictType; import com.mhd.system.api.model.LoginUser; import com.mhd.system.domain.vo.SysBankDictInfo; import com.mhd.system.domain.vo.SysDictDataVO; import com.mhd.system.mapper.SysDictDataMapper; import com.mhd.system.service.ISysDictDataService; +import com.mhd.system.service.ISysDictTypeService; import org.springframework.stereotype.Service; import com.mhd.common.security.utils.DictUtils; import com.mhd.system.api.domain.SysDictData; @@ -33,6 +40,12 @@ public class SysDictDataServiceImpl extends ServiceImpl dictDatas = dictDataMapper.selectDictDataByType(dictData); - DictUtils.setDictCache(DictUtils.dictTypeOrgCacheKey(data.getDictType(), oid), dictDatas); - DictUtils.removeDictCache(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); } } @@ -129,20 +139,28 @@ public class SysDictDataServiceImpl extends ServiceImpl 0) { SysDictData dictData = new SysDictData(); dictData.setDictType(data.getDictType()); - Long oid = data.getOrganizationId() != null ? data.getOrganizationId() : 0L; - dictData.setOrganizationId(oid); List dictDatas = dictDataMapper.selectDictDataByType(dictData); - DictUtils.setDictCache(DictUtils.dictTypeOrgCacheKey(data.getDictType(), oid), dictDatas); - DictUtils.removeDictCache(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); } return row; } @@ -185,21 +203,29 @@ public class SysDictDataServiceImpl extends ServiceImpl 0) { - DictUtils.removeDictCache(DictUtils.dictTypeOrgCacheKey(sysDictData.getDictType(), oldOid)); + String dictTypeForCache = StringUtils.isNotEmpty(data.getDictType()) ? data.getDictType() : sysDictData.getDictType(); SysDictData dictData = new SysDictData(); - dictData.setDictType(data.getDictType()); - Long oid = data.getOrganizationId() != null ? data.getOrganizationId() - : (sysDictData.getOrganizationId() != null ? sysDictData.getOrganizationId() : 0L); - dictData.setOrganizationId(oid); + dictData.setDictType(dictTypeForCache); List dictDatas = dictDataMapper.selectDictDataByType(dictData); - DictUtils.setDictCache(DictUtils.dictTypeOrgCacheKey(data.getDictType(), oid), dictDatas); - DictUtils.removeDictCache(data.getDictType()); - DictUtils.removeDictCache(sysDictData.getDictType()); + DictUtils.setDictCache(dictTypeForCache, dictDatas); } return row; } @@ -399,6 +425,69 @@ public class SysDictDataServiceImpl extends ServiceImpl selectDictList(SysDictData sysDictData) { return dictDataMapper.selectDictDataList(sysDictData); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java index 754e01e96..f9f6f237c 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java @@ -3,9 +3,14 @@ package com.mhd.system.service.impl; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import javax.annotation.PostConstruct; +import com.alibaba.fastjson.JSONObject; +import com.mhd.basic.infrastructure.feign.ProductServiceFeign; +import com.mhd.common.core.domain.po.OrganizationPo; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.system.mapper.SysDictDataMapper; import com.mhd.system.mapper.SysDictTypeMapper; import com.mhd.system.service.ISysDictTypeService; @@ -35,6 +40,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @Autowired private SysDictDataMapper dictDataMapper; + @Autowired + private ProductServiceFeign productServiceFeign; + /** * 项目启动时,初始化字典到缓存 */ @@ -76,47 +84,22 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @Override public List selectDictDataByType(String dictType) { - Long orgId = resolveLoginOrganizationIdForDict(); - String cacheKey = DictUtils.dictTypeOrgCacheKey(dictType, orgId); - List dictDatas = DictUtils.getDictCache(cacheKey); - if (StringUtils.isEmpty(dictDatas)) - { - dictDatas = DictUtils.getDictCache(dictType); - } + List dictDatas = DictUtils.getDictCache(dictType); if (StringUtils.isNotEmpty(dictDatas)) { return dictDatas; } SysDictData dictData = new SysDictData(); dictData.setDictType(dictType); - dictData.setOrganizationId(orgId); dictDatas = dictDataMapper.selectDictDataByType(dictData); if (StringUtils.isNotEmpty(dictDatas)) { - DictUtils.setDictCache(cacheKey, dictDatas); + DictUtils.setDictCache(dictType, dictDatas); return dictDatas; } return null; } - /** 字典数据按组织隔离;未登录按平台 0 */ - private Long resolveLoginOrganizationIdForDict() - { - try - { - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser != null && loginUser.getUserPo() != null - && loginUser.getUserPo().getOrganizationId() != null) - { - return loginUser.getUserPo().getOrganizationId(); - } - } - catch (Exception ignored) - { - } - return 0L; - } - /** * 根据字典类型ID查询信息 * @@ -152,13 +135,11 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService for (Long dictId : dictIds) { SysDictType dictType = selectDictTypeById(dictId); - Long typeOrgId = dictType.getOrganizationId() != null ? dictType.getOrganizationId() : 0L; - if (dictDataMapper.countDictDataByType(dictType.getDictType(), typeOrgId) > 0) + if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { throw new ServiceException(String.format("%1$s已分配,不能删除", dictType.getDictName())); } dictTypeMapper.deleteDictTypeById(dictId); - DictUtils.removeDictCache(DictUtils.dictTypeOrgCacheKey(dictType.getDictType(), typeOrgId)); DictUtils.removeDictCache(dictType.getDictType()); } } @@ -171,8 +152,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService { SysDictData dictData = new SysDictData(); dictData.setStatus("0"); - Map> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream() - .collect(Collectors.groupingBy(d -> DictUtils.dictTypeOrgCacheKey(d.getDictType(), d.getOrganizationId()))); + Map> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType)); for (Map.Entry> entry : dictDataMap.entrySet()) { DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList())); @@ -207,12 +187,15 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @Override public int insertDictType(SysDictType dict) { + fillOrganizationNameFromProductCenter(dict); + if (dict.getOrganizationId() != null && StringUtils.isEmpty(dict.getOrganizationName())) + { + dict.setOrganizationName(""); + } int row = dictTypeMapper.insertDictType(dict); if (row > 0) { - Long oid = dict.getOrganizationId() != null ? dict.getOrganizationId() : 0L; - DictUtils.removeDictCache(DictUtils.dictTypeOrgCacheKey(dict.getDictType(), oid)); - DictUtils.removeDictCache(dict.getDictType()); + DictUtils.setDictCache(dict.getDictType(), null); } return row; } @@ -228,27 +211,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService public int updateDictType(SysDictType dict) { SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); - Long oldTypeOrgId = oldDict.getOrganizationId() != null ? oldDict.getOrganizationId() : 0L; - dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType(), oldTypeOrgId); + mergeDictTypeOrganizationNameForUpdate(dict, oldDict); + dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); int row = dictTypeMapper.updateDictType(dict); if (row > 0) { - if (dictDataMapper.countDictDataByType(dict.getDictType(), oldTypeOrgId) > 0) + if (dictDataMapper.countDictDataByType(dict.getDictType()) > 0) { dictDataMapper.updateDictDataOrganizationByDictType(dict.getDictType(), - dict.getOrganizationId(), dict.getOrganizationName(), dict.getTopOrganizationId(), - oldTypeOrgId); + dict.getOrganizationId(), dict.getOrganizationName(), dict.getTopOrganizationId()); } - DictUtils.removeDictCache(DictUtils.dictTypeOrgCacheKey(oldDict.getDictType(), oldTypeOrgId)); - DictUtils.removeDictCache(DictUtils.dictTypeOrgCacheKey(dict.getDictType(), dict.getOrganizationId())); - DictUtils.removeDictCache(oldDict.getDictType()); - DictUtils.removeDictCache(dict.getDictType()); SysDictData dictData = new SysDictData(); dictData.setDictType(dict.getDictType()); - Long newOrgId = dict.getOrganizationId() != null ? dict.getOrganizationId() : 0L; - dictData.setOrganizationId(newOrgId); List dictDatas = dictDataMapper.selectDictDataByType(dictData); - DictUtils.setDictCache(DictUtils.dictTypeOrgCacheKey(dict.getDictType(), newOrgId), dictDatas); + DictUtils.setDictCache(dict.getDictType(), dictDatas); } return row; } @@ -270,4 +246,69 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService } return UserConstants.UNIQUE; } + + /** + * 修改字典类型时,请求体常不带 organizationName;若与库中或当前登录用户组织一致则补全,避免 UPDATE 把名称写成 null。 + */ + private void mergeDictTypeOrganizationNameForUpdate(SysDictType dict, SysDictType oldDict) + { + if (dict == null || oldDict == null || StringUtils.isNotEmpty(dict.getOrganizationName())) + { + return; + } + if (dict.getOrganizationId() == null) + { + return; + } + if (Objects.equals(dict.getOrganizationId(), oldDict.getOrganizationId()) + && StringUtils.isNotEmpty(oldDict.getOrganizationName())) + { + dict.setOrganizationName(oldDict.getOrganizationName()); + return; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null + && Objects.equals(dict.getOrganizationId(), loginUser.getUserPo().getOrganizationId()) + && StringUtils.isNotEmpty(loginUser.getUserPo().getOrganizationName())) + { + dict.setOrganizationName(loginUser.getUserPo().getOrganizationName()); + } + fillOrganizationNameFromProductCenter(dict); + if (dict.getOrganizationId() != null && StringUtils.isEmpty(dict.getOrganizationName())) + { + dict.setOrganizationName(""); + } + } + + /** + * 已存在 organizationId 但名称为空时,从产品中心按组织 id 补全名称(与 BasicAgreement 等模块一致)。 + */ + private void fillOrganizationNameFromProductCenter(SysDictType dict) + { + if (dict == null || dict.getOrganizationId() == null || StringUtils.isNotEmpty(dict.getOrganizationName())) + { + return; + } + Long oid = dict.getOrganizationId(); + if (oid == 0L) + { + return; + } + try + { + AjaxResult res = productServiceFeign.getOrganizationInfo(oid); + if (res != null && "200".equals(String.valueOf(res.get("code"))) && res.get("data") != null) + { + OrganizationPo po = JSONObject.parseObject(JSONObject.toJSONString(res.get("data")), OrganizationPo.class); + if (po != null && StringUtils.isNotEmpty(po.getOrganizationName())) + { + dict.setOrganizationName(po.getOrganizationName()); + } + } + } + catch (Exception ignored) + { + // 远程不可用时保持后续逻辑(如置空字符串以便 UPDATE 写入列) + } + } } diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml index c0ba266f3..daae13bd7 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -58,9 +58,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and (top_organization_id = #{topOrganizationId} OR is_default = 'Y') - - and (IFNULL(organization_id, 0) = #{organizationId} OR is_default = 'Y') - order by dict_sort asc @@ -76,9 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -113,10 +108,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dict_code = #{dictCode} - - update sys_dict_data set dict_type = #{newDictType} - where dict_type = #{oldDictType} - and IFNULL(organization_id, 0) = IFNULL(#{organizationId}, 0) + + update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} @@ -126,7 +119,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" top_organization_id = #{topOrganizationId}, update_time = sysdate() where dict_type = #{dictType} - and IFNULL(organization_id, 0) = IFNULL(#{scopeOrganizationId}, 0) diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml index e55ad2b78..bee4a97d0 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/system/SysDictTypeMapper.xml @@ -64,14 +64,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -109,7 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" status, remark, organization_id, - organization_name, + organization_name, top_organization_id, create_by, create_time @@ -119,7 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{status}, #{remark}, #{organizationId}, - #{organizationName}, + #{organizationName}, #{topOrganizationId}, #{createBy}, sysdate() From 3c2447e917271bb3b594ecb5b5d386a5ad08f798 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 15:55:57 +0800 Subject: [PATCH 80/96] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E5=8D=95=E7=89=A9=E6=96=99=20=E6=B7=BB=E5=8A=A0=E7=89=A9?= =?UTF-8?q?=E6=96=99id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/BusinessDocumentCargoMulti.java | 3 +++ .../service/BusinessDocumentOrderDomainService.java | 1 + .../BusinessDocumentCargoMultiDTO.java | 3 +++ 3 files changed, 7 insertions(+) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java index 849033891..78c3e9527 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java @@ -96,6 +96,9 @@ public class BusinessDocumentCargoMulti extends BaseVOEntity{ @ApiModelProperty("") private String materialCode; + @ApiModelProperty("物料id") + private Long materialId; + @ApiModelProperty("$column.columnComment") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String orderId; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 2d5308f99..777988b2f 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -640,6 +640,7 @@ public class BusinessDocumentOrderDomainService { tmsCargoInfo.setCargoWeight(tmsCargoInfoDTO.getWeight()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getWeight()); tmsCargoInfo.setCargoNum(tmsCargoInfoDTO.getCargoNum()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getCargoNum()); tmsCargoInfo.setMaterialVolume(tmsCargoInfoDTO.getMaterialVolume()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getMaterialVolume()); + tmsCargoInfo.setMaterialId(tmsCargoInfoDTO.getMaterialId()); businessDocumentCargoMultiMapper.insert(tmsCargoInfo); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java index 168c2f5ab..aa2424b7e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java @@ -99,6 +99,9 @@ public class BusinessDocumentCargoMultiDTO extends BaseVOEntity{ @ApiModelProperty("") private String materialCode; + @ApiModelProperty("物料id") + private Long materialId; + @ApiModelProperty("体积") private BigDecimal materialVolume; From 73c1cb999f3434a4a87c4e16f7a72e9de31cceba Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 15:56:33 +0800 Subject: [PATCH 81/96] sql --- sql/oms20260513.sql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sql/oms20260513.sql b/sql/oms20260513.sql index 6892fd2bf..1410e104c 100644 --- a/sql/oms20260513.sql +++ b/sql/oms20260513.sql @@ -31,4 +31,11 @@ alter table NGWL_TEST_USER.USER_SHIPPER add PUSH_BY_NAME varchar(100); comment -on column NGWL_TEST_USER.USER_SHIPPER.PUSH_BY_NAME is '推送人姓名'; \ No newline at end of file +on column NGWL_TEST_USER.USER_SHIPPER.PUSH_BY_NAME is '推送人姓名'; + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI + add MATERIAL_ID BIGINT; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.MATERIAL_ID is '物料id'; \ No newline at end of file From 7e2d1d14a4aea788ecff0f62432521a9636214c0 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 16:04:53 +0800 Subject: [PATCH 82/96] =?UTF-8?q?sql=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/oms20260513.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/oms20260513.sql b/sql/oms20260513.sql index 1410e104c..890df7c35 100644 --- a/sql/oms20260513.sql +++ b/sql/oms20260513.sql @@ -35,7 +35,7 @@ on column NGWL_TEST_USER.USER_SHIPPER.PUSH_BY_NAME is '推送人姓名'; alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI - add MATERIAL_ID BIGINT; + add MATERIAL_BASE_INFO_ID BIGINT; comment -on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.MATERIAL_ID is '物料id'; \ No newline at end of file +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.MATERIAL_BASE_INFO_ID is '物料id'; \ No newline at end of file From 0ee57f985891f4a9d828c33274af0348a8fddab9 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 16:10:34 +0800 Subject: [PATCH 83/96] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E5=8D=95=E7=89=A9=E6=96=99=20=E6=B7=BB=E5=8A=A0=E7=89=A9?= =?UTF-8?q?=E6=96=99id=EF=BC=88=E4=BF=AE=E6=94=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/BusinessDocumentCargoMulti.java | 2 +- .../service/BusinessDocumentOrderDomainService.java | 2 +- .../BusinessDocumentCargoMultiDTO.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java index 78c3e9527..22880a0b9 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentCargoMulti/entity/BusinessDocumentCargoMulti.java @@ -97,7 +97,7 @@ public class BusinessDocumentCargoMulti extends BaseVOEntity{ private String materialCode; @ApiModelProperty("物料id") - private Long materialId; + private Long materialBaseInfoId; @ApiModelProperty("$column.columnComment") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 777988b2f..94a8f67f2 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -640,7 +640,7 @@ public class BusinessDocumentOrderDomainService { tmsCargoInfo.setCargoWeight(tmsCargoInfoDTO.getWeight()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getWeight()); tmsCargoInfo.setCargoNum(tmsCargoInfoDTO.getCargoNum()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getCargoNum()); tmsCargoInfo.setMaterialVolume(tmsCargoInfoDTO.getMaterialVolume()==null ? BigDecimal.ZERO: tmsCargoInfoDTO.getMaterialVolume()); - tmsCargoInfo.setMaterialId(tmsCargoInfoDTO.getMaterialId()); + tmsCargoInfo.setMaterialBaseInfoId(tmsCargoInfoDTO.getMaterialBaseInfoId()); businessDocumentCargoMultiMapper.insert(tmsCargoInfo); } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java index aa2424b7e..d9f04a307 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentCargoMulti/BusinessDocumentCargoMultiDTO.java @@ -100,7 +100,7 @@ public class BusinessDocumentCargoMultiDTO extends BaseVOEntity{ private String materialCode; @ApiModelProperty("物料id") - private Long materialId; + private Long materialBaseInfoId; @ApiModelProperty("体积") private BigDecimal materialVolume; From 13caa831890fe6dd9cfd7224be3a548160c5e5f2 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 16:36:22 +0800 Subject: [PATCH 84/96] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=A7=A3=E5=86=B3total=E9=97=AE=E9=A2=98=20=20=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E4=BB=96=E9=A1=B5=E9=9D=A2=E6=98=AF=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BA=BA=E5=90=8D=E7=A7=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mhd/system/api/WmsServiceFeign.java | 3 +- .../system/api/domain/MaterialInfoDTO.java | 5 + .../api/factory/RemoteWmsFallbackFactory.java | 10 +- .../MaterialInfoApplicationService.java | 20 +-- .../repository/po/ErpCountryPO.java | 3 + .../repository/po/ErpEnterpriseUnitPO.java | 5 +- .../OriginalImportExportDocumentApi.java | 133 ++++++++++++------ .../BusinessDocumentOrderMapper.xml | 2 +- .../materialBaseInfo/MaterialBaseInfoApi.java | 4 +- 9 files changed, 129 insertions(+), 56 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 6bf07107d..70dd16a19 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -2,6 +2,7 @@ package com.mhd.system.api; import com.mhd.common.core.constant.ServiceNameConstants; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.system.api.domain.*; import com.mhd.system.api.factory.RemoteWmsFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; @@ -98,7 +99,7 @@ public interface WmsServiceFeign { @ApiOperation("oms查询物料列表") @GetMapping("/materialBaseInfoApi/queryList") - public AjaxResult getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO); + public TableDataInfo getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO); @ApiOperation("oms物料列表推送-更新推送信息") @PostMapping("/materialBaseInfoApi/updatePushStatus") diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java index c27259590..165951f86 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java @@ -48,5 +48,10 @@ public class MaterialInfoDTO { @ApiModelProperty("推送时间止") private String pushTimeEnd; + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; } diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java index 763cad26f..cd085eca7 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java @@ -2,6 +2,7 @@ package com.mhd.system.api.factory; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.system.api.WlhyServiceFeign; import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.domain.*; @@ -11,6 +12,7 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PathVariable; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -71,8 +73,12 @@ public class RemoteWmsFallbackFactory implements FallbackFactory()); + tableDataInfo.setTotal(0); + tableDataInfo.setCode(500); + return tableDataInfo; } @Override diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java index 81f50e552..e1b766c18 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java @@ -45,19 +45,21 @@ public class MaterialInfoApplicationService { } public TableDataInfo queryList(MaterialInfoDTO materialInfoDTO) { - AjaxResult ajaxResult = wmsServiceFeign.getMaterialBaseInfoList(materialInfoDTO); - if(ajaxResult != null && "200".equals(String.valueOf(ajaxResult.get("code")))){ - List data = (List) ajaxResult.get("data"); + try { + + TableDataInfo wmsTableDataInfo = wmsServiceFeign.getMaterialBaseInfoList(materialInfoDTO); + TableDataInfo tableDataInfo = new TableDataInfo(); - tableDataInfo.setData(data); + tableDataInfo.setData(wmsTableDataInfo.getData()); + tableDataInfo.setTotal(wmsTableDataInfo.getTotal()); tableDataInfo.setCode(200); - tableDataInfo.setTotal(data.size()); + return tableDataInfo; + } catch (Exception e) { + log.error("查询物料列表异常: {}", e.getMessage()); + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setCode(500); return tableDataInfo; } - TableDataInfo tableDataInfo = new TableDataInfo(); - tableDataInfo.setCode(500); - tableDataInfo.setMsg("查询失败"); - return tableDataInfo; } public AjaxResult batchPush(List dtoList) { diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java index 7ef930c85..fc727789e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpCountry/repository/po/ErpCountryPO.java @@ -33,6 +33,9 @@ public class ErpCountryPO { @ApiModelProperty("推送人") private Long pushBy; + @ApiModelProperty("推送人") + private String pushByName; + @ApiModelProperty("所属组织ID") private Long organizationId; diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java index 65909bd05..4e4777828 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/erpEnterpriseUnit/repository/po/ErpEnterpriseUnitPO.java @@ -34,7 +34,10 @@ public class ErpEnterpriseUnitPO extends BaseVOEntity { private Date pushTime; @ApiModelProperty(value = "推送人") - private String pushBy; + private Long pushBy; + + @ApiModelProperty(value = "推送人") + private String pushByName; @ApiModelProperty(value = "所属组织ID") private Long organizationId; diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java index ca277e987..9e35bbbcb 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java @@ -1,6 +1,7 @@ package com.mhd.oms.interfaces.facade.originalImportExportDocument; +import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.web.controller.BaseController; @@ -23,8 +24,10 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Api(tags = "进出口原始单证") @RestController @@ -43,26 +46,27 @@ public class OriginalImportExportDocumentApi extends BaseController { @ApiOperation("进出口原始单证查询列表") @GetMapping("/list") public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO, - @RequestParam(value = "pageNo",required = false , defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize",required = false , defaultValue = "10") Integer pageSize){ + @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); - PageHelper.startPage(pageNo,pageSize); + PageHelper.startPage(pageNo, pageSize); List orderList = businessDocumentOrderApplicationService.queryListAndMaterial(businessDocumentOrderDO); + Page page = (Page) orderList; List resultList = convertToOrderWithMaterialList(orderList); fillMaterialInfo(resultList); TableDataInfo tableDataInfo = new TableDataInfo(); tableDataInfo.setData(resultList); - tableDataInfo.setTotal(resultList.size()); + tableDataInfo.setTotal(page.getTotal()); tableDataInfo.setCode(200); return tableDataInfo; } @ApiOperation("删改单申请") @PostMapping("/reviseApply") - public AjaxResult reviseApply(@RequestParam BusinessDocumentOrderDTO businessDocumentOrderDTO){ + public AjaxResult reviseApply(@RequestParam BusinessDocumentOrderDTO businessDocumentOrderDTO) { businessDocumentOrderApplicationService.reviseApply(businessDocumentOrderDTO); @@ -81,20 +85,13 @@ public class OriginalImportExportDocumentApi extends BaseController { } - - - - - - - - private List convertToOrderWithMaterialList(List orderList){ + private List convertToOrderWithMaterialList(List orderList) { List resultList = new ArrayList<>(); - for(BusinessDocumentOrderPO order:orderList){ + for (BusinessDocumentOrderPO order : orderList) { OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO(); orderWithMaterialDTO.setMaterialCode(order.getMaterialCode()); orderWithMaterialDTO.setIeType(order.getIeType()); - BeanUtils.copyProperties(order,orderWithMaterialDTO); + BeanUtils.copyProperties(order, orderWithMaterialDTO); resultList.add(orderWithMaterialDTO); } @@ -106,40 +103,94 @@ public class OriginalImportExportDocumentApi extends BaseController { * 根据materialCode查询,获取goodsType、grossWeight等字段 */ private void fillMaterialInfo(List resultList) { - for (OrderWithMaterialDTO dto : resultList) { - // 只查询有物料编码的订单 - if (StringUtils.hasText(dto.getMaterialCode())) { - try { - // 构建查询参数 - MaterialInfoDTO queryDTO = new MaterialInfoDTO(); - queryDTO.setMaterialCode(dto.getMaterialCode()); - // 调用WMS接口查询物料详情 - AjaxResult ajaxResult = wmsServiceFeign.getMaterialBaseInfoList(queryDTO); + List materialCodeList = resultList.stream() + .map(OrderWithMaterialDTO::getMaterialCode) + .filter(StringUtils::hasText) + .distinct() + .collect(Collectors.toList()); - // 判断返回是否成功 - if ("200".equals(String.valueOf(ajaxResult.get("code")))) { - List materialList = (List) ajaxResult.get("data"); - if (materialList != null && !materialList.isEmpty()) { - // 取第一条物料记录 - Map materialMap = (Map) materialList.get(0); + if (materialCodeList.isEmpty()) { + return; + } - // 从WMS返回的Map中取值,填充到DTO - dto.setMaterialName((String) materialMap.get("materialName")); // 物料名称 - dto.setGoodsType((Integer) materialMap.get("goodsType")); // 货物类型 - dto.setGrossWeight((java.math.BigDecimal) materialMap.get("grossWeight")); // 毛重 - dto.setDeclarationUnit((String) materialMap.get("declarationUnit")); // 申报单位 - dto.setOriginCountry((String) materialMap.get("originCountry")); // 原产国 - dto.setUnitPrice((BigDecimal) materialMap.get("unitPrice")); //单价 - dto.setWeightLimit((BigDecimal) materialMap.get("weightLimit")); //净重 + // 2. 批量查询物料信息(一次查询所有物料) + try { + MaterialInfoDTO queryDTO = new MaterialInfoDTO(); + // 传入物料编码列表(逗号分隔或用其他方式) + queryDTO.setMaterialCode(String.join(",", materialCodeList)); + + TableDataInfo tableDataInfo = wmsServiceFeign.getMaterialBaseInfoList(queryDTO); + + if (tableDataInfo != null && tableDataInfo.getCode() == 200) { + List materialList = tableDataInfo.getData(); + + // 3. 把物料列表转成 Map(key = materialCode) + Map> materialMap = new HashMap<>(); + for (Object material : materialList) { + Map m = (Map) material; + String code = (String) m.get("materialCode"); + materialMap.put(code, m); + } + + // 4. 遍历订单,匹配物料信息 + for (OrderWithMaterialDTO dto : resultList) { + if (StringUtils.hasText(dto.getMaterialCode())) { + Map material = materialMap.get(dto.getMaterialCode()); + if (material != null) { + dto.setMaterialName((String) material.get("materialName")); + dto.setGoodsType((Integer) material.get("goodsType")); + dto.setGrossWeight((BigDecimal) material.get("grossWeight")); + dto.setDeclarationUnit((String) material.get("declarationUnit")); + dto.setOriginCountry((String) material.get("originCountry")); + dto.setUnitPrice((BigDecimal) material.get("unitPrice")); + dto.setWeightLimit((BigDecimal) material.get("weightLimit")); } } - } catch (Exception e) { - // 查询失败不影响主流程,打印日志 - e.printStackTrace(); } } + } catch (Exception e) { + // 查询失败不影响主流程 + e.printStackTrace(); } } +// for (OrderWithMaterialDTO dto : resultList) { +// // 只查询有物料编码的订单 +// if (StringUtils.hasText(dto.getMaterialCode())) { +// try { +// // 构建查询参数 +// MaterialInfoDTO queryDTO = new MaterialInfoDTO(); +// queryDTO.setMaterialCode(dto.getMaterialCode()); +// +// // 调用WMS接口查询物料详情 +// AjaxResult ajaxResult = wmsServiceFeign.getMaterialBaseInfoList(queryDTO); +// +// // 判断返回是否成功 +// if ("200".equals(String.valueOf(ajaxResult.get("code")))) { +// List materialList = (List) ajaxResult.get("data"); +// if (materialList != null && !materialList.isEmpty()) { +// // 取第一条物料记录 +// Map materialMap = (Map) materialList.get(0); +// +// // 从WMS返回的Map中取值,填充到DTO +// dto.setMaterialName((String) materialMap.get("materialName")); // 物料名称 +// dto.setGoodsType((Integer) materialMap.get("goodsType")); // 货物类型 +// dto.setGrossWeight((java.math.BigDecimal) materialMap.get("grossWeight")); // 毛重 +// dto.setDeclarationUnit((String) materialMap.get("declarationUnit")); // 申报单位 +// dto.setOriginCountry((String) materialMap.get("originCountry")); // 原产国 +// dto.setUnitPrice((BigDecimal) materialMap.get("unitPrice")); //单价 +// dto.setWeightLimit((BigDecimal) materialMap.get("weightLimit")); //净重 +// } +// } +// } catch (Exception e) { +// // 查询失败不影响主流程,打印日志 +// e.printStackTrace(); +// } +// } +// +// } + //} + + } diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index 4018b88dc..6db63b3cb 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -692,7 +692,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select SALESPERSON_NC_CODE from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc} + + + + + \ No newline at end of file From 98a1eb49c63041035ee3e6c0937c82a1c48913a9 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 19:33:17 +0800 Subject: [PATCH 90/96] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=8E=A8=E9=80=81=20?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mhd/system/api/WmsServiceFeign.java | 3 ++- .../api/factory/RemoteWmsFallbackFactory.java | 2 +- .../MaterialInfoApplicationService.java | 13 +++++++------ .../MaterialBaseInfoApplicationService.java | 3 ++- .../materialBaseInfo/entity/MaterialBaseInfo.java | 3 +++ .../repository/po/MaterialBaseInfoPO.java | 3 +++ .../dto/materialBaseInfo/MaterialBaseInfoDTO.java | 3 +++ .../materialBaseInfo/MaterialBaseInfoApi.java | 5 +++-- 8 files changed, 24 insertions(+), 11 deletions(-) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 70dd16a19..48fa38331 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -106,5 +106,6 @@ public interface WmsServiceFeign { public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, @RequestParam("pushStatus") Integer pushStatus, @RequestParam(value = "pushTime",required = false) String pushTime, - @RequestParam(value = "pushBy",required = false) Long pushBy); + @RequestParam(value = "pushBy",required = false) Long pushBy, + @RequestParam(value = "pushByName",required = false) String pushByName); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java index cd085eca7..5b0cb292e 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java @@ -82,7 +82,7 @@ public class RemoteWmsFallbackFactory implements FallbackFactory updateMaterialPushStatus(Long materialBaseInfoId, Integer pushStatus, String pushTime, Long pushBy) { + public AjaxResult updateMaterialPushStatus(Long materialBaseInfoId, Integer pushStatus, String pushTime, Long pushBy, String pushByName) { return AjaxResult.error(cause.getMessage()); } }; diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java index e1b766c18..e5b650fd5 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java @@ -69,6 +69,7 @@ public class MaterialInfoApplicationService { LoginUser loginUser = SecurityUtils.getLoginUser(); Long pushBy = loginUser != null ? loginUser.getUserid() : null; + String pushByName = loginUser != null ? loginUser.getUsername() : null; Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null; Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null; String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null; @@ -110,7 +111,7 @@ public class MaterialInfoApplicationService { gwLog.setDelFlag(1); gwLogMapper.insert(gwLog); - updatePushStatus(dto.getMaterialBaseInfoId(), 2, new Date(), pushBy); + updatePushStatus(dto.getMaterialBaseInfoId(), 2, new Date(), pushBy,pushByName); CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(PUSH_API_URL); @@ -126,12 +127,12 @@ public class MaterialInfoApplicationService { if (response.getStatusLine().getStatusCode() == 200) { gwLog.setStatus(2); - updatePushStatus(dto.getMaterialBaseInfoId(), 3, new Date(), pushBy); + updatePushStatus(dto.getMaterialBaseInfoId(), 3, new Date(), pushBy, pushByName); successCount++; } else { gwLog.setStatus(3); gwLog.setErrorMsg(responseString); - updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy); + updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy, pushByName); failCount++; failMsg.append("materialCode:").append(dto.getMaterialCode()).append("失败;"); } @@ -141,7 +142,7 @@ public class MaterialInfoApplicationService { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); gwLogMapper.updateById(gwLog); - updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy); + updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy, pushByName); failCount++; failMsg.append("materialCode:").append(dto.getMaterialCode()).append("异常:").append(e.getMessage()).append(";"); log.error("物料推送异常: id={}, error={}", dto.getMaterialBaseInfoId(), e.getMessage()); @@ -161,10 +162,10 @@ public class MaterialInfoApplicationService { return AjaxResult.success(resultMsg); } - private void updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTime, Long pushBy) { + private void updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTime, Long pushBy, String pushByName) { try { String pushTimeStr = pushTime != null ? DateUtil.format(pushTime, "yyyy-MM-dd HH:mm:ss") : null; - wmsServiceFeign.updateMaterialPushStatus(materialBaseInfoId, pushStatus, pushTimeStr, pushBy); + wmsServiceFeign.updateMaterialPushStatus(materialBaseInfoId, pushStatus, pushTimeStr, pushBy, pushByName); log.info("更新返回结果: materialBaseInfoId={}", materialBaseInfoId); } catch (Exception e) { log.info("更新推送状态失败: materialBaseInfoId={}, error={}", materialBaseInfoId, e.getMessage()); 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 77f93cd84..53f5a8de6 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 @@ -1153,12 +1153,13 @@ public class MaterialBaseInfoApplicationService { return orgCandidates; } - public int updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTimeDate, Long pushBy) { + public int updatePushStatus(Long materialBaseInfoId, Integer pushStatus, Date pushTimeDate, Long pushBy, String pushByName) { MaterialBaseInfo materialBaseInfo = new MaterialBaseInfo(); materialBaseInfo.setMaterialBaseInfoId(materialBaseInfoId); materialBaseInfo.setPushStatus(pushStatus); materialBaseInfo.setPushTime(pushTimeDate); materialBaseInfo.setPushBy(pushBy); + materialBaseInfo.setPushByName(pushByName); return materialBaseInfoMapper.updateById(materialBaseInfo); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java index 0acb506a9..9e470bc5b 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -220,6 +220,9 @@ public class MaterialBaseInfo extends BaseVOEntity { @ApiModelProperty(name = "推送人") private Long pushBy; + @ApiModelProperty(name = "推送人名称") + private String pushByName; + @ApiModelProperty("毛重(kg)") @Excel(name = "毛重(kg)") private BigDecimal grossWeight; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index bc6c3adbd..448ea452e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -272,4 +272,7 @@ public class MaterialBaseInfoPO extends BaseVOEntity { @ApiModelProperty("推送人") private Long pushBy; + @ApiModelProperty(name = "推送人名称") + private String pushByName; + } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index b5505a50a..8a6fa978d 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -293,4 +293,7 @@ public class MaterialBaseInfoDTO extends BaseVOEntity { @ApiModelProperty("更新时间止") private String updateTimeEnd; + + @ApiModelProperty(name = "推送人名称") + private String pushByName; } 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 9e9778acf..3cac82a3f 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 @@ -118,12 +118,13 @@ public class MaterialBaseInfoApi extends BaseController { public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, @RequestParam("pushStatus") Integer pushStatus, @RequestParam(value = "pushTime",required = false) String pushTime, - @RequestParam(value = "pushBy",required = false) Long pushBy){ + @RequestParam(value = "pushBy",required = false) Long pushBy, + @RequestParam(value = "pushByName",required = false) String pushByName){ Date pushTimeDate = null; if (StringUtils.isNotBlank(pushTime)) { pushTimeDate = DateUtil.parse(pushTime); } - return toAjax(materialBaseInfoApplicationService.updatePushStatus(materialBaseInfoId, pushStatus, pushTimeDate, pushBy)); + return toAjax(materialBaseInfoApplicationService.updatePushStatus(materialBaseInfoId, pushStatus, pushTimeDate, pushBy, pushByName)); } @ApiOperation("查询物料基础信息列表") From d11bd2226c89747f83509766c499f203d641b98b Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 19:34:05 +0800 Subject: [PATCH 91/96] =?UTF-8?q?sql=E6=8E=A8=E9=80=81=E4=BA=BA=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/oms20260513.sql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sql/oms20260513.sql b/sql/oms20260513.sql index 56d1315b0..67da4da20 100644 --- a/sql/oms20260513.sql +++ b/sql/oms20260513.sql @@ -44,4 +44,11 @@ alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI add PRODUCT_TYPE BIGINT; comment -on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.PRODUCT_TYPE is '商品类型/货物类型(0料件,1半成品,2成品)'; \ No newline at end of file +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.PRODUCT_TYPE is '商品类型/货物类型(0料件,1半成品,2成品)'; + + +alter table NGWL_TEST_WMS.MATERIAL_BASE_INFO + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_WMS.MATERIAL_BASE_INFO.PUSH_BY_NAME is '推送人名称'; \ No newline at end of file From 6714278e3f654bcfabc394523f01155be58d5b6c Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Thu, 14 May 2026 20:19:54 +0800 Subject: [PATCH 92/96] =?UTF-8?q?=E6=8E=A8=E9=80=81=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=20=E5=90=88=E4=BD=9C=E4=BC=99=E4=BC=B4=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A8=E9=80=81=E4=BA=BA=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/UserShipperMapper.xml | 3 ++- .../BusinessDocumentOrderApplicationService.java | 5 ++++- .../businessPartner/BusinessPartnerApplicationService.java | 6 ++++-- .../service/erpCountry/ErpCountryApplicationService.java | 5 ++++- .../ErpEnterpriseUnitApplicationService.java | 5 ++++- .../exchangeRate/ExchangeRateApplicationService.java | 5 ++++- .../materialInfo/MaterialInfoApplicationService.java | 5 ++++- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index eb19d41c7..d4b0edc7a 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -164,7 +164,8 @@ b.user_remark as userRemarkShipper, b.push_status, b.push_time, - b.push_by + b.push_by, + b.push_by_name FROM "USER" a LEFT JOIN user_shipper b ON a.user_id = b.user_id left join (select user_id, LISTAGG(DISTINCT r.role_name, '&') WITHIN GROUP(ORDER BY r.role_name) AS roleName diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java index bed7494c7..3216a2028 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderApplicationService.java @@ -44,9 +44,10 @@ import java.util.*; @Slf4j public class BusinessDocumentOrderApplicationService { - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME_I = "saveBill_i"; private static final String API_NAME_E = "saveBill_e"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Autowired private BusinessDocumentOrderDomainService businessDocumentOrderDomainService; @@ -216,6 +217,7 @@ public class BusinessDocumentOrderApplicationService { httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); + httpPost.setHeader("verify", VERIFY); if(pushData.getIeType().equals("I")) { httpPost.setHeader("apiName", API_NAME_I); @@ -250,6 +252,7 @@ public class BusinessDocumentOrderApplicationService { } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); if (pushData.getId() != null) { updatePushStatus(pushData.getId(), 4, new Date(), String.valueOf(pushBy), pushByName); diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java index 37f1aefa7..5ce1d0038 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessPartner/BusinessPartnerApplicationService.java @@ -33,8 +33,9 @@ import java.util.Map; @Slf4j public class BusinessPartnerApplicationService { - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "saveCorporation"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Resource @@ -117,7 +118,7 @@ public class BusinessPartnerApplicationService { httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); httpPost.setHeader("apiName", API_NAME); - + httpPost.setHeader("verify", VERIFY); try{ CloseableHttpResponse response = httpClient.execute(httpPost); String responseString = EntityUtils.toString(response.getEntity()); @@ -142,6 +143,7 @@ public class BusinessPartnerApplicationService { } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); updatePushStatus(Long.valueOf(businessPartnerDTO.getShipperId()),4, new Date(), pushBy,pushByName); failCount++; diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java index 8ad209ce9..7ab2f9017 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpCountry/ErpCountryApplicationService.java @@ -34,8 +34,9 @@ import java.util.Map; @Service @Slf4j public class ErpCountryApplicationService{ - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "saveCountry"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Resource private ErpCountryMapper erpCountryMapper; @@ -139,6 +140,7 @@ public class ErpCountryApplicationService{ httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); httpPost.setHeader("apiName", API_NAME); + httpPost.setHeader("verify", VERIFY); try { CloseableHttpResponse response = httpClient.execute(httpPost); @@ -161,6 +163,7 @@ public class ErpCountryApplicationService{ } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); updatePushStatus(dto.getId(), 4, new Date(), pushBy,pushByName); failCount++; diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java index 7fe0ea1a7..8183cab5e 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/erpEnterpriseUnit/ErpEnterpriseUnitApplicationService.java @@ -36,8 +36,9 @@ import java.util.Map; @Slf4j public class ErpEnterpriseUnitApplicationService { - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "saveUnit"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Resource private ErpEnterpriseUnitMapper erpEnterpriseUnitMapper; @@ -135,6 +136,7 @@ public class ErpEnterpriseUnitApplicationService { httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); httpPost.setHeader("apiName", API_NAME); + httpPost.setHeader("verify", VERIFY); try { CloseableHttpResponse response = httpClient.execute(httpPost); @@ -157,6 +159,7 @@ public class ErpEnterpriseUnitApplicationService { } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); updatePushStatus(dto.getId(), 4, new Date(), pushBy,pushByName); failCount++; diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java index db4498b18..e04ba6238 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/exchangeRate/ExchangeRateApplicationService.java @@ -29,8 +29,9 @@ import java.util.*; @Slf4j public class ExchangeRateApplicationService { - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "saveCurr"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Resource private WlhyServiceFeign wlhyServiceFeign; @@ -123,6 +124,7 @@ public class ExchangeRateApplicationService { httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); httpPost.setHeader("apiName", API_NAME); + httpPost.setHeader("verify", VERIFY); try { CloseableHttpResponse response = httpClient.execute(httpPost); @@ -145,6 +147,7 @@ public class ExchangeRateApplicationService { } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); updateExchangeRatePushStatus(dto.getId(), 4, new Date(), pushBy, pushByName); failCount++; diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java index e5b650fd5..64277b4a4 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/materialInfo/MaterialInfoApplicationService.java @@ -32,8 +32,9 @@ import java.util.Map; @Slf4j public class MaterialInfoApplicationService { - private static final String PUSH_API_URL = "http://10.33.0.100/ktms-erp-api/transfer/pushData"; + private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; private static final String API_NAME = "saveOrgGoods"; + private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP"; @Resource private GwLogMapper gwLogMapper; @@ -119,6 +120,7 @@ public class MaterialInfoApplicationService { httpPost.setEntity(postingString); httpPost.setHeader("Content-type", "application/json"); httpPost.setHeader("apiName", API_NAME); + httpPost.setHeader("verify", VERIFY); try { CloseableHttpResponse response = httpClient.execute(httpPost); @@ -141,6 +143,7 @@ public class MaterialInfoApplicationService { } catch (IOException e) { gwLog.setStatus(3); gwLog.setErrorMsg(e.getMessage()); + gwLog.setResponseBody("请求异常:" + e.getMessage()); gwLogMapper.updateById(gwLog); updatePushStatus(dto.getMaterialBaseInfoId(), 4, new Date(), pushBy, pushByName); failCount++; From dba352b2f2967ddd906f0785ee2f0d23c9ca8480 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 15 May 2026 10:56:58 +0800 Subject: [PATCH 93/96] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A5=E6=96=87?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2bug=20=E4=BF=AE=E6=94=B9=E8=BF=9B=E5=87=BA?= =?UTF-8?q?=E5=8F=A3=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gwLog/GwLogApplicationService.java | 3 + .../oms/interfaces/facade/gwLog/GwLogApi.java | 4 + .../OriginalImportExportDocumentApi.java | 116 +----------------- 3 files changed, 11 insertions(+), 112 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java index cea349b41..e6f558de1 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/gwLog/GwLogApplicationService.java @@ -50,6 +50,9 @@ public class GwLogApplicationService { GwLog gwLog =new GwLog(); BeanUtils.copyProperties(gwLogDTO,gwLog); List po1 = gwLogMapper.selectByTypeAndId(gwLog); + if(po1.isEmpty()){ + return null; + } GwLogPO po = po1.get(0); return po; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java index 99f03999d..7e3893ffe 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/gwLog/GwLogApi.java @@ -37,6 +37,10 @@ public class GwLogApi extends BaseController { @PostMapping("/selectByTypeAndId") public AjaxResult selectByTypeAndId(@RequestBody GwLogDTO gwLogDTO){ GwLogPO po = gwLogApplicationService.selectByTypeAndId(gwLogDTO); + if (po == null) + { + return AjaxResult.error(500,"该项数据未推送过/数据错误"); + } AjaxResult ajaxResult = new AjaxResult(); ajaxResult.put("code",200); ajaxResult.put("data",po); diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java index d87976e65..251d65f39 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/originalImportExportDocument/OriginalImportExportDocumentApi.java @@ -47,8 +47,8 @@ public class OriginalImportExportDocumentApi extends BaseController { private WmsServiceFeign wmsServiceFeign; @ApiOperation("进出口原始单证查询列表") - @GetMapping("/list") - public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO, + @GetMapping("/list1") + public TableDataInfo list1(BusinessDocumentOrderDTO businessDocumentOrderDTO, @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); @@ -58,8 +58,6 @@ public class OriginalImportExportDocumentApi extends BaseController { Page page = (Page) orderList; List resultList = convertToOrderWithMaterialList(orderList); - fillMaterialInfo(resultList); - TableDataInfo tableDataInfo = new TableDataInfo(); tableDataInfo.setData(resultList); tableDataInfo.setTotal(page.getTotal()); @@ -88,118 +86,12 @@ public class OriginalImportExportDocumentApi extends BaseController { } -// private List convertToOrderWithMaterialList(List orderList) { -// List resultList = new ArrayList<>(); -// for (BusinessDocumentOrderPO order : orderList) { -// OrderWithMaterialDTO orderWithMaterialDTO = new OrderWithMaterialDTO(); -// orderWithMaterialDTO.setMaterialCode(order.getMaterialCode()); -// orderWithMaterialDTO.setIeType(order.getIeType()); -// BeanUtils.copyProperties(order, orderWithMaterialDTO); -// resultList.add(orderWithMaterialDTO); -// } -// -// return resultList; -// } - - /** - * 调用WMS接口获取物料详细信息 - * 根据materialCode查询,获取goodsType、grossWeight等字段 - */ - private void fillMaterialInfo(List resultList) { - - List materialCodeList = resultList.stream() - .map(OrderWithMaterialDTO::getMaterialCode) - .filter(StringUtils::hasText) - .distinct() - .collect(Collectors.toList()); - - if (materialCodeList.isEmpty()) { - return; - } - - // 2. 批量查询物料信息(一次查询所有物料) - try { - MaterialInfoDTO queryDTO = new MaterialInfoDTO(); - // 传入物料编码列表(逗号分隔或用其他方式) - queryDTO.setMaterialCode(String.join(",", materialCodeList)); - - TableDataInfo tableDataInfo = wmsServiceFeign.getMaterialBaseInfoList(queryDTO); - - if (tableDataInfo != null && tableDataInfo.getCode() == 200) { - List materialList = tableDataInfo.getData(); - - // 3. 把物料列表转成 Map(key = materialCode) - Map> materialMap = new HashMap<>(); - for (Object material : materialList) { - Map m = (Map) material; - String code = (String) m.get("materialCode"); - materialMap.put(code, m); - } - - // 4. 遍历订单,匹配物料信息 - for (OrderWithMaterialDTO dto : resultList) { - if (StringUtils.hasText(dto.getMaterialCode())) { - Map material = materialMap.get(dto.getMaterialCode()); - if (material != null) { - dto.setMaterialName((String) material.get("materialName")); - dto.setGoodsType((Integer) material.get("goodsType")); - dto.setGrossWeight((BigDecimal) material.get("grossWeight")); - dto.setDeclarationUnit((String) material.get("declarationUnit")); - dto.setOriginCountry((String) material.get("originCountry")); - dto.setUnitPrice((BigDecimal) material.get("unitPrice")); - dto.setWeightLimit((BigDecimal) material.get("weightLimit")); - } - } - } - } - } catch (Exception e) { - // 查询失败不影响主流程 - e.printStackTrace(); - } - } - -// for (OrderWithMaterialDTO dto : resultList) { -// // 只查询有物料编码的订单 -// if (StringUtils.hasText(dto.getMaterialCode())) { -// try { -// // 构建查询参数 -// MaterialInfoDTO queryDTO = new MaterialInfoDTO(); -// queryDTO.setMaterialCode(dto.getMaterialCode()); -// -// // 调用WMS接口查询物料详情 -// AjaxResult ajaxResult = wmsServiceFeign.getMaterialBaseInfoList(queryDTO); -// -// // 判断返回是否成功 -// if ("200".equals(String.valueOf(ajaxResult.get("code")))) { -// List materialList = (List) ajaxResult.get("data"); -// if (materialList != null && !materialList.isEmpty()) { -// // 取第一条物料记录 -// Map materialMap = (Map) materialList.get(0); -// -// // 从WMS返回的Map中取值,填充到DTO -// dto.setMaterialName((String) materialMap.get("materialName")); // 物料名称 -// dto.setGoodsType((Integer) materialMap.get("goodsType")); // 货物类型 -// dto.setGrossWeight((java.math.BigDecimal) materialMap.get("grossWeight")); // 毛重 -// dto.setDeclarationUnit((String) materialMap.get("declarationUnit")); // 申报单位 -// dto.setOriginCountry((String) materialMap.get("originCountry")); // 原产国 -// dto.setUnitPrice((BigDecimal) materialMap.get("unitPrice")); //单价 -// dto.setWeightLimit((BigDecimal) materialMap.get("weightLimit")); //净重 -// } -// } -// } catch (Exception e) { -// // 查询失败不影响主流程,打印日志 -// e.printStackTrace(); -// } -// } -// -// } - //} @ApiOperation("进出口原始单证查询列表") - @GetMapping("/list1") - public TableDataInfo list1(BusinessDocumentOrderDTO businessDocumentOrderDTO, + @GetMapping("/list") + public TableDataInfo list(BusinessDocumentOrderDTO businessDocumentOrderDTO, @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { BusinessDocumentOrderDO businessDocumentOrderDO = businessDocumentOrderAssembler.toDO(businessDocumentOrderDTO); From 6e78c306764bbb10ba73dd46f7d93edb69d93586 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 15 May 2026 11:34:50 +0800 Subject: [PATCH 94/96] =?UTF-8?q?=E8=BF=9B=E5=87=BA=E5=8F=A3=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../todo/BusinessDocumentOrderDO.java | 20 + .../BusinessDocumentOrderDTO.java | 20 + .../BusinessDocumentOrderMapper.xml | 529 +++++++++++++++++- 3 files changed, 568 insertions(+), 1 deletion(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java index b557ed1a1..c27e9f254 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java @@ -823,4 +823,24 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ private List loadingAddressList; @ApiModelProperty(value = "卸货地址集合") private List unloadAddressList; + + @ApiModelProperty(value = "单证日期起") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date documentDateStart; + + @ApiModelProperty(value = "单证日期止") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date documentDateEnd; + + @ApiModelProperty(value = "推送时间起") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTimeStart; + + @ApiModelProperty(value = "推送时间止") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTimeEnd; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java index be013f715..798dd487a 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java @@ -840,4 +840,24 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{ @ApiModelProperty(value = "物料明细列表") private List orderWithMaterialDTOList; + + @ApiModelProperty(value = "单证日期起") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date documentDateStart; + + @ApiModelProperty(value = "单证日期止") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date documentDateEnd; + + @ApiModelProperty(value = "推送时间起") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTimeStart; + + @ApiModelProperty(value = "推送时间止") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTimeEnd; } diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index 77c4fec1e..b6b2c848c 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -676,6 +676,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and DOCUMENT_DATE = #{documentDate} + + and DOCUMENT_DATE =]]> #{documentDateStart} + + + and DOCUMENT_DATE #{documentDateEnd} + + + and PUSH_TIME =]]> #{pushTimeStart} + + + and PUSH_TIME #{pushTimeEnd} + and IE_TYPE = #{ieType} @@ -696,8 +708,523 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select o.*,a.material_code , a.material_base_info_id ,a.product_type from business_document_order as o left join business_document_cargo_multi as a ON o.id = a.order_id - + order by create_time desc + + + + + + + and o.ID = #{id} + + + + + + + + + and ORDER_SOURCE = #{orderSource} + + + AND IN_ORDER_NUMBER LIKE CONCAT('%', #{inOrderNumber}, '%') + + + + and CREATE_COMPANY_ID = #{createCompanyId} + + + and CREATE_TIME >= #{createStartTime} + + + and CREATE_TIME <= #{createEndTime} + 1 - 1/86400 + + + + + + + AND GOODS_NUMBER LIKE CONCAT('%', #{goodsNumber}, '%') + + + and LOADING_AREA_ID = #{loadingAreaId} + + + and LOADING_NAME like concat('%', #{loadingName}, '%') + + + and LOADING_ADDRESS = #{loadingAddress} + + + and LOADING_LONGITUDE = #{loadingLongitude} + + + and LOADING_LATITUDE = #{loadingLatitude} + + + and LOADING_UNIT = #{loadingUnit} + + + and FREIGHTER_NAME like concat('%', #{freighterName}, '%') + + + and LOADING_PHONE = #{loadingPhone} + + + and LOADING_DATE = #{loadingDate} + + + and UNLOAD_AREA_ID = #{unloadAreaId} + + + and UNLOAD_NAME like concat('%', #{unloadName}, '%') + + + and UNLOAD_ADDRESS = #{unloadAddress} + + + and UNLOAD_LONGITUDE = #{unloadLongitude} + + + and UNLOAD_LATITUDE = #{unloadLatitude} + + + and DISCHARGER_NAME like concat('%', #{dischargerName}, '%') + + + and UNLOAD_PHONE = #{unloadPhone} + + + and UNLOADING_DATA = #{unloadingData} + + + and GOODS_TYPE_ID = #{goodsTypeId} + + + and GOODS_TYPE = #{goodsType} + + + and GOODS_NAME_ID = #{goodsNameId} + + + and GOODS_NAME like concat('%', #{goodsName}, '%') + + + and WEIGHT_MIN = #{weightMin} + + + and WEIGHT_MAX = #{weightMax} + + + and GOODS_UNTIS_ID = #{goodsUntisId} + + + and GOODS_UNTIS = #{goodsUntis} + + + and TRANSPORTATION_MODE_ID = #{transportationModeId} + + + and TRANSPORTATION_NAME like concat('%', #{transportationName}, '%') + + + and CAR_TYPE = #{carType} + + + and CAR_TYPE_NAME like concat('%', #{carTypeName}, '%') + + + and SERVICE_REQUIRE_ID = #{serviceRequireId} + + + and SERVICE_REQUIRE = #{serviceRequire} + + + and REMARKS = #{remarks} + + + and WAYBILL_FROM = #{waybillFrom} + + + and IS_SOURCE = #{isSource} + + + and SOURCE_CLOSE_TIME = #{sourceCloseTime} + + + and EXECUTOR_ID = #{executorId} + + + and IS_DELETE = #{isDelete} + + + and LINE_TITLE_LEFT = #{lineTitleLeft} + + + and LINE_TITLE_RIGHT = #{lineTitleRight} + + + and SYS_ORG_CODE = #{sysOrgCode} + + + and IS_COMMON = #{isCommon} + + + and GOODS_TYPE_MAJOR = #{goodsTypeMajor} + + + and AUDIT_STATUS = #{auditStatus} + + + and WAYBILL_MODE = #{waybillMode} + + + and LATEST_BIDDING_TIME = #{latestBiddingTime} + + + and DELIVERY_FREIGHT = #{deliveryFreight} + + + and COLLECTED_FREIGHT = #{collectedFreight} + + + and UNCOLLECTED_FREIGHT = #{uncollectedFreight} + + + and COLLECT_LESS_FREIGHT = #{collectLessFreight} + + + and AUDIT_BY = #{auditBy} + + + and AUDIT_TIME = #{auditTime} + + + and BUSINESS_TYPE = #{businessType} + + + and TRANSPORTATION_UNIT_PRICE = #{transportationUnitPrice} + + + and RADIO_VALUE = #{radioValue} + + + and CREATER_NAME like concat('%', #{createrName}, '%') + + + and CREATER_PHONE = #{createrPhone} + + + and IS_ELECTRIC_FENCE = #{isElectricFence} + + + and WXA_QRCODE = #{wxaQrcode} + + + and APPOINT_SHIPPER_ID = #{appointShipperId} + + + and CREATE_USER_ID = #{createUserId} + + + AND APPOINT_SHIPPER LIKE CONCAT('%', #{appointShipper}, '%') + + + and IS_STATUS = #{isStatus} + + + and SIGNATURE_ADDRESS = #{signatureAddress} + + + and QR_CODE_IMG_URL = #{qrCodeImgUrl} + + + and SHIPPING_NOTE = #{shippingNote} + + + and RECEIVABLE_TYPE = #{receivableType} + + + and THIRD_PARTY_ORDER_NUMBER = #{thirdPartyOrderNumber} + + + and DISPATCH_ORDER_NUMBER = #{dispatchOrderNumber} + + + and APPOINT_DRIVER_ENTERPRISE_ID = #{appointDriverEnterpriseId} + + + and APPOINT_DRIVER_ENTERPRISE = #{appointDriverEnterprise} + + + and CANCEL_ORDER_REMARK = #{cancelOrderRemark} + + + and ORDER_DRIVER_ID = #{orderDriverId} + + + and GOODS_QUANTITY = #{goodsQuantity} + + + and GOODS_QUANTITY_UNIT_ID = #{goodsQuantityUnitId} + + + and GOODS_QUANTITY_UNIT = #{goodsQuantityUnit} + + + and BIDDING_UNIT = #{biddingUnit} + + + and ORDER_STATUS = #{orderStatus} + + + and SPLICING_ORDER_TYPE = #{splicingOrderType} + + + and SPLICING_STATUS = #{splicingStatus} + + + and MAIN_ORDER_ID = #{mainOrderId} + + + and MAIN_ORDER_NUM = #{mainOrderNum} + + + and MERGE_ORDER_ID = #{mergeOrderId} + + + and MERGE_ORDER_NUM = #{mergeOrderNum} + + + and PAYER_TYPE = #{payerType} + + + and MACHINE_NUMBER = #{machineNumber} + + + and STOCK_FLAG = #{stockFlag} + + + and INFO_FEE = #{infoFee} + + + and INFO_FEE_PAYEE_TYPE = #{infoFeePayeeType} + + + and INFO_FEE_PAYEE = #{infoFeePayee} + + + and INFO_FEE_STATUS = #{infoFeeStatus} + + + and INFO_FEE_DOCUMENT_NUMBER = #{infoFeeDocumentNumber} + + + and ORDER_SHIPPING_TYPE = #{orderShippingType} + + + and RECIPIENT_ID = #{recipientId} + + + and RECIPIENT_NAME like concat('%', #{recipientName}, '%') + + + and SETTLEMENT_STATUS = #{settlementStatus} + + + and SETTLEMENT_TIME = #{settlementTime} + + + and PAYMENT_TIME = #{paymentTime} + + + and RECONCILIATION_INNER_NUMBER = #{reconciliationInnerNumber} + + + and RECEIVE_PAYMENT_NUMBER = #{receivePaymentNumber} + + + and INVOICE_ID = #{invoiceId} + + + and IS_INVOICE = #{isInvoice} + + + and VEHICLE_TYPE_ID = #{vehicleTypeId} + + + and VEHICLE_TYPE_NAME like concat('%', #{vehicleTypeName}, '%') + + + and CARRIER = #{carrier} + + + and CARRIER_NAME like concat('%', #{carrierName}, '%') + + + and SZWL_USER_ID = #{szwlUserId} + + + and FREIGHT_UNIT_PRICE = #{freightUnitPrice} + + + and BIDDING_STATUS = #{biddingStatus} + + + and BIDDING_REMARKS = #{biddingRemarks} + + + and CARGO_INSURANCE_AMOUNT = #{cargoInsuranceAmount} + + + and DESTINATION = #{destination} + + + and FREIGHT_CHARGES = #{freightCharges} + + + and PAYER = #{payer} + + + and SALESMAN_ID = #{salesmanId} + + + and IS_DECLARE = #{isDeclare} + + + and ROUTE = #{route} + + + and CONTAINER_TYPE = #{containerType} + + + and CONTAINER_TYPE_NAME like concat('%', #{containerTypeName}, '%') + + + and CARD_TYPE = #{cardType} + + + and CARD_TYPE_NAME like concat('%', #{cardTypeName}, '%') + + + and EXTERNAL_CONTAINER_NO = #{externalContainerNo} + + + and TRANSIT_PLACE = #{transitPlace} + + + and SHIPPER = #{shipper} + + + and CUSTOMS_SHIPPER = #{customsShipper} + + + and CUSTOMS_SHIPPER_TEL = #{customsShipperTel} + + + and UNLOADING_COMPANY = #{unloadingCompany} + + + and CONTRACT_NO = #{contractNo} + + + and FREIGHT_FEE = #{freightFee} + + + and UNLOADING_FEE = #{unloadingFee} + + + and CUSTOMS_FEE = #{customsFee} + + + and SHORTAGE_FEE = #{shortageFee} + + + and MISCELLANEOUS_FEE = #{miscellaneousFee} + + + and OTHER_FEE = #{otherFee} + + + and DETENTION_FEE = #{detentionFee} + + + and TAX_RATE = #{taxRate} + + + and SETTLEMENT_CURRENCY = #{settlementCurrency} + + + and VOLUME = #{volume} + + + and DETAIL_CONTENT = #{detailContent} + + + and CUSTOMS_ROUTE = #{customsRoute} + + + and CUSTOMS_PORT = #{customsPort} + + + and CUSTOMS_CONTACT = #{customsContact} + + + and CUSTOMS_CONTACT_PHONE = #{customsContactPhone} + + + and CUSTOMS_REMARK = #{customsRemark} + + + and ORG_ID = #{orgId} + + + and GOODS_CATEGORY = #{goodsCategory} + + + + + + + + + + + + + + + + + + and ORGANIZATION_ID = #{organizationId} + + + + + + + and DOCUMENT_DATE = #{documentDate} + + + and DOCUMENT_DATE =]]> #{documentDateStart} + + + and DOCUMENT_DATE #{documentDateEnd} + + + and PUSH_TIME =]]> #{pushTimeStart} + + + and PUSH_TIME #{pushTimeEnd} + + + and IE_TYPE = #{ieType} + + + + From 3c9b3c5e6845e0e4ea1323935dd5810f6763d4f8 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 15 May 2026 11:40:55 +0800 Subject: [PATCH 95/96] =?UTF-8?q?=E8=BF=9B=E5=87=BA=E5=8F=A3=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../businessDocumentOrder/BusinessDocumentOrderMapper.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index b6b2c848c..d56e74b4c 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -1206,6 +1206,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + and PUSH_STATUS = #{pushStatus} + and DOCUMENT_DATE = #{documentDate} From 20e47e8cc43e8f2f2ecf5196b0d659eaa9a14a48 Mon Sep 17 00:00:00 2001 From: zhaoqing <1670883518@qq.com> Date: Fri, 15 May 2026 13:49:25 +0800 Subject: [PATCH 96/96] sql --- sql/oms20260513.sql | 86 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/sql/oms20260513.sql b/sql/oms20260513.sql index 67da4da20..b32f8374c 100644 --- a/sql/oms20260513.sql +++ b/sql/oms20260513.sql @@ -51,4 +51,88 @@ alter table NGWL_TEST_WMS.MATERIAL_BASE_INFO add PUSH_BY_NAME varchar(100); comment -on column NGWL_TEST_WMS.MATERIAL_BASE_INFO.PUSH_BY_NAME is '推送人名称'; \ No newline at end of file +on column NGWL_TEST_WMS.MATERIAL_BASE_INFO.PUSH_BY_NAME is '推送人名称'; + + + + +USE NGWL_TEST_OMS; + + +CREATE TABLE GW_LOG ( + LOG_ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '日志ID', + TYPE VARCHAR(50) COMMENT '类型', + BUSINESS_ID BIGINT COMMENT '业务ID', + REQUEST_BODY TEXT COMMENT '请求体', + RESPONSE_BODY TEXT COMMENT '响应体', + STATUS INT DEFAULT 1 COMMENT '状态:1-初始,2-成功,3-失败', + ERROR_MSG VARCHAR(500) COMMENT '错误信息', + SEND_TIME DATETIME COMMENT '发送时间', + ORGANIZATION_ID BIGINT COMMENT '组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '顶级组织ID', + ORGANIZATION_NAME VARCHAR(200) COMMENT '组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_TIME DATETIME COMMENT '创建时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); + +alter table NGWL_TEST_OMS.GW_LOG + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.GW_LOG.PUSH_BY_NAME is '推送人姓名'; + + + + +CREATE TABLE ERP_ENTERPRISE_UNIT ( + ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + ERP_CODE VARCHAR(100) COMMENT 'ERP单位编码', + ERP_NAME VARCHAR(200) COMMENT 'ERP单位名称', + PUSH_STATUS INT DEFAULT 1 COMMENT '推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败', + PUSH_TIME DATETIME COMMENT '推送时间', + PUSH_BY BIGINT COMMENT '推送人', + ORGANIZATION_ID BIGINT COMMENT '所属组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '一级组织ID', + ORGANIZATION_NAME VARCHAR(200) COMMENT '所属组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_BY_NAME VARCHAR(64) COMMENT '创建人姓名', + CREATE_TIME DATETIME COMMENT '创建时间', + UPDATE_BY BIGINT COMMENT '更新人', + UPDATE_TIME DATETIME COMMENT '更新时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); + +COMMENT ON TABLE ERP_ENTERPRISE_UNIT IS '企业单位表'; + +alter table NGWL_TEST_OMS.ERP_ENTERPRISE_UNIT + add PUSH_BY_NAME VARCHAR(100); + +comment +on column NGWL_TEST_OMS.ERP_ENTERPRISE_UNIT.PUSH_BY_NAME is '推送人姓名'; + + + +CREATE TABLE ERP_COUNTRY ( + ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + ERP_COUNTRY_CODE VARCHAR(100) COMMENT 'ERP国别编码', + ERP_COUNTRY_NAME VARCHAR(200) COMMENT 'ERP国别名称', + PUSH_STATUS INT DEFAULT 1 COMMENT '推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败', + PUSH_TIME DATETIME COMMENT '推送时间', + PUSH_BY BIGINT COMMENT '推送人', + ORGANIZATION_ID BIGINT COMMENT '所属组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '一级组织ID', + ORGANIZATION_NAME VARCHAR(100) COMMENT '所属组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_TIME DATETIME COMMENT '创建时间', + UPDATE_BY BIGINT COMMENT '更新人', + UPDATE_TIME DATETIME COMMENT '更新时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); +COMMENT ON TABLE ERP_COUNTRY IS '企业国别表'; + +alter table NGWL_TEST_OMS.ERP_COUNTRY + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.ERP_COUNTRY.PUSH_BY_NAME is '托送人姓名'; \ No newline at end of file