From 883724ab8e1037b2478a7eaf92731e3b836f08b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com> Date: Tue, 16 Jun 2026 18:46:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=A1=E7=94=A8=E6=98=8E=E7=BB=86=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AgreementDetailsApplicationService.java | 58 +++++++++++++++++ .../UserShipperApplicationService.java | 26 ++++++++ .../entity/AgreementDetails.java | 48 ++++++++++++++ .../mapper/AgreementDetailsMapper.java | 8 +++ .../facade/AgreementDetailsApi.java | 52 ++++++++++++++++ .../mapper/AgreementDetailsMapper.xml | 62 +++++++++++++++++++ 6 files changed, 254 insertions(+) create mode 100644 mhd-user-center/src/main/java/com/mhd/user/application/service/AgreementDetailsApplicationService.java create mode 100644 mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/AgreementDetails.java create mode 100644 mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/AgreementDetailsMapper.java create mode 100644 mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/AgreementDetailsApi.java create mode 100644 mhd-user-center/src/main/resources/mapper/AgreementDetailsMapper.xml diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/AgreementDetailsApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/AgreementDetailsApplicationService.java new file mode 100644 index 000000000..4b9703459 --- /dev/null +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/AgreementDetailsApplicationService.java @@ -0,0 +1,58 @@ +package com.mhd.user.application.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mhd.user.domain.userAggregate.entity.AgreementDetails; +import com.mhd.user.domain.userAggregate.repository.mapper.AgreementDetailsMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 协议详情业务层 + */ +@Service +@Slf4j +public class AgreementDetailsApplicationService { + + @Resource + private AgreementDetailsMapper agreementDetailsMapper; + + /** + * 根据货主ID查询所有协议明细 + * + * @param shipperId 货主ID + * @return 协议明细列表 + */ + public List listByShipperId(Long shipperId) { + return agreementDetailsMapper.selectList( + new LambdaQueryWrapper() + .eq(AgreementDetails::getShipperId, shipperId) + .orderByDesc(AgreementDetails::getCreateTime) + ); + } + + /** + * 根据主键查询单条协议明细 + * + * @param id 主键ID + * @return 协议明细 + */ + public AgreementDetails getInfo(Long id) { + return agreementDetailsMapper.selectById(id); + } + + /** + * 根据货主ID删除所有协议明细 + * + * @param shipperId 货主ID + * @return 影响行数 + */ + public int deleteByShipperId(Long shipperId) { + return agreementDetailsMapper.delete( + new LambdaQueryWrapper() + .eq(AgreementDetails::getShipperId, shipperId) + ); + } +} 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 c51be8ff6..d0e01ad10 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 @@ -35,8 +35,10 @@ import com.mhd.user.domain.roleAggregate.repository.todo.RoleDo; import com.mhd.user.domain.roleAggregate.service.RoleDomainService; import com.mhd.common.core.domain.po.RolePO; import com.mhd.user.domain.userAggregate.entity.UserRoleEntity; +import com.mhd.user.domain.userAggregate.entity.AgreementDetails; import com.mhd.user.domain.userAggregate.entity.UserShipperEntity; import com.mhd.user.domain.userAggregate.event.ShipperEventPublisher; +import com.mhd.user.domain.userAggregate.repository.mapper.AgreementDetailsMapper; 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.*; @@ -125,6 +127,9 @@ public class UserShipperApplicationService { @Resource private BusinessPartnerPushLogMapper businessPartnerPushLogMapper; + @Resource + private AgreementDetailsMapper agreementDetailsMapper; + /** * @Description 查询托运人列表 * @Author Alex @@ -1608,6 +1613,27 @@ public class UserShipperApplicationService { userShipperEntity1.setSettlementCurrency(limitData.getString("currencycode")); userShipperEntity1.setCreditAmount(limitData.getBigDecimal("nbalancemny")); userShipperMapper.updateById(userShipperEntity1); + //关联明细表:同步agreedaydatas到agreement_details + com.alibaba.fastjson.JSONArray agreedaydatas = dataJson.getJSONArray("agreedaydatas"); + if (agreedaydatas != null && !agreedaydatas.isEmpty()) { + // 先删除该货主已有的协议明细,避免重复 + agreementDetailsMapper.delete(new LambdaQueryWrapper() + .eq(AgreementDetails::getShipperId, userShipperEntity1.getShipperId())); + for (int i = 0; i < agreedaydatas.size(); i++) { + com.alibaba.fastjson.JSONObject agreeItem = agreedaydatas.getJSONObject(i); + AgreementDetails agreementDetails = new AgreementDetails(); + agreementDetails.setShipperId(userShipperEntity1.getShipperId()); + agreementDetails.setOrgcode(agreeItem.getString("orgcode")); + agreementDetails.setCode(agreeItem.getString("code")); + agreementDetails.setPday(agreeItem.getString("pday")); + agreementDetails.setPname(agreeItem.getString("pname")); + agreementDetails.setPtypename(agreeItem.getString("ptypename")); + agreementDetails.setPcode(agreeItem.getString("pcode")); + agreementDetails.setPtype(agreeItem.getString("ptype")); + agreementDetailsMapper.insert(agreementDetails); + } + log.info("同步协议明细成功,custcode={},shipperId={},共{}条", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId(), agreedaydatas.size()); + } log.info("更新货主额度同步成功,custcode={},shipperId={}", userShipperEntity1.getCustomerNcCode(), userShipperEntity1.getShipperId()); } else { log.info("赊销额度查询无limitdatas返回,跳过更新,custcode={}", userShipperEntity1.getCustomerNcCode()); diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/AgreementDetails.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/AgreementDetails.java new file mode 100644 index 000000000..652ecc52f --- /dev/null +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/AgreementDetails.java @@ -0,0 +1,48 @@ +package com.mhd.user.domain.userAggregate.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author: brb + * @description: 协议详情表 + * @create: 2026-06-16 18:25 + */ +@Data +@TableName("agreement_details") +public class AgreementDetails extends BaseVOEntity { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) + @ApiModelProperty("主键ID") + private Long id; + + @ApiModelProperty("货主表ID") + private Long shipperId; + + @ApiModelProperty("协议组织编码") + private String orgcode; + + @ApiModelProperty("客户编码") + private String code; + + @ApiModelProperty("协议天数") + private String pday; + + @ApiModelProperty("协议天数名称") + private String pname; + + @ApiModelProperty("协议类型名称") + private String ptypename; + + @ApiModelProperty("财务系统协议编码") + private String pcode; + + @ApiModelProperty("协议类型") + private String ptype; +} diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/AgreementDetailsMapper.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/AgreementDetailsMapper.java new file mode 100644 index 000000000..e9bfe905c --- /dev/null +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/AgreementDetailsMapper.java @@ -0,0 +1,8 @@ +package com.mhd.user.domain.userAggregate.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.user.domain.userAggregate.entity.AgreementDetails; + +public interface AgreementDetailsMapper extends BaseMapper { + +} diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/AgreementDetailsApi.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/AgreementDetailsApi.java new file mode 100644 index 000000000..450012d01 --- /dev/null +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/AgreementDetailsApi.java @@ -0,0 +1,52 @@ +package com.mhd.user.interfaces.facade; + +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.user.application.service.AgreementDetailsApplicationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 协议详情控制层 + */ +@Api(tags = "用户中台管理-协议详情") +@Slf4j +@RestController +@RequestMapping("/agreementDetailsApi") +@CrossOrigin +public class AgreementDetailsApi extends BaseController { + + @Resource + private AgreementDetailsApplicationService agreementDetailsApplicationService; + + /** + * 根据货主ID查询所有协议明细 + */ + @ApiOperation("根据货主ID查询协议明细列表") + @GetMapping("/listByShipperId/{shipperId}") + public AjaxResult listByShipperId(@PathVariable("shipperId") Long shipperId) { + return AjaxResult.success(agreementDetailsApplicationService.listByShipperId(shipperId)); + } + + /** + * 根据主键查询单条协议明细 + */ + @ApiOperation("获取协议详情") + @GetMapping("/getInfo/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(agreementDetailsApplicationService.getInfo(id)); + } + + /** + * 根据货主ID删除所有协议明细 + */ + @ApiOperation("根据货主ID删除协议明细") + @DeleteMapping("/deleteByShipperId/{shipperId}") + public AjaxResult deleteByShipperId(@PathVariable("shipperId") Long shipperId) { + return toAjax(agreementDetailsApplicationService.deleteByShipperId(shipperId)); + } +} diff --git a/mhd-user-center/src/main/resources/mapper/AgreementDetailsMapper.xml b/mhd-user-center/src/main/resources/mapper/AgreementDetailsMapper.xml new file mode 100644 index 000000000..51da750d6 --- /dev/null +++ b/mhd-user-center/src/main/resources/mapper/AgreementDetailsMapper.xml @@ -0,0 +1,62 @@ + + + + + + SELECT id, + shipper_id, + orgcode, + code, + pday, + pname, + ptypename, + pcode, + ptype, + create_time, + create_by, + create_by_name, + update_time, + update_by, + update_by_name, + del_flag + FROM agreement_details + + + + + + AND id = #{id} + + + AND shipper_id = #{shipperId} + + + AND orgcode = #{orgcode} + + + AND code = #{code} + + + AND pday = #{pday} + + + AND pname = #{pname} + + + AND ptypename = #{ptypename} + + + AND pcode = #{pcode} + + + AND ptype = #{ptype} + + + AND del_flag = #{delFlag} + + ORDER BY create_time DESC + + +