Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java
This commit is contained in:
1745237360-cloud
2026-01-12 14:32:37 +08:00
12 changed files with 158 additions and 58 deletions
@@ -4,14 +4,17 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.mhd.user.domain.userAggregate.entity.DriverVehicleBind;
import com.mhd.user.domain.userAggregate.repository.mapper.DriverVehicleBindMapper;
import com.mhd.user.domain.userAggregate.repository.po.DriverVehicleBindPo;
import com.mhd.user.domain.userAggregate.repository.todo.DriverVehicleBindDo;
import com.mhd.user.domain.userAggregate.service.DriverVehicleBindDomainService;
import com.mhd.user.domain.userAggregate.service.UserDriverDomainService;
import com.mhd.system.api.TransportFeign;
import com.mhd.user.interfaces.dto.DriverVehicleBindDto;
import com.mhd.user.interfaces.dto.addDTO.UserDriverDTO;
import com.mhd.user.interfaces.facadeApi.Po.VehicleDriverBindAppPo;
import com.mhd.common.core.domain.dto.VehicleDto;
import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo;
@@ -49,6 +52,9 @@ public class DriverVehicleBindApplicationService {
private CommonApplicationService commonApplicationService;
@Resource
private UserDriverDomainService userDriverDomainService;
@Autowired
private DriverVehicleBindMapper driverVehicleBindMapper;
/**
* 分页查询司机车辆绑定关系列表
*/
@@ -355,4 +361,9 @@ public class DriverVehicleBindApplicationService {
}
return isTrue;
}
public int delectDriverBind(UserDriverDTO userDriverDTO) {
return driverVehicleBindMapper.delete(new LambdaQueryWrapper<DriverVehicleBind>().eq(DriverVehicleBind::getDriverBindId,userDriverDTO.getUserId())
.eq(DriverVehicleBind::getVehicleId,userDriverDTO.getVehicleId()));
}
}
@@ -44,6 +44,8 @@ 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;
import com.mhd.user.domain.userAggregate.entity.*;
import com.mhd.user.domain.userAggregate.repository.mapper.DriverVehicleBindMapper;
import com.mhd.user.domain.userAggregate.repository.mapper.UserMapper;
import com.mhd.user.domain.userAggregate.repository.po.*;
import com.mhd.user.domain.userAggregate.repository.po.UserDriverEnterprisePo;
import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo;
@@ -178,6 +180,10 @@ public class UserDriverApplicationService {
private MotorcadeCollectionDomainService motorcadeCollectionDomainService;
@Resource
private VehicleBindingStrategyFactory vehicleBindingStrategyFactory;
@Autowired
private DriverVehicleBindMapper driverVehicleBindMapper;
@Autowired
private UserMapper userMapper;
/**
* @Description 承运人列表查询
@@ -2870,5 +2876,20 @@ public class UserDriverApplicationService {
// }
return motorcade.getDriverEnterpriseCode();
}
public int bindVehicleForHome(UserDriverDO userDriverDO) {
DriverVehicleBind driverVehicleBind = new DriverVehicleBind();
driverVehicleBind.setUserId(userDriverDO.getUserId());
driverVehicleBind.setVehicleId(userDriverDO.getVehicleId());
driverVehicleBind.setDefaultFlag(1);
driverVehicleBind.setDelFlag(1);
driverVehicleBind.setDriverBindId(userDriverDO.getUserId());
UserPo userPo = userMapper.selectByUserId(userDriverDO.getUserId());
driverVehicleBind.setBindDriverName(userPo.getUserName());
driverVehicleBind.setBindDriverPhone(userPo.getUserPhone());
//向网货同步添加绑定关系
// wlhyDomainService.binding(driverVehicleBind);
return driverVehicleBindMapper.insert(driverVehicleBind);
}
}
@@ -129,7 +129,20 @@ public class UserDriverAPI extends BaseController {
UserDriverDO userDriverDO = userDriverAssember.toUserDriverDO(userDriverDTO);
return toAjax(userDriverApplicationService.bindVehicle(userDriverDO));
}
@Log(title = "承运人管理-绑定车辆", description ="绑定车辆",businessType = BusinessType.UPDATE)
@ApiOperation("绑定车辆")
@PostMapping("/bindVehicleForHome")
public AjaxResult bindVehicleForHome(@RequestBody UserDriverDTO userDriverDTO){
UserDriverDO userDriverDO = userDriverAssember.toUserDriverDO(userDriverDTO);
return toAjax(userDriverApplicationService.bindVehicleForHome(userDriverDO));
}
@ApiOperation("删除司机绑定关系")
@PostMapping("/driverVehicleBindApi/delectDriverBind")
public AjaxResult delectDriverBind(@RequestBody UserDriverDTO userDriverDTO) {
return toAjax(driverVehicleBindApplicationService.delectDriverBind(userDriverDTO));
}
@Log(title = "承运人管理-个体承运人新增绑定车辆", description ="个体承运人新增绑定车辆",businessType = BusinessType.UPDATE)
@ApiOperation("个体承运人新增绑定车辆")
@PostMapping("/bindVehicle1")
@@ -70,4 +70,6 @@ public class QueryAllShipperInfoVo {
@ApiModelProperty(name = "一级组织ID")
private Long topOrganizationId;
}
@ApiModelProperty("结算币种")
private String settlementCurrency;
}
@@ -716,7 +716,8 @@
</select>
<select id="findAllShipperInfo" resultType="com.mhd.user.interfaces.vo.QueryAllShipperInfoVo">
SELECT u.user_id, u.user_name, u.user_area_address, u.user_area_county_id, u.user_area_name ,u.user_phone,u.has_default_address,b.shipper_id,b.shipper_enterprise_name,u.DOCUMENT_PREPARER_NC_CODE,b.CUSTOMER_NC_CODE,u.organization_id AS organizationId,u.top_organization_id AS topOrganizationId
SELECT u.user_id, u.user_name, u.user_area_address, u.user_area_county_id, u.user_area_name ,u.user_phone,u.has_default_address,b.shipper_id,b.shipper_enterprise_name,u.DOCUMENT_PREPARER_NC_CODE,b.CUSTOMER_NC_CODE,u.organization_id AS organizationId,u.top_organization_id AS topOrganizationId,
u.SETTLEMENT_CURRENCY
FROM "USER" u
LEFT JOIN user_shipper b ON u.user_id = b.user_id
left join (select user_id, LISTAGG(r.role_name, '&amp;') WITHIN GROUP(ORDER BY r.role_name) AS roleName
@@ -751,4 +752,4 @@
AND u.business_type IN (1, 3)
AND u.user_Id = #{userId}
</select>
</mapper>
</mapper>
@@ -1,12 +1,10 @@
package com.linke.finance.application.server.reconciliation;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse;
import com.linke.finance.domain.businessDocument.entity.BusinessDocument;
import com.linke.finance.domain.businessDocument.service.BusinessDocumentDomainService;
import com.linke.finance.domain.reconciliation.entity.Reconciliation;
import com.linke.finance.domain.reconciliation.entity.ReconciliationBusinessDocument;
import com.linke.finance.domain.reconciliation.entity.ReconciliationOrderDetail;
import com.linke.finance.domain.reconciliation.repository.po.FinacialReconciliationListVO;
import com.linke.finance.domain.reconciliation.repository.po.ReconciliationOrderDetailPO;
@@ -15,7 +13,6 @@ import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.reconciliation.service.ReconciliationDomainService;
import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord;
import com.linke.finance.domain.revenueExpensesRecord.service.RevenueExpensesRecordDomainService;
import com.linke.finance.domain.tmsReceipt.entity.TmsReceipt;
import com.linke.finance.domain.tmsReceipt.repository.mapper.TmsReceiptMapper;
import com.linke.finance.domain.tmsReceipt.repository.po.TmsReceiptPO;
import com.linke.finance.domain.tmsReceipt.service.TmsReceiptDomainService;
@@ -39,7 +36,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -47,7 +43,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -146,21 +141,21 @@ public class ReconciliationApplicationService {
}
}
}
// List<ReconciliationPO> reconciliationPOS = reconciliationDomainService.queryList(reconciliationDO);
// for (ReconciliationPO reconciliationPO : reconciliationPOS) {
// Long reconciliationId = reconciliationPO.getReconciliationId();
// AjaxResult tmsOrderSettlementDetails = wlhyServiceFeign.getById(reconciliationId);
// Map<String,Object> result = (Map<String,Object>)tmsOrderSettlementDetails.get("result");
// if (ObjectUtil.isNotEmpty( result)){
// Integer receiptIdstr = (Integer)result.get("receiptId");
// Long receiptId = receiptIdstr.longValue();
// TmsReceipt tmsReceipt = tmsReceiptMapper.selectById(receiptId);
// if (tmsReceipt != null) {
// reconciliationPO.setSettlementCurrency(tmsReceipt.getSettlementCurrency());
// }
// }
// }
// return reconciliationPOS;
/* List<ReconciliationPO> reconciliationPOS = reconciliationDomainService.queryList(reconciliationDO);
for (ReconciliationPO reconciliationPO : reconciliationPOS) {
Long reconciliationId = reconciliationPO.getReconciliationId();
AjaxResult tmsOrderSettlementDetails = wlhyServiceFeign.getById(reconciliationId);
Map<String,Object> result = (Map<String,Object>)tmsOrderSettlementDetails.get("result");
if (ObjectUtil.isNotEmpty( result)){
Integer receiptIdstr = (Integer)result.get("receiptId");
Long receiptId = receiptIdstr.longValue();
TmsReceipt tmsReceipt = tmsReceiptMapper.selectById(receiptId);
if (tmsReceipt != null) {
reconciliationPO.setSettlementCurrency(tmsReceipt.getSettlementCurrency());
}
}
}
return reconciliationPOS;*/
return reconciliationDomainService.queryList(reconciliationDO);
}
@@ -699,4 +694,4 @@ public class ReconciliationApplicationService {
{
return reconciliationDomainService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
}
}
}
@@ -2,15 +2,16 @@ package com.linke.finance.domain.tmsReceipt.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.math.BigDecimal;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 收款单对象 tms_receipt
@@ -43,9 +44,9 @@ public class TmsReceipt extends BaseVOEntity{
@Excel(name = "收款单号")
private String receivePaymentNumber;
// @ApiModelProperty("结算方id")
// @Excel(name = "结算方id")
// private String settlementPartyId;
@ApiModelProperty("结算方id")
@Excel(name = "结算方id")
private String settlementPartyId;
@ApiModelProperty("结算方名称")
@Excel(name = "结算方名称")
private String settlementPartyName;
@@ -118,4 +119,4 @@ public class TmsReceipt extends BaseVOEntity{
@ApiModelProperty("结算币种")
private String settlementCurrency;
}
}
@@ -3089,14 +3089,16 @@ public class VehicleApplicationService {
*
* @param vehicleDto
* @return
*
*/
@Transactional(rollbackFor = Exception.class)
public Integer updatePilotDriver(VehicleDto vehicleDto) {
if (vehicleDto.getVehicleId() == null) {
throw new IllegalArgumentException("车辆ID不能为空");
}
boolean hasPilot1 = StringUtils.hasText(vehicleDto.getPilot1());
boolean hasPilot2 = StringUtils.hasText(vehicleDto.getPilot2());
boolean hasPilot1 = StringUtils.hasText(vehicleDto.getPilot1Id());
boolean hasPilot2 = StringUtils.hasText(vehicleDto.getPilot2Id());
// 两个都传了
if (hasPilot1 && hasPilot2) {
@@ -3106,17 +3108,61 @@ public class VehicleApplicationService {
if (!hasPilot1 && !hasPilot2) {
throw new IllegalArgumentException("请选择副驾");
}
UserDriverDTO userDriverDTO = new UserDriverDTO();
//将pilot1或是pilot2的id传给userDriverDTO,判断一下谁有值传谁
userDriverDTO.setUserId(Long.valueOf(hasPilot1 ? vehicleDto.getPilot1Id() : vehicleDto.getPilot2Id()));
userDriverDTO.setVehicleId(vehicleDto.getVehicleId());
Vehicle vehicle = vehicleMapper.selectById(vehicleDto.getVehicleId());
String modifyPilotId = vehicleDto.getModifyPilotId();
if (modifyPilotId != null){
UserDriverDTO userDriverDTO1 = new UserDriverDTO();
userDriverDTO1.setUserId(Long.valueOf(modifyPilotId));
userDriverDTO1.setVehicleId(vehicleDto.getVehicleId());
userServiceFeign.delectDriverBind(userDriverDTO1);
}
if (hasPilot1){
// 更新
vehicleMapper.updatePilotDriver(vehicleDto);
AjaxResult result = userServiceFeign.getDriverInfoByUserId(Long.valueOf(vehicleDto.getPilot1Id()));
UserDriverPo driverInfo = null;
if(result != null && "200".equals(String.valueOf(result.get("code")))){
// 提取数据
driverInfo = JSONUtil.toBean(JSONUtil.toJsonStr(result.get("data")), UserDriverPo.class);
vehicle.setPilot1(driverInfo.getUserName());
vehicle.setPilot1Id(vehicleDto.getPilot1Id());
// 更新车辆信息到数据库
vehicleDomainService.updateVehicle(vehicle);
// 在user库中的driver_vehicle_bind表中添加一条绑定信息
UserDriverDTO userDriverDTO = new UserDriverDTO();
userDriverDTO.setUserId(Long.valueOf(vehicleDto.getPilot1Id()));
userDriverDTO.setVehicleId(vehicleDto.getVehicleId());
userDriverDTO.setVehicleLicensePlateNumber(vehicle.getVehicleLicensePlateNumber());
userDriverDTO.setBindSource(2); // 2-副驾绑定
userServiceFeign.bindVehicleForHome(userDriverDTO);
}
userServiceFeign.bindVehicle(userDriverDTO);
} else if (hasPilot2) {
// 如果是pilot2的情况,需要类似处理
AjaxResult result = userServiceFeign.getDriverInfoByUserId(Long.valueOf(vehicleDto.getPilot2Id()));
UserDriverPo driverInfo = null;
if(result != null && "200".equals(String.valueOf(result.get("code")))){
// 提取数据
driverInfo = JSONUtil.toBean(JSONUtil.toJsonStr(result.get("data")), UserDriverPo.class);
vehicle.setPilot2(driverInfo.getUserName());
vehicle.setPilot2Id(vehicleDto.getPilot2Id());
// 更新车辆信息到数据库
vehicleDomainService.updateVehicle(vehicle);
// 在user库中的driver_vehicle_bind表中添加一条绑定信息
UserDriverDTO userDriverDTO = new UserDriverDTO();
userDriverDTO.setUserId(Long.valueOf(vehicleDto.getPilot2Id()));
userDriverDTO.setVehicleId(vehicleDto.getVehicleId());
userDriverDTO.setVehicleLicensePlateNumber(vehicle.getVehicleLicensePlateNumber());
userDriverDTO.setBindSource(2); // 2-副驾绑定
userServiceFeign.bindVehicleForHome(userDriverDTO);
}
}
return 1;
@@ -22,18 +22,6 @@ import com.linke.transport.interfaces.dto.warehouse.inBoundOrder.InboundOrderDTO
import com.linke.transport.interfaces.dto.warehouse.inBoundOrder.InboundOrderDTO.Create;
import com.mhd.common.core.utils.OrderSequence;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -43,6 +31,11 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 入库单 服务实现类
@@ -471,4 +464,4 @@ public class InboundOrderService extends ServiceImpl<InboundOrderMapper, Inbound
return inboundOrderMapper.update(null,wrapper);
}
}
}
@@ -28,6 +28,19 @@ public interface UserServiceFeign {
@PostMapping("/userDriverApi/bindVehicle")
public AjaxResult bindVehicle(@RequestBody UserDriverDTO userDriverDTO);
/**
* 添加绑定关系
*/
@PostMapping("/userDriverApi/bindVehicleForHome")
public AjaxResult bindVehicleForHome(@RequestBody UserDriverDTO userDriverDTO);
/**
* 删除司机绑定关系
*/
@ApiOperation("删除司机绑定关系")
@PostMapping("/driverVehicleBindApi/delectDriverBind")
void delectDriverBind(@RequestBody UserDriverDTO userDriverDTO);
/**
* @Description 绑定车辆
* @Author Alex
@@ -204,4 +217,5 @@ public interface UserServiceFeign {
@GetMapping("/driverVehicleBindApi/isVehicleBinding/{vehicleLicensePlateNumber}")
R<Boolean> isVehicleBinding(
@PathVariable("vehicleLicensePlateNumber") String vehicleLicensePlateNumber);
}
@@ -437,4 +437,7 @@ public class VehicleDto extends BaseVOEntity implements Serializable
@ApiModelProperty(value = "车辆主体")
private Integer vehicleBody;
@ApiModelProperty(value = "被修改副驾id")
private String modifyPilotId;
}
@@ -69,8 +69,8 @@ public class VehicleApi extends BaseController
* 车辆绑定副驾
*/
@Log(title = "车辆管理-车辆绑定副驾", description = "车辆绑定副驾", businessType = BusinessType.UPDATE)
@PostMapping("/bindVehicle")
public R<Integer> bindVehicle(@RequestBody VehicleDto vehicleDto){
@GetMapping("/bindVehicle")
public R<Integer> bindVehicle(VehicleDto vehicleDto){
return R.ok(vehicleApplicationService.updatePilotDriver(vehicleDto));
}