xiangpei
2024-04-26 b7dcd397a426496cb9f961f2cb69152815cc169f
核算报告功能实现
14个文件已修改
5个文件已添加
2个文件已删除
924 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CalculateMoneyRuleController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ICalculateMoneyRuleService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>