diff --git a/src/main/java/com/qs/serve/common/model/enums/SystemModule.java b/src/main/java/com/qs/serve/common/model/enums/SystemModule.java index a52cc195..bb1f8f2e 100644 --- a/src/main/java/com/qs/serve/common/model/enums/SystemModule.java +++ b/src/main/java/com/qs/serve/common/model/enums/SystemModule.java @@ -12,6 +12,7 @@ import lombok.Getter; public enum SystemModule { QUESTION("qms","问卷"), + Policy("tzc","政策"), Payment("pay","支付"), Budget("budget","预算"), Verification("verification","核算"), diff --git a/src/main/java/com/qs/serve/modules/biz/controller/BizCommentController.java b/src/main/java/com/qs/serve/modules/biz/controller/BizCommentController.java index 3773da3a..4a97ec35 100644 --- a/src/main/java/com/qs/serve/modules/biz/controller/BizCommentController.java +++ b/src/main/java/com/qs/serve/modules/biz/controller/BizCommentController.java @@ -6,9 +6,11 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; -import com.qs.serve.common.util.PageUtil; -import com.qs.serve.common.util.CopierUtil; -import com.qs.serve.common.util.StringUtils; +import com.qs.serve.common.util.*; +import com.qs.serve.modules.sys.entity.SysAttach; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysAttachService; +import com.qs.serve.modules.sys.service.SysUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -20,6 +22,7 @@ import com.qs.serve.modules.biz.entity.BizComment; import com.qs.serve.modules.biz.service.BizCommentService; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; /** @@ -34,20 +37,8 @@ import java.util.List; public class BizCommentController { private BizCommentService bizCommentService; - - /** - * 列表 - * @param param - * @return - */ - @GetMapping("/list") - public R> getList(BizCommentSo param){ - BizComment entity = CopierUtil.copy(param,new BizComment()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = bizCommentService.list(lqw); - return R.ok(list); - } + private SysUserService sysUserService; + private SysAttachService attachService; /** * 翻页 @@ -60,6 +51,13 @@ public class BizCommentController { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); PageUtil.startPage(); List list = bizCommentService.list(lqw); + for (BizComment bizComment : list) { + if(CollectionUtil.isNotEmpty(bizComment.getAttachIds())){ + List attachIds = Arrays.asList(bizComment.getAttachIds()); + List attachList = attachService.listByIds(attachIds); + bizComment.setAttachList(attachList); + } + } return R.byPageHelperList(list); } @@ -71,9 +69,53 @@ public class BizCommentController { @GetMapping("/getById/{id}") public R getById(@PathVariable("id") String id){ BizComment bizComment = bizCommentService.getById(id); + if(CollectionUtil.isNotEmpty(bizComment.getAttachIds())){ + List attachIds = Arrays.asList(bizComment.getAttachIds()); + List attachList = attachService.listByIds(attachIds); + bizComment.setAttachList(attachList); + } return R.ok(bizComment); } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.BIZ, title = "评论", biz = BizType.INSERT) + public R save(@RequestBody @Valid BizCommentBo param){ + String userId = AuthContextUtils.getSysUserId(); + SysUser sysUser = sysUserService.getById(userId); + param.setId(null); + BizComment entity = CopierUtil.copy(param,new BizComment()); + entity.setUserId(sysUser.getId()); + entity.setUserName(sysUser.getName()); + entity.setUserAvatar(sysUser.getIcon()); + boolean result = bizCommentService.save(entity); + return R.ok(entity); + } + + + /** + * 更新(我的) + * @param param + * @return + */ + @PostMapping("/updateMyById") + @SysLog(module = SystemModule.BIZ, title = "评论", biz = BizType.UPDATE) + public R updateMyById(@RequestBody @Valid BizCommentBo param){ + BizComment bizComment = bizCommentService.getById(param.getId()); + if(bizComment.getUserId().equals(AuthContextUtils.getSysUserId())){ + BizComment entity = CopierUtil.copy(param,new BizComment()); + boolean result = bizCommentService.updateById(entity); + return R.ok(entity); + } + return R.error("无相关数据"); + } + + /** * 更新 * @param param @@ -85,20 +127,7 @@ public class BizCommentController { public R updateById(@RequestBody @Valid BizCommentBo param){ BizComment entity = CopierUtil.copy(param,new BizComment()); boolean result = bizCommentService.updateById(entity); - return R.isTrue(result); - } - - /** - * 新增 - * @param param - * @return - */ - @PostMapping("/save") - @SysLog(module = SystemModule.BIZ, title = "评论", biz = BizType.INSERT) - public R save(@RequestBody @Valid BizCommentBo param){ - BizComment entity = CopierUtil.copy(param,new BizComment()); - boolean result = bizCommentService.save(entity); - return R.isTrue(result); + return R.ok(entity); } /** @@ -108,11 +137,28 @@ public class BizCommentController { */ @DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.BIZ, title = "评论", biz = BizType.DELETE) + @PreAuthorize("hasRole('biz:comment:delete')") public R deleteById(@PathVariable("ids") String ids){ List idsLong = StringUtils.splitIdLong(ids); boolean result = bizCommentService.removeByIds(idsLong); return R.isTrue(result); } + /** + * 删除(我的) + * @param ids + * @return + */ + @DeleteMapping("/deleteMyById/{ids}") + @SysLog(module = SystemModule.BIZ, title = "评论", biz = BizType.DELETE) + public R deleteMyById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BizComment::getUserId,AuthContextUtils.getSysUserId()); + lqw.in(BizComment::getId,idsLong); + boolean result = bizCommentService.remove(lqw); + return R.isTrue(result); + } + } diff --git a/src/main/java/com/qs/serve/modules/biz/entity/BizComment.java b/src/main/java/com/qs/serve/modules/biz/entity/BizComment.java index 9ce65e4f..b0479882 100644 --- a/src/main/java/com/qs/serve/modules/biz/entity/BizComment.java +++ b/src/main/java/com/qs/serve/modules/biz/entity/BizComment.java @@ -4,12 +4,15 @@ import java.time.LocalDate; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -22,7 +25,7 @@ import javax.validation.constraints.NotBlank; * @since 2023-02-17 */ @Data -@TableName("biz_comment") +@TableName(value = "biz_comment",autoResultMap = true) public class BizComment implements Serializable { private static final long serialVersionUID = 1L; @@ -55,8 +58,8 @@ public class BizComment implements Serializable { private String userAvatar; /** 附件ID */ - @Length(max = 1024,message = "附件ID长度不能超过1024字") - private String docId; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] attachIds; /** 内容 */ @Length(max = 1024,message = "内容长度不能超过1024字") @@ -92,5 +95,9 @@ public class BizComment implements Serializable { @JsonProperty private Boolean delFlag; + /** 附件 */ + @TableField(exist = false) + private List attachList; + } diff --git a/src/main/java/com/qs/serve/modules/biz/entity/bo/BizCommentBo.java b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizCommentBo.java index 49115415..08e26244 100644 --- a/src/main/java/com/qs/serve/modules/biz/entity/bo/BizCommentBo.java +++ b/src/main/java/com/qs/serve/modules/biz/entity/bo/BizCommentBo.java @@ -4,7 +4,9 @@ import java.time.LocalDate; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -30,7 +32,6 @@ public class BizCommentBo implements Serializable { /** 目标类型 */ @NotBlank(message = "目标类型不能为空") - @Length(max = 20,message = "目标类型长度不能超过20字") private String targetType; /** 目标id */ @@ -38,50 +39,14 @@ public class BizCommentBo implements Serializable { @Length(max = 64,message = "目标id长度不能超过64字") private String targetId; - /** 用户id */ - @NotBlank(message = "用户id不能为空") - @Length(max = 40,message = "用户id长度不能超过40字") - private String userId; - - /** 用户名称 */ - @Length(max = 50,message = "用户名称长度不能超过50字") - private String userName; - - /** 头像 */ - @Length(max = 255,message = "头像长度不能超过255字") - private String userAvatar; - /** 附件ID */ - @Length(max = 1024,message = "附件ID长度不能超过1024字") - private String docId; + private String[] attachIds; /** 内容 */ @Length(max = 1024,message = "内容长度不能超过1024字") private String context; - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 创建人 */ - private String createBy; - - /** 更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 更新人 */ - private String updateBy; - - /** 租户id */ - @JsonIgnore - @JsonProperty - private String tenantId; - /** 删除标识 */ - @JsonIgnore - @JsonProperty - private Boolean delFlag; } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java index e2caae73..c1727bda 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java @@ -10,6 +10,7 @@ import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.sys.service.SysUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -33,6 +34,7 @@ import java.util.List; public class TbsCostTodoController { private TbsCostTodoService tbsCostTodoService; + private SysUserService sysUserService; /** * 列表 @@ -41,9 +43,7 @@ public class TbsCostTodoController { */ @GetMapping("/list") public R> getList(TbsCostTodo param){ - param.setCreateBy(AuthContextUtils.getSysUserId()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); - PageUtil.startPage(); List list = tbsCostTodoService.list(lqw); return R.ok(list); } @@ -55,7 +55,6 @@ public class TbsCostTodoController { */ @GetMapping("/page") public R> getPage(TbsCostTodo param){ - param.setCreateBy(AuthContextUtils.getSysUserId()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); PageUtil.startPage(); List list = tbsCostTodoService.list(lqw); @@ -70,10 +69,6 @@ public class TbsCostTodoController { @GetMapping("/getById/{id}") public R getById(@PathVariable("id") String id){ TbsCostTodo tbsCostTodo = tbsCostTodoService.getById(id); - String userId = AuthContextUtils.getSysUserId(); - if(!tbsCostTodo.getCreateBy().equals(userId)){ - return R.ok(); - } return R.ok(tbsCostTodo); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostTodo.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostTodo.java index ceede86f..b494d761 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostTodo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostTodo.java @@ -56,6 +56,8 @@ public class TbsCostTodo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + private String tenantId; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java b/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java new file mode 100644 index 00000000..b5f8f57b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java @@ -0,0 +1,16 @@ +package com.qs.serve.modules.tzc.common; + +/** + * @author YenHex + * @since 2023/2/20 + */ +public interface TzcPolicyStatus { + + int Status_0_UnCommit = 0; + int Status_1_Checking = 1; + int Status_2_PassSuccess = 2; + int Status_3_Refuse = 3; + int Status_4_RollBack = 4; + int Status_5_Finished = 5; + +} diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java new file mode 100644 index 00000000..b22fa17b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -0,0 +1,114 @@ +package com.qs.serve.modules.tzc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyBo; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.service.TzcPolicyService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 政策 政策 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tzc/policy") +public class TzcPolicyController { + + private TzcPolicyService tzcPolicyService; + private TzcPolicyItemService tzcPolicyItemService; + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + @PreAuthorize("hasRole('tzc:policy:query')") + public R> getPage(TzcPolicy param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = tzcPolicyService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Policy, title = "政策", biz = BizType.QUERY) + @PreAuthorize("hasRole('tzc:policy:query')") + public R getById(@PathVariable("id") String id){ + TzcPolicy tzcPolicy = tzcPolicyService.getById(id); + List policyItemList = tzcPolicyItemService.listByPolicyId(tzcPolicy.getId()); + tzcPolicy.setPolicyItemList(policyItemList); + return R.ok(tzcPolicy); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.Policy, title = "政策", biz = BizType.UPDATE) + @PreAuthorize("hasRole('tzc:policy:update')") + public R updateById(@RequestBody @Valid TzcPolicyBo param){ + if(param.getId()==null){ + return R.error(); + } + return tzcPolicyService.modify(param); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.Policy, title = "政策", biz = BizType.INSERT) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R save(@RequestBody @Valid TzcPolicyBo param){ + param.setId(null); + return tzcPolicyService.modify(param); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Policy, title = "政策", biz = BizType.DELETE) + @PreAuthorize("hasRole('tzc:policy:delete')") + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = tzcPolicyService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java new file mode 100644 index 00000000..ee3b4eff --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyGoodsController.java @@ -0,0 +1,119 @@ +package com.qs.serve.modules.tzc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyGoodsBo; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 政策 政策商品 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tzc/policyGoods") +public class TzcPolicyGoodsController { + + private TzcPolicyGoodsService tzcPolicyGoodsService; + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(TzcPolicyGoods param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List list = tzcPolicyGoodsService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(TzcPolicyGoods param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = tzcPolicyGoodsService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + TzcPolicyGoods tzcPolicyGoods = tzcPolicyGoodsService.getById(id); + return R.ok(tzcPolicyGoods); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.UPDATE) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R updateById(@RequestBody @Valid TzcPolicyGoodsBo param){ + TzcPolicyGoods entity = CopierUtil.copy(param,new TzcPolicyGoods()); + boolean result = tzcPolicyGoodsService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.INSERT) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R save(@RequestBody @Valid TzcPolicyGoodsBo param){ + TzcPolicyGoods entity = CopierUtil.copy(param,new TzcPolicyGoods()); + boolean result = tzcPolicyGoodsService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Policy, title = "政策商品", biz = BizType.DELETE) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = tzcPolicyGoodsService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java new file mode 100644 index 00000000..1af3f243 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java @@ -0,0 +1,121 @@ +package com.qs.serve.modules.tzc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyItemBo; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 政策 政策项 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tzc/policyItem") +public class TzcPolicyItemController { + + private TzcPolicyItemService tzcPolicyItemService; + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(TzcPolicyItem param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = tzcPolicyItemService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(TzcPolicyItem param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = tzcPolicyItemService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + //@GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Policy, title = "政策项", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + TzcPolicyItem tzcPolicyItem = tzcPolicyItemService.getById(id); + return R.ok(tzcPolicyItem); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.Policy, title = "政策项", biz = BizType.UPDATE) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R updateById(@RequestBody @Valid TzcPolicyItemBo param){ + TzcPolicyItem entity = CopierUtil.copy(param,new TzcPolicyItem()); + boolean result = tzcPolicyItemService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.Policy, title = "政策项", biz = BizType.INSERT) + @PreAuthorize("hasRole('tzc:policyItem:insert')") + public R save(@RequestBody @Valid TzcPolicyItemBo param){ + TzcPolicyItem entity = CopierUtil.copy(param,new TzcPolicyItem()); + boolean result = tzcPolicyItemService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Policy, title = "政策项", biz = BizType.DELETE) + @PreAuthorize("hasRole('tzc:policy:insert')") + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = tzcPolicyItemService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java new file mode 100644 index 00000000..698f5e2b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java @@ -0,0 +1,156 @@ +package com.qs.serve.modules.tzc.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 政策 实体类 + * @author YenHex + * @since 2023-02-20 + */ +@Data +@TableName("tzc_policy") +public class TzcPolicy implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 主题 */ + @NotBlank(message = "主题不能为空") + @Length(max = 60,message = "主题长度不能超过60字") + private String title; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyCode; + + /** 通过状态(0-未提交;1-审核中;2-已通过待执行;3-拒绝;4-被驳回;5-结束) */ + @NotNull(message = "通过状态不能为空") + private Integer policyStatus; + + /** 通过时间 */ + @Length(max = 0,message = "通过时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime passTime; + + /** 客户id */ + @NotNull(message = "客户id不能为空") + private Long supplierId; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 30,message = "客户编码长度不能超过30字") + private String supplierCode; + + /** 客户名称 */ + @NotBlank(message = "客户名称不能为空") + @Length(max = 30,message = "客户名称长度不能超过30字") + private String supplierName; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userId; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userCode; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + @TableField(exist = false) + List policyItemList; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyGoods.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyGoods.java new file mode 100644 index 00000000..0701988f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyGoods.java @@ -0,0 +1,109 @@ +package com.qs.serve.modules.tzc.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 政策商品 实体类 + * @author YenHex + * @since 2023-02-20 + */ +@Data +@TableName("tzc_policy_goods") +public class TzcPolicyGoods implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 政策id */ + @NotNull(message = "政策id不能为空") + private Long policyId; + + /** 政策项id */ + @NotNull(message = "政策项id不能为空") + private Long policyItemId; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyItemCode; + + /** 目标类型(brand、category、series、spu、sku) */ + @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") + @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") + private String targetType; + + /** 目标id */ + @NotNull(message = "目标id不能为空") + private Long targetId; + + /** 目标编码 */ + @NotBlank(message = "目标编码不能为空") + @Length(max = 30,message = "目标编码长度不能超过30字") + private String targetCode; + + /** 目标名称 */ + @NotBlank(message = "目标名称不能为空") + @Length(max = 30,message = "目标名称长度不能超过30字") + private String targetName; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathNames; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java new file mode 100644 index 00000000..cf27b1a5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java @@ -0,0 +1,174 @@ +package com.qs.serve.modules.tzc.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 政策项 实体类 + * @author YenHex + * @since 2023-02-20 + */ +@Data +@TableName("tzc_policy_item") +public class TzcPolicyItem implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 主题 */ + @NotBlank(message = "主题不能为空") + @Length(max = 60,message = "主题长度不能超过60字") + private String title; + + /** 政策id */ + @NotNull(message = "政策id不能为空") + private Long policyId; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyItemCode; + + /** 开始时间 */ + @NotNull(message = "开始时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDate policyStartDate; + + /** 结束时间 */ + @NotNull(message = "结束时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDate policyEndDate; + + /** 状态:0-未使用;1-已使用;2-已用完 */ + @NotNull(message = "状态:0-未使用;1-已使用;2-已用完不能为空") + private Integer policyItemStatus; + + /** 满减金额 */ + @NotNull(message = "满减金额不能为空") + private BigDecimal discountAmount; + + /** 返点百分比 */ + @NotNull(message = "返点百分比不能为空") + private BigDecimal discountRate; + + /** 已用金额 */ + @NotNull(message = "已用金额不能为空") + private BigDecimal usedAmount; + + /** 客户id */ + @NotNull(message = "客户id不能为空") + private Long supplierId; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 30,message = "客户编码长度不能超过30字") + private String supplierCode; + + /** 客户名称 */ + @NotBlank(message = "客户名称不能为空") + @Length(max = 30,message = "客户名称长度不能超过30字") + private String supplierName; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userId; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userCode; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java new file mode 100644 index 00000000..2e40036f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyBo.java @@ -0,0 +1,69 @@ +package com.qs.serve.modules.tzc.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * 政策 Bo + * @author YenHex + * @since 2023-02-20 + */ +@Data +public class TzcPolicyBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 主题 */ + @NotBlank(message = "主题不能为空") + @Length(max = 60,message = "主题长度不能超过60字") + private String title; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyCode; + + + /** 客户id */ + @NotNull(message = "客户id不能为空") + private Long supplierId; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 备注 */ + private List policyItemList; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java new file mode 100644 index 00000000..3bdcb560 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyGoodsBo.java @@ -0,0 +1,100 @@ +package com.qs.serve.modules.tzc.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 政策商品 Bo + * @author YenHex + * @since 2023-02-20 + */ +@Data +public class TzcPolicyGoodsBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 政策id */ + @NotNull(message = "政策id不能为空") + private Long policyId; + + /** 政策项id */ + @NotNull(message = "政策项id不能为空") + private Long policyItemId; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyItemCode; + + /** 目标类型(brand、category、series、spu、sku) */ + @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") + @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") + private String targetType; + + /** 目标id */ + @NotNull(message = "目标id不能为空") + private Long targetId; + + /** 目标编码 */ + @NotBlank(message = "目标编码不能为空") + @Length(max = 30,message = "目标编码长度不能超过30字") + private String targetCode; + + /** 目标名称 */ + @NotBlank(message = "目标名称不能为空") + @Length(max = 30,message = "目标名称长度不能超过30字") + private String targetName; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathNames; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + private String createBy; + + /** 更新人 */ + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java new file mode 100644 index 00000000..ea94c3c9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcPolicyItemBo.java @@ -0,0 +1,163 @@ +package com.qs.serve.modules.tzc.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 政策项 Bo + * @author YenHex + * @since 2023-02-20 + */ +@Data +public class TzcPolicyItemBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 主题 */ + @NotBlank(message = "主题不能为空") + @Length(max = 60,message = "主题长度不能超过60字") + private String title; + + /** 政策id */ + @NotNull(message = "政策id不能为空") + private Long policyId; + + /** 政策编码 */ + @NotBlank(message = "政策编码不能为空") + @Length(max = 50,message = "政策编码长度不能超过50字") + private String policyItemCode; + + /** 开始时间 */ + @NotNull(message = "开始时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate policyStartDate; + + /** 结束时间 */ + @NotNull(message = "结束时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate policyEndDate; + + /** 状态:0-未使用;1-已使用;2-已用完 */ + @NotNull(message = "状态:0-未使用;1-已使用;2-已用完不能为空") + private Integer policyItemStatus; + + /** 满减金额 */ + @NotNull(message = "满减金额不能为空") + private BigDecimal discountAmount; + + /** 返点百分比 */ + @NotNull(message = "返点百分比不能为空") + private BigDecimal discountRate; + + /** 已用金额 */ + @NotNull(message = "已用金额不能为空") + private BigDecimal usedAmount; + + /** 客户id */ + @NotNull(message = "客户id不能为空") + private Long supplierId; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 30,message = "客户编码长度不能超过30字") + private String supplierCode; + + /** 客户名称 */ + @NotBlank(message = "客户名称不能为空") + @Length(max = 30,message = "客户名称长度不能超过30字") + private String supplierName; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userId; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userCode; + + /** 申请人 */ + @NotBlank(message = "申请人不能为空") + @Length(max = 32,message = "申请人长度不能超过32字") + private String userName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + private String createBy; + + /** 更新人 */ + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyGoodsMapper.java b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyGoodsMapper.java new file mode 100644 index 00000000..fba2058c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyGoodsMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tzc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; + +/** + * 政策商品 Mapper + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyGoodsMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java new file mode 100644 index 00000000..b759783e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tzc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; + +/** + * 政策项 Mapper + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyItemMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyMapper.java b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyMapper.java new file mode 100644 index 00000000..2f928950 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tzc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tzc.entity.TzcPolicy; + +/** + * 政策 Mapper + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java new file mode 100644 index 00000000..87eedf5a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyGoodsService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tzc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; + +/** + * 政策商品 服务接口 + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyGoodsService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java new file mode 100644 index 00000000..27193aa8 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java @@ -0,0 +1,17 @@ +package com.qs.serve.modules.tzc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import java.util.List; + +/** + * 政策项 服务接口 + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyItemService extends IService { + + List listByPolicyId(Long id); + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java new file mode 100644 index 00000000..aa8c11e7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.tzc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyBo; + +/** + * 政策 服务接口 + * @author YenHex + * @date 2023-02-20 + */ +public interface TzcPolicyService extends IService { + + R modify(TzcPolicyBo policyParam); + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java new file mode 100644 index 00000000..29d0adaa --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyGoodsServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.tzc.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService; +import com.qs.serve.modules.tzc.mapper.TzcPolicyGoodsMapper; + +/** + * 政策商品 服务实现类 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TzcPolicyGoodsServiceImpl extends ServiceImpl implements TzcPolicyGoodsService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java new file mode 100644 index 00000000..4e96e52e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java @@ -0,0 +1,32 @@ +package com.qs.serve.modules.tzc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; +import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; + +import java.util.List; + +/** + * 政策项 服务实现类 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TzcPolicyItemServiceImpl extends ServiceImpl implements TzcPolicyItemService { + + @Override + public List listByPolicyId(Long id) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TzcPolicyItem::getPolicyId,id); + List policyItemList = this.list(lqw); + return policyItemList; + } +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java new file mode 100644 index 00000000..482212b2 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java @@ -0,0 +1,92 @@ +package com.qs.serve.modules.tzc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.IdUtil; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.service.TbsCenterDtoService; +import com.qs.serve.modules.tzc.common.TzcPolicyStatus; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyBo; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.service.TzcPolicyService; +import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper; +import org.springframework.transaction.annotation.Transactional; + +/** + * 政策 服务实现类 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TzcPolicyServiceImpl extends ServiceImpl implements TzcPolicyService { + + private BmsSupplierService bmsSupplierService; + private BmsSubjectService bmsSubjectService; + private SysUserService sysUserService; + private TbsCenterDtoService tbsCenterDtoService; + private TzcPolicyItemService tzcPolicyItemService; + + @Override + @Transactional(rollbackFor = Exception.class) + public R modify(TzcPolicyBo policyParam) { + Long policyId = policyParam.getId(); + TzcPolicy tzcPolicy; + if(policyId!=null){ + tzcPolicy = this.getById(policyId); + if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit) + && tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_4_RollBack)){ + return R.error("当前状态不支持编辑"); + } + }else { + tzcPolicy = new TzcPolicy(); + } + TbsCenterDto centerDto = tbsCenterDtoService.getCenterDto(policyParam.getCenterType(),policyParam.getCenterId()); + BmsSupplier supplier = bmsSupplierService.getById(policyParam.getSupplierId()); + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + BmsSubject bmsSubject = bmsSubjectService.getById(policyParam.getSubjectId()); + tzcPolicy.setTitle(policyParam.getTitle()); + tzcPolicy.setPolicyCode(IdUtil.getSnowflake()+""); + tzcPolicy.setSupplierId(policyParam.getSupplierId()); + tzcPolicy.setSubjectCode(supplier.getCode()); + tzcPolicy.setSupplierName(supplier.getName()); + tzcPolicy.setUserId(sysUser.getId()); + tzcPolicy.setUserCode(sysUser.getCode()); + tzcPolicy.setUserName(sysUser.getName()); + tzcPolicy.setCenterType(centerDto.getCenterType()); + tzcPolicy.setCenterId(centerDto.getId()); + tzcPolicy.setCenterCode(centerDto.getCenterCode()); + tzcPolicy.setCenterName(centerDto.getCenterName()); + tzcPolicy.setSubjectId(bmsSubject.getId()); + tzcPolicy.setSubjectCode(bmsSubject.getSubjectCode()); + tzcPolicy.setSubjectName(bmsSubject.getSubjectName()); + tzcPolicy.setRemark(policyParam.getRemark()); + //更新 + if(policyId!=null){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TzcPolicyItem::getPolicyId,policyId); + TzcPolicyItem policyItem = CopierUtil.copy(tzcPolicy,new TzcPolicyItem()); + policyItem.setRemark(null); + tzcPolicyItemService.update(policyItem,lqw); + } + this.saveOrUpdate(tzcPolicy); + return R.ok(tzcPolicy); + } + +} +