提交 a05da1f3 authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'refs/heads/v20.9_settlement_20240805' into dev

......@@ -2,6 +2,7 @@ package com.clx.performance.controller.pc.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.carrier.PageSettlementOrderChildRiskParam;
import com.clx.performance.param.pc.owner.settle.OwnerSettlementOrderChildRiskProcessUpdateParam;
import com.clx.performance.service.settle.SettlementOrderChildRiskService;
import com.clx.performance.vo.pc.carrier.settle.SettlementOrderChildRiskVO;
import com.msl.common.base.PageData;
......@@ -32,6 +33,12 @@ public class SettlementOrderChildRiskController {
private final SettlementOrderChildRiskService settlementOrderChildRiskService;
@ApiOperation(value = "风控处理",notes = "<br>By:李瑞新")
@PostMapping("/updateProcessRisk")
public Result updateRiskProcess(@RequestBody @Validated OwnerSettlementOrderChildRiskProcessUpdateParam param) {
settlementOrderChildRiskService.updateRiskProcess(param);
return Result.ok();
}
@ApiOperation(value = "风控异常处理列表",notes = "<br>By:杨启发")
@PostMapping("/pageSettlementOrderChildRisk")
......
package com.clx.performance.controller.pc.owner;
import com.clx.performance.param.pc.owner.settle.OwnerSettlementOrderChildRiskProcessUpdateParam;
import com.clx.performance.service.settle.SettlementOrderChildRiskService;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -23,11 +18,6 @@ public class OwnerSettlementOrderChildRiskController {
private final SettlementOrderChildRiskService settlementOrderChildRiskService;
@ApiOperation(value = "风控处理",notes = "<br>By:李瑞新")
@PostMapping("/updateProcessRisk")
public Result updateRiskProcess(@RequestBody @Validated OwnerSettlementOrderChildRiskProcessUpdateParam param) {
settlementOrderChildRiskService.updateRiskProcess(param);
return Result.ok();
}
}
......@@ -107,4 +107,14 @@ public class TempSettlementController {
return Result.ok();
}
@ApiOperation(value = "开票公司更新", notes = "<br>By:艾庆国")
@RequestMapping(value = "/updateInvoiceCompany", method = RequestMethod.GET)
public Result updateInvoiceCompany(Integer id) {
// 发送mq (开票公司更新)
settlementMqService.updateInvoiceCompany(id);
return Result.ok();
}
}
......@@ -46,6 +46,7 @@ public class SettlementOrderChildRiskDaoImpl
.map(item -> lQrWrapper()
.eq(SettlementOrderChildRisk::getChildNo, childNo)
.orderByDesc(SettlementOrderChildRisk::getId)
.last("limit 1")
)
.map(super::getOne);
}
......
......@@ -79,6 +79,7 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
.set(SettlementOwnerDetail::getInvoiceTypeModifiedTime, item.getInvoiceTypeModifiedTime())
);
}
......
......@@ -7,12 +7,15 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.excel.InvoiceData;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam;
import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import static com.clx.performance.enums.PerformanceResultEnum.DATA_NOT_FIND;
import static com.clx.performance.enums.settle.SettlementOwnerDetailEnum.InvoiceStatus.NO;
import static com.clx.performance.enums.settle.SettlementOwnerEnum.InvoiceType.ORDINARY;
......@@ -49,5 +52,18 @@ public class InvoiceDataListener extends AnalysisEventListener<InvoiceData> {
// 解析完成后调用
// 可在此进行后续操作,如保存数据到数据库
}
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
// 解析表头时调用
// 可在此进行表头校验等操作
//模板有3列,模板第1列是运单编号,第2列是开票标识,第3列是开票金额,校验上传的Excel是否是这个模板
if (headMap.size() != 3) {
throw new ServiceSystemException(DATA_NOT_FIND,"上传文件不匹配,请以文件模板为准");
}
if (!headMap.get(0).equals("运单编号") || !headMap.get(1).equals("开票标识") || !headMap.get(2).equals("开票金额")) {
throw new ServiceSystemException(DATA_NOT_FIND,"上传文件不匹配,请以文件模板为准");
}
}
}
......@@ -3,12 +3,15 @@ package com.clx.performance.service.impl.broker;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOrderChildRiskDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.service.broker.OrderChildBrokerMqService;
......@@ -19,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Objects;
......@@ -40,9 +44,38 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
private OrderChildBrokerService orderChildBrokerService;
@Autowired
private OrderChildBrokerMqService orderChildBrokerMqService;
@Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Transactional(rollbackFor = Exception.class)
@Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
try{
doOrderChildSync(mq);
}catch (Exception e){
log.info("无车承运-运单同步 失败,msg:{}", ExceptionUtils.getStackTrace(e));
OrderChild orderChild = orderChildDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark("同步无车承运异常");
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
}
}
public void doOrderChildSync(BrokerOrderChildSyncMqParam mq){
String childNo = mq.getChildNo();
Integer invoiceType = mq.getInvoiceType();
......
......@@ -139,13 +139,13 @@ public class SettlementDriverServiceImpl implements SettlementDriverService {
rowData.add(new ExcelData(vo.getTruckNo()));
rowData.add(new ExcelData(vo.getInvoiceType()==null?null:SettlementDriverEnum.InvoiceType.getMsgByCode(vo.getInvoiceType())));
rowData.add(new ExcelData(vo.getWeight()));
rowData.add(new ExcelData(vo.getFreightPrice()));
rowData.add(new ExcelData(vo.getFreightPrice()==null?null:vo.getFreightPrice().movePointLeft(2)));
rowData.add(new ExcelData(vo.getFreight()));
rowData.add(new ExcelData(vo.getLossPrice()));
rowData.add(new ExcelData(vo.getFreight()==null?null:vo.getFreight().movePointLeft(2)));
rowData.add(new ExcelData(vo.getLossPrice()==null?null:vo.getLossPrice().movePointLeft(2)));
rowData.add(new ExcelData(vo.getLossWeight()));
rowData.add(new ExcelData(vo.getLossFreight()));
rowData.add(new ExcelData(vo.getSettlementFreight()));
rowData.add(new ExcelData(vo.getLossFreight()==null?null:vo.getLossFreight().movePointLeft(2)));
rowData.add(new ExcelData(vo.getSettlementFreight()==null?null:vo.getSettlementFreight().movePointLeft(2)));
rowData.add(new ExcelData(SettlementDriverEnum.Status.getMsgByCode(vo.getStatus())));
rowData.add(new ExcelData("-"));
......
......@@ -372,6 +372,28 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return;
}
// 同步失败
if (Objects.equals(result.getSyncStatus(), 2)) {
// 更新状态
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.FAIL.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
return;
}
if (Objects.equals(result.getInvoiceStatus(), 1) ) {
InvoicingStatusNotifyDTO invoicingStatusNotifyDTO = new InvoicingStatusNotifyDTO();
invoicingStatusNotifyDTO.setChildNoList(Arrays.asList(mq.getChildNo()));
......@@ -416,6 +438,28 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return;
}
// 同步失败
if (Objects.equals(result.getSyncStatus(), 2)) {
// 更新状态
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.FAIL.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
return;
}
if (Objects.equals(result.getSettleStatus(), 1) ) {
if (Objects.equals(orderGoods.getPlatformFreightQuotationTaxType(),QuotationEnum.PlatformFreightQuotationTaxType.NO.getCode())
......@@ -843,6 +887,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY));
}
@Transactional(rollbackFor = Exception.class)
@Override
public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) {
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.getById(mq.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
......@@ -865,6 +910,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
}
@Transactional(rollbackFor = Exception.class)
@Override
public void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq) {
......@@ -943,6 +989,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
}
@Transactional(rollbackFor = Exception.class)
@Override
public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) {
SettlementOwner settlementOwner = settlementOwnerDao
......
......@@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
......@@ -52,6 +53,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
@Autowired
private SettlementMqService settlementMqService;
@Transactional(rollbackFor = Exception.class)
@Override
public void updateRiskProcess(OwnerSettlementOrderChildRiskProcessUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
......@@ -71,8 +73,6 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementOrderChildRisk.setProcessBy(loginUserInfo.getUserName());
settlementOrderChildRisk.setProcessTime(LocalDateTime.now());
settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk);
// 转普通单
if (Objects.equals(param.getProcessMethod(), SettlementOrderChildRiskEnum.ProcessMethod.CONVERT_ORDINARY.getCode())) {
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
......@@ -80,6 +80,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementOwnerDetail.setInvoicingCompanyShorterName(null);
settlementOwnerDetail.setInvoicingCompanyGroupCode(null);
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode());
settlementOwnerDetail.setInvoiceTypeModifiedTime(LocalDateTime.now());
settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail);
settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType());
......@@ -88,11 +89,14 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode());
settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail);
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
}
else {
}
settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk);
// 发送mq (风控处理)
settlementMqService.riskProcess(settlementOrderChildRisk.getId());
}
......
......@@ -689,9 +689,12 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
networkSyncComponent.ownerSettlementSync(settlementOwner,settlementOwnerDetailList);
}else{
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.COMPLETED.getCode());
// settlementOwnerDetailDao.updateInvoiceStatusOfOnInvoice(settlementNo, SettlementOwnerDetailEnum.InvoiceStatus.NO_INVOICE.getCode());
// 小于0不开票
if(settlementOwner.getInvoiceFreight().compareTo(BigDecimal.ZERO) <= 0 ) {
settlementOwner.setInvoiceStatus(SettlementOwnerEnum.InvoiceStatus.NO_NEED_INVOICE.getCode());
}
settlementOwner.setStatus(SettlementOwnerEnum.Status.COMPLETED.getCode());
settlementOwnerDao.updateInvoiceStatusAndStatus(settlementOwner);
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论