修改商业合作伙伴推送-各组织独立问题

This commit is contained in:
zhaoqing
2026-06-11 11:22:43 +08:00
parent cc37974239
commit 0c69a6ef36
7 changed files with 118 additions and 29 deletions
@@ -26,6 +26,8 @@ import com.mhd.system.api.FinanceServiceFeign;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.event.object.ShipperNameChangedEvent;
import com.mhd.system.api.service.webSocket.AsyncWebSocketApplicationService;
import com.mhd.user.domain.businessPartnerPushLog.entity.BusinessPartnerPushLog;
import com.mhd.user.domain.businessPartnerPushLog.repository.mapper.BusinessPartnerPushLogMapper;
import com.mhd.user.domain.roleAggregate.entity.RoleEntity;
import com.mhd.user.domain.roleAggregate.repository.todo.RoleDo;
import com.mhd.user.domain.roleAggregate.service.RoleDomainService;
@@ -117,6 +119,9 @@ public class UserShipperApplicationService {
@Resource
private UserShipperMapper userShipperMapper;
@Resource
private BusinessPartnerPushLogMapper businessPartnerPushLogMapper;
/**
* @Description 查询托运人列表
* @Author Alex
@@ -1223,23 +1228,47 @@ public class UserShipperApplicationService {
}
/**
* 推送状态更新
* @param shipperId
* @param pushStatus
* @param pushTime
* @param pushBy
* @return
* 推送状态更新(按 shipper_id + organization_id 维度,支持多组织独立推送)
*/
public int updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy,String pushByName) {
UserShipperEntity userShipper = new UserShipperEntity();
userShipper.setShipperId(shipperId);
userShipper.setPushStatus(pushStatus);
if (pushTime != null && !"".equals(pushTime)) {
userShipper.setPushTime(DateUtil.parse(pushTime));
public int updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy, String pushByName, Long organizationId) {
// 查询是否已有该组织对该货主的推送记录
BusinessPartnerPushLog pushLog =
businessPartnerPushLogMapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<BusinessPartnerPushLog>()
.eq(BusinessPartnerPushLog::getShipperId, shipperId)
.eq(BusinessPartnerPushLog::getOrganizationId, organizationId)
.eq(BusinessPartnerPushLog::getDelFlag, 1)
);
Date now = new Date();
Date pushDate = (pushTime != null && !"".equals(pushTime)) ? DateUtil.parse(pushTime) : now;
if (pushLog != null) {
// 已有记录 → 更新
pushLog.setPushStatus(pushStatus);
pushLog.setPushTime(pushDate);
pushLog.setPushBy(pushBy);
pushLog.setPushByName(pushByName);
pushLog.setUpdateTime(now);
pushLog.setUpdateBy(pushBy);
return businessPartnerPushLogMapper.updateById(pushLog) > 0 ? 1 : 0;
} else {
// 没有记录 → 新增
BusinessPartnerPushLog newLog =
new BusinessPartnerPushLog();
newLog.setShipperId(shipperId);
newLog.setOrganizationId(organizationId);
newLog.setPushStatus(pushStatus);
newLog.setPushTime(pushDate);
newLog.setPushBy(pushBy);
newLog.setPushByName(pushByName);
newLog.setDelFlag(1);
newLog.setCreateTime(now);
newLog.setCreateBy(pushBy);
newLog.setUpdateTime(now);
newLog.setUpdateBy(pushBy);
return businessPartnerPushLogMapper.insert(newLog) > 0 ? 1 : 0;
}
userShipper.setPushBy(pushBy);
userShipper.setPushByName(pushByName);
return userShipperMapper.updatePushStatus(userShipper);
}
public UserShipperPo findByCustomerNcCodeAndOrganizationId(String customerNcCode, Long organizationId) {
@@ -0,0 +1,49 @@
package com.mhd.user.domain.businessPartnerPushLog.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 商业合作伙伴推送日志
* 按 (shipper_id + organization_id) 维度记录每个组织的独立推送状态
*/
@Data
@TableName("business_partner_push_log")
public class BusinessPartnerPushLog {
@TableId(type = IdType.AUTO)
private Long id;
/** 货主ID */
private Long shipperId;
/** 组织ID */
private Long organizationId;
/** 组织名称 */
private String organizationName;
/** 推送人ID */
private Long pushBy;
/** 推送人姓名 */
private String pushByName;
/** 推送状态:1-未推送 2-推送中 3-推送成功 4-推送失败 */
private Integer pushStatus;
/** 推送时间 */
private Date pushTime;
/** 删除标志 */
private Integer delFlag;
private Date createTime;
private Long createBy;
private Date updateTime;
private Long updateBy;
}
@@ -0,0 +1,9 @@
package com.mhd.user.domain.businessPartnerPushLog.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mhd.user.domain.businessPartnerPushLog.entity.BusinessPartnerPushLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BusinessPartnerPushLogMapper extends BaseMapper<BusinessPartnerPushLog> {
}
@@ -241,16 +241,17 @@ public class UserShipperAPI extends BaseController {
}
}
@ApiOperation("商业合作伙伴-更新推送状态")
@ApiOperation("商业合作伙伴-更新推送状态(支持多组织独立推送)")
@PostMapping("/updatePushStatus")
public AjaxResult updatePushStatus(@RequestParam("shipperId") Long shipperId,
@RequestParam("pushStatus") Integer pushStatus,
@RequestParam(value = "pushTime", required = false) String pushTime,
@RequestParam(value = "pushBy", required = false) Long pushBy,
@RequestParam(value = "pushByName", required = false) String pushByName){
@RequestParam(value = "pushByName", required = false) String pushByName,
@RequestParam("organizationId") Long organizationId){
try{
int result = userShipperApplicationService.updatePushStatus(shipperId,pushStatus,pushTime,pushBy,pushByName);
int result = userShipperApplicationService.updatePushStatus(shipperId, pushStatus, pushTime, pushBy, pushByName, organizationId);
return result > 0 ? AjaxResult.success() : AjaxResult.error("更新失败");
}catch (Exception e){
log.error("更新推送状态异常: shipperId = {} , error = ", e.getMessage());