ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java
@@ -1,110 +1,38 @@ package com.ycl.platform.domain.entity; import annotation.Excel; import com.ycl.system.domain.TreeEntity; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.platform.base.AbsEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 核算规则对象 t_calculate_rule * 钱核算规则表 * * @author ruoyi * @date 2024-04-03 * @author xp * @since 2024-04-26 */ public class CalculateMoneyRule extends TreeEntity { @Data @Accessors(chain = true) @TableName("t_calculate_money_rule") @ApiModel(value = "CalculateMoneyRule对象", description = "钱核算规则表") public class CalculateMoneyRule extends AbsEntity { private static final long serialVersionUID = 1L; /** */ private Long id; @ApiModelProperty("合同ID") @TableField("contract_id") private Integer contractId; /** */ @Excel(name = "") private String name; @ApiModelProperty("分数条件") @TableField("score_condition") private String scoreCondition; /** */ @Excel(name = "") private Long templateId; /** 单位id */ @Excel(name = "单位id") private Long unitId; /** 每少1%扣当月总服务费的多少 */ @Excel(name = "每少1%扣当月总服务费的多少") private BigDecimal value; /** $column.columnComment */ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @ApiModelProperty("规则描述") @TableField("description") private String description; public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setTemplateId(Long templateId) { this.templateId = templateId; } public Long getTemplateId() { return templateId; } public void setUnitId(Long unitId) { this.unitId = unitId; } public Long getUnitId() { return unitId; } public void setValue(BigDecimal value) { this.value = value; } public BigDecimal getValue() { return value; } public void setDescription(String description) { this.description = description; } public String getDescription() { return description; } @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("name", getName()) .append("templateId", getTemplateId()) .append("parentId", getParentId()) .append("unitId", getUnitId()) .append("value", getValue()) .append("description", getDescription()) .toString(); } } ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java
@@ -46,7 +46,7 @@ @ApiModelProperty("修改人") @TableField("update_by") private Long updateBy; private String updateBy; } ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java
New file @@ -0,0 +1,47 @@ package com.ycl.platform.domain.form; import com.ycl.system.domain.group.Update; import com.ycl.system.domain.group.Add; import com.ycl.platform.base.AbsForm; import com.ycl.platform.domain.entity.CalculateMoneyRule; import org.springframework.beans.BeanUtils; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 钱核算规则表表单 * * @author xp * @since 2024-04-26 */ @Data @Accessors(chain = true) @ApiModel(value = "CalculateMoneyRule表单", description = "钱核算规则表表单") public class CalculateMoneyRuleForm extends AbsForm { @NotNull(message = "合同ID不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("合同ID") private Integer contractId; @NotBlank(message = "分数条件不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("分数条件") private String scoreCondition; @NotBlank(message = "规则描述不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("规则描述") private String description; public static CalculateMoneyRule getEntityByForm(@NonNull CalculateMoneyRuleForm form, CalculateMoneyRule entity) { if(entity == null) { entity = new CalculateMoneyRule(); } BeanUtils.copyProperties(form, entity); return entity; } } ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java
@@ -46,10 +46,6 @@ @ApiModelProperty("哪月的") private Integer whichMonth; @NotNull(message = "修改人不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("修改人") private Long updateBy; public static CalculateReport getEntityByForm(@NonNull CalculateReportForm form, CalculateReport entity) { if(entity == null) { entity = new CalculateReport(); ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java
New file @@ -0,0 +1,23 @@ package com.ycl.platform.domain.query; import com.ycl.platform.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import jakarta.validation.constraints.NotBlank; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 钱核算规则表查询 * * @author xp * @since 2024-04-26 */ @Data @Accessors(chain = true) @ApiModel(value = "CalculateMoneyRule查询", description = "钱核算规则表查询") public class CalculateMoneyRuleQuery extends AbsQuery { } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java
New file @@ -0,0 +1,41 @@ package com.ycl.platform.domain.vo; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.CalculateMoneyRule; import java.util.List; import java.time.LocalDateTime; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 钱核算规则表展示 * * @author xp * @since 2024-04-26 */ @Data @Accessors(chain = true) public class CalculateMoneyRuleVO extends AbsVo { /** 合同ID */ private Integer contractId; /** 分数条件 */ private String scoreCondition; /** 规则描述 */ private String description; public static CalculateMoneyRuleVO getVoByEntity(@NonNull CalculateMoneyRule entity, CalculateMoneyRuleVO vo) { if(vo == null) { vo = new CalculateMoneyRuleVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java
@@ -22,18 +22,9 @@ @Data public class CalculateRecordVO extends AbsVo { /** 核算规则 */ private Integer ruleId; private String ruleName; /** 扣减方式 */ private String deductCategory; /** 规则描述 */ private String ruleDesc; /** 规则条件 */ private String ruleCondition; /** 合同 */ private Integer contractId; private String contractName; /** 扣减服务费 */ ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java
New file @@ -0,0 +1,59 @@ package com.ycl.platform.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.CalculateReport; import lombok.Data; import org.springframework.beans.BeanUtils; import org.springframework.lang.NonNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * 核算报告展示 * * @author xp * @since 2024-04-23 */ @Data public class CalculateReportDetailVO { private Integer id; @JsonFormat(pattern = "yyyy-MM-dd") private Date createTime; /** 合同 */ private Integer contractId; /** 运维单位 */ private String unitName; /** 合同名称 */ private String contractName; /** 核算日期 */ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime calculateTime; /** 扣减总金额 */ private BigDecimal deductMoney; /** 明细 */ private List<CalculateRecordVO> recordList; /** 核算规则 */ private List<CalculateMoneyRuleVO> ruleList; public static CalculateReportDetailVO getVoByEntity(@NonNull CalculateReport entity, CalculateReportDetailVO vo) { if(vo == null) { vo = new CalculateReportDetailVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
@@ -46,7 +46,7 @@ private Integer whichMonth; /** 修改人 */ private Long updateBy; private String updateBy; /** 明细 */ private List<CalculateRecordVO> recordList; ycl-server/src/main/java/com/ycl/platform/controller/CalculateMoneyRuleController.java
File was deleted ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
@@ -59,7 +59,7 @@ return calculateReportService.page(query); } @GetMapping("/backfill/money") @PostMapping("/backfill/money") @ApiOperation(value = "回填扣款金额", notes = "回填扣款金额") @PreAuthorize("@ss.hasPermi('system:calculate:report:backfill')") public Result backfill(@Validated @RequestBody CalculateReportBackfillForm form) { @@ -69,7 +69,7 @@ @GetMapping("/{id}") @ApiOperation(value = "详情", notes = "详情") @PreAuthorize("@ss.hasPermi('system:calculate:report:detail')") public Result detail(@PathVariable("id") String id) { public Result detail(@PathVariable("id") Long id) { return calculateReportService.detail(id); } ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java
@@ -1,63 +1,19 @@ package com.ycl.platform.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.vo.CalculateMoneyRuleVO; import com.ycl.platform.domain.form.CalculateMoneyRuleForm; import java.util.List; import org.apache.ibatis.annotations.Mapper; /** * 核算规则Mapper接口 * 钱核算规则表 Mapper 接口 * * @author ruoyi * @date 2024-04-03 * @author xp * @since 2024-04-26 */ public interface CalculateMoneyRuleMapper extends BaseMapper<CalculateMoneyRule> { /** * 查询核算规则 * * @param id 核算规则主键 * @return 核算规则 */ public CalculateMoneyRule selectCalculateRuleById(Long id); @Mapper public interface CalculateMoneyRuleMapper extends BaseMapper<CalculateMoneyRule> { /** * 查询核算规则列表 * * @param calculateMoneyRule 核算规则 * @return 核算规则集合 */ public List<CalculateMoneyRule> selectCalculateRuleList(CalculateMoneyRule calculateMoneyRule); /** * 新增核算规则 * * @param calculateMoneyRule 核算规则 * @return 结果 */ public int insertCalculateRule(CalculateMoneyRule calculateMoneyRule); /** * 修改核算规则 * * @param calculateMoneyRule 核算规则 * @return 结果 */ public int updateCalculateRule(CalculateMoneyRule calculateMoneyRule); /** * 删除核算规则 * * @param id 核算规则主键 * @return 结果 */ public int deleteCalculateRuleById(Long id); /** * 批量删除核算规则 * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteCalculateRuleByIds(Long[] ids); } ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java
@@ -19,11 +19,4 @@ @Mapper public interface CalculateRecordMapper extends BaseMapper<CalculateRecord> { /** * 格局合同ID获取明细 * * @param contractId 合同ID * @return */ List<CalculateRecordVO> getByContractId(@Param("contractId") Integer contractId); } ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java
@@ -4,6 +4,8 @@ import com.ycl.platform.domain.entity.CalculateReport; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.query.CalculateReportQuery; import com.ycl.platform.domain.vo.CalculateRecordVO; import com.ycl.platform.domain.vo.CalculateReportDetailVO; import com.ycl.platform.domain.vo.CalculateReportVO; import com.ycl.platform.domain.form.CalculateReportForm; import java.util.List; @@ -25,5 +27,14 @@ * @param query * @param page */ void page(@Param("query") CalculateReportQuery query, IPage<CalculateReportVO> page); IPage page(@Param("query") CalculateReportQuery query, IPage<CalculateReportVO> page); /** * 根据ID获取明细 * * @param id 核算ID * @return */ CalculateReportDetailVO getById(@Param("id") Long id); } ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java
New file @@ -0,0 +1,65 @@ package com.ycl.platform.service; import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.system.Result; import com.ycl.platform.domain.form.CalculateMoneyRuleForm; import com.ycl.platform.domain.query.CalculateMoneyRuleQuery; import java.util.List; /** * 钱核算规则表 服务类 * * @author xp * @since 2024-04-26 */ public interface CalculateMoneyRuleService extends IService<CalculateMoneyRule> { /** * 添加 * @param form * @return */ Result add(CalculateMoneyRuleForm form); /** * 修改 * @param form * @return */ Result update(CalculateMoneyRuleForm form); /** * 批量删除 * @param ids * @return */ Result remove(List<String> ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(CalculateMoneyRuleQuery query); /** * 根据id查找 * @param id * @return */ Result detail(String id); /** * 列表 * @return */ Result all(); } ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
@@ -35,14 +35,14 @@ * @param ids * @return */ Result remove(List<String> ids); Result remove(List<Long> ids); /** * id删除 * @param id * @return */ Result removeById(String id); Result removeById(Long id); /** * 分页查询 @@ -56,7 +56,7 @@ * @param id * @return */ Result detail(String id); Result detail(Long id); /** * 列表 ycl-server/src/main/java/com/ycl/platform/service/ICalculateMoneyRuleService.java
File was deleted ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java
@@ -1,95 +1,145 @@ package com.ycl.platform.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CalculateMoneyRule; import com.ycl.platform.mapper.CalculateMoneyRuleMapper; import com.ycl.platform.service.ICalculateMoneyRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ycl.platform.service.CalculateMoneyRuleService; import com.ycl.system.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.form.CalculateMoneyRuleForm; import com.ycl.platform.domain.vo.CalculateMoneyRuleVO; import com.ycl.platform.domain.query.CalculateMoneyRuleQuery; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.system.page.PageUtil; import org.springframework.stereotype.Service; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.RequiredArgsConstructor; /** * 核算规则Service业务层处理 * 钱核算规则表 服务实现类 * * @author ruoyi * @date 2024-04-03 * @author xp * @since 2024-04-26 */ @Service public class CalculateMoneyRuleServiceImpl extends ServiceImpl<CalculateMoneyRuleMapper, CalculateMoneyRule> implements ICalculateMoneyRuleService { @Autowired private CalculateMoneyRuleMapper calculateMoneyRuleMapper; @RequiredArgsConstructor public class CalculateMoneyRuleServiceImpl extends ServiceImpl<CalculateMoneyRuleMapper, CalculateMoneyRule> implements CalculateMoneyRuleService { private final CalculateMoneyRuleMapper calculateMoneyRuleMapper; /** * 查询核算规则 * * @param id 核算规则主键 * @return 核算规则 * 添加 * @param form * @return */ @Override public CalculateMoneyRule selectCalculateRuleById(Long id) { return calculateMoneyRuleMapper.selectCalculateRuleById(id); public Result add(CalculateMoneyRuleForm form) { CalculateMoneyRule entity = CalculateMoneyRuleForm.getEntityByForm(form, null); if(baseMapper.insert(entity) > 0) { return Result.ok("添加成功"); } return Result.error("添加失败"); } /** * 查询核算规则列表 * * @param calculateMoneyRule 核算规则 * @return 核算规则 * 修改 * @param form * @return */ @Override public List<CalculateMoneyRule> selectCalculateRuleList(CalculateMoneyRule calculateMoneyRule) { return calculateMoneyRuleMapper.selectCalculateRuleList(calculateMoneyRule); public Result update(CalculateMoneyRuleForm form) { CalculateMoneyRule entity = baseMapper.selectById(form.getId()); // 为空抛IllegalArgumentException,做全局异常处理 Assert.notNull(entity, "记录不存在"); BeanUtils.copyProperties(form, entity); if (baseMapper.updateById(entity) > 0) { return Result.ok("修改成功"); } return Result.error("修改失败"); } /** * 新增核算规则 * * @param calculateMoneyRule 核算规则 * @return 结果 * 批量删除 * @param ids * @return */ @Override public int insertCalculateRule(CalculateMoneyRule calculateMoneyRule) { return calculateMoneyRuleMapper.insertCalculateRule(calculateMoneyRule); public Result remove(List<String> ids) { if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } /** * 修改核算规则 * * @param calculateMoneyRule 核算规则 * @return 结果 * id删除 * @param id * @return */ @Override public int updateCalculateRule(CalculateMoneyRule calculateMoneyRule) { return calculateMoneyRuleMapper.updateCalculateRule(calculateMoneyRule); public Result removeById(String id) { if(baseMapper.deleteById(id) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } /** * 批量删除核算规则 * * @param ids 需要删除的核算规则主键 * @return 结果 * 分页查询 * @param query * @return */ @Override public int deleteCalculateRuleByIds(Long[] ids) { return calculateMoneyRuleMapper.deleteCalculateRuleByIds(ids); public Result page(CalculateMoneyRuleQuery query) { IPage<CalculateMoneyRule> page = new LambdaQueryChainWrapper<>(baseMapper) .orderByDesc(CalculateMoneyRule::getCreateTime) .page(PageUtil.getPage(query, CalculateMoneyRule.class)); List<CalculateMoneyRuleVO> vos = page.getRecords().stream() .map( entity -> CalculateMoneyRuleVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos).total(page.getTotal()); } /** * 删除核算规则信息 * * @param id 核算规则主键 * @return 结果 * 根据id查找 * @param id * @return */ @Override public int deleteCalculateRuleById(Long id) { return calculateMoneyRuleMapper.deleteCalculateRuleById(id); public Result detail(String id) { CalculateMoneyRule entity = baseMapper.selectById(id); Assert.notNull(entity, "记录不存在"); CalculateMoneyRuleVO vo = CalculateMoneyRuleVO.getVoByEntity(entity, null); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List<CalculateMoneyRule> entities = baseMapper.selectList(null); List<CalculateMoneyRuleVO> vos = entities.stream() .map( entity -> CalculateMoneyRuleVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos); } } ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -5,6 +5,7 @@ import com.ycl.platform.domain.entity.CalculateReport; import com.ycl.platform.domain.form.CalculateReportBackfillForm; import com.ycl.platform.domain.vo.CalculateRecordVO; import com.ycl.platform.domain.vo.CalculateReportDetailVO; import com.ycl.platform.mapper.CalculateRecordMapper; import com.ycl.platform.mapper.CalculateReportMapper; import com.ycl.platform.service.CalculateReportService; @@ -16,6 +17,8 @@ import java.math.BigDecimal; import java.util.List; import com.ycl.utils.SecurityUtils; import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.system.page.PageUtil; @@ -83,7 +86,7 @@ * @return */ @Override public Result remove(List<String> ids) { public Result remove(List<Long> ids) { if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("删除成功"); } @@ -96,7 +99,7 @@ * @return */ @Override public Result removeById(String id) { public Result removeById(Long id) { if(baseMapper.deleteById(id) > 0) { return Result.ok("删除成功"); } @@ -121,14 +124,10 @@ * @return */ @Override public Result detail(String id) { CalculateReport entity = baseMapper.selectById(id); Assert.notNull(entity, "记录不存在"); CalculateReportVO vo = CalculateReportVO.getVoByEntity(entity, null); public Result detail(Long id) { // 明细列表 List<CalculateRecordVO> recordList = calculateRecordMapper.getByContractId(entity.getContractId()); vo.setRecordList(recordList); return Result.ok().data(vo); CalculateReportDetailVO detail = baseMapper.getById(id); return Result.ok().data(detail); } /** ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
@@ -3,34 +3,17 @@ <mapper namespace="com.ycl.platform.mapper.CalculateRecordMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateRecordVO"> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateReportDetailVO"> <result column="id" property="id" /> <result column="create_time" property="createTime" /> <result column="rule_id" property="ruleId" /> <result column="rule_name" property="ruleName" /> <result column="deduct_category" property="deductCategory" /> <result column="rule_condition" property="ruleCondition" /> <result column="rule_desc" property="ruleDesc" /> <result column="deduct_category" property="unitName" /> <result column="score_condition" property="contractName" /> <result column="description" property="calculateTime" /> <result column="deduct_money" property="deductMoney" /> <result column="score" property="score" /> <result column="score" property="deductMoney" /> <collection property="recordList" column="contract_id" select="selectByContractId" ofType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO"/> </resultMap> <select id="getByContractId" resultMap="BaseResultMap"> SELECT tcr.id, tcr.create_time, tcr.deduct_money, tcr.score, tcr.rule_id, tcru.rule_name, tcru.deduct_category, tcru.rule_desc, tcru.rule_condition FROM t_calculate_record tcr INNER JOIN t_calculate_rule tcru ON tcr.rule_id = tcru.id AND tcr.contract_id = #{contractId} WHERE tcru.deleted = 0 AND tcr.deleted = 0 </select> </mapper> ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
@@ -4,37 +4,89 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateReportVO"> <result column="id" property="id" /> <result column="create_time" property="createTime" /> <result column="unit_name" property="unitName" /> <result column="name" property="contractName" /> <result column="contract_id" property="contractId" /> <result column="calculate_time" property="calculateTime" /> <result column="deduct_money" property="deductMoney" /> <result column="which_year" property="whichYear" /> <result column="which_month" property="whichMonth" /> <result column="update_by" property="updateBy" /> <result column="id" property="id"/> <result column="create_time" property="createTime"/> <result column="unit_name" property="unitName"/> <result column="name" property="contractName"/> <result column="contract_id" property="contractId"/> <result column="calculate_time" property="calculateTime"/> <result column="deduct_money" property="deductMoney"/> <result column="which_year" property="whichYear"/> <result column="which_month" property="whichMonth"/> <result column="update_by" property="updateBy"/> </resultMap> <select id="page" resultMap="BaseResultMap"> SELECT tyu.unit_name, tc.name, tcr.id, tcr.deduct_money, tcr.create_time, tcr.update_time, tcr.calculate_time tyu.unit_name, tc.name, tcr.id, tcr.deduct_money, tcr.create_time, tcr.update_time, tcr.calculate_time, tcr.which_year, tcr.which_month FROM t_calculate_report tcr INNER JOIN t_contract tc ON tcr.contract_id = tc.id INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id t_calculate_report tcr INNER JOIN t_contract tc ON tcr.contract_id = tc.id INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id <where> AND tcr.deleted = 0 AND tc.deleted = 0 AND tyu.deleted = 0 AND tcr.deleted = 0 AND tc.deleted = 0 AND tyu.deleted = 0 <if test="query.unitName != null and query.unitName != '' "> AND tyu.unit_name like concat('%', #{query.unitName}, '%') </if> </where> </select> <resultMap id="DetailResultMap" type="com.ycl.platform.domain.vo.CalculateReportDetailVO"> <result column="id" property="id"/> <result column="create_time" property="createTime"/> <result column="unit_name" property="unitName"/> <result column="name" property="contractName"/> <result column="contract_id" property="contractId"/> <result column="calculate_time" property="calculateTime"/> <result column="deduct_money" property="deductMoney"/> <collection property="ruleList" column="contract_id" ofType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO" select="selectRuleByContractId"/> <collection property="recordList" column="contract_id" ofType="com.ycl.platform.domain.vo.CalculateRecordVO" select="selectRecordByContractId"/> </resultMap> <select id="selectRuleByContractId" resultType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO"> SELECT id, description, score_condition as scoreCondition FROM t_calculate_money_rule WHERE contract_id = #{contractId} AND deleted = 0 </select> <select id="selectRecordByContractId" resultType="com.ycl.platform.domain.vo.CalculateRecordVO"> SELECT id, create_time as createTime, score, deduct_money as deductMoney FROM t_calculate_record WHERE contract_id = #{contractId} AND deleted = 0 </select> <select id="getById" resultMap="DetailResultMap"> SELECT tyu.unit_name, tc.name, tcr.id, tcr.contract_id, tcr.deduct_money, tcr.create_time, tcr.update_time, tcr.calculate_time FROM t_calculate_report tcr INNER JOIN t_contract tc ON tcr.contract_id = tc.id INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id WHERE tcr.id = #{id} </select> </mapper>