提交 d1f9919e authored 作者: liruixin's avatar liruixin

货主结算单详情接口合并结算单操作日志

上级 be1f867b
......@@ -72,5 +72,23 @@ public enum SettlementOwnerEnum {
}
}
@Getter
@AllArgsConstructor
public enum MergeStatus {
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String msg;
public static Optional<MergeStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(MergeStatus::getMsg).orElse(null);
}
}
}
......@@ -9,9 +9,9 @@ import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(description = "货主结算单")
@Getter
@Setter
@ToString
......@@ -143,5 +143,11 @@ public class CarrierSettlementOwnerDetailVO {
@ApiModelProperty(value = "创建时间", example = "2023-01-01 00:00:00")
private String createTime;
@ApiModelProperty(value = "结算单合并明细")
private List<SettlementMergeVO> mergers;
@ApiModelProperty(value = "结算单操作日志")
private List<SettlementLogVO> settlementLogs;
}
\ No newline at end of file
package com.clx.settlement.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class SettlementLogVO {
@ApiModelProperty(value = "类型", example = "9")
private Integer type;
@ApiModelProperty(value = "内容", example = "已完结")
private String remark;
@ApiModelProperty(value = "操作人名称", example = "小李")
private String createName;
@ApiModelProperty(value = "创建时间", example = "2023-01-01 00:00:00")
private String createTime;
}
\ No newline at end of file
package com.clx.settlement.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class SettlementMergeVO {
@ApiModelProperty(value = "结算单编号", example = "JS415")
private String settlementNo;
@ApiModelProperty(value = "结算子单号", example = "JS012")
private String settlementSubNo;
@ApiModelProperty(value = "操作人", example = "李四")
private String mergedBy;
@ApiModelProperty(value = "合并时间", example = "2023-01-01 00:00:00")
private String mergeTime;
}
\ No newline at end of file
......@@ -2,8 +2,11 @@ package com.clx.performance.dao;
import com.clx.performance.mapper.SettlementLogMapper;
import com.clx.performance.model.SettlementLog;
import com.clx.performance.model.SettlementOwner;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 结算单日志
......@@ -12,4 +15,6 @@ import com.msl.common.dao.BaseDao;
*/
public interface SettlementLogDao extends BaseDao<SettlementLogMapper, SettlementLog, Integer> {
List<SettlementLog> getSettlementLogs(String settlementNo);
}
......@@ -4,12 +4,11 @@ import com.clx.performance.mapper.SettlementOwnerMapper;
import com.clx.performance.model.SettlementOwner;
import com.msl.common.dao.BaseDao;
/**
* @Author: aiqinguo
* @Description: 货主结算单
* @Date: 2023-10-11 18:00:53
* @Version: 1.0
*/
import java.util.List;
public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, SettlementOwner, Integer> {
List<SettlementOwner> getMergeSettlementNos(String settlementNo);
}
package com.clx.performance.dao.impl;
import com.clx.performance.dao.SettlementLogDao;
import com.clx.performance.enums.SettlementOwnerEnum;
import com.clx.performance.mapper.SettlementLogMapper;
import com.clx.performance.model.SettlementLog;
import com.clx.performance.model.SettlementOwner;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 结算单日志
......@@ -15,5 +19,10 @@ import org.springframework.stereotype.Repository;
@Repository
public class SettlementLogDaoImpl extends BaseDaoImpl<SettlementLogMapper, SettlementLog, Integer> implements SettlementLogDao {
@Override
public List<SettlementLog> getSettlementLogs(String settlementNo) {
return super.list(lQrWrapper()
.eq(SettlementLog::getSettlementNo, settlementNo)
.orderByDesc(SettlementLog::getId));
}
}
package com.clx.performance.dao.impl;
import com.clx.performance.dao.SettlementOwnerDao;
import com.clx.performance.enums.SettlementOwnerEnum;
import com.clx.performance.mapper.SettlementOwnerMapper;
import com.clx.performance.model.SettlementOwner;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 货主结算单
......@@ -14,6 +17,11 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, SettlementOwner, Integer> implements SettlementOwnerDao {
@Override
public List<SettlementOwner> getMergeSettlementNos(String settlementNo) {
return super.list(lQrWrapper()
.eq(SettlementOwner::getSettlementNo, settlementNo)
.eq(SettlementOwner::getMergeStatus, SettlementOwnerEnum.MergeStatus.YES.getCode())
.orderByDesc(SettlementOwner::getId));
}
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.SettlementLogDao;
import com.clx.performance.dao.SettlementOwnerDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.SettlementLog;
import com.clx.performance.model.SettlementOwner;
import com.clx.performance.service.SettlementOwnerService;
import com.clx.performance.struct.SettlementLogStruct;
import com.clx.performance.struct.SettlementOwnerStruct;
import com.clx.settlement.vo.pc.CarrierSettlementOwnerDetailVO;
import com.clx.settlement.vo.pc.SettlementLogVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author liruixin
* Date 2023-10-12
......@@ -24,10 +30,27 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
private final SettlementOwnerStruct settlementOwnerStruct;
private final SettlementLogDao settlementLogDao;
private final SettlementLogStruct settlementLogStruct;
@Override
public CarrierSettlementOwnerDetailVO getCarrierSettlementOwnerDetail(Integer id) {
//结算单详情
SettlementOwner settlementOwner =settlementOwnerDao.getEntityByKey(id).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
return settlementOwnerStruct.convert(settlementOwner);
CarrierSettlementOwnerDetailVO detail = settlementOwnerStruct.convertToDetail(settlementOwner);
String settlementNo = settlementOwner.getSettlementNo();
//合并结算单
List<SettlementOwner> mergeSettlementNos = settlementOwnerDao.getMergeSettlementNos(settlementNo);
detail.setMergers(settlementOwnerStruct.convertToMergeList(mergeSettlementNos));
//操作日志
List<SettlementLog> settlementLogs = settlementLogDao.getSettlementLogs(settlementNo);
List<SettlementLogVO> settlementLogVOS = settlementLogStruct.convert(settlementLogs);
detail.setSettlementLogs(settlementLogVOS);
return detail;
}
}
package com.clx.performance.struct;
import com.clx.performance.model.SettlementLog;
import com.clx.settlement.vo.pc.SettlementLogVO;
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 SettlementLogStruct {
List<SettlementLogVO> convert(List<SettlementLog> settlementLogs);
}
......@@ -3,11 +3,14 @@ package com.clx.performance.struct;
import com.clx.performance.enums.SettlementOwnerEnum;
import com.clx.performance.model.SettlementOwner;
import com.clx.settlement.vo.pc.CarrierSettlementOwnerDetailVO;
import com.clx.settlement.vo.pc.SettlementMergeVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {SettlementOwnerEnum.class, DateUtils.class})
public interface SettlementOwnerStruct {
......@@ -17,6 +20,9 @@ public interface SettlementOwnerStruct {
@Mapping(target = "invoiceStatusMsg", expression = "java(SettlementOwnerEnum.InvoiceStatus.getMsgByCode(settlementOwner.getInvoiceStatus()))")
@Mapping(target = "statusCode", source = "status")
@Mapping(target = "statusMsg", expression = "java(SettlementOwnerEnum.Status.getMsgByCode(settlementOwner.getStatus()))")
CarrierSettlementOwnerDetailVO convert(SettlementOwner settlementOwner);
CarrierSettlementOwnerDetailVO convertToDetail(SettlementOwner settlementOwner);
List<SettlementMergeVO> convertToMergeList(List<SettlementOwner> settlementOwners);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论