供应商评价及客户评价-自动生成代码

This commit is contained in:
2025-12-17 17:30:53 +08:00
parent 77f7b3e588
commit 9abc415a8a
33 changed files with 2901 additions and 25 deletions

View File

@ -0,0 +1,99 @@
package com.xjrsoft.module.sales.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class AddLngScoreDtlDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,73 @@
package com.xjrsoft.module.sales.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class AddLngScoreDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
private List<AddLngScoreDtlDto> lngScoreDtlList;
}

View File

@ -0,0 +1,62 @@
package com.xjrsoft.module.sales.dto;
import com.xjrsoft.common.page.PageInput;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页查询入参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LngScorePageDto extends PageInput {
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评分日期字段开始时间
*/
@ApiModelProperty("评分日期字段开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGradeStart;
/**
* 评分日期字段结束时间
*/
@ApiModelProperty("评分日期字段结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGradeEnd;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,142 @@
package com.xjrsoft.module.sales.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.ValueDirectionType;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@LogTable(source="lng_score_dtl",name="客户评价")
public class UpdateLngScoreDtlDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 评分信息主键
*/
@LogField(name="评分信息主键",index=1)
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@LogField(name="评价体系主键",index=2)
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@LogField(name="评价体系-条目主键",index=3)
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@LogField(name="评分事项(只读)",index=4)
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@LogField(name="评分标准(只读)",index=5)
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@LogField(name="评分部门(只读)",index=6)
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@LogField(name="显示顺序",index=7)
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@LogField(name="实际评分部门编码(当前登录人所在部门)",index=8)
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@LogField(name="实际评分人编码(当前登录人)",index=9)
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@LogField(name="实际评分时间",index=10)
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@LogField(name="分数",index=11)
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@LogField(name="分数说明",index=12)
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@LogField(name="备注",index=13)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=14)
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,109 @@
package com.xjrsoft.module.sales.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.ValueDirectionType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@LogTable(source="lng_score",name="客户评价")
public class UpdateLngScoreDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 评分日期
*/
@LogField(name="评分日期",index=1)
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@LogField(name="评价体系主键",index=2)
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@LogField(name="表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)",index=3)
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@LogField(name="供应商/客户",index=4)
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@LogField(name="分数",index=5)
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@LogField(name="审批状态(未审批/审批中/已审批/已驳回)",index=6)
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@LogField(name="备注",index=7)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=8)
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
@LogJoin(name = "lngScoreDtl子表",
columns = {
@LogJoinColumn(field = "sId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngScoreDtlDto.class, type = JoinType.MANY)
private List<UpdateLngScoreDtlDto> lngScoreDtlList;
}

View File

@ -0,0 +1,170 @@
package com.xjrsoft.module.sales.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScoreDtlVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
}

View File

@ -0,0 +1,61 @@
package com.xjrsoft.module.sales.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.xjrsoft.common.annotation.Trans;
import com.xjrsoft.common.enums.TransType;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页列表出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScorePageVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private String id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
@Trans(type = TransType.API, id = "93d735dcb7364a0f8102188ec4d77ac7")
private String gsId;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
@Trans(type = TransType.DIC, id = "1990669393069129729")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,132 @@
package com.xjrsoft.module.sales.vo;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScoreVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
private List<LngScoreDtlVo> lngScoreDtlList;
}

View File

@ -0,0 +1,99 @@
package com.xjrsoft.module.supplier.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class AddLngScoreDtlDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,73 @@
package com.xjrsoft.module.supplier.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class AddLngScoreDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
private List<AddLngScoreDtlDto> lngScoreDtlList;
}

View File

@ -0,0 +1,62 @@
package com.xjrsoft.module.supplier.dto;
import com.xjrsoft.common.page.PageInput;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页查询入参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LngScorePageDto extends PageInput {
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评分日期字段开始时间
*/
@ApiModelProperty("评分日期字段开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGradeStart;
/**
* 评分日期字段结束时间
*/
@ApiModelProperty("评分日期字段结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateGradeEnd;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,142 @@
package com.xjrsoft.module.supplier.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.ValueDirectionType;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@LogTable(source="lng_score_dtl",name="供应商评价")
public class UpdateLngScoreDtlDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 评分信息主键
*/
@LogField(name="评分信息主键",index=1)
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@LogField(name="评价体系主键",index=2)
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@LogField(name="评价体系-条目主键",index=3)
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@LogField(name="评分事项(只读)",index=4)
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@LogField(name="评分标准(只读)",index=5)
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@LogField(name="评分部门(只读)",index=6)
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@LogField(name="显示顺序",index=7)
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@LogField(name="实际评分部门编码(当前登录人所在部门)",index=8)
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@LogField(name="实际评分人编码(当前登录人)",index=9)
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@LogField(name="实际评分时间",index=10)
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@LogField(name="分数",index=11)
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@LogField(name="分数说明",index=12)
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@LogField(name="备注",index=13)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=14)
@ApiModelProperty("租户id")
private Long tenantId;
}

View File

@ -0,0 +1,109 @@
package com.xjrsoft.module.supplier.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pictc.annotations.datalog.JoinCaseType;
import com.pictc.annotations.datalog.JoinType;
import com.pictc.annotations.datalog.LogField;
import com.pictc.annotations.datalog.LogJoin;
import com.pictc.annotations.datalog.LogJoinColumn;
import com.pictc.annotations.datalog.LogTable;
import com.pictc.annotations.datalog.ValueDirectionType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@LogTable(source="lng_score",name="供应商评价")
public class UpdateLngScoreDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@LogField(name="主键",index=0)
@ApiModelProperty("主键")
private Long id;
/**
* 评分日期
*/
@LogField(name="评分日期",index=1)
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@LogField(name="评价体系主键",index=2)
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@LogField(name="表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)",index=3)
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@LogField(name="供应商/客户",index=4)
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@LogField(name="分数",index=5)
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@LogField(name="审批状态(未审批/审批中/已审批/已驳回)",index=6)
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@LogField(name="备注",index=7)
@ApiModelProperty("备注")
private String note;
/**
* 租户id
*/
@LogField(name="租户id",index=8)
@ApiModelProperty("租户id")
private Long tenantId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
@LogJoin(name = "lngScoreDtl子表",
columns = {
@LogJoinColumn(field = "sId",relatedField = "id", valueDirection = ValueDirectionType.RIGHT)
},
caseType = JoinCaseType.FULL, target = UpdateLngScoreDtlDto.class, type = JoinType.MANY)
private List<UpdateLngScoreDtlDto> lngScoreDtlList;
}

View File

@ -0,0 +1,170 @@
package com.xjrsoft.module.supplier.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScoreDtlVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
}

View File

@ -0,0 +1,61 @@
package com.xjrsoft.module.supplier.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.xjrsoft.common.annotation.Trans;
import com.xjrsoft.common.enums.TransType;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @title: 分页列表出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScorePageVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private String id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
@JsonFormat(pattern = "HH:mm:ss")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
@Trans(type = TransType.API, id = "93d735dcb7364a0f8102188ec4d77ac7")
private String gsId;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
@Trans(type = TransType.DIC, id = "1990669393069129729")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
}

View File

@ -0,0 +1,132 @@
package com.xjrsoft.module.supplier.vo;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @title: 表单出参
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
public class LngScoreVo {
/**
* 主键
*/
@ApiModelProperty("主键")
private Long id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
private Long ruleUserId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
private List<LngScoreDtlVo> lngScoreDtlList;
}

View File

@ -92,11 +92,13 @@ public class CustomerController {
@ApiOperation(value="根据id查询LngCustomer信息")
@SaCheckPermission("customer:detail")
public R info(@RequestParam Long id){
/**
LngCustomer lngCustomer = customerService.getCustomerById(id);
if (lngCustomer == null) {
return R.error("找不到此数据!");
}
return R.ok(BeanUtil.toBean(lngCustomer, LngCustomerVo.class));
return R.ok(BeanUtil.toBean(lngCustomer, LngCustomerVo.class));**/
return R.ok(customerService.getCustomerById(id));
}
@GetMapping(value = "/datalog")
@ -115,6 +117,10 @@ public class CustomerController {
String code = codeRuleClient.genEncode(CUSTOMER_CODE);
dto.setCuCode("C"+code);
UpdateLngCustomerDto obj = dataService.insert(dto);
codeRuleClient.useEncode(CUSTOMER_CODE);
return R.ok(obj);
/**
return R.ok(dataService.insert(dto,new DataOperationListener<UpdateLngCustomerDto>() {
@Override
@ -126,14 +132,15 @@ public class CustomerController {
@Override
public UpdateLngCustomerDto after(DataOperationContent<UpdateLngCustomerDto> content) {
String msg = CommonCallUtils.saveAfter(content.getTableName(),content.getIdValue());
if (StringUtils.isNotEmpty(msg)) {
if (StringUtils.isNotEmpty(msg)) {
throw new BusinessException(BusinessCode.ofArgs(ExceptionCommonCode.DB_FUNCTION_EXEC_ERROR, msg));
}
codeRuleClient.useEncode(CUSTOMER_CODE);
return content.getObj();
}
}));
**/
}
@ -141,7 +148,9 @@ public class CustomerController {
@ApiOperation(value = "修改LngCustomer")
@SaCheckPermission("customer:edit")
public R update(@Valid @RequestBody UpdateLngCustomerDto dto){
return R.ok(dataService.updateById(dto));
/**
return R.ok(dataService.updateById(dto,new DataOperationListener<UpdateLngCustomerDto>() {
@Override
@ -158,6 +167,7 @@ public class CustomerController {
return content.getObj();
}
}));
**/
}
@DeleteMapping

View File

@ -0,0 +1,119 @@
package com.xjrsoft.module.sales.controller;
import java.util.List;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xjrsoft.common.model.result.R;
import com.xjrsoft.common.page.ConventPage;
import com.xjrsoft.common.page.PageOutput;
import com.xjrsoft.common.utils.VoToColumnUtil;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
import com.xjrsoft.module.sales.dto.LngScorePageDto;
import com.xjrsoft.module.sales.dto.UpdateLngScoreDto;
import com.xjrsoft.module.sales.entity.LngScore;
import com.xjrsoft.module.sales.service.IScoreCustomerService;
import com.xjrsoft.module.sales.vo.LngScorePageVo;
import com.xjrsoft.module.sales.vo.LngScoreVo;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@RestController
@RequestMapping("/sales" + "/scoreCustomer")
@Api(value = "/sales" + "/scoreCustomer",tags = "客户评价代码")
@AllArgsConstructor
public class ScoreCustomerController {
private final IScoreCustomerService scoreCustomerService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngScore列表(分页)")
@SaCheckPermission("scoreCustomer:list")
public R page(@Valid LngScorePageDto dto){
LambdaQueryWrapper<LngScore> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.like(StrUtil.isNotBlank(dto.getCpCode()),LngScore::getCpCode,dto.getCpCode())
.eq(ObjectUtil.isNotNull(dto.getGsId()),LngScore::getGsId,dto.getGsId())
.between(ObjectUtil.isNotNull(dto.getDateGradeStart()) && ObjectUtil.isNotNull(dto.getDateGradeEnd()),LngScore::getDateGrade,dto.getDateGradeStart(),dto.getDateGradeEnd())
.eq(ObjectUtil.isNotNull(dto.getScore()),LngScore::getScore,dto.getScore())
.like(StrUtil.isNotBlank(dto.getApproCode()),LngScore::getApproCode,dto.getApproCode())
.like(StrUtil.isNotBlank(dto.getNote()),LngScore::getNote,dto.getNote())
.orderByDesc(LngScore::getId)
.select(LngScore.class,x -> VoToColumnUtil.fieldsToColumns(LngScorePageVo.class).contains(x.getProperty()));
IPage<LngScore> page = scoreCustomerService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngScorePageVo> pageOutput = ConventPage.getPageOutput(page, LngScorePageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngScore信息")
@SaCheckPermission("scoreCustomer:detail")
public R info(@RequestParam Long id){
LngScore lngScore = scoreCustomerService.getByIdDeep(id);
if (lngScore == null) {
return R.error("找不到此数据!");
}
return R.ok(BeanUtil.toBean(lngScore, LngScoreVo.class));
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngScore数据详细日志")
@SaCheckPermission("scoreCustomer:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngScoreDto.class,id);
return R.ok(logs);
}
@PostMapping
@ApiOperation(value = "新增LngScore")
@SaCheckPermission("scoreCustomer:add")
public R add(@Valid @RequestBody UpdateLngScoreDto dto){
UpdateLngScoreDto res = dataService.insert(dto);
return R.ok(res.getId());
}
@PutMapping
@ApiOperation(value = "修改LngScore")
@SaCheckPermission("scoreCustomer:edit")
public R update(@Valid @RequestBody UpdateLngScoreDto dto){
return R.ok(dataService.updateById(dto));
}
@DeleteMapping
@ApiOperation(value = "删除")
@SaCheckPermission("scoreCustomer:delete")
public R delete(@Valid @RequestBody List<Long> ids){
return R.ok(dataService.deleteByIds(UpdateLngScoreDto.class, ids));
}
}

View File

@ -0,0 +1,139 @@
package com.xjrsoft.module.sales.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.github.yulichang.annotation.EntityMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@TableName("lng_score")
@ApiModel(value = "客户评价对象", description = "客户评价")
public class LngScore implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT)
private Long ruleUserId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
@TableField(exist = false)
@EntityMapping(thisField = "id", joinField = "sId")
private List<LngScoreDtl> lngScoreDtlList;
}

View File

@ -0,0 +1,168 @@
package com.xjrsoft.module.sales.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.github.yulichang.annotation.EntityMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 客户评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@TableName("lng_score_dtl")
@ApiModel(value = "客户评价对象", description = "客户评价")
public class LngScoreDtl implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT)
private Long ruleUserId;
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.sales.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.sales.entity.LngScoreDtl;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Mapper
public interface LngScoreDtlMapper extends MPJBaseMapper<LngScoreDtl> {
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.sales.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.sales.entity.LngScore;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Mapper
public interface LngScoreMapper extends MPJBaseMapper<LngScore> {
}

View File

@ -6,6 +6,7 @@ import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.sales.entity.LngCustomer;
import com.xjrsoft.module.sales.vo.LngCustomerVo;
/**
* @title: service
@ -24,6 +25,6 @@ public interface ICustomerService extends MPJBaseService<LngCustomer>, MPJDeepSe
*/
Boolean delete(List<Long> ids);
LngCustomer getCustomerById(Long id);
LngCustomerVo getCustomerById(Long id);
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.module.sales.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.sales.entity.LngScore;
import lombok.Data;
import java.util.List;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
public interface IScoreCustomerService extends MPJBaseService<LngScore>, MPJDeepService<LngScore>, MPJRelationService<LngScore> {
/**
* 新增
*
* @param lngScore
* @return
*/
Boolean add(LngScore lngScore);
/**
* 更新
*
* @param lngScore
* @return
*/
Boolean update(LngScore lngScore);
/**
* 删除
*
* @param ids
* @return
*/
Boolean delete(List<Long> ids);
}

View File

@ -20,8 +20,12 @@ import com.xjrsoft.module.sales.mapper.LngCustomerContactMapper;
import com.xjrsoft.module.sales.mapper.LngCustomerDocMapper;
import com.xjrsoft.module.sales.mapper.LngCustomerMapper;
import com.xjrsoft.module.sales.service.ICustomerService;
import com.xjrsoft.module.sales.vo.LngCustomerDocVo;
import com.xjrsoft.module.sales.vo.LngCustomerVo;
import com.xjrsoft.module.system.client.IFileClient;
import com.xjrsoft.module.system.vo.LngFileUploadVo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import lombok.AllArgsConstructor;
@ -61,32 +65,21 @@ public class CustomerServiceImpl extends MPJBaseServiceImpl<LngCustomerMapper, L
}
@Override
public LngCustomer getCustomerById(Long id) {
public LngCustomerVo getCustomerById(Long id) {
LngCustomer lngCustomer = this.getByIdDeep(id);
if(lngCustomer == null) {
return null;
}
if(CollectionUtil.isNotEmpty(lngCustomer.getLngCustomerDocList())) {
for(LngCustomerDoc lngCustomerDoc: lngCustomer.getLngCustomerDocList()) {
// List<LngFileUpload> tempList = lngFileUploadMapper.selectList(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableId, lngCustomerDoc.getId()).eq(LngFileUpload::getTableName, "lng_customer_doc"));
// if(CollectionUtil.isNotEmpty(tempList)) {
// CloudStorageService storageService = OssFactory.build();
// tempList.forEach(file -> {
// file.setPresignedUrl(storageService.fixUrl(file.getFilePath()));
// });
// lngCustomerDoc.setFileList(tempList);
// }
LngCustomerVo vo = BeanUtil.toBean(lngCustomer, LngCustomerVo.class);
if(CollectionUtil.isNotEmpty(vo.getLngCustomerDocList())) {
for(LngCustomerDocVo lngCustomerDoc: vo.getLngCustomerDocList()) {
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_customer_doc", "fileList", lngCustomerDoc.getId());
lngCustomerDoc.setFileList(fileList);
}
}
// List<LngFileUpload> fileList = lngFileUploadMapper.selectList(Wrappers.lambdaQuery(LngFileUpload.class).eq(LngFileUpload::getTableId, lngCustomer.getId()).eq(LngFileUpload::getTableName, "lng_customer"));
// if (CollUtil.isNotEmpty(fileList)) {
// CloudStorageService storageService = OssFactory.build();
// fileList.forEach(file -> {
// file.setPresignedUrl(storageService.fixUrl(file.getFilePath()));
// });
// }
//lngCustomer.setLngFileUploadList(fileList);
return lngCustomer;
List<LngFileUploadVo> fileList = fileClient.getTableFiles("lng_customer", "lngFileUploadList", vo.getId());
vo.setLngFileUploadList(fileList);
return vo;
}
}

View File

@ -0,0 +1,88 @@
package com.xjrsoft.module.sales.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.xjrsoft.module.sales.entity.LngScoreDtl;
import com.xjrsoft.module.sales.mapper.LngScoreDtlMapper;
import com.xjrsoft.module.sales.entity.LngScore;
import com.xjrsoft.module.sales.mapper.LngScoreMapper;
import com.xjrsoft.module.sales.service.IScoreCustomerService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class ScoreCustomerServiceImpl extends MPJBaseServiceImpl<LngScoreMapper, LngScore> implements IScoreCustomerService {
private final LngScoreMapper scoreCustomerLngScoreMapper;
private final LngScoreDtlMapper scoreCustomerLngScoreDtlMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean add(LngScore lngScore) {
scoreCustomerLngScoreMapper.insert(lngScore);
for (LngScoreDtl lngScoreDtl : lngScore.getLngScoreDtlList()) {
lngScoreDtl.setSId(lngScore.getId());
scoreCustomerLngScoreDtlMapper.insert(lngScoreDtl);
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean update(LngScore lngScore) {
scoreCustomerLngScoreMapper.updateById(lngScore);
//********************************* LngScoreDtl 增删改 开始 *******************************************/
{
// 查出所有子级的id
List<LngScoreDtl> lngScoreDtlList = scoreCustomerLngScoreDtlMapper.selectList(Wrappers.lambdaQuery(LngScoreDtl.class).eq(LngScoreDtl::getSId, lngScore.getId()).select(LngScoreDtl::getId));
List<Long> lngScoreDtlIds = lngScoreDtlList.stream().map(LngScoreDtl::getId).collect(Collectors.toList());
//原有子表单 没有被删除的主键
List<Long> lngScoreDtlOldIds = lngScore.getLngScoreDtlList().stream().map(LngScoreDtl::getId).filter(Objects::nonNull).collect(Collectors.toList());
//找到需要删除的id
List<Long> lngScoreDtlRemoveIds = lngScoreDtlIds.stream().filter(item -> !lngScoreDtlOldIds.contains(item)).collect(Collectors.toList());
for (LngScoreDtl lngScoreDtl : lngScore.getLngScoreDtlList()) {
//如果不等于空则修改
if (lngScoreDtl.getId() != null) {
scoreCustomerLngScoreDtlMapper.updateById(lngScoreDtl);
}
//如果等于空 则新增
else {
//已经不存在的id 删除
lngScoreDtl.setSId(lngScore.getId());
scoreCustomerLngScoreDtlMapper.insert(lngScoreDtl);
}
}
//已经不存在的id 删除
if(lngScoreDtlRemoveIds.size() > 0){
scoreCustomerLngScoreDtlMapper.deleteBatchIds(lngScoreDtlRemoveIds);
}
}
//********************************* LngScoreDtl 增删改 结束 *******************************************/
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean delete(List<Long> ids) {
scoreCustomerLngScoreMapper.deleteBatchIds(ids);
scoreCustomerLngScoreDtlMapper.delete(Wrappers.lambdaQuery(LngScoreDtl.class).in(LngScoreDtl::getSId, ids));
return true;
}
}

View File

@ -0,0 +1,115 @@
package com.xjrsoft.module.supplier.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xjrsoft.common.constant.GlobalConstant;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.xjrsoft.common.page.ConventPage;
import com.xjrsoft.common.page.PageOutput;
import com.xjrsoft.common.model.result.R;
import com.xjrsoft.common.utils.VoToColumnUtil;
import com.xjrsoft.module.supplier.dto.AddLngScoreDto;
import com.xjrsoft.module.supplier.dto.UpdateLngScoreDto;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.xjrsoft.module.supplier.dto.LngScorePageDto;
import com.xjrsoft.module.supplier.entity.LngScore;
import com.xjrsoft.module.supplier.service.IScoreSupplierService;
import com.xjrsoft.module.supplier.vo.LngScorePageVo;
import com.xjrsoft.module.datalog.vo.DataChangeLogVo;
import com.xjrsoft.module.datalog.service.DatalogService;
import com.xjrsoft.module.supplier.vo.LngScoreVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@RestController
@RequestMapping("/supplier" + "/scoreSupplier")
@Api(value = "/supplier" + "/scoreSupplier",tags = "供应商评价代码")
@AllArgsConstructor
public class ScoreSupplierController {
private final IScoreSupplierService scoreSupplierService;
private final DatalogService dataService;
@GetMapping(value = "/page")
@ApiOperation(value="LngScore列表(分页)")
@SaCheckPermission("scoreSupplier:list")
public R page(@Valid LngScorePageDto dto){
LambdaQueryWrapper<LngScore> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.like(StrUtil.isNotBlank(dto.getCpCode()),LngScore::getCpCode,dto.getCpCode())
.eq(ObjectUtil.isNotNull(dto.getGsId()),LngScore::getGsId,dto.getGsId())
.between(ObjectUtil.isNotNull(dto.getDateGradeStart()) && ObjectUtil.isNotNull(dto.getDateGradeEnd()),LngScore::getDateGrade,dto.getDateGradeStart(),dto.getDateGradeEnd())
.eq(ObjectUtil.isNotNull(dto.getScore()),LngScore::getScore,dto.getScore())
.like(StrUtil.isNotBlank(dto.getApproCode()),LngScore::getApproCode,dto.getApproCode())
.like(StrUtil.isNotBlank(dto.getNote()),LngScore::getNote,dto.getNote())
.orderByDesc(LngScore::getId)
.select(LngScore.class,x -> VoToColumnUtil.fieldsToColumns(LngScorePageVo.class).contains(x.getProperty()));
IPage<LngScore> page = scoreSupplierService.page(ConventPage.getPage(dto), queryWrapper);
PageOutput<LngScorePageVo> pageOutput = ConventPage.getPageOutput(page, LngScorePageVo.class);
return R.ok(pageOutput);
}
@GetMapping(value = "/info")
@ApiOperation(value="根据id查询LngScore信息")
@SaCheckPermission("scoreSupplier:detail")
public R info(@RequestParam Long id){
LngScore lngScore = scoreSupplierService.getByIdDeep(id);
if (lngScore == null) {
return R.error("找不到此数据!");
}
return R.ok(BeanUtil.toBean(lngScore, LngScoreVo.class));
}
@GetMapping(value = "/datalog")
@ApiOperation(value="根据id查询LngScore数据详细日志")
@SaCheckPermission("scoreSupplier:datalog")
public R datalog(@RequestParam Long id){
List<DataChangeLogVo> logs = dataService.findLogsByEntityId(UpdateLngScoreDto.class,id);
return R.ok(logs);
}
@PostMapping
@ApiOperation(value = "新增LngScore")
@SaCheckPermission("scoreSupplier:add")
public R add(@Valid @RequestBody UpdateLngScoreDto dto){
UpdateLngScoreDto res = dataService.insert(dto);
return R.ok(res.getId());
}
@PutMapping
@ApiOperation(value = "修改LngScore")
@SaCheckPermission("scoreSupplier:edit")
public R update(@Valid @RequestBody UpdateLngScoreDto dto){
return R.ok(dataService.updateById(dto));
}
@DeleteMapping
@ApiOperation(value = "删除")
@SaCheckPermission("scoreSupplier:delete")
public R delete(@Valid @RequestBody List<Long> ids){
return R.ok(dataService.deleteByIds(UpdateLngScoreDto.class, ids));
}
}

View File

@ -0,0 +1,139 @@
package com.xjrsoft.module.supplier.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.github.yulichang.annotation.EntityMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@TableName("lng_score")
@ApiModel(value = "供应商评价对象", description = "供应商评价")
public class LngScore implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 评分日期
*/
@ApiModelProperty("评分日期")
private LocalDateTime dateGrade;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)
*/
@ApiModelProperty("表名(隐藏,供应商/客户/承运商表名;应与评价体系的对象一致)")
private String tableName;
/**
* 供应商/客户
*/
@ApiModelProperty("供应商/客户")
private String cpCode;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 审批状态(未审批/审批中/已审批/已驳回)
*/
@ApiModelProperty("审批状态(未审批/审批中/已审批/已驳回)")
private String approCode;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT)
private Long ruleUserId;
/**
* lngScoreDtl
*/
@ApiModelProperty("lngScoreDtl子表")
@TableField(exist = false)
@EntityMapping(thisField = "id", joinField = "sId")
private List<LngScoreDtl> lngScoreDtlList;
}

View File

@ -0,0 +1,168 @@
package com.xjrsoft.module.supplier.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.github.yulichang.annotation.EntityMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.util.List;
/**
* @title: 供应商评价
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Data
@TableName("lng_score_dtl")
@ApiModel(value = "供应商评价对象", description = "供应商评价")
public class LngScoreDtl implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty("主键")
@TableId
private Long id;
/**
* 评分信息主键
*/
@ApiModelProperty("评分信息主键")
private Long sId;
/**
* 评价体系主键
*/
@ApiModelProperty("评价体系主键")
private Long gsId;
/**
* 评价体系-条目主键
*/
@ApiModelProperty("评价体系-条目主键")
private Long gsiId;
/**
* 评分事项(只读)
*/
@ApiModelProperty("评分事项(只读)")
private String itemName;
/**
* 评分标准(只读)
*/
@ApiModelProperty("评分标准(只读)")
private String itemDesc;
/**
* 评分部门(只读)
*/
@ApiModelProperty("评分部门(只读)")
private String eDeptCode;
/**
* 显示顺序
*/
@ApiModelProperty("显示顺序")
private Short sort;
/**
* 实际评分部门编码(当前登录人所在部门)
*/
@ApiModelProperty("实际评分部门编码(当前登录人所在部门)")
private String aDeptCode;
/**
* 实际评分人编码(当前登录人)
*/
@ApiModelProperty("实际评分人编码(当前登录人)")
private String aEmpCode;
/**
* 实际评分时间
*/
@ApiModelProperty("实际评分时间")
private Object aTime;
/**
* 分数
*/
@ApiModelProperty("分数")
private BigDecimal score;
/**
* 分数说明
*/
@ApiModelProperty("分数说明")
private String scoreDesc;
/**
* 备注
*/
@ApiModelProperty("备注")
private String note;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
@TableField(fill = FieldFill.INSERT)
private Long createUserId;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createDate;
/**
* 修改人id
*/
@ApiModelProperty("修改人id")
@TableField(fill = FieldFill.UPDATE)
private Long modifyUserId;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime modifyDate;
/**
* 租户id
*/
@ApiModelProperty("租户id")
private Long tenantId;
/**
* 部门id
*/
@ApiModelProperty("部门id")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
/**
* 数据权限id
*/
@ApiModelProperty("数据权限id")
@TableField(fill = FieldFill.INSERT)
private Long ruleUserId;
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.supplier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.supplier.entity.LngScoreDtl;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Mapper
public interface LngSupplierScoreDtlMapper extends MPJBaseMapper<LngScoreDtl> {
}

View File

@ -0,0 +1,17 @@
package com.xjrsoft.module.supplier.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.supplier.entity.LngScore;
import org.apache.ibatis.annotations.Mapper;
/**
* @title: mapper
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Mapper
public interface LngSupplierScoreMapper extends MPJBaseMapper<LngScore> {
}

View File

@ -0,0 +1,42 @@
package com.xjrsoft.module.supplier.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.extension.mapping.base.MPJDeepService;
import com.github.yulichang.extension.mapping.base.MPJRelationService;
import com.xjrsoft.module.supplier.entity.LngScore;
import lombok.Data;
import java.util.List;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
public interface IScoreSupplierService extends MPJBaseService<LngScore>, MPJDeepService<LngScore>, MPJRelationService<LngScore> {
/**
* 新增
*
* @param lngScore
* @return
*/
Boolean add(LngScore lngScore);
/**
* 更新
*
* @param lngScore
* @return
*/
Boolean update(LngScore lngScore);
/**
* 删除
*
* @param ids
* @return
*/
Boolean delete(List<Long> ids);
}

View File

@ -0,0 +1,88 @@
package com.xjrsoft.module.supplier.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.xjrsoft.module.supplier.entity.LngScoreDtl;
import com.xjrsoft.module.supplier.mapper.LngSupplierScoreDtlMapper;
import com.xjrsoft.module.supplier.entity.LngScore;
import com.xjrsoft.module.supplier.mapper.LngSupplierScoreMapper;
import com.xjrsoft.module.supplier.service.IScoreSupplierService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
/**
* @title: service
* @Author 管理员
* @Date: 2025-12-17
* @Version 1.0
*/
@Service
@AllArgsConstructor
public class ScoreSupplierServiceImpl extends MPJBaseServiceImpl<LngSupplierScoreMapper, LngScore> implements IScoreSupplierService {
private final LngSupplierScoreMapper scoreSupplierLngScoreMapper;
private final LngSupplierScoreDtlMapper scoreSupplierLngScoreDtlMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean add(LngScore lngScore) {
scoreSupplierLngScoreMapper.insert(lngScore);
for (LngScoreDtl lngScoreDtl : lngScore.getLngScoreDtlList()) {
lngScoreDtl.setSId(lngScore.getId());
scoreSupplierLngScoreDtlMapper.insert(lngScoreDtl);
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean update(LngScore lngScore) {
scoreSupplierLngScoreMapper.updateById(lngScore);
//********************************* LngScoreDtl 增删改 开始 *******************************************/
{
// 查出所有子级的id
List<LngScoreDtl> lngScoreDtlList = scoreSupplierLngScoreDtlMapper.selectList(Wrappers.lambdaQuery(LngScoreDtl.class).eq(LngScoreDtl::getSId, lngScore.getId()).select(LngScoreDtl::getId));
List<Long> lngScoreDtlIds = lngScoreDtlList.stream().map(LngScoreDtl::getId).collect(Collectors.toList());
//原有子表单 没有被删除的主键
List<Long> lngScoreDtlOldIds = lngScore.getLngScoreDtlList().stream().map(LngScoreDtl::getId).filter(Objects::nonNull).collect(Collectors.toList());
//找到需要删除的id
List<Long> lngScoreDtlRemoveIds = lngScoreDtlIds.stream().filter(item -> !lngScoreDtlOldIds.contains(item)).collect(Collectors.toList());
for (LngScoreDtl lngScoreDtl : lngScore.getLngScoreDtlList()) {
//如果不等于空则修改
if (lngScoreDtl.getId() != null) {
scoreSupplierLngScoreDtlMapper.updateById(lngScoreDtl);
}
//如果等于空 则新增
else {
//已经不存在的id 删除
lngScoreDtl.setSId(lngScore.getId());
scoreSupplierLngScoreDtlMapper.insert(lngScoreDtl);
}
}
//已经不存在的id 删除
if(lngScoreDtlRemoveIds.size() > 0){
scoreSupplierLngScoreDtlMapper.deleteBatchIds(lngScoreDtlRemoveIds);
}
}
//********************************* LngScoreDtl 增删改 结束 *******************************************/
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean delete(List<Long> ids) {
scoreSupplierLngScoreMapper.deleteBatchIds(ids);
scoreSupplierLngScoreDtlMapper.delete(Wrappers.lambdaQuery(LngScoreDtl.class).in(LngScoreDtl::getSId, ids));
return true;
}
}