From b7dcd397a426496cb9f961f2cb69152815cc169f Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 26 四月 2024 13:44:47 +0800 Subject: [PATCH] 核算报告功能实现 --- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java | 41 ++ ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java | 4 ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java | 7 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java | 2 ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java | 62 --- ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml | 94 +++++- ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java | 23 + ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java | 13 ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java | 158 +++++++--- /dev/null | 62 ---- ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java | 47 +++ ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml | 31 - ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java | 11 ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java | 65 ++++ ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 17 ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java | 4 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java | 59 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java | 2 ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java | 6 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java | 120 +------ 20 files changed, 480 insertions(+), 348 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java index 9fba8f0..75073e6 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateMoneyRule.java +++ b/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%鎵e綋鏈堟�绘湇鍔¤垂鐨勫灏� */ - @Excel(name = "姣忓皯1%鎵e綋鏈堟�绘湇鍔¤垂鐨勫灏�") - 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(); - } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java index 733a28d..fb44a73 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateReport.java +++ b/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; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java new file mode 100644 index 0000000..cb4aa2f --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateMoneyRuleForm.java @@ -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; + } + +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java index 6c3a2ea..c5485b2 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java +++ b/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(); diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java new file mode 100644 index 0000000..ef74f40 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateMoneyRuleQuery.java @@ -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 { +} + diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java new file mode 100644 index 0000000..e8fe1e9 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateMoneyRuleVO.java @@ -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; + } + +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java index 5817fb5..4870bf9 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRecordVO.java +++ b/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; - /** 鎵e噺鏂瑰紡 */ - private String deductCategory; - /** 瑙勫垯鎻忚堪 */ - private String ruleDesc; - /** 瑙勫垯鏉′欢 */ - private String ruleCondition; - /** 鍚堝悓 */ private Integer contractId; + private String contractName; /** 鎵e噺鏈嶅姟璐� */ diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java new file mode 100644 index 0000000..7ba6405 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportDetailVO.java @@ -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; + + /** 鎵e噺鎬婚噾棰� */ + 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; + } + +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java index 8a2caef..7560cef 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java +++ b/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; diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateMoneyRuleController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateMoneyRuleController.java deleted file mode 100644 index 55d06e1..0000000 --- a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateMoneyRuleController.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.ycl.platform.controller; - -import annotation.Log; -import com.ycl.platform.domain.entity.CalculateMoneyRule; -import com.ycl.platform.service.ICalculateMoneyRuleService; -import com.ycl.system.AjaxResult; -import com.ycl.system.controller.BaseController; -import com.ycl.utils.poi.ExcelUtil; -import enumeration.BusinessType; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 鏍哥畻瑙勫垯(閽�)Controller - * - * @author ruoyi - * @date 2024-04-03 - */ -@RestController -@RequestMapping("/calculate/money/rule") -public class CalculateMoneyRuleController extends BaseController -{ - @Autowired - private ICalculateMoneyRuleService calculateRuleService; - - /** - * 鏌ヨ鏍哥畻瑙勫垯鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:list')") - @GetMapping("/list") - public AjaxResult list(CalculateMoneyRule calculateMoneyRule) - { - List<CalculateMoneyRule> list = calculateRuleService.selectCalculateRuleList(calculateMoneyRule); - return success(list); - } - - /** - * 瀵煎嚭鏍哥畻瑙勫垯鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:export')") - @Log(title = "鏍哥畻瑙勫垯", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, CalculateMoneyRule calculateMoneyRule) - { - List<CalculateMoneyRule> list = calculateRuleService.selectCalculateRuleList(calculateMoneyRule); - ExcelUtil<CalculateMoneyRule> util = new ExcelUtil<CalculateMoneyRule>(CalculateMoneyRule.class); - util.exportExcel(response, list, "鏍哥畻瑙勫垯鏁版嵁"); - } - - /** - * 鑾峰彇鏍哥畻瑙勫垯璇︾粏淇℃伅 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return success(calculateRuleService.selectCalculateRuleById(id)); - } - - /** - * 鏂板鏍哥畻瑙勫垯 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:add')") - @Log(title = "鏍哥畻瑙勫垯", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody CalculateMoneyRule calculateMoneyRule) - { - return toAjax(calculateRuleService.insertCalculateRule(calculateMoneyRule)); - } - - /** - * 淇敼鏍哥畻瑙勫垯 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:edit')") - @Log(title = "鏍哥畻瑙勫垯", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody CalculateMoneyRule calculateMoneyRule) - { - return toAjax(calculateRuleService.updateCalculateRule(calculateMoneyRule)); - } - - /** - * 鍒犻櫎鏍哥畻瑙勫垯 - */ - @PreAuthorize("@ss.hasPermi('calculate:rule:remove')") - @Log(title = "鏍哥畻瑙勫垯", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { - return toAjax(calculateRuleService.deleteCalculateRuleByIds(ids)); - } -} diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java index 14c68e7..2473c04 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java +++ b/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 = "鍥炲~鎵f閲戦", notes = "鍥炲~鎵f閲戦") @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); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java index 71952d6..c989b85 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateMoneyRuleMapper.java +++ b/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); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java index eaa9c91..08a00f2 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRecordMapper.java +++ b/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); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java index 169f45e..b8d17a4 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java +++ b/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); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java b/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java new file mode 100644 index 0000000..d67e2f2 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/service/CalculateMoneyRuleService.java @@ -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(); +} diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java b/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java index 1b79a79..9a8933f 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java +++ b/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); /** * 鍒楄〃 diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICalculateMoneyRuleService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICalculateMoneyRuleService.java deleted file mode 100644 index 60b0ba6..0000000 --- a/ycl-server/src/main/java/com/ycl/platform/service/ICalculateMoneyRuleService.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.ycl.platform.service; - -import com.ycl.platform.domain.entity.CalculateMoneyRule; - -import java.util.List; - -/** - * 鏍哥畻瑙勫垯Service鎺ュ彛 - * - * @author ruoyi - * @date 2024-04-03 - */ -public interface ICalculateMoneyRuleService -{ - /** - * 鏌ヨ鏍哥畻瑙勫垯 - * - * @param id 鏍哥畻瑙勫垯涓婚敭 - * @return 鏍哥畻瑙勫垯 - */ - public CalculateMoneyRule selectCalculateRuleById(Long id); - - /** - * 鏌ヨ鏍哥畻瑙勫垯鍒楄〃 - * - * @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 ids 闇�瑕佸垹闄ょ殑鏍哥畻瑙勫垯涓婚敭闆嗗悎 - * @return 缁撴灉 - */ - public int deleteCalculateRuleByIds(Long[] ids); - - /** - * 鍒犻櫎鏍哥畻瑙勫垯淇℃伅 - * - * @param id 鏍哥畻瑙勫垯涓婚敭 - * @return 缁撴灉 - */ - public int deleteCalculateRuleById(Long id); -} diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java index 62567e2..df1a3a5 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateMoneyRuleServiceImpl.java +++ b/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()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + 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); } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java index 99edde0..ee26421 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java +++ b/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); } /** diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml index 36c6cf7..b8944a7 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml +++ b/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> diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml index 3af6b52..1bf3060 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml +++ b/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> -- Gitblit v1.8.0