ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRecord.java
@@ -1,52 +1,42 @@ package com.ycl.platform.domain.entity; import annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.system.entity.BaseEntity; import lombok.Data; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import java.math.BigDecimal; import java.util.Date; 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_record * * @author ruoyi * @date 2024-04-03 * 核算记录 * * @author xp * @since 2024-04-23 */ @Data public class CalculateRecord extends BaseEntity { @Accessors(chain = true) @TableName("t_calculate_record") @ApiModel(value = "CalculateRecord对象", description = "核算记录") public class CalculateRecord extends AbsEntity { private static final long serialVersionUID = 1L; /** $column.columnComment */ private Long id; @ApiModelProperty("核算规则") @TableField("rule_id") private Integer ruleId; /** 核算记录日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "核算记录日期", width = 30, dateFormat = "yyyy-MM-dd") private Date date; @ApiModelProperty("合同") @TableField("contract_id") private Integer contractId; /** 核算规则 */ @Excel(name = "核算规则") private Long ruleId; @ApiModelProperty("扣减服务费") @TableField("deduct_money") private BigDecimal deductMoney; /** 单位id */ @Excel(name = "单位id") private Long unitId; /** 总服务费 */ @Excel(name = "总服务费") private BigDecimal totalAmount; /** 扣减服务费 */ @Excel(name = "扣减服务费") private BigDecimal deductAmount; /** 考核分数 */ @Excel(name = "考核分数") @ApiModelProperty("考核分数") @TableField("score") private BigDecimal score; ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateRecordForm.java
New file @@ -0,0 +1,54 @@ 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.CalculateRecord; import java.math.BigDecimal; import java.time.LocalDateTime; 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-23 */ @Data @Accessors(chain = true) @ApiModel(value = "CalculateRecord表单", description = "核算记录表单") public class CalculateRecordForm extends AbsForm { @NotNull(message = "核算规则不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("核算规则") private Integer ruleId; @NotNull(message = "合同不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("合同") private Integer contractId; @NotNull(message = "扣减服务费不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("扣减服务费") private BigDecimal deductMoney; @NotNull(message = "考核分数不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("考核分数") private BigDecimal score; public static CalculateRecord getEntityByForm(@NonNull CalculateRecordForm form, CalculateRecord entity) { if(entity == null) { entity = new CalculateRecord(); } BeanUtils.copyProperties(form, entity); return entity; } } ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateRecordQuery.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-23 */ @Data @Accessors(chain = true) @ApiModel(value = "CalculateRecord查询", description = "核算记录查询") public class CalculateRecordQuery extends AbsQuery { } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java
New file @@ -0,0 +1,46 @@ package com.ycl.platform.domain.vo; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.CalculateRecord; import java.math.BigDecimal; 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-23 */ @Data public class CalculateRecordVO extends AbsVo { /** 核算规则 */ private Integer ruleId; /** 合同 */ private Integer contractId; private String contractName; /** 扣减服务费 */ private BigDecimal deductMoney; /** 考核分数 */ private BigDecimal score; public static CalculateRecordVO getVoByEntity(@NonNull CalculateRecord entity, CalculateRecordVO vo) { if(vo == null) { vo = new CalculateRecordVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
@@ -20,7 +20,6 @@ * @since 2024-04-23 */ @Data @Accessors(chain = true) public class CalculateReportVO extends AbsVo { /** 合同 */ ycl-server/src/main/java/com/ycl/platform/controller/CalculateRecordController.java
File was deleted ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java
@@ -1,63 +1,19 @@ package com.ycl.platform.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.CalculateRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.vo.CalculateRecordVO; import com.ycl.platform.domain.form.CalculateRecordForm; import java.util.List; import org.apache.ibatis.annotations.Mapper; /** * 核算记录Mapper接口 * * @author ruoyi * @date 2024-04-03 * 核算记录 Mapper 接口 * * @author xp * @since 2024-04-23 */ public interface CalculateRecordMapper extends BaseMapper<CalculateRecord> { /** * 查询核算记录 * * @param id 核算记录主键 * @return 核算记录 */ public CalculateRecord selectCalculateRecordById(Long id); @Mapper public interface CalculateRecordMapper extends BaseMapper<CalculateRecord> { /** * 查询核算记录列表 * * @param calculateRecord 核算记录 * @return 核算记录集合 */ public List<CalculateRecord> selectCalculateRecordList(CalculateRecord calculateRecord); /** * 新增核算记录 * * @param calculateRecord 核算记录 * @return 结果 */ public int insertCalculateRecord(CalculateRecord calculateRecord); /** * 修改核算记录 * * @param calculateRecord 核算记录 * @return 结果 */ public int updateCalculateRecord(CalculateRecord calculateRecord); /** * 删除核算记录 * * @param id 核算记录主键 * @return 结果 */ public int deleteCalculateRecordById(Long id); /** * 批量删除核算记录 * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteCalculateRecordByIds(Long[] ids); } ycl-server/src/main/java/com/ycl/platform/service/CalculateRecordService.java
New file @@ -0,0 +1,65 @@ package com.ycl.platform.service; import com.ycl.platform.domain.entity.CalculateRecord; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.system.Result; import com.ycl.platform.domain.form.CalculateRecordForm; import com.ycl.platform.domain.query.CalculateRecordQuery; import java.util.List; /** * 核算记录 服务类 * * @author xp * @since 2024-04-23 */ public interface CalculateRecordService extends IService<CalculateRecord> { /** * 添加 * @param form * @return */ Result add(CalculateRecordForm form); /** * 修改 * @param form * @return */ Result update(CalculateRecordForm form); /** * 批量删除 * @param ids * @return */ Result remove(List<String> ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(CalculateRecordQuery query); /** * 根据id查找 * @param id * @return */ Result detail(String id); /** * 列表 * @return */ Result all(); } ycl-server/src/main/java/com/ycl/platform/service/ICalculateRecordService.java
File was deleted ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRecordServiceImpl.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.CalculateRecord; import com.ycl.platform.mapper.CalculateRecordMapper; import com.ycl.platform.service.ICalculateRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ycl.platform.service.CalculateRecordService; import com.ycl.system.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.form.CalculateRecordForm; import com.ycl.platform.domain.vo.CalculateRecordVO; import com.ycl.platform.domain.query.CalculateRecordQuery; 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-23 */ @Service public class CalculateRecordServiceImpl extends ServiceImpl<CalculateRecordMapper, CalculateRecord> implements ICalculateRecordService { @Autowired private CalculateRecordMapper calculateRecordMapper; @RequiredArgsConstructor public class CalculateRecordServiceImpl extends ServiceImpl<CalculateRecordMapper, CalculateRecord> implements CalculateRecordService { private final CalculateRecordMapper calculateRecordMapper; /** * 查询核算记录 * * @param id 核算记录主键 * @return 核算记录 * 添加 * @param form * @return */ @Override public CalculateRecord selectCalculateRecordById(Long id) { return calculateRecordMapper.selectCalculateRecordById(id); public Result add(CalculateRecordForm form) { CalculateRecord entity = CalculateRecordForm.getEntityByForm(form, null); if(baseMapper.insert(entity) > 0) { return Result.ok("添加成功"); } return Result.error("添加失败"); } /** * 查询核算记录列表 * * @param calculateRecord 核算记录 * @return 核算记录 * 修改 * @param form * @return */ @Override public List<CalculateRecord> selectCalculateRecordList(CalculateRecord calculateRecord) { return calculateRecordMapper.selectCalculateRecordList(calculateRecord); public Result update(CalculateRecordForm form) { CalculateRecord 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 calculateRecord 核算记录 * @return 结果 * 批量删除 * @param ids * @return */ @Override public int insertCalculateRecord(CalculateRecord calculateRecord) { return calculateRecordMapper.insertCalculateRecord(calculateRecord); public Result remove(List<String> ids) { if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } /** * 修改核算记录 * * @param calculateRecord 核算记录 * @return 结果 * id删除 * @param id * @return */ @Override public int updateCalculateRecord(CalculateRecord calculateRecord) { return calculateRecordMapper.updateCalculateRecord(calculateRecord); 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 deleteCalculateRecordByIds(Long[] ids) { return calculateRecordMapper.deleteCalculateRecordByIds(ids); public Result page(CalculateRecordQuery query) { IPage<CalculateRecord> page = new LambdaQueryChainWrapper<>(baseMapper) .orderByDesc(CalculateRecord::getCreateTime) .page(PageUtil.getPage(query, CalculateRecord.class)); List<CalculateRecordVO> vos = page.getRecords().stream() .map( entity -> CalculateRecordVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos).total(page.getTotal()); } /** * 删除核算记录信息 * * @param id 核算记录主键 * @return 结果 * 根据id查找 * @param id * @return */ @Override public int deleteCalculateRecordById(Long id) { return calculateRecordMapper.deleteCalculateRecordById(id); public Result detail(String id) { CalculateRecord entity = baseMapper.selectById(id); Assert.notNull(entity, "记录不存在"); CalculateRecordVO vo = CalculateRecordVO.getVoByEntity(entity, null); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List<CalculateRecord> entities = baseMapper.selectList(null); List<CalculateRecordVO> vos = entities.stream() .map( entity -> CalculateRecordVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos); } } ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
@@ -1,83 +1,15 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ycl.platform.mapper.CalculateRecordMapper"> <resultMap type="com.ycl.platform.domain.entity.CalculateRecord" id="CalculateRecordResult"> <result property="id" column="id" /> <result property="date" column="date" /> <result property="ruleId" column="rule_id" /> <result property="unitId" column="unit_id" /> <result property="totalAmount" column="total_amount" /> <result property="deductAmount" column="deduct_amount" /> <result property="score" column="score" /> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateRecordVO"> <result column="id" property="id" /> <result column="create_time" property="createTime" /> <result column="rule_id" property="ruleId" /> <result column="contract_id" property="contractId" /> <result column="deduct_money" property="deductMoney" /> <result column="score" property="score" /> </resultMap> <sql id="selectCalculateRecordVo"> select id, date, rule_id, unit_id, total_amount, deduct_amount, score from t_calculate_record </sql> <select id="selectCalculateRecordList" resultMap="CalculateRecordResult"> <include refid="selectCalculateRecordVo"/> <where> <if test="date != null "> and date = #{date}</if> <if test="ruleId != null "> and rule_id = #{ruleId}</if> <if test="unitId != null "> and unit_id = #{unitId}</if> <if test="totalAmount != null "> and total_amount = #{totalAmount}</if> <if test="deductAmount != null "> and deduct_amount = #{deductAmount}</if> <if test="score != null "> and score = #{score}</if> </where> </select> <select id="selectCalculateRecordById" resultMap="CalculateRecordResult"> <include refid="selectCalculateRecordVo"/> where id = #{id} </select> <insert id="insertCalculateRecord" parameterType="CalculateRecord"> insert into t_calculate_record <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="date != null">date,</if> <if test="ruleId != null">rule_id,</if> <if test="unitId != null">unit_id,</if> <if test="totalAmount != null">total_amount,</if> <if test="deductAmount != null">deduct_amount,</if> <if test="score != null">score,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="date != null">#{date},</if> <if test="ruleId != null">#{ruleId},</if> <if test="unitId != null">#{unitId},</if> <if test="totalAmount != null">#{totalAmount},</if> <if test="deductAmount != null">#{deductAmount},</if> <if test="score != null">#{score},</if> </trim> </insert> <update id="updateCalculateRecord"> update t_calculate_record <trim prefix="SET" suffixOverrides=","> <if test="date != null">date = #{date},</if> <if test="ruleId != null">rule_id = #{ruleId},</if> <if test="unitId != null">unit_id = #{unitId},</if> <if test="totalAmount != null">total_amount = #{totalAmount},</if> <if test="deductAmount != null">deduct_amount = #{deductAmount},</if> <if test="score != null">score = #{score},</if> </trim> where id = #{id} </update> <delete id="deleteCalculateRecordById" > delete from t_calculate_record where id = #{id} </delete> <delete id="deleteCalculateRecordByIds" > delete from t_calculate_record where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> </mapper> </mapper>