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

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

...@@ -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();
}
} }
...@@ -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.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);
}
} }
...@@ -104,6 +104,9 @@ public class BreakContractDriverRecord implements HasKey<Integer> { ...@@ -104,6 +104,9 @@ public class BreakContractDriverRecord implements HasKey<Integer> {
private String videoUrl; private String videoUrl;
@TableField("read_flag")
@Schema(description="已读未读标志 0:未读 1:已读")
private String readFlag;
......
...@@ -35,4 +35,8 @@ public interface BreakContractDriverRecordService { ...@@ -35,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();
} }
...@@ -322,4 +322,21 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -322,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 "
......
...@@ -40,4 +40,19 @@ public enum BreakContractRecordEnum { ...@@ -40,4 +40,19 @@ public enum BreakContractRecordEnum {
} }
} }
@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.vo.app.breakcontract; package com.clx.performance.vo.app.breakcontract;
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 DriverBreakContractDriverRecordVO { ...@@ -23,7 +26,7 @@ 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;
@Schema(description="违约方类型:1平台 2货主 3司机") @Schema(description="违约方类型:1平台 2货主 3司机")
...@@ -60,9 +63,52 @@ public class DriverBreakContractDriverRecordVO { ...@@ -60,9 +63,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.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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论