龚焕茏
2024-04-26 eb806b5ec0bb72536e78c1a7fcffb94bcd24cbbe
考核结果应用规则(算钱)新增、展示
9个文件已修改
225 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TContract.java
@@ -9,9 +9,22 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 * 运维合同对象 t_contract
@@ -35,6 +48,7 @@
    /**
     * 单位id
     */
    @NotBlank
    private Integer unitId;
    @TableField(exist = false)
@@ -43,18 +57,21 @@
    /**
     * 合同名称
     */
    @NotBlank
    private String name;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss")
    @NotNull
    private Date startTime;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh-mm-ss")
    @NotNull
    private Date endTime;
    /**
@@ -69,4 +86,11 @@
    @TableLogic
    private String deleted;
    @TableField(exist = false)
    @NotBlank
    private String ruleList;
    @TableField(exist = false)
    @NotNull
    private MultipartFile file;
}
ycl-server/src/main/java/com/ycl/platform/controller/ContractScoreController.java
@@ -6,10 +6,8 @@
import com.ycl.system.AjaxResult;
import com.ycl.system.controller.BaseController;
import com.ycl.system.page.TableDataInfo;
import com.ycl.utils.DateUtils;
import com.ycl.utils.poi.ExcelUtil;
import enumeration.BusinessType;
import enumeration.general.AuditingStatus;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -17,7 +15,6 @@
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 合同打分Controller
@@ -59,9 +56,7 @@
    @PreAuthorize("@ss.hasPermi('platform:score:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        ContractScore contractScore = defaultScoreService.getById(id);
        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
        return success(contractScore);
        return success(defaultScoreService.getById(id));
    }
    /**
@@ -71,11 +66,6 @@
    @Log(title = "合同打分", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ContractScore contractScore) {
        contractScore.setCreateUserId(getUserId());
        contractScore.setCreateUser(getUsername());
        contractScore.setAuditingStatus(AuditingStatus.WAIT);
        contractScore.setDeleted("0");
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        return toAjax(defaultScoreService.save(contractScore));
    }
@@ -86,7 +76,6 @@
    @Log(title = "合同打分", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ContractScore contractScore) {
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        return toAjax(defaultScoreService.updateById(contractScore));
    }
@@ -97,11 +86,7 @@
    @Log(title = "合同打分审核", businessType = BusinessType.UPDATE)
    @PostMapping("/auditing")
    public AjaxResult audit(@RequestBody ContractScore contractScore) {
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        contractScore.setAuditingTime(DateUtils.getNowDate());
        contractScore.setAuditingUser(getUsername());
        contractScore.setAuditingUserId(getUserId());
        return toAjax(defaultScoreService.updateById(contractScore));
        return toAjax(defaultScoreService.audit(contractScore));
    }
    /**
ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
@@ -2,6 +2,7 @@
import annotation.Log;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.query.YwUnitQuery;
@@ -40,6 +41,12 @@
        return tContractService.selectAll();
    }
    @PreAuthorize("@ss.hasPermi('system:contract:query')")
    @GetMapping("/selectMoneyRules")
    public AjaxResult selectMoneyRules(Integer contractId) {
        return success(tContractService.selectMoneyRules(contractId));
    }
    /**
     * 合同导入模板
     */
@@ -58,8 +65,8 @@
    @Log(title = "合同导入", businessType = BusinessType.IMPORT)
    @PreAuthorize("@ss.hasPermi('system:user:import')")
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, TContract tContract) {
        return tContractService.importData(file, tContract);
    public AjaxResult importData(TContract tContract) {
        return tContractService.importData(tContract.getFile(), tContract);
    }
    /**
ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java
@@ -62,4 +62,11 @@
     * @return
     */
    Result all();
    /**
     * 根据合同id查询
     * @param contractId 合同id
     * @return 数据
     */
    List<CalculateMoneyRule> selectMoneyRules(Integer contractId);
}
ycl-server/src/main/java/com/ycl/platform/service/IContractScoreService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.entity.ContractScore;
import java.io.Serializable;
import java.util.List;
/**
@@ -11,15 +12,7 @@
 * @author ruoyi
 * @date 2024-04-01
 */
public interface IContractScoreService extends IService<ContractScore>
{
    /**
     * 查询合同打分
     *
     * @param id 合同打分主键
     * @return 合同打分
     */
    public ContractScore selectDefaultScoreById(Long id);
public interface IContractScoreService extends IService<ContractScore> {
    /**
     * 查询合同打分列表
@@ -29,35 +22,21 @@
     */
    public List<ContractScore> selectDefaultScoreList(ContractScore contractScore);
    /**
     * 新增合同打分
     *
     * @param contractScore 合同打分
     * @return 结果
     */
    public int insertDefaultScore(ContractScore contractScore);
    @Override
    ContractScore getById(Serializable id);
    @Override
    boolean save(ContractScore contractScore);
    @Override
    boolean updateById(ContractScore contractScore);
    /**
     * 修改合同打分
     * 审核
     *
     * @param contractScore 合同打分
     * @param contractScore 数据
     * @return 结果
     */
    public int updateDefaultScore(ContractScore contractScore);
    /**
     * 批量删除合同打分
     *
     * @param ids 需要删除的合同打分主键集合
     * @return 结果
     */
    public int deleteDefaultScoreByIds(Long[] ids);
    /**
     * 删除合同打分信息
     *
     * @param id 合同打分主键
     * @return 结果
     */
    public int deleteDefaultScoreById(Long id);
    boolean audit(ContractScore contractScore);
}
ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
@@ -1,6 +1,7 @@
package com.ycl.platform.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.system.AjaxResult;
import jakarta.servlet.http.HttpServletResponse;
@@ -31,4 +32,11 @@
    AjaxResult importData(MultipartFile file, TContract tContract);
    List<TContract> selectAll();
    /**
     * 根据合同id查询钱核算规则
     * @param contractId 合同id
     * @return 规则
     */
    List<CalculateMoneyRule> selectMoneyRules(Integer contractId);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java
@@ -142,4 +142,11 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) {
        return new LambdaQueryChainWrapper<>(baseMapper)
                .eq(CalculateMoneyRule::getContractId, contractId)
                .list();
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java
@@ -9,15 +9,17 @@
import com.ycl.platform.mapper.TContractMapper;
import com.ycl.platform.mapper.YwUnitMapper;
import com.ycl.platform.service.IContractScoreService;
import com.ycl.system.entity.SysUser;
import com.ycl.utils.SecurityUtils;
import enumeration.general.AuditingStatus;
import org.apache.commons.lang3.ObjectUtils;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import utils.DateUtils;
import java.util.ArrayList;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 合同打分Service业务层处理
@@ -26,8 +28,7 @@
 * @date 2024-04-01
 */
@Service
public class ContractScoreServiceImpl extends ServiceImpl<ContractScoreMapper, ContractScore> implements IContractScoreService
{
public class ContractScoreServiceImpl extends ServiceImpl<ContractScoreMapper, ContractScore> implements IContractScoreService {
    @Autowired
    private ContractScoreMapper contractScoreMapper;
    @Autowired
@@ -38,26 +39,13 @@
    private CalculateRuleMapper calculateRuleMapper;
    /**
     * 查询合同打分
     *
     * @param id 合同打分主键
     * @return 合同打分
     */
    @Override
    public ContractScore selectDefaultScoreById(Long id)
    {
        return contractScoreMapper.selectDefaultScoreById(id);
    }
    /**
     * 查询合同打分列表
     *
     * @param contractScore 合同打分
     * @return 合同打分
     */
    @Override
    public List<ContractScore> selectDefaultScoreList(ContractScore contractScore)
    {
    public List<ContractScore> selectDefaultScoreList(ContractScore contractScore) {
        return new LambdaQueryChainWrapper<>(contractScoreMapper)
                .eq(ObjectUtils.isNotEmpty(contractScore.getUnitId()), ContractScore::getUnitId, contractScore.getUnitId())
                .between(ObjectUtils.isNotEmpty(contractScore.getCreateStartTime()), ContractScore::getCreateTime, contractScore.getCreateStartTime(), contractScore.getCreateEndTime())
@@ -76,53 +64,37 @@
                ).toList();
    }
    /**
     * 新增合同打分
     *
     * @param contractScore 合同打分
     * @return 结果
     */
    @Override
    public int insertDefaultScore(ContractScore contractScore)
    {
        contractScore.setCreateTime(DateUtils.getNowDate());
        return contractScoreMapper.insertDefaultScore(contractScore);
    public ContractScore getById(Serializable id) {
        ContractScore contractScore = super.getById(id);
        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
        return contractScore;
    }
    /**
     * 修改合同打分
     *
     * @param contractScore 合同打分
     * @return 结果
     */
    @Override
    public int updateDefaultScore(ContractScore contractScore)
    {
        contractScore.setUpdateTime(DateUtils.getNowDate());
        return contractScoreMapper.updateDefaultScore(contractScore);
    public boolean save(ContractScore contractScore) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        contractScore.setCreateUserId(user.getUserId());
        contractScore.setCreateUser(user.getNickName());
        contractScore.setAuditingStatus(AuditingStatus.WAIT);
        contractScore.setDeleted("0");
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        return super.save(contractScore);
    }
    /**
     * 批量删除合同打分
     *
     * @param ids 需要删除的合同打分主键
     * @return 结果
     */
    @Override
    public int deleteDefaultScoreByIds(Long[] ids)
    {
        return contractScoreMapper.deleteDefaultScoreByIds(ids);
    public boolean updateById(ContractScore contractScore) {
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        return super.updateById(contractScore);
    }
    /**
     * 删除合同打分信息
     *
     * @param id 合同打分主键
     * @return 结果
     */
    @Override
    public int deleteDefaultScoreById(Long id)
    {
        return contractScoreMapper.deleteDefaultScoreById(id);
    public boolean audit(ContractScore contractScore) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        contractScore.setAuditingTime(com.ycl.utils.DateUtils.getNowDate());
        contractScore.setAuditingUser(user.getNickName());
        contractScore.setAuditingUserId(user.getUserId());
        return super.updateById(contractScore);
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -3,10 +3,13 @@
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.merge.LoopMergeStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.handler.CommentWriteHandler;
import com.ycl.handler.CustomSheetWriteHandler;
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.platform.mapper.TContractMapper;
@@ -30,6 +33,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 【请填写功能名称】Service业务层处理
@@ -42,6 +46,7 @@
public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements ITContractService {
    private final ICalculateRuleService calculateRuleService;
    private final CalculateMoneyRuleServiceImpl calculateMoneyRuleService;
    private final YwUnitServiceImpl ywUnitService;
    @Override
@@ -184,6 +189,10 @@
        }
        // 批量保存规则
        calculateRuleService.saveBatch(calculateRulesToSave);
        //批量保存考核结果应用规则
        calculateMoneyRuleService.saveBatch(JSON.parseArray(tContract.getRuleList(), CalculateMoneyRule.class).stream().peek(
                calculateMoneyRule -> calculateMoneyRule.setContractId(tContract.getId().intValue())
        ).collect(Collectors.toList()));
        return AjaxResult.success("操作成功");
    }
@@ -195,4 +204,9 @@
                        tContract -> tContract.setUnitName(ywUnitService.getById(tContract.getUnitId()).getUnitName())
                ).toList();
    }
    @Override
    public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) {
        return calculateMoneyRuleService.selectMoneyRules(contractId);
    }
}