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

Merge branch 'refs/heads/master' into v26.5_optimize_20240919

# Conflicts: # performance-api/src/main/java/com/clx/performance/vo/mq/settle/SettlementDriverSettleMqParam.java # performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java # performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementDriverDaoImpl.java # performance-web/src/main/java/com/clx/performance/dao/settle/SettlementDriverDao.java # performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementPostServiceImpl.java # performance-web/src/main/java/com/clx/performance/service/settle/SettlementPostService.java
......@@ -43,4 +43,19 @@ public enum ResultEnum implements com.msl.common.enums.ResultEnum {
;
private final int code;
private final String msg;
@Getter
@AllArgsConstructor
public enum TemplateEnum implements com.msl.common.enums.ResultEnum {
EXPORT_TEMPLATE_NULL(11201, "导出模板不存在"),
EXPORT_DATA_NOT_EXIST(11202, "导出数据不存在"),
EXPORT_TEMPLATE_NAME_EXIST(11203, "模板名称已存在"),
EXPORT_TEMPLATE_NUM_LIMIT(11204, "模板数量已达上限"),
;
private final int code;
private final String msg;
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
@Getter
@AllArgsConstructor
public enum SyncPlatformEnum {
;
@Getter
@AllArgsConstructor
public enum Source {
TRADE_PLATFORM(1, "数煤宝"),
OWNER_PLATFORM(2, "承运货主"),
NEW_OWNER_CLIENT(3, "供应链"),
;
private final Integer code;
private final String name;
public static Optional<Source> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.code,code)).findFirst();
}
public static String getNameByCode(Integer code) {
if (code == null) {return null;}
return getByCode(code).map(Source::getName).orElse(null);
}
}
}
package com.clx.performance.enums.export;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum FunctionCodeEnum {
PERFORMANCE_PROGRESS("performance_progress", "履约进度表", 0),
;
private final String code;
private final String name;
private final Integer needCoalBlendingBaseFlag;
public static Integer getByCode(String functionCode) {
for (FunctionCodeEnum value : values()) {
if (value.getCode().equals(functionCode)) {
return value.getNeedCoalBlendingBaseFlag();
}
}
return null;
}
}
......@@ -22,13 +22,14 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片")
private List<String> loadImageList;
......
......@@ -7,7 +7,6 @@ import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
......@@ -21,13 +20,14 @@ public class OrderChildLoadParam extends PositionParam {
private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片")
private List<String> loadImageList;
......
......@@ -25,6 +25,9 @@ public class OrderChildUnloadParam extends PositionParam {
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片")
private List<String> unloadImageList;
......
......@@ -20,6 +20,12 @@ import java.util.List;
@ToString
public class PageCarrierOrderChildParam extends PageParam {
@ApiModelProperty(value = "订单来源: 1数煤宝 2承运货主 3供应链")
private Integer orderSource;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "货单编号")
private String orderGoodsNo;
......
......@@ -15,6 +15,9 @@ import javax.validation.constraints.NotNull;
@NoArgsConstructor
public class PageOrderGoodsListParam extends PageParam {
@ApiModelProperty(value = "订单来源: 1数煤宝 2承运货主 3供应链")
private Integer orderSource;
@ApiModelProperty(value = "订单编号")
private String orderNo;
......@@ -39,5 +42,7 @@ public class PageOrderGoodsListParam extends PageParam {
@ApiModelProperty(value="收货地址",example = "黄羊城")
private String receiveAddress;
@ApiModelProperty("用车方式 1:平台车辆配货 2:自有车辆配货")
private Integer vehicleUsage;
}
......@@ -21,4 +21,7 @@ public class PagePerformanceProgress extends PageParam {
@ApiModelProperty(value = "Tab类型 1:进行中的线路(不分页) 2:已结束线路 3:全部线路", example = "")
private Integer tab;
@ApiModelProperty(value = "模板id", example = "1")
private Integer templateId;
}
package com.clx.performance.param.pc.export;
import io.swagger.annotations.ApiParam;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class ListExportTemplateParam {
@ApiParam("功能code集合")
private List<String> functionCodes;
}
package com.clx.performance.param.pc.export;
import com.msl.common.base.OperateParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
public class SaveExportTemplateParam extends OperateParam {
@ApiModelProperty("所属功能code")
@NotBlank(message = "所属功能code不能为空")
private String exportFunctionCode;
@ApiModelProperty("名称")
@NotBlank(message = "名称不能为空")
private String name;
@ApiModelProperty("描述")
private String remark;
@ApiModelProperty("是否默认")
private Integer defaultFlag;
}
package com.clx.performance.param.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class UpdateTemplateDefaultFlagParam {
@ApiModelProperty("模板id")
@NotNull(message = "模板id不能为空")
private Integer id;
}
package com.clx.performance.param.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.List;
@Getter
@Setter
public class UpdateTemplateFieldsParam {
@ApiModelProperty("模板id")
@NotNull(message = "模板id不能为空")
private Integer id;
@ApiModelProperty("模板字段id列表")
private List<Integer> fieldIds;
}
package com.clx.performance.param.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class UpdateTemplateNameParam {
@ApiModelProperty("模板id")
@NotNull(message = "模板id不能为空")
private Integer id;
@ApiModelProperty("模板名称")
@NotBlank(message = "模板名称不能为空")
private String name;
}
......@@ -3,6 +3,7 @@ package com.clx.performance.vo.app;
import cn.hutool.json.JSONUtil;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderGoodsEnum;
import com.clx.performance.enums.SyncPlatformEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -343,4 +344,11 @@ public class OrderChildVO {
}
return new ArrayList<>();
}
@ApiModelProperty(value = "订单来源")
private Integer orderSource;
private String orderSourceMsg;
public String getOrderSourceMsg() {
return SyncPlatformEnum.Source.getNameByCode(orderSource);
}
}
package com.clx.performance.vo.mq.settle;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
@Setter
@Getter
......
package com.clx.performance.vo.pc;
import com.clx.performance.enums.SyncPlatformEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -21,6 +22,8 @@ import java.util.List;
public class CarrierOrderChildDetailVO {
@ApiModelProperty(value = "订单编号", example = "100000000")
private String orderNo;
@ApiModelProperty(value = "运单编号", example = "100000000")
private String childNo;
......@@ -129,4 +132,11 @@ public class CarrierOrderChildDetailVO {
@ApiModelProperty(value = "目的地详细地址")
private String receiveDetailAddress;
@ApiModelProperty(value = "订单来源")
private Integer orderSource;
private String orderSourceMsg;
public String getOrderSourceMsg() {
return SyncPlatformEnum.Source.getNameByCode(orderSource);
}
}
\ No newline at end of file
......@@ -82,4 +82,10 @@ public class OrderChildPoundAuditDetailVO {
@ApiModelProperty(value = "卸车识别皮重参考")
private BigDecimal unloadTareWeight;
@ApiModelProperty("合作公司id")
private Integer cooperativeCompaniesId;
@ApiModelProperty("合作公司名称")
private String cooperativeCompaniesName;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.clx.performance.enums.OrderGoodsEnum;
import com.clx.performance.enums.SyncPlatformEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -226,4 +227,18 @@ public class OrderGoodsVO {
public String getReceiveWaitModeMsg() {
return OrderGoodsEnum.SendWaitModeEnum.getMsgByCode(receiveWaitMode);
}
@ApiModelProperty(value = "订单来源")
private Integer orderSource;
private String orderSourceMsg;
public String getOrderSourceMsg() {
return SyncPlatformEnum.Source.getNameByCode(orderSource);
}
@ApiModelProperty("已接单车数")
private Integer alreadyLoadTruckAmount;
@ApiModelProperty("已拉运车数")
private Integer alreadyTransportTruckAmount;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.clx.performance.enums.SyncPlatformEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -21,6 +22,9 @@ public class PageCarrierOrderChildVO {
@ApiModelProperty(value="运单状态",example = "1")
private Integer status;
@ApiModelProperty(value="订单编号",example = "41441")
private String orderNo;
@ApiModelProperty(value="货单编号",example = "41441")
private String orderGoodsNo;
......@@ -73,7 +77,11 @@ public class PageCarrierOrderChildVO {
@ApiModelProperty(value = "车牌号",example = "晋A12345")
private String truckNo;
@ApiModelProperty(value = "订单来源")
private Integer orderSource;
private String orderSourceMsg;
public String getOrderSourceMsg() {
return SyncPlatformEnum.Source.getNameByCode(orderSource);
}
}
\ No newline at end of file
package com.clx.performance.vo.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
public class ExportFieldVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("字段id")
private Integer id;
@ApiModelProperty("功能code")
private String exportFunctionCode;
@ApiModelProperty("字段code")
private String code;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("是否必选 1是,0否")
private Integer required;
@ApiModelProperty("排序字段")
private Integer sort;
@ApiModelProperty("描述")
private String remark;
}
package com.clx.performance.vo.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class ExportTemplateDetailVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty("模板id")
private Integer id;
@ApiModelProperty("功能code")
private String exportFunctionCode;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("描述")
private String remark;
@ApiModelProperty("是否默认,1是,0否")
private Integer defaultFlag;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
@ApiModelProperty("字段列表")
private List<ExportFieldVo> fields;
}
package com.clx.performance.vo.pc.export;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
public class ExportTemplateVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("模板id")
private Integer id;
@ApiModelProperty("功能code")
private String exportFunctionCode;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("描述")
private String remark;
@ApiModelProperty("是否默认,1是,0否")
private Integer defaultFlag;
}
......@@ -100,7 +100,7 @@ public class RabbitSettlementConfig {
}
/**
* 结算
* 货主结算
*/
@Bean
public Queue settlementSettleQueue() {
......@@ -111,6 +111,20 @@ public class RabbitSettlementConfig {
return BindingBuilder.bind(settlementSettleQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_SETTLE_ROUTING_KEY);
}
/**
* 车主结算
*/
@Bean
public Queue settlementDriverSettlementQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_QUEUE);
}
@Bean
public Binding settlementDriverSettlementQueueBinding() {
return BindingBuilder.bind(settlementDriverSettlementQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY);
}
/**
* 支付状态
*/
......@@ -136,6 +150,18 @@ public class RabbitSettlementConfig {
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_ROUTING_KEY);
}
/**
* 风控新增
*/
@Bean
public Queue settlementRiskAddQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_QUEUE);
}
@Bean
public Binding settlementRiskAddQueueBinding() {
return BindingBuilder.bind(settlementRiskAddQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_ROUTING_KEY);
}
/**
* 风控处理
*/
......
......@@ -58,10 +58,17 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_DRIVER_PAY_ACCEPT_SYNC_ROUTING_KEY = PREFIX +"settlementDriverPayAccept.sync"+QUEUE_ROUTING_KEY;
/**
* 结算
* 货主结算
*/
public static final String SETTLEMENT_SETTLE_QUEUE = PREFIX +"settlement.settle"+QUEUE;
public static final String SETTLEMENT_SETTLE_ROUTING_KEY = PREFIX +"settlement.settle"+QUEUE_ROUTING_KEY;
/**
* 车主结算
*/
public static final String SETTLEMENT_DRIVER_SETTLE_QUEUE = PREFIX +"settlementDriver.settle"+QUEUE;
public static final String SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY = PREFIX +"settlementDriver.settle"+QUEUE_ROUTING_KEY;
/**
* 开票状态同步
*/
......@@ -74,6 +81,12 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_PAY_STATUS_SYNC_QUEUE = PREFIX +"settlementPayStatus.sync"+QUEUE;
public static final String SETTLEMENT_PAY_STATUS_SYNC_ROUTING_KEY = PREFIX +"settlementPayStatus.sync"+QUEUE_ROUTING_KEY;
/**
* 风控新增
*/
public static final String SETTLEMENT_RISK_ADD_QUEUE = PREFIX +"settlementRisk.add"+QUEUE;
public static final String SETTLEMENT_RISK_ADD_ROUTING_KEY = PREFIX +"settlementRisk.add"+QUEUE_ROUTING_KEY;
/**
* 风控处理
*/
......
package com.clx.performance.controller.pc.export;
import com.clx.performance.param.pc.export.*;
import com.clx.performance.service.export.ExportFieldService;
import com.clx.performance.vo.pc.export.ExportFieldVo;
import com.clx.performance.vo.pc.export.ExportTemplateDetailVo;
import com.clx.performance.vo.pc.export.ExportTemplateVo;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Slf4j
@RestController
@Validated
@Api(tags = "模板")
@RequestMapping(value="/pc/carrier/template")
public class TemplateController {
@Autowired
private ExportFieldService exportFieldService;
@GetMapping("/listTemplateByFunctionCodes")
@ApiOperation(value = "列表查询登陆用户某功能下的模板", notes = "<br>by 艾庆国")
@Validated
public Result<List<ExportTemplateVo>> listTemplateByFunctionCodes(@ApiParam("功能code") @NotBlank(message = "功能code不能为空") String functionCode) {
return Result.ok(exportFieldService.listUserFunctionTemplate(functionCode));
}
@PostMapping("/listTemplateByFunctionCodes")
@ApiOperation(value = "列表查询登陆用户某些功能下的模板", notes = "<br>by 艾庆国")
public Result<List<ExportTemplateVo>> listTemplateByFunctionCodes(@RequestBody ListExportTemplateParam param) {
return Result.ok(exportFieldService.listUserFunctionsTemplate(param.getFunctionCodes()));
}
@PostMapping("/saveTemplate")
@ApiOperation(value = "新增模板", notes = "<br>by 艾庆国")
public Result<Integer> saveTemplate(@Validated @RequestBody SaveExportTemplateParam param) {
return Result.ok(exportFieldService.saveTemplate(param));
}
@DeleteMapping("/deleteTemplate")
@ApiOperation(value = "删除模板", notes = "<br>by 艾庆国")
public Result<Void> deleteTemplate(@ApiParam("模板id") @RequestParam("id") Integer id) {
exportFieldService.deleteTemplate(id);
return Result.ok();
}
@PostMapping("/updateTemplateName")
@ApiOperation(value = "修改模板名称", notes = "<br>by 艾庆国")
public Result<Void> updateTemplateName(@Validated @RequestBody UpdateTemplateNameParam param) {
exportFieldService.updateTemplateName(param.getId(), param.getName());
return Result.ok();
}
@PostMapping("/updateTemplateDefaultFlag")
@ApiOperation(value = "设置默认模板", notes = "<br>by 艾庆国")
public Result<Integer> updateTemplateDefaultFlag(@Validated @RequestBody UpdateTemplateDefaultFlagParam param) {
exportFieldService.updateTemplateDefaultFlag(param.getId());
return Result.ok();
}
@PostMapping("/updateTemplateFields")
@ApiOperation(value = "修改模板下的字段列表", notes = "<br>by 艾庆国")
public Result<Integer> updateTemplateFields(@Validated @RequestBody UpdateTemplateFieldsParam param) {
exportFieldService.updateTemplateFields(param.getId(), param.getFieldIds());
return Result.ok();
}
@GetMapping("/getTemplateDetail")
@ApiOperation(value = "获取模板详情", notes = "<br>by 艾庆国")
public Result<ExportTemplateDetailVo> getTemplateDetail(@ApiParam("模板id") Integer id) {
return Result.ok(exportFieldService.getTemplateDetail(id).orNull());
}
@GetMapping("/listFieldByTemplate")
@ApiOperation(value = "查询模板下的所有字段", notes = "<br>by 艾庆国")
public Result<List<ExportFieldVo>> listFieldByTemplate(@ApiParam("模板id") @RequestParam Integer id) {
return Result.ok(exportFieldService.listFieldByTemplate(id));
}
@GetMapping("/listFieldByFunctionCode")
@ApiOperation(value = "查询功能下的所有字段", notes = "<br>by 艾庆国")
public Result<List<ExportFieldVo>> listFieldByFunctionCode(@ApiParam("功能code") String functionCode) {
return Result.ok(exportFieldService.listFieldByFunctionCode(functionCode));
}
}
......@@ -214,4 +214,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> findListByChildNoList(List<String> childNoList);
int countTakeByOrderGoodsNo(String orderGoodsNo);
int countLoadByOrderGoodsNo(String orderGoodsNo);
}
package com.clx.performance.dao.export;
import com.clx.performance.mapper.export.ExportFieldMapper;
import com.clx.performance.model.export.ExportField;
import com.msl.common.dao.BaseDao;
import java.util.List;
public interface ExportFieldDao extends BaseDao<ExportFieldMapper, ExportField, Integer> {
List<ExportField> listFieldByTemplate(Integer templateId);
List<ExportField> listFieldByFunctionCode(String functionCode);
List<ExportField> listRequiredFieldByFunctionCode(String functionCode);
}
package com.clx.performance.dao.export;
import com.clx.performance.mapper.export.ExportTemplateMapper;
import com.clx.performance.model.export.ExportTemplate;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
public interface ExportTemplateDao extends BaseDao<ExportTemplateMapper, ExportTemplate, Integer> {
List<ExportTemplate> listUserFunctionTemplate(String functionCode);
Optional<ExportTemplate> getUserFunctionTemplateByName(String functionCode, String name);
List<ExportTemplate> listUserFunctionsTemplate(List<String> functionCodes);
Optional<ExportTemplate> getById(Integer id);
void saveTemplate(ExportTemplate template);
void deleteTemplate(Integer id);
void updateTemplateName(Integer id, String name);
void updateTemplateNotDefault(String functionCode);
void updateTemplateDefault(Integer templateId);
long countUserFunctionTemplate(String functionCode);
}
package com.clx.performance.dao.export;
import com.clx.performance.mapper.export.ExportTemplateFieldMapper;
import com.clx.performance.model.export.ExportTemplateField;
import com.msl.common.dao.BaseDao;
public interface ExportTemplateFieldDao extends BaseDao<ExportTemplateFieldMapper, ExportTemplateField, Integer> {
void deleteTemplateFields(Integer id);
}
......@@ -712,4 +712,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public int countTakeByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.countTakeByOrderGoodsNo(orderGoodsNo);
}
@Override
public int countLoadByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.countLoadByOrderGoodsNo(orderGoodsNo);
}
}
package com.clx.performance.dao.impl.export;
import com.clx.performance.dao.export.ExportFieldDao;
import com.clx.performance.mapper.export.ExportFieldMapper;
import com.clx.performance.model.export.ExportField;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.msl.common.enums.WhetherEnum;
import org.springframework.stereotype.Repository;
import java.util.Collections;
import java.util.List;
@Repository
public class ExportFieldDaoImpl extends BaseDaoImpl<ExportFieldMapper, ExportField, Integer> implements ExportFieldDao {
@Override
public List<ExportField> listFieldByTemplate(Integer templateId) {
return Optional.ofNullable(templateId).map(baseMapper::listFieldByTemplate).orElse(Collections.emptyList());
}
@Override
public List<ExportField> listFieldByFunctionCode(String functionCode) {
return Optional.ofNullable(functionCode)
.map(code -> lQrWrapper().eq(ExportField::getExportFunctionCode, functionCode)
.orderByAsc(ExportField::getSort))
.map(super::list)
.orElse(Collections.emptyList());
}
@Override
public List<ExportField> listRequiredFieldByFunctionCode(String functionCode) {
return Optional.ofNullable(functionCode)
.map(code -> lQrWrapper().eq(ExportField::getExportFunctionCode, functionCode)
.eq(ExportField::getRequired, WhetherEnum.get(true))
.orderByAsc(ExportField::getSort))
.map(super::list)
.orElse(Collections.emptyList());
}
}
package com.clx.performance.dao.impl.export;
import com.clx.performance.dao.export.ExportTemplateDao;
import com.clx.performance.mapper.export.ExportTemplateMapper;
import com.clx.performance.model.export.ExportTemplate;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.msl.common.enums.WhetherEnum;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Collections;
import java.util.List;
@Repository
public class ExportTemplateDaoImpl extends BaseDaoImpl<ExportTemplateMapper, ExportTemplate, Integer> implements ExportTemplateDao {
@Override
public List<ExportTemplate> listUserFunctionTemplate(String functionCode) {
if (StringUtils.isBlank(functionCode)) {
return Collections.emptyList();
}
return list(lQrWrapper()
.eq(ExportTemplate::getExportFunctionCode, functionCode)
.orderByDesc(ExportTemplate :: getId));
}
@Override
public Optional<ExportTemplate> getUserFunctionTemplateByName(String functionCode, String name) {
return Optional.ofNullable(functionCode)
.filter(no -> StringUtils.isNoneBlank(functionCode, name))
.map(no -> lQrWrapper()
.eq(ExportTemplate::getExportFunctionCode, functionCode)
.eq(ExportTemplate::getName, name))
.map(super::getOne);
}
@Override
public List<ExportTemplate> listUserFunctionsTemplate(List<String> functionCodes) {
if (CollectionUtils.isEmpty(functionCodes)) {
return Collections.emptyList();
}
return list(lQrWrapper()
.in(ExportTemplate::getExportFunctionCode, functionCodes));
}
@Override
public Optional<ExportTemplate> getById(Integer id) {
return Optional.ofNullable(id).map(super::getById);
}
@Override
public void saveTemplate(ExportTemplate template) {
save(template);
}
@Override
public void deleteTemplate(Integer id) {
Optional.ofNullable(id).ifPresent(super::removeById);
}
@Override
public void updateTemplateName(Integer id, String name) {
update(lUdWrapper().set(ExportTemplate::getName, name)
.eq(ExportTemplate::getId, id));
}
@Override
public void updateTemplateNotDefault(String functionCode) {
update(lUdWrapper().set(ExportTemplate::getDefaultFlag, WhetherEnum.get(false))
.eq(ExportTemplate::getExportFunctionCode, functionCode));
}
@Override
public void updateTemplateDefault(Integer templateId) {
update(lUdWrapper().set(ExportTemplate::getDefaultFlag, WhetherEnum.get(true))
.eq(ExportTemplate::getId, templateId));
}
@Override
public long countUserFunctionTemplate(String functionCode) {
return Optional.ofNullable(functionCode)
.filter(no -> StringUtils.isNotBlank(functionCode))
.map(no -> lQrWrapper()
.eq(ExportTemplate::getExportFunctionCode, functionCode))
.map(baseMapper::selectCount)
.orElse(0L);
}
}
package com.clx.performance.dao.impl.export;
import com.clx.performance.dao.export.ExportTemplateFieldDao;
import com.clx.performance.mapper.export.ExportTemplateFieldMapper;
import com.clx.performance.model.export.ExportTemplateField;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
@Repository
public class ExportTemplateFieldDaoImpl extends BaseDaoImpl<ExportTemplateFieldMapper, ExportTemplateField, Integer> implements ExportTemplateFieldDao {
/**
* 删除模板下的字段
*
* @param id 模板id
*/
@Override
public void deleteTemplateFields(Integer id) {
remove(lQrWrapper().eq(ExportTemplateField::getExportTemplateId, id));
}
}
......@@ -37,6 +37,18 @@ public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper,
);
}
@Override
public boolean updateInvoiceCompany(SettlementDriver item) {
return update(lUdWrapper()
.eq(SettlementDriver::getId, item.getId())
.set(SettlementDriver::getInvoiceType, item.getInvoiceType())
.set(SettlementDriver::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriver::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriver::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
.set(SettlementDriver::getPrepayFreightFlag, item.getPrepayFreightFlag())
);
}
@Override
public boolean updateSettleStatus(SettlementDriver item) {
return update(lUdWrapper()
......
......@@ -22,6 +22,8 @@ public interface SettlementDriverDao extends BaseDao<SettlementDriverMapper, Set
boolean updateSettleStatus(SettlementDriver item);
boolean updateInvoiceCompany(SettlementDriver item);
Optional<SettlementDriver> findBySettlementNo(String settlementNo);
Optional<SettlementDriver> findByChildNo(String childNo);
......
......@@ -147,6 +147,10 @@ public class EventListenerComponent {
// 发送mq 结算统计
settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo());
// 发送mq 司机结算
settlementMqService.settlementDriverSettle(settlementDriverDetail.getChildNo());
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage());
} finally {
......
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.settle.SettlementDriverSettleMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 车主结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementDriverSettlementListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_QUEUE)
public void process(Message message) {
try{
log.info("结算-车主结算, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementDriverSettleMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-车主结算 失败",e);
}
}
private void process(SettlementDriverSettleMqParam mq){
settlementMqHandlerService.settlementDriverSettlement(mq);
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskAddMqParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 风控新增 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementRiskAddListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_QUEUE)
public void process(Message message) {
try{
log.info("结算-风控新增, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementOrderChildRiskAddMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-风控新增 失败,msg:{}", ExceptionUtils.getStackTrace(e));
}
}
private void process(SettlementOrderChildRiskAddMqParam mq){
settlementMqHandlerService.riskAdd(mq);
}
}
......@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 结算 mq
* @Description: 货主结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
......@@ -28,10 +28,10 @@ public class SettlementSettleListener {
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_SETTLE_QUEUE)
public void process(Message message) {
try{
log.info("结算-结算, message:{}", new String(message.getBody()));
log.info("结算-货主结算, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementSettleMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-结算 失败",e);
log.info("结算-货主结算 失败",e);
}
}
......
......@@ -183,4 +183,13 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateCancel")
void batchUpdateCancel(List<OrderChild> canCancelOrderChildList);
@Select("select count(*) from order_child " +
" where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)")
int countTakeByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
@Select("select count(*) from order_child " +
" where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
int countLoadByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
}
\ No newline at end of file
package com.clx.performance.mapper.export;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.export.ExportField;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ExportFieldMapper extends BaseMapper<ExportField> {
/**
* 查询模板下的字段
*
* @param templateId 模板id
* @return List
*/
@Select("SELECT ef.id,ef.name,ef.code,ef.required,etf.sort,ef.remark,ef.export_function_code exportFunctionCode " +
"FROM export_template_field etf INNER JOIN export_field ef ON ef.id = etf.export_field_id " +
"WHERE etf.export_template_id = #{templateId} order by sort")
List<ExportField> listFieldByTemplate(@Param("templateId") Integer templateId);
}
package com.clx.performance.mapper.export;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.export.ExportTemplateField;
public interface ExportTemplateFieldMapper extends BaseMapper<ExportTemplateField> {
}
package com.clx.performance.mapper.export;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.export.ExportTemplate;
public interface ExportTemplateMapper extends BaseMapper<ExportTemplate> {
}
......@@ -119,6 +119,8 @@ public class OrderChild implements HasKey<Integer> {
*/
private Integer removeLoadLimitStatus;
private Integer orderSource; //订单来源
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
......
......@@ -208,6 +208,8 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty("是否支持借款:0:否 1:是")
private Integer supportLoan;
private Integer orderSource; //订单来源
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
......
package com.clx.performance.model.export;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
@TableName("export_field")
public class ExportField implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("export_function_code")
@ApiModelProperty("功能code")
private String exportFunctionCode;
@TableField("name")
@ApiModelProperty("字段名称")
private String name;
@TableField("code")
@ApiModelProperty("字段code,用于映射真实数据字段")
private String code;
@TableField("required")
@ApiModelProperty("是否必填:1是,0否")
private Integer required;
@TableField("sort")
@ApiModelProperty("排序字段")
private Integer sort;
@TableField("remark")
@ApiModelProperty("字段描述")
private String remark;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.export;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
@TableName("export_template")
public class ExportTemplate implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("export_function_code")
@ApiModelProperty("功能code")
private String exportFunctionCode;
@TableField("name")
@ApiModelProperty("模板名称")
private String name;
@TableField("remark")
@ApiModelProperty("描述")
private String remark;
@TableField("default_flag")
@ApiModelProperty("是否默认:1是,0否")
private Integer defaultFlag;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.export;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
@TableName("export_template_field")
public class ExportTemplateField implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("export_template_id")
@ApiModelProperty("导出模板id")
private Integer exportTemplateId;
@TableField("export_field_id")
@ApiModelProperty("导出字段id")
private Integer exportFieldId;
@TableField("sort")
@ApiModelProperty("排序字段")
private Integer sort;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.service.export;
import com.clx.performance.param.pc.export.SaveExportTemplateParam;
import com.clx.performance.vo.pc.export.ExportFieldVo;
import com.clx.performance.vo.pc.export.ExportTemplateDetailVo;
import com.clx.performance.vo.pc.export.ExportTemplateVo;
import com.msl.common.base.Optional;
import java.util.List;
public interface ExportFieldService {
List<ExportTemplateVo> listUserFunctionTemplate(String functionCode);
List<ExportTemplateVo> listUserFunctionsTemplate(List<String> functionCodes);
Optional<ExportTemplateDetailVo> getTemplateDetail(Integer id);
List<ExportFieldVo> listFieldByTemplate(Integer templateId);
Integer saveTemplate(SaveExportTemplateParam param);
void deleteTemplate(Integer id);
void updateTemplateName(Integer templateId, String name);
void updateTemplateDefaultFlag(Integer templateId);
void updateTemplateFields(Integer id, List<Integer> fieldIds);
List<ExportFieldVo> listFieldByFunctionCode(String functionCode);
}
package com.clx.performance.service.export;
public interface ExportTemplateFieldService {
}
package com.clx.performance.service.export;
public interface ExportTemplateService {
}
......@@ -2,10 +2,14 @@ package com.clx.performance.service.impl;
import com.alibaba.druid.sql.visitor.functions.If;
import com.clx.order.enums.QuotationEnum;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.config.LoadAppConfig;
import com.clx.performance.config.PerformanceSmartCompanyNoConfig;
import com.clx.performance.dao.*;
import com.clx.performance.dto.payment.PaymentDTO;
import com.clx.performance.enums.*;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.*;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
......@@ -13,11 +17,15 @@ import com.clx.performance.service.*;
import com.clx.performance.service.child.OrderChildPostService;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.open.OpenClient;
import com.msl.common.open.RequestConfig;
import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import com.scm.lms.manage.action.LmsWeighingSignatureAction;
import com.smart.business.sdk.request.dto.WeightChildSignatureDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -60,6 +68,9 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
private final PaymentService paymentService;
private final OcrRecognitionDao ocrRecognitionDao;
private final OrderChildPostService orderChildPostService;
private final OrderService orderService;
private final LoadAppConfig loadAppConfig;
private final PerformanceSmartCompanyNoConfig companyNoConfig;
@Override
public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) {
......@@ -73,6 +84,7 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
vo.setChildNo(childNo);
vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
vo.setUnloadImages(unloadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
vo.setLoadNet(poundAuditDetail.getLoadNet());
vo.setUnloadNet(poundAuditDetail.getUnloadNet());
vo.setUnloadPoundNo(poundAuditDetail.getUnloadPoundNo());
......@@ -80,6 +92,7 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
vo.setUnloadRough(poundAuditDetail.getUnloadRough());
vo.setLoadRough(poundAuditDetail.getLoadRough());
vo.setLoadTare(poundAuditDetail.getLoadTare());
vo.setStatus(poundAuditDetail.getStatus());
vo.setRemark(poundAuditDetail.getRemark());
vo.setRejectType(poundAuditDetail.getRejectType());
......@@ -93,9 +106,52 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
vo.setUnloadGrossWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.UNLOAD.getCode(),new OcrRecognition()).getGrossWeight());
vo.setUnloadTareWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.UNLOAD.getCode(),new OcrRecognition()).getTareWeight());
// 合作公司
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderChild.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
vo.setCooperativeCompaniesId(orderInfo.getCooperativeCompaniesId());
vo.setCooperativeCompaniesName(orderInfo.getCooperativeCompaniesName());
//首次回显过磅电子磅单
WeightChildSignatureDto weighingSignature = getWeighingSignature(childNo,SaleBuyEnum.Type.BUY.getCode());//获取电子磅单图片 类型:1-销售,2-采购
if(Objects.nonNull(weighingSignature)){
if(vo.getUnloadTare()== null && weighingSignature.getTare()!=null){//卸车皮重
vo.setUnloadTare(weighingSignature.getTare());
}
if(vo.getUnloadRough()== null && weighingSignature.getRough()!=null){//卸车毛重
vo.setUnloadRough(weighingSignature.getRough());
}
}
return vo;
}
public WeightChildSignatureDto getWeighingSignature(String childNo,Integer type){
App app = loadAppConfig.getApp(AppEnum.UniqueIdentifier.LMS_MANAGE.getCode());//对接物流子系统配置信息
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(app.getAppNo())
.setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback());
//通过运单号码查询电子磅单图片
LmsWeighingSignatureAction weightAction = new LmsWeighingSignatureAction();
weightAction.setChildNo(childNo);
weightAction.setCustomerRelationNo(String.valueOf(companyNoConfig.getCompanyNo()));
weightAction.setType(type);
log.info("接口请求电子磅单参数,{}",weightAction);
Result<WeightChildSignatureDto> weighSignature = OpenClient.doAction(config, weightAction);
log.info("接口请求电子磅单返回结果,{}",weighSignature);
//数据处理
if(Objects.equals(weighSignature.getCode(),0)){
WeightChildSignatureDto weighSignatures = weighSignature.getData();
return weighSignatures;
}
return new WeightChildSignatureDto();
}
@Override
@Transactional(rollbackFor = Exception.class)
......
......@@ -286,15 +286,18 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "货单编号", "orderGoodsNo", 5000));
fieldList.add(new ExcelField(1, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(2, "发货地址", "sendAddressShorter", 5000));
fieldList.add(new ExcelField(3, "收货地址", "receiveAddressShorter", 5000));
fieldList.add(new ExcelField(4, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(5, "提取吨数", "extractWeight", 5000));
fieldList.add(new ExcelField(6, "已抢单吨数", "alreadyTransportWeight", 5000));
fieldList.add(new ExcelField(7, "未抢单吨数", "residueTransportWeight", 5000));
fieldList.add(new ExcelField(8, "已装车吨数", "alreadyLoadWeight", 5000));
fieldList.add(new ExcelField(9, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(10, "货单状态", "orderGoodsStatus", 5000));
fieldList.add(new ExcelField(2, "订单来源", "orderSourceMsg", 5000));
fieldList.add(new ExcelField(3, "发货地址", "sendAddressShorter", 5000));
fieldList.add(new ExcelField(4, "收货地址", "receiveAddressShorter", 5000));
fieldList.add(new ExcelField(5, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(6, "提取吨数", "extractWeight", 5000));
fieldList.add(new ExcelField(7, "已抢单吨数", "alreadyTransportWeight", 5000));
fieldList.add(new ExcelField(8, "未抢单吨数", "residueTransportWeight", 5000));
fieldList.add(new ExcelField(9, "已装车吨数", "alreadyLoadWeight", 5000));
fieldList.add(new ExcelField(10, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(11, "货单状态", "orderGoodsStatus", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
......@@ -302,6 +305,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(vo.getOrderGoodsNo()));
rowData.add(new ExcelData(vo.getOrderNo()));
rowData.add(new ExcelData(vo.getOrderSourceMsg(), "-"));
rowData.add(new ExcelData(vo.getSendAddressShorter()));
rowData.add(new ExcelData(vo.getReceiveAddressShorter()));
......@@ -310,6 +314,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
rowData.add(new ExcelData(vo.getAlreadyTransportWeight()));
rowData.add(new ExcelData(vo.getResidueTransportWeight()));
rowData.add(new ExcelData(vo.getAlreadyLoadWeight()));
rowData.add(new ExcelData(vo.getCreateTime()));
rowData.add(new ExcelData(OrderGoodsStatusEnum.Status.getMsgByCode(vo.getOrderGoodsStatus())));
......@@ -853,6 +858,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
this.calcOrderGoodsResidueWeight(orderGoodsVO.getExtractWeight(),orderGoodsVO.getAlreadyTransportWeight())
);
// 车数
orderGoodsVO.setAlreadyLoadTruckAmount(orderChildDao.countTakeByOrderGoodsNo(orderGoodsVO.getOrderGoodsNo()));
orderGoodsVO.setAlreadyTransportTruckAmount(orderChildDao.countLoadByOrderGoodsNo(orderGoodsVO.getOrderGoodsNo()));
String orderNo = orderGoodsVO.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
......
......@@ -20,6 +20,7 @@ import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.service.broker.OrderChildBrokerMqService;
import com.clx.performance.service.broker.OrderChildBrokerService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildDriverPayMqParam;
import com.clx.performance.service.settle.SettlementPostService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
import lombok.extern.slf4j.Slf4j;
......@@ -53,6 +54,9 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
@Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Autowired
private SettlementPostService settlementPostService;
@Transactional(rollbackFor = Exception.class)
@Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
......@@ -79,6 +83,8 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark("同步无车承运异常");
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
}
}
public void doOrderChildSync(BrokerOrderChildSyncMqParam mq){
......
package com.clx.performance.service.impl.export;
import com.clx.performance.dao.export.ExportFieldDao;
import com.clx.performance.dao.export.ExportTemplateDao;
import com.clx.performance.dao.export.ExportTemplateFieldDao;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.model.export.ExportField;
import com.clx.performance.model.export.ExportTemplate;
import com.clx.performance.model.export.ExportTemplateField;
import com.clx.performance.param.pc.export.SaveExportTemplateParam;
import com.clx.performance.service.export.ExportFieldService;
import com.clx.performance.struct.export.ExportFieldStruct;
import com.clx.performance.struct.export.ExportTemplateStruct;
import com.clx.performance.vo.pc.export.ExportFieldVo;
import com.clx.performance.vo.pc.export.ExportTemplateDetailVo;
import com.clx.performance.vo.pc.export.ExportTemplateVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.WhetherEnum;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
@Service
public class ExportFieldServiceImpl implements ExportFieldService {
private static final long TEMPLATE_NUM = 10;
@Autowired
private ExportTemplateDao exportTemplateDao;
@Autowired
private ExportTemplateFieldDao exportTemplateFieldDao;
@Autowired
private ExportFieldDao exportFieldDao;
@Autowired
private ExportTemplateStruct exportTemplateStruct;
@Autowired
private ExportFieldStruct exportFieldStruct;
@Override
public List<ExportTemplateVo> listUserFunctionTemplate(String functionCode) {
List<ExportTemplateVo> templateVos = exportTemplateStruct.convert(exportTemplateDao.listUserFunctionTemplate(functionCode));
//将默认模板放置于第一位
templateVos.sort(Comparator.comparing(ExportTemplateVo::getDefaultFlag).reversed());
return templateVos;
}
@Override
public List<ExportTemplateVo> listUserFunctionsTemplate(List<String> functionCodes) {
List<ExportTemplateVo> templateVos = exportTemplateStruct.convert(exportTemplateDao.listUserFunctionsTemplate(functionCodes));
//将默认模板放置于第一位
templateVos.sort(Comparator.comparing(ExportTemplateVo::getDefaultFlag).reversed());
return templateVos;
}
@Override
public Optional<ExportTemplateDetailVo> getTemplateDetail(Integer id) {
return exportTemplateDao.getEntityByKey(id)
.mapWithObj(listFieldByTemplate(id), exportTemplateStruct::convert);
}
@Override
public List<ExportFieldVo> listFieldByTemplate(Integer templateId) {
List<ExportFieldVo> list = exportFieldStruct.convert(exportFieldDao.listFieldByTemplate(templateId));
return list;
}
@Override
public Integer saveTemplate(SaveExportTemplateParam param) {
//校验模板数量
long templateNums = exportTemplateDao.countUserFunctionTemplate(param.getExportFunctionCode());
if (templateNums >= TEMPLATE_NUM) {
//模板数量达上限,无法新增
throw new ServiceSystemException(ResultEnum.TemplateEnum.EXPORT_TEMPLATE_NUM_LIMIT);
}
//校验模板名称是否存在
Optional<ExportTemplate> exists = exportTemplateDao.getUserFunctionTemplateByName(param.getExportFunctionCode(), param.getName());
if (exists.isPresent()) {
//模板名称已存在
throw new ServiceSystemException(ResultEnum.TemplateEnum.EXPORT_TEMPLATE_NAME_EXIST);
}
ExportTemplate template = exportTemplateStruct.convert(param);
exportTemplateDao.saveTemplate(template);
//保存成功时,查询功能的所有必填字段加入到模板下
saveTemplateFields(template.getId(), exportFieldDao.listRequiredFieldByFunctionCode(param.getExportFunctionCode()));
return template.getId();
}
@Override
public void deleteTemplate(Integer id) {
exportTemplateDao.deleteTemplate(id);
}
@Override
public void updateTemplateName(Integer templateId, String name) {
//判断模板是否已存在
ExportTemplate template = exportTemplateDao.getById(templateId).orElseThrow(ResultEnum.TemplateEnum.EXPORT_TEMPLATE_NULL);
//判断名称是否已存在
Optional<ExportTemplate> exists = exportTemplateDao.getUserFunctionTemplateByName(template.getExportFunctionCode(), name);
if (exists.isPresent()) {
if (!Objects.equals(exists.get().getId(), templateId)) {
//名称已存在,且为其他模板所用
throw new ServiceSystemException(ResultEnum.TemplateEnum.EXPORT_TEMPLATE_NAME_EXIST);
} else {
//名称已存在且为当前模板时,不需再次修改
return;
}
}
exportTemplateDao.updateTemplateName(templateId, name);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTemplateDefaultFlag(Integer templateId) {
//查询模板数据
ExportTemplate template = exportTemplateDao.getById(templateId)
.orElseThrow(() -> new ServiceSystemException(ResultEnum.TemplateEnum.EXPORT_TEMPLATE_NULL));
//若模板已为默认,则无需修改
if (WhetherEnum.isTrue(template.getDefaultFlag())) {
return;
}
//去除用户在模板所属功能下已设置过的默认模板
exportTemplateDao.updateTemplateNotDefault(template.getExportFunctionCode());
//设置当前模板为默认
exportTemplateDao.updateTemplateDefault(templateId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTemplateFields(Integer id, List<Integer> fieldIds) {
//准备新模板字段数据
UserSessionData user = TokenUtil.getLoginUserInfo();
List<ExportTemplateField> templateFields = Lists.newArrayList();
for (int i = 0; i < fieldIds.size(); i++) {
ExportTemplateField field = new ExportTemplateField();
field.setExportTemplateId(id);
field.setExportFieldId(fieldIds.get(i));
field.setSort(i);
templateFields.add(field);
}
//删除模板已有字段
exportTemplateFieldDao.deleteTemplateFields(id);
//批量增加新字段
exportTemplateFieldDao.saveBatchList(templateFields);
}
@Transactional(rollbackFor = Exception.class)
public void saveTemplateFields(Integer id, List<ExportField> fields) {
if (id == null || CollectionUtils.isEmpty(fields)) {
return;
}
//组装待增加字段数据
List<ExportTemplateField> templateFields = Lists.newArrayList();
for (int i = 0; i < fields.size(); i++) {
ExportTemplateField field = new ExportTemplateField();
field.setExportTemplateId(id);
field.setExportFieldId(fields.get(i).getId());
field.setSort(i);
templateFields.add(field);
}
//批量增加新字段
exportTemplateFieldDao.saveBatchList(templateFields);
}
@Override
public List<ExportFieldVo> listFieldByFunctionCode(String functionCode) {
return exportFieldStruct.convert(exportFieldDao.listFieldByFunctionCode(functionCode));
}
}
package com.clx.performance.service.impl.export;
import com.clx.performance.service.export.ExportTemplateFieldService;
import org.springframework.stereotype.Service;
@Service
public class ExportTemplateFieldServiceImpl implements ExportTemplateFieldService {
}
package com.clx.performance.service.impl.export;
import com.clx.performance.service.export.ExportTemplateService;
import org.springframework.stereotype.Service;
@Service
public class ExportTemplateServiceImpl implements ExportTemplateService {
}
......@@ -169,17 +169,17 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 拆单
if (Objects.equals(mq.getType(), SettlementStatisticsMqParam.Type.SEPARATE.getCode())){
settlementStatisticsSeparate(settlementOwnerDetail, settlementDriverDetail);
settlementStatisticsSeparate(settlementOwnerDetail);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
return;
}
log.info("当前车主计费信息{},司机计费信息:{}", JSONUtil.parse(settlementOwnerDetail), JSONUtil.parse(settlementDriverDetail));
if (settlementOwnerDetail.getInvoiceFreight() == null) {
log.info("当前车主计费信息开票金额为空,需要重新处理计算开票金额");
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
......@@ -297,6 +297,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverDetail.setSettlementNo(settlementDriver.getSettlementNo());
settlementDriverDetailDao.updateSettlementNo(settlementDriverDetail);
}
@Transactional(rollbackFor = Exception.class)
......@@ -369,6 +370,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return;
}
else {
......@@ -476,6 +479,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return;
}
......@@ -551,6 +556,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return;
}
......@@ -589,6 +596,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSettleMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
}
}
......@@ -887,7 +896,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
/**
* 月结更新
*/
private void settlementStatisticsSeparate(SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail){
private void settlementStatisticsSeparate(SettlementOwnerDetail settlementOwnerDetail){
String settlementNo = settlementOwnerDetail.getSettlementNo();
SettlementOwner settlementOwner = settlementOwnerDao
.findBySettlementNo(settlementNo).orElseThrow(ResultEnum.DATA_NOT_FIND);
......@@ -929,10 +938,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setSettlementNo(null);
settlementOwnerDetail.setSeparateRemark("系统自动拆单(原结算单号"+settlementNo+")");
settlementDriverDetail.setSettlementNo(null);
settlementOwnerDetailDao.updateClearSettlementNo(settlementOwnerDetail);
settlementDriverDetailDao.updateClearSettlementNo(settlementDriverDetail);
}
/**
......@@ -1009,6 +1016,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementMqService.settlementStatistics(childNo, SettlementStatisticsMqParam.Type.SEPARATE.getCode());
}
// 发送mq (车主结算)
settlementMqService.settlementDriverSettle(childNo);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(childNo);
}
......@@ -1034,7 +1044,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriver settlementDriver = settlementDriverDao
.getByChildNo(childNo).orNull();
OrderChild orderChild = orderChildDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
......@@ -1075,9 +1086,21 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
if (settlementDriver != null) {
settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId());
settlementDriver.setInvoicingCompanyShorterName(settlementDriverDetail.getInvoicingCompanyShorterName());
settlementDriver.setInvoicingCompanyGroupCode(settlementDriverDetail.getInvoicingCompanyGroupCode());
}
if (Objects.equals(settlementOwnerDetail.getReportFlag(), com.clx.order.enums.OrderEnum.ReportFlag.NO.getCode())){
// 网运单转普通单
orderChildSyncTransportListener.extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, settlementOwnerDetail.getInvoiceType(), null);
if (settlementDriver != null) {
settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag());
settlementDriverDao.updateInvoiceCompany(settlementDriver);
}
return;
}
......@@ -1087,11 +1110,21 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
// 网运单转普通单
orderChildSyncTransportListener.extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, settlementOwnerDetail.getInvoiceType(), settlementOrderChildRisk.getRiskRemark());
if (settlementDriver != null) {
settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag());
settlementDriverDao.updateInvoiceCompany(settlementDriver);
}
// 发送mq (更新无车承运)
orderChildBrokerMqService.orderChildUpdate(childNo);
return;
}
if (settlementDriver != null) {
settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag());
settlementDriverDao.updateInvoiceCompany(settlementDriver);
}
//普通单解冻
applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, childNo));
// 发送mq 结算统计
......
......@@ -57,6 +57,19 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void settlementDriverSettle(String childNo) {
SettlementDriverSettleMqParam mq = new SettlementDriverSettleMqParam();
mq.setChildNo(childNo);
MqDelay delay =
new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void invoiceTypeSync(String childNo) {
......@@ -124,6 +137,18 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void riskAdd(Integer id) {
SettlementOrderChildRiskAddMqParam mq = new SettlementOrderChildRiskAddMqParam();
mq.setId(id);
MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void riskProcess(Integer id) {
SettlementOrderChildRiskProcessMqParam mq = new SettlementOrderChildRiskProcessMqParam();
......
......@@ -96,8 +96,12 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
if (settlementDriver != null) {
// 删除结算单
settlementDriverDao.deleteByKey(settlementDriver.getId());
settlementDriver.setInvoiceType(settlementDriverDetail.getInvoiceType());
settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId());
settlementDriver.setInvoicingCompanyShorterName(settlementDriverDetail.getInvoicingCompanyShorterName());
settlementDriver.setInvoicingCompanyGroupCode(settlementDriverDetail.getInvoicingCompanyGroupCode());
settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag());
settlementDriverDao.updateInvoiceCompany(settlementDriver);
}
}
else {
......
......@@ -60,6 +60,13 @@ public class SettlementPostServiceImpl implements SettlementPostService {
}
}
@Override
public void riskAdd(Integer id) {
// 发送mq (风控新增)
settlementMqService.riskAdd(id);
}
@Override
public void driverSettle(String childNo) {
......
......@@ -9,6 +9,7 @@ public interface SettlementMqHandlerService {
void settlementDetailAdd(SettlementDetailAddMqParam mq);
void settlementStatistics(SettlementStatisticsMqParam mq);
void settlementDriverSettlement(SettlementDriverSettleMqParam mq);
void settlementDriverSettlement(SettlementDriverSettleMqParam mq);
......
......@@ -6,6 +6,7 @@ public interface SettlementMqService {
void settlementStatistics(String childNo);
void settlementStatistics(String childNo, Integer type);
void settlementDriverSettle(String childNo);
void invoiceTypeSync(String childNo);
......@@ -17,6 +18,8 @@ public interface SettlementMqService {
void payStatusSync(String childNo);
void riskAdd(Integer id);
void riskProcess(Integer id);
void updateInvoiceCompany(Integer id);
......
......@@ -16,4 +16,6 @@ public interface SettlementPostService {
void updateInvoice(List<String> childNoList);
void driverSettle(String childNo);
void riskAdd(Integer id);
}
......@@ -116,7 +116,8 @@ public class OrderChildSqlProvider {
"driver_name,driver_mobile,load_net,unload_net," +
"date_format(pay_time, '%Y-%m-%d %H:%i:%s') as payTime," +
"date_format(finish_time, '%Y-%m-%d %H:%i:%s') as finishTime," +
"date_format(pound_audit_time, '%Y-%m-%d %H:%i:%s') as poundAuditTime");
"date_format(pound_audit_time, '%Y-%m-%d %H:%i:%s') as poundAuditTime," +
"order_source, order_no");
FROM("order_child ");
if (Objects.equals(param.getTimeType(),1)) {
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("pay_time >= #{param.beginTime}");}
......@@ -129,6 +130,8 @@ public class OrderChildSqlProvider {
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("finish_time <= #{param.endTime}");}
}
if (Objects.nonNull(param.getOrderSource())) {WHERE("order_source = #{param.orderSource}");}
if (StringUtils.isNotBlank(param.getOrderNo())) {WHERE("order_no = #{param.orderNo}");}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {WHERE("order_goods_no = #{param.orderGoodsNo}");}
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (StringUtils.isNotBlank(param.getDriverName())) {WHERE("driver_name= #{param.driverName}");}
......
......@@ -44,7 +44,7 @@ public class OrderGoodsSqlProvider {
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name,a.stop_flag,a.batch_number,a.last_arrive_receive_time,a.last_load_time,a.last_order_time,a.vehicle_usage," +
" a.platform_freight_quotation_tax_type, a.platform_service_fee_rate, " +
" a.deposit, a.invoice_service_fee_rate, a.settlement_way, a.support_loan ");
" a.deposit, a.invoice_service_fee_rate, a.settlement_way, a.support_loan, a.order_source ");
FROM("order_goods a");
if (StringUtils.isNotBlank(param.getBeginTime()) && StringUtils.isNotBlank(param.getEndTime())) {
......@@ -76,6 +76,8 @@ public class OrderGoodsSqlProvider {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
}
}
if (Objects.nonNull(param.getOrderSource())) {WHERE("order_source = #{param.orderSource}");}
if (Objects.nonNull(param.getVehicleUsage())) {WHERE("vehicle_usage = #{param.vehicleUsage}");}
if (StringUtils.isNotBlank(param.getOrderNo())) {
WHERE("a.order_no = #{param.orderNo}");
......@@ -186,7 +188,7 @@ public class OrderGoodsSqlProvider {
"senior_logistics_manager_name,order_no,order_goods_no,order_goods_status,send_address_id,send_address_shorter,send_system_address_id,send_longitude," +
"send_latitude,receive_latitude,receive_longitude,receive_address_id,receive_address_shorter,receive_system_address_id,goods_name,goods_id,create_time,modified_time," +
"user_name,user_no,batch_number,last_arrive_receive_time,last_load_time,last_order_time,settlement_account_period,settlement_way," +
"platform_freight_quotation_tax_type, platform_service_fee_rate, deposit, invoice_service_fee_rate) VALUES ");
"platform_freight_quotation_tax_type, platform_service_fee_rate, deposit, invoice_service_fee_rate, order_source) VALUES ");
for (int i = 0; i < orderGoodsList.size(); i++) {
OrderGoods o = orderGoodsList.get(i);
......@@ -202,7 +204,8 @@ public class OrderGoodsSqlProvider {
.append(o.getGoodsId()).append("','").append(o.getCreateTime()).append("','").append(o.getModifiedTime()).append("','").append(o.getUserName()).append("','")
.append(o.getUserNo()).append("','").append(o.getBatchNumber()).append("','").append(o.getLastArriveReceiveTime()).append("','")
.append(o.getLastLoadTime()).append("','").append(o.getLastOrderTime()).append("','").append(o.getSettlementAccountPeriod()).append("','").append(o.getSettlementWay()).append("','")
.append(o.getPlatformFreightQuotationTaxType()).append("',").append(o.getPlatformServiceFeeRate()).append(",").append(o.getDeposit()).append(",").append(o.getInvoiceServiceFeeRate())
.append(o.getPlatformFreightQuotationTaxType()).append("',").append(o.getPlatformServiceFeeRate()).append(",").append(o.getDeposit()).append(",").append(o.getInvoiceServiceFeeRate()).append(",")
.append(o.getOrderSource())
.append(")");
if (i < orderGoodsList.size() - 1) {
......@@ -247,7 +250,7 @@ public class OrderGoodsSqlProvider {
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name,a.batch_number,a.last_arrive_receive_time,a.last_load_time,a.last_order_time,a.vehicle_usage," +
" a.platform_freight_quotation_tax_type, a.platform_service_fee_rate, " +
" a.deposit, a.invoice_service_fee_rate, a.settlement_way, a.support_loan ");
" a.deposit, a.invoice_service_fee_rate, a.settlement_way, a.support_loan, a.already_load_weight, a.already_transport_weight");
FROM("order_goods a");
if (Objects.nonNull(id)) {
......
......@@ -104,6 +104,7 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
for (OrderGoodsChildParams child : childParamsList) {
OrderGoods orderGoods = new OrderGoods();
orderGoods.setOrderSource(orderInfo.getOrderSource());
//提取吨数
orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
......
......@@ -107,6 +107,8 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
}
}
OrderGoods orderGoods = new OrderGoods();
orderGoods.setOrderSource(orderInfo.getOrderSource());
//提取吨数
orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
......
......@@ -105,6 +105,8 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
}
}
OrderGoods orderGoods = new OrderGoods();
orderGoods.setOrderSource(orderInfo.getOrderSource());
//提取吨数
orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
......
package com.clx.performance.struct.export;
import com.clx.performance.model.export.ExportField;
import com.clx.performance.vo.pc.export.ExportFieldVo;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", imports = {DateUtils.class})
public interface ExportFieldStruct {
ExportFieldVo convert(ExportField field);
List<ExportFieldVo> convert(List<ExportField> fields);
}
package com.clx.performance.struct.export;
import com.clx.performance.model.export.ExportTemplate;
import com.clx.performance.param.pc.export.SaveExportTemplateParam;
import com.clx.performance.vo.pc.export.ExportFieldVo;
import com.clx.performance.vo.pc.export.ExportTemplateDetailVo;
import com.clx.performance.vo.pc.export.ExportTemplateVo;
import com.msl.common.utils.DateStructUtil;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class)
public interface ExportTemplateStruct {
ExportTemplateVo convert(ExportTemplate template);
List<ExportTemplateVo> convert(List<ExportTemplate> list);
@Mapping(target = "fields", source = "fields")
ExportTemplateDetailVo convert(ExportTemplate template, List<ExportFieldVo> fields);
ExportTemplate convert(SaveExportTemplateParam param);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论