提交 6e7a1257 authored 作者: liruixin's avatar liruixin

Merge branch 'v6.4_transportation_20231110' into test

...@@ -47,5 +47,25 @@ public enum BreakContractOwnerRecordEnum { ...@@ -47,5 +47,25 @@ public enum BreakContractOwnerRecordEnum {
} }
} }
@Getter
@AllArgsConstructor
public enum ConfirmStatus {
CONFIRMING(0, "确认中"),
CONFIRMED(1, "已确认"),
REJECT(2, "已驳回"),
;
private final Integer code;
private final String msg;
public static Optional<ConfirmStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(ConfirmStatus::getMsg).orElse(null);
}
}
} }
...@@ -83,6 +83,8 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -83,6 +83,8 @@ public enum PerformanceResultEnum implements ResultEnum {
SETTLEMENT_ORDER_STATUS_CHANGED(1401, "结算单状态已变更,请重新刷新页面"), SETTLEMENT_ORDER_STATUS_CHANGED(1401, "结算单状态已变更,请重新刷新页面"),
SETTLEMENT_NO_FOUND(1401, "结算单不存在"), SETTLEMENT_NO_FOUND(1401, "结算单不存在"),
MONEY_NO_SAME(1501, "货主提现金额和平台支付金额不一致"), MONEY_NO_SAME(1501, "货主提现金额和平台支付金额不一致"),
REJECT_REASON_NULL(1611, "驳回原因不能为空"),
REJECT_REASON_TOO_LARGE(1612, "驳回原因过长"),
ORDER_GOODS_WEIGHT_NOT_HAVE(1601, "货单可拉运吨数不足"), ORDER_GOODS_WEIGHT_NOT_HAVE(1601, "货单可拉运吨数不足"),
ORDER_GOODS_STATUS_NOT_GET(1602, "当前货单已关闭不可继续提取"), ORDER_GOODS_STATUS_NOT_GET(1602, "当前货单已关闭不可继续提取"),
......
...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
...@@ -19,7 +20,7 @@ public class CarrierUploadInvoiceImgParam { ...@@ -19,7 +20,7 @@ public class CarrierUploadInvoiceImgParam {
@ApiModelProperty(value = "id", example = "100") @ApiModelProperty(value = "id", example = "100")
private Integer id; private Integer id;
@NotNull(message = "结算凭证不能为空") @NotBlank(message = "结算凭证不能为空")
@Size(max=255,message = "结算凭证最多输入255个字符") @Size(max=255,message = "结算凭证最多输入255个字符")
@ApiModelProperty(value="结算凭证",example = "/123.img") @ApiModelProperty(value="结算凭证",example = "/123.img")
private String invoiceImg; private String invoiceImg;
......
package com.clx.performance.param.pc.owner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
/**
* @Author liruixin
* @create 2023-09-19 13:33
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
public class OwnerConfirmBreakContractSettlementParam {
@NotNull(message = "id不能为空")
@ApiModelProperty(value="列表id",example = "10")
private Integer id;
@NotNull(message = "状态不能为空")
@ApiModelProperty(value="确认状态:0-确认中;1-已经确认;2-已驳回",example = "1")
private Integer confirmStatus;
@ApiModelProperty(value="驳回原因",example = "驳回原因")
private String rejectReason;
}
...@@ -45,4 +45,10 @@ public class BreakContractOwnerRecordVO { ...@@ -45,4 +45,10 @@ public class BreakContractOwnerRecordVO {
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private String createTime; private String createTime;
@ApiModelProperty("确认状态:0-确认中;1-已经确认;2-已驳回")
private Integer confirmStatus;
@ApiModelProperty("驳回原因")
private String rejectReason;
} }
...@@ -42,6 +42,15 @@ public class PageOwnerBreakContractOwnerRecordVO { ...@@ -42,6 +42,15 @@ public class PageOwnerBreakContractOwnerRecordVO {
@ApiModelProperty("缴费状态:0未缴费;1已缴费 /赔付状态:0未赔付;1已赔付") @ApiModelProperty("缴费状态:0未缴费;1已缴费 /赔付状态:0未赔付;1已赔付")
private Integer payStatus; private Integer payStatus;
@ApiModelProperty("确认状态:0-确认中;1-已经确认;2-已驳回")
private String confirmStatusMsg;
@ApiModelProperty("确认状态:0-确认中;1-已经确认;2-已驳回")
private Integer confirmStatus;
@ApiModelProperty("驳回原因")
private String rejectReason;
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
......
package com.clx.performance.controller.pc.breakcontract.owner; package com.clx.performance.controller.pc.breakcontract.owner;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.enums.BreakContractOwnerRecordEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService; import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
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.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Objects;
@Slf4j @Slf4j
@RestController @RestController
...@@ -37,4 +44,21 @@ public class OwnerBreakContractOwnerRecordController { ...@@ -37,4 +44,21 @@ public class OwnerBreakContractOwnerRecordController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "更新确认状态",notes = "<br>By:李瑞新")
@PostMapping("/updateConfirmStatus")
public Result updateConfirmStatus(@RequestBody @Validated OwnerConfirmBreakContractSettlementParam param) {
if(Objects.equals(param.getConfirmStatus(), BreakContractOwnerRecordEnum.ConfirmStatus.REJECT.getCode())){
if(StringUtils.isBlank(param.getRejectReason())){
throw new ServiceSystemException(PerformanceResultEnum.REJECT_REASON_NULL);
}
if(param.getRejectReason().length() >100){
throw new ServiceSystemException(PerformanceResultEnum.REJECT_REASON_TOO_LARGE);
}
}
breakContractOwnerRecordService.updateConfirmStatus(param);
return Result.ok();
}
} }
...@@ -9,6 +9,9 @@ import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOw ...@@ -9,6 +9,9 @@ import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOw
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
import java.util.List;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
...@@ -22,4 +25,8 @@ public interface BreakContractOwnerRecordDao extends BaseDao<BreakContractOwnerR ...@@ -22,4 +25,8 @@ public interface BreakContractOwnerRecordDao extends BaseDao<BreakContractOwnerR
boolean uploadPayTime(BreakContractOwnerRecord breakContractOwnerRecord); boolean uploadPayTime(BreakContractOwnerRecord breakContractOwnerRecord);
boolean updateConfirmStatus(BreakContractOwnerRecord breakContractOwnerRecord);
List<BreakContractOwnerRecord> ownerNoConfirmTwoDaysList(LocalDateTime now);
} }
...@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.BreakContractOwnerRecordDao; import com.clx.performance.dao.breakcontract.BreakContractOwnerRecordDao;
import com.clx.performance.enums.BreakContractOwnerRecordEnum;
import com.clx.performance.enums.BreakContractSettlementDriverEnum; import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper; import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord; import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.model.breakcontract.BreakContractOwnerRule;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
...@@ -15,6 +17,8 @@ import com.msl.common.dao.impl.BaseDaoImpl; ...@@ -15,6 +17,8 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -57,4 +61,21 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw ...@@ -57,4 +61,21 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw
.set(BreakContractOwnerRecord::getPayTime, breakContractOwnerRecord.getPayTime()) .set(BreakContractOwnerRecord::getPayTime, breakContractOwnerRecord.getPayTime())
); );
} }
@Override
public boolean updateConfirmStatus(BreakContractOwnerRecord breakContractOwnerRecord) {
return update(lUdWrapper()
.eq(BreakContractOwnerRecord::getId, breakContractOwnerRecord.getId())
.set(BreakContractOwnerRecord::getConfirmStatus, breakContractOwnerRecord.getConfirmStatus())
.set(BreakContractOwnerRecord::getRejectReason, breakContractOwnerRecord.getRejectReason())
);
}
@Override
public List<BreakContractOwnerRecord> ownerNoConfirmTwoDaysList(LocalDateTime now) {
return list(lQrWrapper()
.eq(BreakContractOwnerRecord::getConfirmStatus, BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMING.getCode())
.le(BreakContractOwnerRecord::getCreateTime,now.minusDays(2))
);
}
} }
package com.clx.performance.job;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRecordDao;
import com.clx.performance.enums.BreakContractOwnerRecordEnum;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Component
public class OwnerBreakContractSettlementJob {
@Autowired
private BreakContractOwnerRecordService breakContractOwnerRecordService;
@Autowired
private BreakContractOwnerRecordDao breakContractOwnerRecordDao;
/**
* 如果货主2天都未确认,系统自动确认
*/
@XxlJob("autoConfirmOwnerBreakSettle")
public void autoConfirmOwnerBreakSettle() {
try {
List<BreakContractOwnerRecord> ownerRecords = breakContractOwnerRecordDao.ownerNoConfirmTwoDaysList(LocalDateTime.now());
if(CollectionUtils.isNotEmpty(ownerRecords)){
for(BreakContractOwnerRecord record :ownerRecords){
breakContractOwnerRecordService.generateBreakContractSettlement(record.getId());
record.setConfirmStatus(BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMED.getCode());
breakContractOwnerRecordDao.updateConfirmStatus(record);
}
}
} catch (Exception e) {
log.warn("违约结算单系统自动确认,异常原因:{}",e);
}
}
}
...@@ -59,6 +59,14 @@ public class BreakContractOwnerRecord implements HasKey<Integer> { ...@@ -59,6 +59,14 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@ApiModelProperty("结算单编号") @ApiModelProperty("结算单编号")
private String settlementNo; private String settlementNo;
@TableField("confirm_status")
@ApiModelProperty("确认状态:0-确认中;1-已经确认;2-已驳回")
private Integer confirmStatus;
@TableField("reject_reason")
@ApiModelProperty("驳回原因")
private String rejectReason;
@TableField("pay_status") @TableField("pay_status")
@ApiModelProperty("缴费状态:0未缴费;1已缴费") @ApiModelProperty("缴费状态:0未缴费;1已缴费")
private Integer payStatus; private Integer payStatus;
......
package com.clx.performance.service.breakcontract; package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
import java.time.LocalDateTime;
import java.util.List;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
...@@ -21,5 +26,9 @@ public interface BreakContractOwnerRecordService { ...@@ -21,5 +26,9 @@ public interface BreakContractOwnerRecordService {
void autoSaveRecord(BreakContractOwnerRecordAddParam param); void autoSaveRecord(BreakContractOwnerRecordAddParam param);
void updateConfirmStatus(OwnerConfirmBreakContractSettlementParam param);
void generateBreakContractSettlement(Integer breakContractId);
} }
...@@ -16,6 +16,7 @@ import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetai ...@@ -16,6 +16,7 @@ import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetai
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.owner.OwnerConfirmBreakContractSettlementParam;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService; import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService; import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.impl.UniqueOrderNumService; import com.clx.performance.service.impl.UniqueOrderNumService;
...@@ -25,6 +26,7 @@ import com.clx.performance.struct.breakcontract.BreakContractSettlementOwnerStru ...@@ -25,6 +26,7 @@ import com.clx.performance.struct.breakcontract.BreakContractSettlementOwnerStru
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.LocalDateTimeUtils; import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
...@@ -99,27 +101,22 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -99,27 +101,22 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
record.setCreateBy(userNo); record.setCreateBy(userNo);
record.setCreateName(loginUserInfo.getUserName()); record.setCreateName(loginUserInfo.getUserName());
if(Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.PLATFORM.getCode())){
//货主违约计费明细 record.setConfirmStatus(BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMED.getCode());
BreakContractSettlementOwnerDetail breakOwnerDetail = breakContractSettlementOwnerDetailStruct.convert(record); }else{
record.setConfirmStatus(BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMING.getCode());
}
String settlementNo = "WYJSD"+childNoGenerate(); String settlementNo = "WYJSD"+childNoGenerate();
breakOwnerDetail.setSettlementNo(settlementNo);
//货主违约结算单
BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail);
breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode());
record.setSettlementNo(settlementNo); record.setSettlementNo(settlementNo);
//保存违约记录 //保存违约记录
breakContractOwnerRecordDao.saveEntity(record); breakContractOwnerRecordDao.saveEntity(record);
//保存违约计费
breakContractSettlementOwnerDao.saveEntity(breakOwner); //生成违约结算单
//保存违约结算单 if(Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.PLATFORM.getCode())){
breakContractSettlementOwnerDetailDao.saveEntity(breakOwnerDetail); generateBreakContractSettlement(record.getId());
//保存结算单日志----创建结算单 }
breakContractSettlementLogService.saveBreakSettlementLog(settlementNo,
BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getCode(),BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),userNo,loginUserInfo.getUserName());
} }
@Override @Override
...@@ -169,26 +166,62 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -169,26 +166,62 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
record.setCreateBy(0L); record.setCreateBy(0L);
record.setCreateName("系统"); record.setCreateName("系统");
record.setConfirmStatus(BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMING.getCode());
String settlementNo = "WYJSD"+childNoGenerate();
record.setSettlementNo(settlementNo);
//保存违约记录
breakContractOwnerRecordDao.saveEntity(record);
}
@Override
public void updateConfirmStatus(OwnerConfirmBreakContractSettlementParam param) {
if(!Objects.equals(param.getConfirmStatus(),BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMING.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
//驳回或者确认
BreakContractOwnerRecord ownerRecord = new BreakContractOwnerRecord();
ownerRecord.setId(param.getId());
ownerRecord.setConfirmStatus(param.getConfirmStatus());
ownerRecord.setRejectReason(param.getRejectReason());
breakContractOwnerRecordDao.updateConfirmStatus(ownerRecord);
//货主同意生成违约结算单
if(Objects.equals(param.getConfirmStatus(),BreakContractOwnerRecordEnum.ConfirmStatus.CONFIRMED.getCode())){
generateBreakContractSettlement(param.getId());
}
}
/**
* 生成违约结算单
* @param breakContractId
*/
@Override
public void generateBreakContractSettlement(Integer breakContractId){
//违约记录查询
BreakContractOwnerRecord record = breakContractOwnerRecordDao.getEntityByKey(breakContractId).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
//货主违约计费明细 //货主违约计费明细
BreakContractSettlementOwnerDetail breakOwnerDetail = breakContractSettlementOwnerDetailStruct.convert(record); BreakContractSettlementOwnerDetail breakOwnerDetail = breakContractSettlementOwnerDetailStruct.convert(record);
String settlementNo = "WYJSD"+childNoGenerate();
breakOwnerDetail.setSettlementNo(settlementNo);
//货主违约结算单 //货主违约结算单
BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail); BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail);
breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode()); breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode());
record.setSettlementNo(settlementNo);
//保存违约记录
breakContractOwnerRecordDao.saveEntity(record);
//保存违约计费 //保存违约计费
breakContractSettlementOwnerDao.saveEntity(breakOwner); breakContractSettlementOwnerDao.saveEntity(breakOwner);
//保存违约结算单 //保存违约结算单
breakContractSettlementOwnerDetailDao.saveEntity(breakOwnerDetail); breakContractSettlementOwnerDetailDao.saveEntity(breakOwnerDetail);
//保存结算单日志----创建结算单 //保存结算单日志----创建结算单
breakContractSettlementLogService.saveBreakSettlementLog(settlementNo, breakContractSettlementLogService.saveBreakSettlementLog(record.getSettlementNo(),
BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getCode(),BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getMsg(), BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getCode(),BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),record.getCreateBy(),record.getCreateName()); OrderChildLogEnum.CreateType.OWNER.getCode(),record.getCreateBy(),record.getCreateName());
} }
} }
...@@ -17,7 +17,7 @@ public class BreakContractOwnerRecordSqlProvider { ...@@ -17,7 +17,7 @@ public class BreakContractOwnerRecordSqlProvider {
SELECT(" id, trigger_type, break_contract_party_type, break_no, " + SELECT(" id, trigger_type, break_contract_party_type, break_no, " +
" order_no, owner_user_no, owner_name, figure, " + " order_no, owner_user_no, owner_name, figure, " +
" settlement_no, " + " settlement_no, " +
" remark, " + " remark,confirm_status,reject_reason " +
" 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 "
......
...@@ -19,6 +19,7 @@ public interface BreakContractOwnerRecordStruct { ...@@ -19,6 +19,7 @@ public interface BreakContractOwnerRecordStruct {
@Named("toBaseVo") @Named("toBaseVo")
@Mapping(target = "payStatusMsg", expression = "java(BreakContractOwnerRecordEnum.PayStatus.getMsgByCode(detail.getPayStatus()))") @Mapping(target = "payStatusMsg", expression = "java(BreakContractOwnerRecordEnum.PayStatus.getMsgByCode(detail.getPayStatus()))")
@Mapping(target = "compensationStatusMsg", expression = "java(BreakContractOwnerRecordEnum.CompensationStatusStatus.getMsgByCode(detail.getPayStatus()))") @Mapping(target = "compensationStatusMsg", expression = "java(BreakContractOwnerRecordEnum.CompensationStatusStatus.getMsgByCode(detail.getPayStatus()))")
@Mapping(target = "confirmStatusMsg", expression = "java(BreakContractOwnerRecordEnum.ConfirmStatus.getMsgByCode(detail.getConfirmStatus()))")
PageOwnerBreakContractOwnerRecordVO convert(BreakContractOwnerRecord detail); PageOwnerBreakContractOwnerRecordVO convert(BreakContractOwnerRecord detail);
@IterableMapping(qualifiedByName = "toBaseVo") @IterableMapping(qualifiedByName = "toBaseVo")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论