提交 f6318bdb authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/v30.2_break_contract_20241021' into test_jdk17

# Conflicts: # clx-performance-web/src/main/java/com/clx/performance/controller/feign/PerformanceSdkFeignController.java # performance-api/src/main/java/com/clx/performance/feign/PerformanceSDKFeign.java
...@@ -59,4 +59,7 @@ public class RedisConstants { ...@@ -59,4 +59,7 @@ public class RedisConstants {
//异常上报编号
public static final String EXCEPTION_REPORT_CACHE_KEY = "clx-performance:exception:report:cache:key:";
} }
...@@ -48,4 +48,19 @@ public class AppDriverBreakContractDriverRecordController { ...@@ -48,4 +48,19 @@ public class AppDriverBreakContractDriverRecordController {
return Result.ok(breakContractDriverRecordService.getBreakContractFigure(childNo)); return Result.ok(breakContractDriverRecordService.getBreakContractFigure(childNo));
} }
@Operation(summary = "违约记录是否展示小红点 1:展示", description = "<br>By:刘海泉")
@GetMapping("/getShowBreakContractRed")
public Result<Integer> getShowBreakContractRed() {
return Result.ok(breakContractDriverRecordService.getShowBreakContractRed());
}
@Operation(summary = "违约记录标记已读", description = "<br>By:刘海泉")
@GetMapping("/updateBreakContractRead")
public Result<Integer> updateBreakContractRead() {
breakContractDriverRecordService.updateBreakContractRead();
return Result.ok();
}
} }
...@@ -4,6 +4,8 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction; ...@@ -4,6 +4,8 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.request.action.*;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
...@@ -19,16 +21,16 @@ import com.clx.performance.vo.pc.PerformanceProgressVO; ...@@ -19,16 +21,16 @@ import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -59,6 +61,8 @@ public class PerformanceSdkFeignController { ...@@ -59,6 +61,8 @@ public class PerformanceSdkFeignController {
private final OrderService orderService; private final OrderService orderService;
private final OrderChildExceptionReportService orderChildExceptionReportService;
@Operation(summary = "货主端取消订单", description = "<br>By:胡宇帆") @Operation(summary = "货主端取消订单", description = "<br>By:胡宇帆")
@PostMapping("/ownCancelOrderPre") @PostMapping("/ownCancelOrderPre")
...@@ -144,4 +148,53 @@ public class PerformanceSdkFeignController { ...@@ -144,4 +148,53 @@ public class PerformanceSdkFeignController {
} }
//数媒宝同步异常上报信息
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportInfo")
Result<String> smbSyncExceptionReportInfo(@RequestBody @Validated SmbSyncExceptionReportInfoAction action){
log.info("数媒宝同步异常上报信息开始,请求参数:{}", JSON.toJSONString(action));
Result<String> result = orderChildExceptionReportService.smbSyncExceptionReportInfo(action);
log.info("数媒宝同步异常上报信息结束,响应结果:{}", result);
return result;
}
//数媒宝同步异常上报结果
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportResult")
Result<Object> smbSyncExceptionReportResult(@RequestBody @Validated SmbSyncExceptionReportResultAction action){
log.info("数媒宝同步异常上报结果开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.smbSyncExceptionReportResult(action);
}
//数媒宝撤销异常上报
@PostMapping("clx-performance/feign/sdk/smbWithdrawExceptionReport")
Result<Object> smbWithdrawExceptionReport(@RequestBody @Validated SmbWithdrawExceptionReportAction action){
log.info("数媒宝撤销异常上报开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.smbWithdrawExceptionReport(action);
}
//马上来供应链同步异常上报信息
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportInfo")
Result<String> mslSyncExceptionReportInfo(@RequestBody @Validated MslSyncExceptionReportInfoAction action){
log.info("马上来供应链同步异常上报信息开始,请求参数:{}", JSON.toJSONString(action));
Result<String> result = orderChildExceptionReportService.mslSyncExceptionReportInfo(action);
log.info("马上来供应链同步异常上报信息结束,响应结果:{}", result);
return result;
}
//马上来供应链同步异常上报结果
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportResult")
Result<Object> mslSyncExceptionReportResult(@RequestBody @Validated MslSyncExceptionReportResultAction action){
log.info("马上来供应链同步异常上报结果开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.mslSyncExceptionReportResult(action);
}
//马上来供应链撤销异常上报
@PostMapping("clx-performance/feign/sdk/mslWithdrawExceptionReport")
Result<Object> mslWithdrawExceptionReport(@RequestBody @Validated MslWithdrawExceptionReportAction action){
log.info("马上来供应链撤销异常上报开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.mslWithdrawExceptionReport(action);
}
} }
package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.DealExceptionReportParam;
import com.clx.performance.param.pc.PageExceptionReportParam;
import com.clx.performance.param.pc.TransferDriverBreakContractParam;
import com.clx.performance.service.OrderChildExceptionReportService;
import com.clx.performance.vo.pc.OrderChildExceptionReportVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/exceptionReport")
@Validated
@Tag(name = "承运端-异常上报")
@AllArgsConstructor
public class OrderChildExceptionReportController {
private final OrderChildExceptionReportService orderChildExceptionReportService;
@Operation(summary = "异常上报处理", description = "<br>By:刘海泉")
@PostMapping(value = "updateDealExceptionReport")
public Result<Object> updateDealExceptionReport(@RequestBody @Validated DealExceptionReportParam param) {
orderChildExceptionReportService.updateDealExceptionReport(param);
return Result.ok();
}
@Operation(summary = "异常上报分页列表", description = "<br>By:刘海泉")
@PostMapping(value = "pageExceptionReport")
@UnitCovert(param = false)
public Result<PageData<OrderChildExceptionReportVO>> pageExceptionReport(@RequestBody @Validated PageExceptionReportParam param) {
Page<OrderChildExceptionReportVO> page = orderChildExceptionReportService.pageExceptionReport(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@Operation(summary = "导出异常上报分页列表", description = "<br>By:刘海泉")
@PostMapping(value = "exportExceptionReport")
public Result<Object> exportExceptionReport(@RequestBody @Validated PageExceptionReportParam param,
HttpServletResponse response) throws IOException {
SXSSFWorkbook workbook = orderChildExceptionReportService.exportExceptionReport(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
return Result.ok();
}
@Operation(summary = "异常上报详情接口", description = "<br>By:刘海泉")
@GetMapping(value = "getExceptionReport")
public Result<OrderChildExceptionReportVO> getExceptionReport(@RequestParam("id") @NotNull(message = "id不能为空") Integer id) {
return Result.ok(orderChildExceptionReportService.getExceptionReport(id));
}
@Operation(summary = "转司机违约", description = "<br>By:刘海泉")
@PostMapping(value = "transferDriverBreakContract")
public Result<Object> transferDriverBreakContract(@RequestBody @Validated TransferDriverBreakContractParam param) {
orderChildExceptionReportService.transferDriverBreakContract(param);
return Result.ok();
}
}
package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.PageExceptionReportParam;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderChildExceptionReportMapper;
import com.clx.performance.model.OrderChildExceptionReport;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportDao extends BaseDao<OrderChildExceptionReportMapper, OrderChildExceptionReport, Integer> {
OrderChildExceptionReport findByThirdReportNoAndSource(Integer source, String thirdReportNo);
IPage<OrderChildExceptionReport> pageExceptionReport(PageExceptionReportParam param);
}
package com.clx.performance.dao;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderChildExceptionReportDealLogMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogDao extends BaseDao<OrderChildExceptionReportDealLogMapper, OrderChildExceptionReportDealLog, Integer> {
}
package com.clx.performance.dao;
import com.clx.performance.mapper.OrderChildExceptionReportOperationLogMapper;
import com.clx.performance.model.OrderChildExceptionReportOperationLog;
import com.msl.common.dao.BaseDao;
/**
* @Author: aiqinguo
* @Description: 运单日志
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
public interface OrderChildExceptionReportOperationLogDao extends BaseDao<OrderChildExceptionReportOperationLogMapper, OrderChildExceptionReportOperationLog, Integer> {
}
...@@ -27,4 +27,7 @@ public interface BreakContractDriverRecordDao extends BaseDao<BreakContractDrive ...@@ -27,4 +27,7 @@ public interface BreakContractDriverRecordDao extends BaseDao<BreakContractDrive
IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param); IPage<BreakContractDriverRecordVO> pageByParam(PageBreakContractDriverRecordParam param);
IPage<DriverBreakContractDriverRecordVO> driverPageByParam(DriverPageBreakContractDriverRecordParam param); IPage<DriverBreakContractDriverRecordVO> driverPageByParam(DriverPageBreakContractDriverRecordParam param);
Long getShowBreakContractRed(Long userNo);
void updateBreakContractRead(Long userNo);
} }
package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.PageExceptionReportParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.dao.OrderChildExceptionReportDao;
import com.clx.performance.mapper.OrderChildExceptionReportMapper;
import com.clx.performance.model.OrderChildExceptionReport;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.util.Objects;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
@Repository
public class OrderChildExceptionReportDaoImpl extends BaseDaoImpl<OrderChildExceptionReportMapper, OrderChildExceptionReport, Integer> implements OrderChildExceptionReportDao {
@Override
public OrderChildExceptionReport findByThirdReportNoAndSource(Integer source, String thirdReportNo) {
LambdaQueryWrapper<OrderChildExceptionReport> query = new LambdaQueryWrapper<>();
query.eq(OrderChildExceptionReport :: getSource,source);
query.eq(OrderChildExceptionReport ::getThirdReportNo,thirdReportNo);
return baseMapper.selectOne(query);
}
@Override
public IPage<OrderChildExceptionReport> pageExceptionReport(PageExceptionReportParam param) {
LambdaQueryWrapper<OrderChildExceptionReport> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getThirdReportNo()),OrderChildExceptionReport :: getThirdReportNo,param.getThirdReportNo());
query.eq(Objects.nonNull(param.getSource()),OrderChildExceptionReport ::getSource,param.getSource());
query.eq(Objects.nonNull(param.getStatus()),OrderChildExceptionReport ::getStatus,param.getStatus());
query.eq(StringUtils.isNotBlank(param.getChildNo()),OrderChildExceptionReport ::getChildNo,param.getChildNo());
query.eq(StringUtils.isNotBlank(param.getTruckNoOrMobile()),OrderChildExceptionReport ::getTruckNoOrMobile,param.getTruckNoOrMobile());
query.ge(StringUtils.isNotBlank(param.getBeginTime()),OrderChildExceptionReport ::getCreateTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),OrderChildExceptionReport ::getCreateTime,param.getEndTime());
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
}
package com.clx.performance.dao.impl;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.dao.OrderChildExceptionReportDealLogDao;
import com.clx.performance.mapper.OrderChildExceptionReportDealLogMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Repository
public class OrderChildExceptionReportDealLogDaoImpl extends BaseDaoImpl<OrderChildExceptionReportDealLogMapper, OrderChildExceptionReportDealLog, Integer> implements OrderChildExceptionReportDealLogDao {
}
package com.clx.performance.dao.impl;
import com.clx.performance.dao.OrderChildExceptionReportOperationLogDao;
import com.clx.performance.mapper.OrderChildExceptionReportOperationLogMapper;
import com.clx.performance.model.OrderChildExceptionReportOperationLog;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @Author: aiqinguo
* @Description: 运单图片
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
@Repository
public class OrderChildExceptionReportOperationLogDaoImpl extends BaseDaoImpl<OrderChildExceptionReportOperationLogMapper, OrderChildExceptionReportOperationLog, Integer> implements OrderChildExceptionReportOperationLogDao {
}
package com.clx.performance.dao.impl.breakcontract; package com.clx.performance.dao.impl.breakcontract;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao; import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.enums.BreakContractRecordEnum;
import com.clx.performance.mapper.breakcontract.BreakContractDriverRecordMapper; import com.clx.performance.mapper.breakcontract.BreakContractDriverRecordMapper;
import com.clx.performance.model.breakcontract.BreakContractDriverRecord; import com.clx.performance.model.breakcontract.BreakContractDriverRecord;
import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriverRecordParam; import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriverRecordParam;
...@@ -57,4 +59,26 @@ public class BreakContractDriverRecordDaoImpl extends BaseDaoImpl<BreakContractD ...@@ -57,4 +59,26 @@ public class BreakContractDriverRecordDaoImpl extends BaseDaoImpl<BreakContractD
return baseMapper.driverPageByParam(page,param); return baseMapper.driverPageByParam(page,param);
} }
@Override
public Long getShowBreakContractRed(Long userNo) {
LambdaQueryWrapper<BreakContractDriverRecord> query = new LambdaQueryWrapper<>();
query.and(i ->
i.eq(BreakContractDriverRecord:: getTruckOwnUserNo,userNo).or()
.eq(BreakContractDriverRecord :: getDriverUserNo,userNo)
);
query.eq(BreakContractDriverRecord :: getReadFlag, BreakContractRecordEnum.ReadFlag.NO.getCode());
return baseMapper.selectCount(query);
}
@Override
public void updateBreakContractRead(Long userNo) {
LambdaUpdateWrapper<BreakContractDriverRecord> update = new LambdaUpdateWrapper<>();
update.and(i ->
i.eq(BreakContractDriverRecord:: getTruckOwnUserNo,userNo).or()
.eq(BreakContractDriverRecord :: getDriverUserNo,userNo)
);
update.set(BreakContractDriverRecord :: getReadFlag,BreakContractRecordEnum.ReadFlag.YES.getCode());
baseMapper.update(null,update);
}
} }
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogMapper extends BaseMapper<OrderChildExceptionReportDealLog> {
}
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildExceptionReport;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportMapper extends BaseMapper<OrderChildExceptionReport> {
}
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildExceptionReportOperationLog;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: aiqinguo
* @Description: 运单日志
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
@Mapper
public interface OrderChildExceptionReportOperationLogMapper extends BaseMapper<OrderChildExceptionReportOperationLog> {
}
\ No newline at end of file
package com.clx.performance.model;
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.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_child_exception_report")
public class OrderChildExceptionReport implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("report_no")
@Schema(description="异常上报编号")
private String reportNo;
@TableField("third_report_no")
@Schema(description="三方异常上报编号")
private String thirdReportNo;
@TableField("source")
@Schema(description="来源")
private Integer source;
@TableField("exception_category")
@Schema(description="异常类别")
private String exceptionCategory;
@TableField("exception_type")
@Schema(description="异常类型")
private String exceptionType;
@TableField("truck_no_or_mobile")
@Schema(description="车牌号/手机号")
private String truckNoOrMobile;
@TableField("child_no")
@Schema(description="运单编号")
private String childNo;
@TableField("status")
@Schema(description="状态:1:待处理 2:申诉中 3:已处理 4:已撤回")
private Integer status;
@TableField("deduction_amount")
@Schema(description="扣罚金额")
private BigDecimal deductionAmount;
@TableField("report_time")
@Schema(description="异常上报时间")
private LocalDateTime reportTime;
@TableField("reason")
@Schema(description="异常原因描述")
private String reason;
@TableField("picture_url_json")
@Schema(description="图片")
private String pictureUrlJson;
@TableField("video_url_json")
@Schema(description="视频")
private String videoUrlJson;
@TableField("deal_user_code")
@Schema(description="处理人用户编码")
private Long dealUserCode;
@TableField("deal_user")
@Schema(description="处理人用户姓名")
private String dealUser;
@TableField("deal_time")
@Schema(description="处理时间")
private LocalDateTime dealTime;
@TableField("deal_result")
@Schema(description="处理结果")
private Integer dealResult;
@TableField("transfer_driver_break_contract")
@Schema(description="是否转司机违约 1:是")
private Integer transferDriverBreakContract;
@TableField("break_contract_reason")
@Schema(description="违约原因")
private String breakContractReason;
@TableField("create_time")
@Schema(description="创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@Schema(description="修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model;
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.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_child_exception_report_deal_log")
public class OrderChildExceptionReportDealLog implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("report_no")
@Schema(description="异常上报编号")
private String reportNo;
@TableField("deal_way")
@Schema(description="处理方式 1:同意扣罚 2:申诉")
private Integer dealWay;
@TableField("appeal_reason")
@Schema(description="申诉原因")
private String appealReason;
@TableField("picture_url")
@Schema(description="图片")
private String pictureUrl;
@TableField("video_url")
@Schema(description="视频")
private String videoUrl;
@TableField("create_by")
@Schema(description="申诉人编码")
private Long createBy; //操作人编号
@TableField("create_name")
@Schema(description="申诉人")
private String createName; //操作人名称
@TableField("create_time")
@Schema(description="创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@Schema(description="修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model;
import com.baomidou.mybatisplus.annotation.IdType;
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 lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class OrderChildExceptionReportOperationLog implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; //id
private String reportNo; //异常上报编号
private Integer type; //操作事项编码
private String result; //处理结果
private Long createBy; //操作人编号
private String createName; //操作人名称
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id")
@Override
public Integer gainKey() {
return id;
}
}
\ No newline at end of file
package com.clx.performance.model.breakcontract; package com.clx.performance.model.breakcontract;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn; import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
...@@ -8,9 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -8,9 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
...@@ -28,7 +29,7 @@ public class BreakContractDriverRecord implements HasKey<Integer> { ...@@ -28,7 +29,7 @@ public class BreakContractDriverRecord implements HasKey<Integer> {
private Integer id; private Integer id;
@TableField("trigger_type") @TableField("trigger_type")
@Schema(description="触发类型:1系统触发 2手动触发") @Schema(description="触发类型:1系统触发 2手动触发 3.异常上报")
private Integer triggerType; private Integer triggerType;
@TableField("break_contract_party_type") @TableField("break_contract_party_type")
...@@ -79,6 +80,36 @@ public class BreakContractDriverRecord implements HasKey<Integer> { ...@@ -79,6 +80,36 @@ public class BreakContractDriverRecord implements HasKey<Integer> {
@Schema(description="结算单编号") @Schema(description="结算单编号")
private String settlementNo; private String settlementNo;
@TableField("exception_report_no")
@Schema(description="异常上报单号")
private String exceptionReportNo;
@TableField("exception_category")
@Schema(description="异常类别")
private String exceptionCategory;
@TableField("exception_type")
@Schema(description="异常类型")
private String exceptionType;
@TableField("picture_url")
@Schema(description="图片")
private String pictureUrl;
@TableField("video_url")
@Schema(description="视频")
private String videoUrl;
@TableField("read_flag")
@Schema(description="已读未读标志 0:未读 1:已读")
private String readFlag;
@TableField("remark") @TableField("remark")
@Schema(description="备注") @Schema(description="备注")
private String remark; private String remark;
......
package com.clx.performance.service;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogService {
}
package com.clx.performance.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.open.sdk.request.action.*;
import com.clx.performance.param.pc.DealExceptionReportParam;
import com.clx.performance.param.pc.PageExceptionReportParam;
import com.clx.performance.param.pc.TransferDriverBreakContractParam;
import com.clx.performance.vo.pc.OrderChildExceptionReportVO;
import com.msl.common.result.Result;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportService {
Result<String> smbSyncExceptionReportInfo(SmbSyncExceptionReportInfoAction action);
Result<Object> smbSyncExceptionReportResult(SmbSyncExceptionReportResultAction action);
Result<Object> smbWithdrawExceptionReport(SmbWithdrawExceptionReportAction action);
Result<String> mslSyncExceptionReportInfo(MslSyncExceptionReportInfoAction action);
Result<Object> mslSyncExceptionReportResult(MslSyncExceptionReportResultAction action);
Result<Object> mslWithdrawExceptionReport(MslWithdrawExceptionReportAction action);
void updateDealExceptionReport(DealExceptionReportParam param);
Page<OrderChildExceptionReportVO> pageExceptionReport(PageExceptionReportParam param);
SXSSFWorkbook exportExceptionReport(PageExceptionReportParam param);
OrderChildExceptionReportVO getExceptionReport(Integer id);
void transferDriverBreakContract(TransferDriverBreakContractParam param);
}
...@@ -23,6 +23,8 @@ public interface BreakContractDriverRecordService { ...@@ -23,6 +23,8 @@ public interface BreakContractDriverRecordService {
IPage<DriverBreakContractDriverRecordVO> driverPageRecord(DriverPageBreakContractDriverRecordParam param); IPage<DriverBreakContractDriverRecordVO> driverPageRecord(DriverPageBreakContractDriverRecordParam param);
String breakNoGenerate();
void saveDriverRecordOfOrderChildCancel(OrderChild orderChild, Long createBy, String createName); void saveDriverRecordOfOrderChildCancel(OrderChild orderChild, Long createBy, String createName);
void saveDriverRecordOfArriveSendAddressTimeout(OrderChild orderChild, Long createBy, String createName); void saveDriverRecordOfArriveSendAddressTimeout(OrderChild orderChild, Long createBy, String createName);
...@@ -33,4 +35,8 @@ public interface BreakContractDriverRecordService { ...@@ -33,4 +35,8 @@ public interface BreakContractDriverRecordService {
BigDecimal getBreakContractFigure(String childNo); BigDecimal getBreakContractFigure(String childNo);
Integer getChildTruckDemand(String childNo); Integer getChildTruckDemand(String childNo);
Integer getShowBreakContractRed();
void updateBreakContractRead();
} }
package com.clx.performance.service.impl;
import com.clx.performance.service.OrderChildExceptionReportDealLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Service
@Slf4j
public class OrderChildExceptionReportDealLogServiceImpl implements OrderChildExceptionReportDealLogService {
}
...@@ -209,6 +209,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -209,6 +209,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsVO.setReceiveWaitSystem(orderInfoFeign.getReveiveWaitSystem()); orderGoodsVO.setReceiveWaitSystem(orderInfoFeign.getReveiveWaitSystem());
orderGoodsVO.setReceiveWaitSystemName(orderInfoFeign.getReveiveWaitSystemName()); orderGoodsVO.setReceiveWaitSystemName(orderInfoFeign.getReveiveWaitSystemName());
orderGoodsVO.setReceiveWaitMode(orderInfoFeign.getReveiveWaitMode()); orderGoodsVO.setReceiveWaitMode(orderInfoFeign.getReveiveWaitMode());
orderGoodsVO.setOrderSource(orderInfoFeign.getOrderSource());
return orderGoodsVO; return orderGoodsVO;
} }
......
...@@ -128,7 +128,8 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -128,7 +128,8 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
} }
private String breakNoGenerate() { @Override
public String breakNoGenerate() {
return "WYD"+uniqueOrderNumService.getUniqueOrderNum( return "WYD"+uniqueOrderNumService.getUniqueOrderNum(
LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY)); LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY));
} }
...@@ -321,4 +322,21 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -321,4 +322,21 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
} }
return 0; return 0;
} }
@Override
public Integer getShowBreakContractRed() {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long count = breakContractDriverRecordDao.getShowBreakContractRed(loginUserInfo.getUserNo());
if(count > 0 ){
return 1;
}
return 0;
}
@Override
public void updateBreakContractRead() {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
breakContractDriverRecordDao.updateBreakContractRead(loginUserInfo.getUserNo());
}
} }
...@@ -20,8 +20,8 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -20,8 +20,8 @@ public class BreakContractDriverRecordSqlProvider {
" child_no, truck_no, truck_own_user_no, truck_own_name, " + " child_no, truck_no, truck_own_user_no, truck_own_name, " +
" driver_user_no, driver_name, figure, time_limit, " + " driver_user_no, driver_name, figure, time_limit, " +
" date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " + " date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " +
" settlement_no, " + " settlement_no,exception_report_no,exception_category,exception_type," +
" remark, " + " remark,picture_url,video_url, " +
" create_by, create_name, " + " create_by, create_name, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " + " date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime " " date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
...@@ -47,8 +47,8 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -47,8 +47,8 @@ public class BreakContractDriverRecordSqlProvider {
" child_no, truck_no, truck_own_user_no, truck_own_name, " + " child_no, truck_no, truck_own_user_no, truck_own_name, " +
" driver_user_no, driver_name, figure, time_limit, " + " driver_user_no, driver_name, figure, time_limit, " +
" date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " + " date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " +
" settlement_no, " + " settlement_no,exception_report_no,exception_category,exception_type," +
" remark, " + " remark,picture_url,video_url, " +
" create_by, create_name, " + " create_by, create_name, " +
" date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " + " date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime " " date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
......
package com.clx.performance.struct;
import com.clx.performance.model.OrderChildExceptionReportOperationLog;
import com.clx.performance.vo.pc.OrderChildExceptionReportOperationLogVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildExceptionReportOperationLogStruct {
List<OrderChildExceptionReportOperationLogVO> convertList(List<OrderChildExceptionReportOperationLog> list);
}
package com.clx.performance.struct;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.open.sdk.request.action.MslSyncExceptionReportInfoAction;
import com.clx.open.sdk.request.action.SmbSyncExceptionReportInfoAction;
import com.clx.performance.model.OrderChildExceptionReport;
import com.clx.performance.vo.pc.OrderChildExceptionReportVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildExceptionReportStruct {
OrderChildExceptionReport convertInfoSmbAction(SmbSyncExceptionReportInfoAction action);
OrderChildExceptionReport convertInfoMslAction(MslSyncExceptionReportInfoAction action);
Page<OrderChildExceptionReportVO> convertPage(IPage<OrderChildExceptionReport> page);
OrderChildExceptionReportVO convert(OrderChildExceptionReport report);
}
...@@ -14,6 +14,7 @@ public enum BreakContractRecordEnum { ...@@ -14,6 +14,7 @@ public enum BreakContractRecordEnum {
public enum TriggerType { public enum TriggerType {
SYSTEM(1, "系统触发"), SYSTEM(1, "系统触发"),
MANUAL(2, "手动触发"), MANUAL(2, "手动触发"),
EXCEPTION_REPORT(3, "异常上报"),
; ;
private final Integer code; private final Integer code;
...@@ -22,6 +23,10 @@ public enum BreakContractRecordEnum { ...@@ -22,6 +23,10 @@ public enum BreakContractRecordEnum {
public static Optional<TriggerType> getByCode(Integer code) { public static Optional<TriggerType> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst(); return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
} }
public static String getMsgByCode(int code) {
return getByCode(code).map(BreakContractRecordEnum.TriggerType::getMsg).orElse(null);
}
} }
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
...@@ -37,6 +42,26 @@ public enum BreakContractRecordEnum { ...@@ -37,6 +42,26 @@ public enum BreakContractRecordEnum {
public static Optional<BreakContractPartyType> getByCode(Integer code) { public static Optional<BreakContractPartyType> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst(); return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
} }
public static String getMsgByCode(int code) {
return getByCode(code).map(BreakContractRecordEnum.BreakContractPartyType::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum ReadFlag {
NO(0, "未读"),
YES(1, "已读"),
;
private final Integer code;
private final String msg;
public static Optional<ReadFlag> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
} }
} }
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum CarrierExceptionLogEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
CREATE(1, "创建违约单"),
TIMEOUT(2, "超时货主处理"),
APPEAL(3, "申诉"),
APPEAL_DEAL(4, "申诉处理"),
AGREE(5, "同意扣罚"),
TRANSFER_DRIVER_BREAK_CONTRACT(6, "转司机违约"),
;
private final Integer code;
private final String name;
public static Optional<Type> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(Integer code) {
if (code == null) {return null;}
return getByCode(code).map(Type::getName).orElse(null);
}
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum CarrierExceptionReportEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
//:1:待处理 2:申诉中 3:已处理 4:已撤回
WAIT_DEAL(1, "待处理"),
APPEAL_IN_PROGRESS(2, "申诉中"),
PROCESSED(3, "已处理"),
WITHDRAWN(4, "已撤回"),
;
private final Integer code;
private final String name;
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(Integer code) {
if (code == null) {return null;}
return getByCode(code).map(Status::getName).orElse(null);
}
}
}
...@@ -4,6 +4,7 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction; ...@@ -4,6 +4,7 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.action.*;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
...@@ -14,13 +15,14 @@ import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO; ...@@ -14,13 +15,14 @@ import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO;
import com.clx.performance.vo.pc.PerformanceProgressVO; import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import jakarta.validation.constraints.NotEmpty;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import jakarta.validation.constraints.NotEmpty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -76,4 +78,34 @@ public interface PerformanceSDKFeign { ...@@ -76,4 +78,34 @@ public interface PerformanceSDKFeign {
@GetMapping("clx-performance/feign/sdk/queryOrderStatistics") @GetMapping("clx-performance/feign/sdk/queryOrderStatistics")
Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList") Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList); @NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList);
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportInfo")
Result<String> smbSyncExceptionReportInfo(@RequestBody @Validated SmbSyncExceptionReportInfoAction action);
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportResult")
Result<Object> smbSyncExceptionReportResult(@RequestBody @Validated SmbSyncExceptionReportResultAction action);
@PostMapping("clx-performance/feign/sdk/smbWithdrawExceptionReport")
Result<Object> smbWithdrawExceptionReport(@RequestBody @Validated SmbWithdrawExceptionReportAction action);
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportInfo")
Result<String> mslSyncExceptionReportInfo(@RequestBody @Validated MslSyncExceptionReportInfoAction action);
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportResult")
Result<Object> mslSyncExceptionReportResult(@RequestBody @Validated MslSyncExceptionReportResultAction action);
@PostMapping("clx-performance/feign/sdk/mslWithdrawExceptionReport")
Result<Object> mslWithdrawExceptionReport(@RequestBody @Validated MslWithdrawExceptionReportAction action);
} }
package com.clx.performance.param.pc;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName DealExceptionReportParam
* @Description
* @Author kavin
* @Date 2024/10/22 20:07
* @Version 1.0
*/
@Getter
@Setter
public class DealExceptionReportParam {
@NotNull(message = "异常上报ID不能为空")
@Schema(description="异常上报ID")
private Integer id;
@NotNull(message = "处理方式不能为空")
@Schema(description="处理方式 1:同意扣罚 2:申诉" ,example = "枚举 ExceptionReportEnum.DealWay ")
private Integer dealWay;
@Schema(description="申诉原因")
private String appealReason;
@Schema(description="图片")
private List<String> pictureUrl;
@Schema(description="视频")
private List<String> videoUrl;
}
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageExceptionReportParam
* @Description
* @Author kavin
* @Date 2024/10/23 13:31
* @Version 1.0
*/
@Getter
@Setter
public class PageExceptionReportParam extends PageParam {
@Schema(description="三方异常上报编号")
private String thirdReportNo;
@Schema(description="来源 1:数煤宝 3:供应链")
private Integer source;
@Schema(description="运单编号")
private String childNo;
@Schema(description="车牌号/手机号")
private String truckNoOrMobile;
@Schema(description="状态:1:待处理 2:申诉中 3:已处理 4:已撤回")
private Integer status;
@Schema(description="开始时间")
private String beginTime;
@Schema(description="结束时间")
private String endTime;
}
package com.clx.performance.param.pc;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName TransferDriverBreakContractParam
* @Description
* @Author kavin
* @Date 2024/10/23 14:39
* @Version 1.0
*/
@Getter
@Setter
public class TransferDriverBreakContractParam {
@NotNull(message = "异常记录ID不能为空")
@Schema(description = "异常记录ID")
private Integer id;
@NotBlank(message = "违约原因不能为空")
@Schema(description = "违约原因")
private String reason;
}
package com.clx.performance.vo.app.breakcontract; package com.clx.performance.vo.app.breakcontract;
import com.alibaba.fastjson.JSON;
import com.clx.performance.enums.BreakContractRecordEnum;
import com.msl.common.convertor.type.MoneyOutConvert; import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
...@@ -8,6 +10,8 @@ import lombok.Setter; ...@@ -8,6 +10,8 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
/** /**
* @author liruixin * @author liruixin
...@@ -23,9 +27,14 @@ public class DriverBreakContractDriverRecordVO { ...@@ -23,9 +27,14 @@ public class DriverBreakContractDriverRecordVO {
@Schema(description="id") @Schema(description="id")
private Integer id; private Integer id;
@Schema(description="触发类型:1系统触发 2手动触发") @Schema(description="触发类型:1系统触发 2手动触发 3.异常上报")
private Integer triggerType; private Integer triggerType;
public String getTriggerTypeMsg(){
return BreakContractRecordEnum.TriggerType.getMsgByCode(triggerType);
}
@Schema(description="违约方类型:1平台 2货主 3司机") @Schema(description="违约方类型:1平台 2货主 3司机")
private Integer breakContractPartyType; private Integer breakContractPartyType;
...@@ -60,9 +69,52 @@ public class DriverBreakContractDriverRecordVO { ...@@ -60,9 +69,52 @@ public class DriverBreakContractDriverRecordVO {
@Schema(description="结算单编号") @Schema(description="结算单编号")
private String settlementNo; private String settlementNo;
@Schema(description="备注") @Schema(description="违约原因")
private String remark; private String remark;
@Schema(description="异常上报单号")
private String exceptionReportNo;
@Schema(description="异常类别")
private String exceptionCategory;
@Schema(description="异常类型")
private String exceptionType;
@Schema(description="图片字地址符串")
private String pictureUrl;
@Schema(description="视频地址字符串")
private String videoUrl;
@Schema(description="图片")
private List<String> pictureUrlList;
public List<String> getPictureUrlList(){
if(Objects.nonNull(pictureUrl)){
return JSON.parseArray(pictureUrl,String.class);
}
return null;
}
@Schema(description="视频")
private List<String> videoUrlList;
public List<String> getVideoUrlList(){
if(Objects.nonNull(videoUrl)){
return JSON.parseArray(videoUrl,String.class);
}
return null;
}
@Schema(description = "操作人名称", example = "")
private String createName;
@Schema(description="创建时间") @Schema(description="创建时间")
private String createTime; private String createTime;
......
package com.clx.performance.vo.pc;
import com.clx.performance.enums.CarrierExceptionLogEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OrderChildExceptionReportOperationLogVO {
@Schema(description = "id")
private Integer id; //id
@Schema(description = "异常上报编号")
private String reportNo; //运单编号
@Schema(description = "操作事项编码")
private Integer type;
@Schema(description = "操作事项")
private String typeMsg;
@Schema(description = "操作事项")
private String getTypeMsg(){
return CarrierExceptionLogEnum.Type.getMsgByCode(type);
}
//操作事项编码
@Schema(description = "处理结果")
private String result; //处理结果
@Schema(description = "操作人名称")
private String createName; //操作人名称
@Schema(description = "创建时间")
private String createTime; //创建时间
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.clx.open.sdk.enums.ExceptionReportEnum;
import com.clx.performance.enums.CarrierExceptionReportEnum;
import com.clx.performance.enums.SyncPlatformEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
@Getter
@Setter
public class OrderChildExceptionReportVO {
private Integer id;
@Schema(description="异常上报编号")
private String reportNo;
@Schema(description="三方异常上报编号")
private String thirdReportNo;
@Schema(description="来源")
private Integer source;
@Schema(description="来源描述")
private String sourceMsg;
public String getSourceMsg(){
return SyncPlatformEnum.Source.getNameByCode(source);
}
@Schema(description="异常类别")
private String exceptionCategory;
@Schema(description="异常类型")
private String exceptionType;
@Schema(description="车牌号/手机号")
private String truckNoOrMobile;
@Schema(description="运单编号")
private String childNo;
@Schema(description="状态:1:待处理 2:申诉中 3:已处理 4:已撤回")
private Integer status;
@Schema(description="状态:1:待处理 2:申诉中 3:已处理 4:已撤回")
private String statusMsg;
public String getStatusMsg(){
return CarrierExceptionReportEnum.Status.getMsgByCode(status);
}
@Schema(description="扣罚金额")
@MoneyOutConvert
private BigDecimal deductionAmount;
@Schema(description="异常上报时间")
private String reportTime;
@Schema(description="异常描述")
private String reason;
@Schema(description="处理人用户编码")
private Long dealUserCode;
@Schema(description="处理人用户姓名")
private String dealUser;
@Schema(description="处理时间")
private String dealTime;
@Schema(description="处理结果 1:承运违约 2:承运不违约 ")
private Integer dealResult;
@Schema(description="处理结果 1:承运违约 2:承运不违约")
private String dealResultMsg;
@Schema(description="处理结果")
public String getDealResultMsg(){
return ExceptionReportEnum.DealResult.getNameByCode(dealResult);
}
@Schema(description="是否转司机违约 1:是")
private Integer transferDriverBreakContract;
@Schema(description="是否转司机违约 1:是")
private String transferDriverBreakContractMsg;
public String transferDriverBreakContractMsg(){
if(Objects.nonNull(transferDriverBreakContract)){
return "是";
}else{
return "-";
}
}
@Schema(description="创建时间")
private String createTime;
@Schema(description="异常记录图片")
private List<String> pictureUrlList;
@Schema(description="异常记录视频")
private List<String> videoUrlList;
@Schema(description="申诉时间")
private String appealTime;
@Schema(description="申诉人")
private String createName;
@Schema(description="申诉原因")
private String appealReason;
@Schema(description="申诉图片")
private List<String> appealPictureUrlList;
@Schema(description="申诉视频")
private List<String> appealVideoUrlList;
@Schema(description="操作日志列表")
private List<OrderChildExceptionReportOperationLogVO> operationLogs;
}
package com.clx.performance.vo.pc.breakcontract.carrier; package com.clx.performance.vo.pc.breakcontract.carrier;
import com.alibaba.fastjson.JSON;
import com.msl.common.convertor.type.MoneyOutConvert; import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
...@@ -8,6 +9,8 @@ import lombok.Setter; ...@@ -8,6 +9,8 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
/** /**
* @author liruixin * @author liruixin
...@@ -23,7 +26,7 @@ public class BreakContractDriverRecordVO { ...@@ -23,7 +26,7 @@ public class BreakContractDriverRecordVO {
@Schema(description="id") @Schema(description="id")
private Integer id; private Integer id;
@Schema(description="触发类型:1系统触发 2手动触发") @Schema(description="触发类型:1系统触发 2手动触发 3.异常上报")
private Integer triggerType; private Integer triggerType;
@Schema(description="违约方类型:1平台 2货主 3司机") @Schema(description="违约方类型:1平台 2货主 3司机")
...@@ -60,9 +63,52 @@ public class BreakContractDriverRecordVO { ...@@ -60,9 +63,52 @@ public class BreakContractDriverRecordVO {
@Schema(description="结算单编号") @Schema(description="结算单编号")
private String settlementNo; private String settlementNo;
@Schema(description="备注") @Schema(description="违约原因")
private String remark; private String remark;
@Schema(description="异常上报单号")
private String exceptionReportNo;
@Schema(description="异常类别")
private String exceptionCategory;
@Schema(description="异常类型")
private String exceptionType;
@Schema(description="图片字地址符串")
private String pictureUrl;
@Schema(description="视频地址字符串")
private String videoUrl;
@Schema(description="图片")
private List<String> pictureUrlList;
public List<String> getPictureUrlList(){
if(Objects.nonNull(pictureUrl)){
return JSON.parseArray(pictureUrl,String.class);
}
return null;
}
@Schema(description="视频")
private List<String> videoUrlList;
public List<String> getVideoUrlList(){
if(Objects.nonNull(videoUrl)){
return JSON.parseArray(videoUrl,String.class);
}
return null;
}
@Schema(description = "操作人名称", example = "")
private String createName;
@Schema(description="创建时间") @Schema(description="创建时间")
private String createTime; private String createTime;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论