提交 160c74c3 authored 作者: jiangwujie's avatar jiangwujie

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

......@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 装车范围校验检查参数
......@@ -19,13 +20,9 @@ public class NeedAlertSuperviseInfoParam {
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "订单编号", example = "100000000")
@NotBlank(message = "订单编号不能为空")
private String orderNo;
@ApiModelProperty(value = "类型 1-监装 2-监卸", example = "1")
@NotBlank(message = "类型不能为空")
@NotNull(message = "类型不能为空")
private Integer type;
}
......@@ -70,4 +70,7 @@ public class OpenOrderChildDTO {
@ApiModelProperty(value = "线下平台", example = "华祥", required = true, dataType = "String")
private String invoicePlatform;
@ApiModelProperty(value = "开票状态 0 未开票 1 已开票 ", example = "1")
private Integer invoiceStatus;
}
package com.clx.performance.vo.pc.owner.settle;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class UploadBatchInvoiceFileResultVO {
@ApiModelProperty(value="校验结果,0:数据无误,1:数据有误")
private Integer verifyResult;
@ApiModelProperty(value="错误文件地址")
private String errorFileUrl;
@ApiModelProperty(value="运单数")
private Integer orderChildSum;
@ApiModelProperty("装车吨数")
private BigDecimal loadWeightSum;
@ApiModelProperty(value="开票金额")
private BigDecimal invoiceFreightSum;
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.exception.ServiceSystemException;
......@@ -27,8 +28,10 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Slf4j
@RestController
......@@ -81,6 +84,12 @@ public class CarrierSettlementOwnerDetailController {
}
}
@ApiOperation(value = "上传批量开票文件",notes = "<br>By:杨启发")
@PostMapping("/uploadBatchInvoiceFile")
public Result<UploadBatchInvoiceFileResultVO> uploadBatchInvoiceFile(@RequestParam("file") MultipartFile file) throws IOException {
return Result.ok(settlementOwnerDetailService.uploadBatchInvoiceFile(file));
}
@ApiOperation(value = "导出货主结算单运单明细",notes = "<br>By:姜文业")
@PostMapping("/exportOwnerSettlementOrderDetailList")
public void exportCarrierSettlementOwnerPageList(@RequestBody @Validated PageOwnerSettlementOwnerDetailParam param, HttpServletResponse response) throws Exception {
......
package com.clx.performance.dto.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class InvoiceData {
@ExcelProperty("运单编号")
private String childNo;
@ExcelProperty("开票标识")
private String invoiceType;
@ExcelProperty("开票金额")
private Double invoiceFreight;
@ExcelProperty("备注")
private String remark;
}
package com.clx.performance.listener.excel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.clx.performance.dto.excel.InvoiceData;
import lombok.AllArgsConstructor;
import java.util.List;
@AllArgsConstructor
public class InvoiceDataListener extends AnalysisEventListener<InvoiceData> {
private final List<InvoiceData> invoiceDataList;
@Override
public void invoke(InvoiceData invoiceData, AnalysisContext context) {
// 每解析一行都会调用一次,逐行校验数据
invoiceDataList.add(invoiceData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 解析完成后调用
// 可在此进行后续操作,如保存数据到数据库
}
}
package com.clx.performance.service.broker;
import java.util.List;
public interface OrderChildBrokerMqService {
void orderChildSync(String childNo);
void orderChildUpdate(String childNo);
void orderChildUpdate(List<String> childNoList);
}
......@@ -3617,6 +3617,8 @@ public class OrderChildServiceImpl implements OrderChildService {
@Override
public NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param) {
//查询运单信息
OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(DATA_NOT_FIND);
//返回对象
NeedAlertSuperviseInfoResultVO result = new NeedAlertSuperviseInfoResultVO();
App app = appConfig.getPurchaseManageApp();//对接马上来供应链配置信息
......@@ -3628,7 +3630,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//通过订单号查询监装监卸信息
SupplyChainSupervisionLoadAction action = new SupplyChainSupervisionLoadAction();
action.setOrderNo(param.getOrderNo());
action.setOrderNo(orderChild.getOrderNo());
action.setType(param.getType());
log.info("请求获取监装监卸信息参数,{}",action);
......
......@@ -14,6 +14,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService {
......@@ -47,4 +49,13 @@ public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService
rabbitTemplate.send(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE,
RabbitKeyBrokerConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void orderChildUpdate(List<String> childNoList) {
for (String childNo : childNoList) {
orderChildUpdate(childNo);
}
}
}
......@@ -66,7 +66,7 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
TransportParam transportParam = buildParam(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
// 更新状态
// 运单同步
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.PROCESSING.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
......@@ -77,12 +77,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
public void orderChildUpdate(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail) {
TransportParam transportParam = buildParam(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
// 更新状态
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.PROCESSING.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
brokerService.orderChildSync(transportParam);
brokerService.orderChildSync(transportParam);
// 运单更新
brokerService.orderChildUpdate(transportParam);
}
private TransportParam buildParam(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
......@@ -278,6 +274,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo.setReceiveNet(orderChild.getUnloadNet());
orderChildInfo.setInvoiceFlag(settlementOwnerDetail.getInvoiceType());
orderChildInfo.setInvoicePlatform(settlementOwnerDetail.getInvoicingCompanyShorterName());
orderChildInfo.setInvoiceStatus(Objects.equals(settlementOwnerDetail.getInvoiceStatus(),
SettlementOwnerDetailEnum.InvoiceStatus.YES.getCode())? 1 : 0);
transportParam.setOrder(orderInfo);
transportParam.setOrderChildImage(imageList);
......
......@@ -481,8 +481,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
// 预付运费判断
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) <= 0) {
// 转普通单
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
// // 转普通单
// settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
settlementOwnerDetail.setInvoicingCompanyId(null);
settlementOwnerDetail.setInvoicingCompanyShorterName(null);
settlementOwnerDetail.setInvoicingCompanyGroupCode(null);
......@@ -497,6 +497,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetailDao.updatePreFreight(settlementOwnerDetail);
settlementDriverDetailDao.updatePreFreight(settlementDriverDetail);
// 发送mq (更新无车承运)
orderChildBrokerMqService.orderChildSync(orderChild.getChildNo());
} else {
if (Objects.equals(settlementOwnerDetail.getReportFlag(), com.clx.order.enums.OrderEnum.ReportFlag.NO.getCode())){
......
package com.clx.performance.service.impl.settle;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.excel.InvoiceData;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.listener.excel.InvoiceDataListener;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail;
......@@ -20,6 +23,7 @@ import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
import com.clx.performance.service.broker.OrderChildBrokerMqService;
import com.clx.performance.service.settle.SettlementCommonService;
import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.settle.SettlementPostService;
......@@ -32,7 +36,15 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import com.msl.common.exception.ServiceSystemException;
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.web.multipart.MultipartFile;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
......@@ -40,10 +52,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
......@@ -73,6 +82,8 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Autowired
private SettlementPostService settlementPostService;
@Autowired
private OrderChildBrokerMqService orderChildBrokerMqService;
@Override
......@@ -666,4 +677,24 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//创建excel
return ExcelUtil.create(excelSheet);
}
@Override
public UploadBatchInvoiceFileResultVO uploadBatchInvoiceFile(MultipartFile file) throws IOException {
List<InvoiceData> invoiceDataList = new ArrayList<>();
EasyExcel.read(file.getInputStream(), InvoiceData.class, new InvoiceDataListener(invoiceDataList)).sheet().doRead();
UploadBatchInvoiceFileResultVO vo = new UploadBatchInvoiceFileResultVO();
vo.setVerifyResult(0);
vo.setErrorFileUrl("");
vo.setOrderChildSum(0);
vo.setLoadWeightSum(new BigDecimal("0"));
vo.setInvoiceFreightSum(new BigDecimal("0"));
List<String> childNoList = new ArrayList<>();
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(childNoList);
return vo;
}
}
......@@ -15,7 +15,11 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
/**
* @author liruixin
......@@ -49,4 +53,6 @@ public interface SettlementOwnerDetailService {
SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param);
SXSSFWorkbook exportInvoiceOwnerSettlementOrderDetail(PageInvoiceOwnerSettlementOwnerDetailParam param);
UploadBatchInvoiceFileResultVO uploadBatchInvoiceFile(MultipartFile file) throws IOException;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论