diff --git a/src/main/java/com/qs/serve/common/util/StringUtils.java b/src/main/java/com/qs/serve/common/util/StringUtils.java index 8e3d0527..31aa7a2d 100644 --- a/src/main/java/com/qs/serve/common/util/StringUtils.java +++ b/src/main/java/com/qs/serve/common/util/StringUtils.java @@ -78,6 +78,14 @@ public class StringUtils extends org.springframework.util.StringUtils { return false; } + public static String getUrlByList(List list,String param){ + StringBuilder sb = new StringBuilder(); + for (Object val : list) { + sb.append("&"+param+"="+val); + } + return sb.toString(); + } + /** * 格式化 * @param exp 含{}的表达式 diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java index 91dfeacc..d4a4796f 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java @@ -9,6 +9,8 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.entity.BmsChannelPoint; import com.qs.serve.modules.bms.service.BmsChannelPointService; +import com.qs.serve.modules.tbs.entity.TbsActivityChannel; +import com.qs.serve.modules.tbs.service.TbsActivityChannelService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -34,6 +36,7 @@ public class BmsChannelController { private BmsChannelService bmsChannelService; private BmsChannelPointService bmsChannelPointService; + private TbsActivityChannelService activityChannelService; /** * 翻页 @@ -108,6 +111,11 @@ public class BmsChannelController { @SysLog(module = SystemModule.BASE, title = "渠道", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:channel:delete')") public R deleteById(@PathVariable("id") Long id){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityChannel::getChannelId,id); + if(activityChannelService.count()>0){ + return R.error("活动含当前渠道,删除失败"); + } boolean result = bmsChannelService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java index fbc61268..4cc9109d 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java @@ -16,6 +16,8 @@ import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo; import com.qs.serve.modules.bms.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegionService; +import com.qs.serve.modules.tbs.entity.TbsActivityChannelPoint; +import com.qs.serve.modules.tbs.service.TbsActivityChannelPointService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -43,6 +45,7 @@ public class BmsChannelPointController { private BmsChannelService bmsChannelService; private BmsRegionService bmsRegionService; private BmsRegion2Service bmsRegion2Service; + private TbsActivityChannelPointService activityChannelPointService; /** * 翻页 @@ -126,6 +129,11 @@ public class BmsChannelPointController { @SysLog(module = SystemModule.BASE, title = "渠道站点", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:channelPoint:delete')") public R deleteById(@PathVariable("id") Long id){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityChannelPoint::getPointId,id); + if(activityChannelPointService.count(lqw)>0){ + return R.error("活动含当前站点,删除失败"); + } boolean result = bmsChannelPointService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java index 82681217..256a9ec8 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java @@ -15,6 +15,9 @@ import com.qs.serve.modules.bms.entity.vo.BmsMasterUserCenterVo; import com.qs.serve.modules.bms.entity.vo.BmsSubjectTreeVo; import com.qs.serve.modules.bms.service.BmsMasterUserService; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.tbs.common.TbsCenterType; +import com.qs.serve.modules.tbs.entity.TbsActivityCenter; +import com.qs.serve.modules.tbs.service.TbsActivityCenterService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,6 +45,7 @@ public class BmsCostCenterController { private BmsCostCenterService bmsCostCenterService; private BmsMasterUserService bmsMasterUserService; + private TbsActivityCenterService activityCenterService; /** * 树查询 @@ -196,6 +200,12 @@ public class BmsCostCenterController { @PreAuthorize("hasRole('bms:costCenter:delete')") public R deleteById(@PathVariable("id") Long id){ //TODO 未校验已用不能删,预算和费用申请 + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityCenter::getCenterId,id); + lqw.eq(TbsActivityCenter::getCenterType, TbsCenterType.center.name()); + if(activityCenterService.count(lqw)>0){ + return R.error("活动含当前成本中心,删除失败"); + } boolean result = bmsCostCenterService.removeSelfAndChildById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index 2e3eb605..8908af01 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -288,7 +288,7 @@ public class BmsRegionController { @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:region:delete')") public R deleteById(@PathVariable("id") String id){ - //todo 删除区域档案 + //删除区域档案 if(bmsRegionService.listChild(id).size()>0){ return R.error("含有子区域无法删除"); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java index 607d713a..e6a221c8 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java @@ -13,6 +13,8 @@ import com.qs.serve.modules.bms.entity.BmsCostCenter; import com.qs.serve.modules.bms.entity.bo.BmsCostCenterBo; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; import com.qs.serve.modules.bms.entity.vo.BmsSubjectTreeVo; +import com.qs.serve.modules.tbs.entity.TbsActivitySubject; +import com.qs.serve.modules.tbs.service.TbsActivitySubjectService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -37,6 +39,7 @@ import java.util.stream.Collectors; public class BmsSubjectController { private BmsSubjectService bmsSubjectService; + private TbsActivitySubjectService activitySubjectService; /** * 树查询 @@ -134,6 +137,11 @@ public class BmsSubjectController { @SysLog(module = SystemModule.BASE, title = "科目", biz = BizType.DELETE) @PreAuthorize("hasRole('bms:subject:delete')") public R deleteById(@PathVariable("id") Long id){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivitySubject::getSubjectId,id); + if(activitySubjectService.count(lqw)>0){ + return R.error("活动含当前的科目,删除失败"); + } boolean result = bmsSubjectService.removeSelfAndChildById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 8dc464d2..ba4743cd 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -190,6 +190,9 @@ public class BmsSupplier implements Serializable { if(this.getUserId()!=null){ userSupplier.setSupplierId(Long.parseLong(this.getId())); } + if(this.getId()!=null){ + userSupplier.setSupplierId(Long.parseLong(this.getId())); + } userSupplier.setSupplierName(this.getName()); userSupplier.setSupplierCode(this.getCode()); userSupplier.setSaleRegionFirst(this.getRegionFirst()); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java index ff8f967b..4c772901 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.goods.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; @@ -15,6 +16,11 @@ import com.qs.serve.modules.goods.entity.bo.GoodsCategoryBo; import com.qs.serve.modules.goods.entity.bo.GoodsCategoryLevelBo; import com.qs.serve.modules.goods.entity.bo.GoodsCategoryTreeVo; import com.qs.serve.modules.goods.service.GoodsSpuService; +import com.qs.serve.modules.tbs.common.TbsGoodsType; +import com.qs.serve.modules.tbs.entity.TbsActivityGoods; +import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; +import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; +import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -40,6 +46,8 @@ public class GoodsCategoryController { private GoodsCategoryService goodsCategoryService; private GoodsSpuService goodsSpuService; + private TbsActivityGoodsService activityGoodsService; + private TbsBudgetConditionService budgetConditionService; /** * 翻页查询 @@ -173,6 +181,15 @@ public class GoodsCategoryController { @SysLog(module = SystemModule.GOODS, title = "分类", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:category:delete')") public R deleteById(@PathVariable("id") Long id){ + QueryWrapper lqw = new QueryWrapper<>(); + lqw.in("target_type", TbsGoodsType.brand.name(),TbsGoodsType.category.name(),TbsGoodsType.series.name()); + lqw.eq("target_id",id); + if(activityGoodsService.count(lqw)>0){ + return R.error("活动含有当前分类,删除失败"); + } + if(budgetConditionService.count(lqw)>0){ + return R.error("预算含有当前分类,删除失败"); + } boolean result = goodsCategoryService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index c8faf8f3..931cfe7b 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.goods.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; @@ -12,6 +13,10 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; +import com.qs.serve.modules.tbs.common.TbsGoodsType; +import com.qs.serve.modules.tbs.entity.TbsActivityGoods; +import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; +import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -36,6 +41,8 @@ public class GoodsSkuController { private GoodsSkuService goodsSkuService; private GoodsSkuSpecValueService goodsSkuSpecValueService; + private TbsActivityGoodsService activityGoodsService; + private TbsBudgetConditionService budgetConditionService; /** * 列表(传入spuId获取spu规格列表) @@ -136,6 +143,15 @@ public class GoodsSkuController { @SysLog(module = SystemModule.GOODS, title = "sku", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:sku:delete')") public R deleteById(@PathVariable("id") Long id){ + QueryWrapper lqw1 = new QueryWrapper<>(); + lqw1.in("target_type", TbsGoodsType.sku.name()); + lqw1.eq("target_id",id); + if(activityGoodsService.count(lqw1)>0){ + return R.error("活动含有当前商品,删除失败"); + } + if(budgetConditionService.count(lqw1)>0){ + return R.error("预算含有当前商品,删除失败"); + } boolean result = goodsSkuService.removeById(id); if(result){ //删除商品规格值 diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 9e564c33..1486c5c9 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.goods.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; @@ -19,6 +20,10 @@ import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.service.GoodsSpuSpecService; +import com.qs.serve.modules.tbs.common.TbsGoodsType; +import com.qs.serve.modules.tbs.entity.TbsActivityGoods; +import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; +import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; import io.netty.util.internal.StringUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -46,6 +51,8 @@ public class GoodsSpuController { private GoodsSpuService goodsSpuService; private GoodsSpuSpecService goodsSpuSpecService; private GoodsSkuSpecValueService goodsSkuSpecValueService; + private TbsActivityGoodsService activityGoodsService; + private TbsBudgetConditionService budgetConditionService; /** * 翻页搜索 @@ -117,7 +124,15 @@ public class GoodsSpuController { @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:spu:delete')") public R deleteById(@PathVariable("id") Long id){ - //todo 拦截删除商品 + QueryWrapper lqw1 = new QueryWrapper<>(); + lqw1.in("target_type", TbsGoodsType.spu.name()); + lqw1.eq("target_id",id); + if(activityGoodsService.count(lqw1)>0){ + return R.error("活动含有当前商品,删除失败"); + } + if(budgetConditionService.count(lqw1)>0){ + return R.error("预算含有当前商品,删除失败"); + } boolean result = goodsSpuService.removeById(id); if(result){ //删除商品规格 diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateProcessBo.java b/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateProcessBo.java new file mode 100644 index 00000000..2254cdbd --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateProcessBo.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.seeyon.entity; + +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2022/11/22 + */ +@Data +public class BaseCreateProcessBo { + + private String templateCode; + + /** 致远登录名 */ + private String memberLoginName; + + /** 标题 */ + private String subjectTitle; + + private String dataJson; + + /** 致远附件id列表 */ + private List attachments; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java new file mode 100644 index 00000000..21b9355f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java @@ -0,0 +1,27 @@ +package com.qs.serve.modules.seeyon.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @author YenHex + * @since 2022/11/22 + */ +@Data +public class CtpAffair { + + private String affairId; + + private String memberId; + + private Integer state; + + private String templateId; + + private String formRecordId; + + private String costApplyId; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCancel.java b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCancel.java new file mode 100644 index 00000000..792b791b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCancel.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.seeyon.entity; + +import lombok.Data; + +/** + * @author YenHex + * @since 2022/11/23 + */ +@Data +public class CtpAffairCancel { + + private String affairId; + + private String memberAccount; + + private String summaryId; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java new file mode 100644 index 00000000..b907a14e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java @@ -0,0 +1,24 @@ +package com.qs.serve.modules.seeyon.entity; + +import lombok.Data; + +/** + * @author YenHex + * @since 2022/11/23 + */ +@Data +public class CtpAffairCommit { + + /** 状态:0-否定,1-同意 */ + private Integer state; + + private String affairId; + + /** + * 如果是state=1 同意,传入member的登录账号 + */ + private String memberId; + + private String comment; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java new file mode 100644 index 00000000..ccff5966 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java @@ -0,0 +1,32 @@ +package com.qs.serve.modules.seeyon.entity; + +import lombok.Data; +import lombok.Setter; + +import java.util.List; + +/** + * @author YenHex + * @since 2022/11/22 + */ +@Data +public class CtpAffairQo { + + List templateCodes; + + List templateIds; + + String memberId; + + String formMainId; + + /** + * 状态:0-未完成与已完成;1-未完成;2已完成;其它-加载所有 + */ + Integer state; + + Integer pageNum; + + Integer pageSize; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java new file mode 100644 index 00000000..d3ff61e4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java @@ -0,0 +1,61 @@ +package com.qs.serve.modules.seeyon.service; + +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.modules.seeyon.entity.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author YenHex + * @since 2022/11/30 + */ +public interface SeeYonService { + + /** + * 通用的创建流程接口 + * @param createProcessBo + * @return + */ + R baseCreateProcess(BaseCreateProcessBo createProcessBo); + + /** + * 获取表单id + * @param costApplyId + * @return + */ + R getFormId(Long costApplyId); + + /** + * 提交 + * @param affairCommit + * @return + */ + R affairCommit(CtpAffairCommit affairCommit); + + /** + * 取消流程 + * @param affairCancel + * @return + */ + R affairCancel(CtpAffairCancel affairCancel); + + + /** + * 获取用户表单 + * @param ctpAffairQo + * @return + */ + R> pageMemberAffair(CtpAffairQo ctpAffairQo); + + /** + * 列表表单审批节点 + * @param ctpAffairQo + * @return + */ + R> listFormAffair(CtpAffairQo ctpAffairQo); + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java new file mode 100644 index 00000000..166a1a69 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java @@ -0,0 +1,98 @@ +package com.qs.serve.modules.seeyon.service.impl; + +import com.qs.serve.common.config.properties.SeeYonProperties; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.*; +import com.qs.serve.common.util.model.DateFormatString; +import com.qs.serve.modules.seeyon.entity.*; +import com.qs.serve.modules.seeyon.service.SeeYonService; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author YenHex + * @since 2022/11/30 + */ +@Slf4j +@Service +@AllArgsConstructor +public class SeeYonServiceImpl implements SeeYonService { + + private SeeYonProperties seeYonProperties; + + @Override + public R baseCreateProcess(BaseCreateProcessBo createProcessBo) { + String title = "创建流程"; + return postBase(TbsSeeYonConst.API_PROCESS_CREATE,createProcessBo,title); + } + + @Override + public R getFormId(Long costApplyId) { + String title = "获取表单ID"; + String url2 = TbsSeeYonConst.API_GET_FORM_ID+"?costApplyId="+costApplyId; + return getBase(url2,title); + } + + @Override + public R affairCommit(CtpAffairCommit affairCommit) { + String title = "审批流程"; + return postBase(TbsSeeYonConst.API_PROCESS_COMMIT,affairCommit,title); + } + + @Override + public R affairCancel(CtpAffairCancel affairCancel) { + String title = "取消流程"; + return postBase(TbsSeeYonConst.API_PROCESS_CANCEL,affairCancel,title); + } + + @Override + public R> pageMemberAffair(CtpAffairQo ctpAffairQo) { + String title = "用户审批流程"; + R result = postBase(TbsSeeYonConst.API_PAGE_AFFAIR,ctpAffairQo,title); + + return null; + } + + @Override + public R> listFormAffair(CtpAffairQo ctpAffairQo) { + String title = "表单审批节点"; + R result = postBase(TbsSeeYonConst.API_LIST_AFFAIR,ctpAffairQo,title); + + return null; + } + + private R getBase(String url2, String title){ + String url = getBaseUrl(); + R result = HttpUtil.doGetResult(url+url2,null); + if(result.getStatus()!=200){ + log.error("致远服务失败[{},{}] url2:{}",title,result.getMsg(),url2); + } + return result; + } + + private R postBase(String url2,Object param,String title){ + String url = getBaseUrl(); + R result = HttpUtil.doPostResult(url + url2, JsonUtil.objectToJson(param),null); + if(result.getStatus()!=200){ + log.error("致远服务失败[{},{}]\nParam:{}",title,result.getMsg(),JsonUtil.objectToJson(param)); + } + return result; + } + + private String getBaseUrl(){ + if(!seeYonProperties.getEnable()){ + Assert.throwEx("远程服务未开启"); + } + return seeYonProperties.getUrl(); + } + +} diff --git a/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java b/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java index 705f9f88..1a3b8427 100644 --- a/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java +++ b/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java @@ -93,6 +93,14 @@ public class SysUser implements Serializable { /** app推送token */ private String appToken; + /** 致远登陆账户 */ + private String syAccount; + + /** 致远用户id */ + private String syUserId; + + + /** 创建时间 */ @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/tbs/common/TbsCostApplyState.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java index 552b2e5c..373d98ca 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java @@ -15,7 +15,8 @@ public enum TbsCostApplyState { State_0_unPublish(0), State_1_apply(1), State_2_actioning(2), - State_3_finished(3); + State_3_finished(3), + State_4_refused(4); private Integer code; diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 2684833e..1131cad5 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -11,6 +11,10 @@ public interface TbsSeeYonConst { String COST_APPLY_USER = "banzhang1"; String API_PROCESS_CREATE = "/process/create"; + String API_PROCESS_COMMIT = "/process/commit"; + String API_PROCESS_CANCEL = "/process/cancel"; String API_GET_FORM_ID = "/process/getFormId"; + String API_PAGE_AFFAIR = "/process/pageMemberAffair"; + String API_LIST_AFFAIR = "/process/listFormAffair"; } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index 3eae7e68..d3db8ac5 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -15,6 +15,7 @@ import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterGoodsVo; import com.qs.serve.modules.tbs.service.*; +import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -50,6 +51,8 @@ public class TbsActivityController { private final BmsSupplierService bmsSupplierService; + private final VtbVerificationService verificationService; + /** * 列表 * @param param @@ -257,5 +260,18 @@ public class TbsActivityController { return R.isTrue(result); } + /** + * 释放活动费用 + * @param id + * @return + */ + @PostMapping("/release/{id}") + @SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE) + @PreAuthorize("hasRole('tbs:activity:release')") + public R release(@PathVariable("id") Long id){ + verificationService.release(id); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java index fba0a454..258471d5 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java @@ -100,12 +100,12 @@ public class TbsActivityTemplateController { @PostMapping("/updateById") @SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.UPDATE) @PreAuthorize("hasRole('tbs:activityTemplate:update')") - public R updateById(@RequestBody @Valid TbsActivityTemplateBo param){ + public R updateById(@RequestBody TbsActivityTemplateBo param){ if(param.getId()==null){ return R.error("id is null"); } - tbsActivityTemplateService.modify(param); - return R.ok(); + TbsActivityTemplate template = tbsActivityTemplateService.modify(param); + return R.ok(template); } /** @@ -120,8 +120,8 @@ public class TbsActivityTemplateController { if(param.getId()!=null){ return R.error("id is not null"); } - tbsActivityTemplateService.modify(param); - return R.ok(); + TbsActivityTemplate template = tbsActivityTemplateService.modify(param); + return R.ok(template); } /** @@ -145,13 +145,18 @@ public class TbsActivityTemplateController { */ @GetMapping("/listBySupplier/{id}") public R> listBySupplier(@PathVariable("id") String id){ - List templateRegions = tbsActivityTemplateRegionService.getTemplateIds(id); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityTemplate::getBizRegionFlag,0).or().eq(TbsActivityTemplate::getSaleRegionFlag,0); + List activityTemplateList = tbsActivityTemplateService.list(lqw); + List tmpIds = activityTemplateList.stream().map(TbsActivityTemplate::getId).collect(Collectors.toList()); + List templateRegions = tbsActivityTemplateRegionService.getTemplateIds(id,tmpIds); List templateIds = templateRegions.stream().map(TbsActivityTemplateRegion::getTemplateId) .distinct().collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(templateIds)){ + if(CollectionUtil.isEmpty(templateIds)){ return R.ok(); } List templates = tbsActivityTemplateService.listByIds(templateIds); + templates.addAll(activityTemplateList); return R.ok(templates); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index f9835d54..7f663876 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -1,8 +1,6 @@ package com.qs.serve.modules.tbs.controller; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.serve.common.config.properties.SeeYonProperties; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; @@ -12,11 +10,17 @@ import com.qs.serve.common.util.*; import com.qs.serve.common.util.model.DateFormatString; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; +import com.qs.serve.modules.seeyon.entity.CtpAffair; +import com.qs.serve.modules.seeyon.entity.CtpAffairCommit; +import com.qs.serve.modules.seeyon.entity.CtpAffairQo; +import com.qs.serve.modules.seeyon.service.SeeYonService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.service.TbsActivityService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -33,6 +37,7 @@ import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 预算 费用申请 @@ -49,7 +54,7 @@ public class TbsCostApplyController { private BmsSupplierService bmsSupplierService; private SysUserService sysUserService; private TbsActivityService tbsActivityService; - private SeeYonProperties seeYonProperties; + private SeeYonService seeYonService; /** * 列表 @@ -111,31 +116,27 @@ public class TbsCostApplyController { tbsCostApplyService.updateById(costApply); return R.ok(); } - if(!seeYonProperties.getEnable()){ - return R.error("远程服务未开启"); - } - String url = seeYonProperties.getUrl(); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsCostApply tbsCostApply = tbsCostApplyService.getById(id); - if(tbsCostApply.getChargeState().equals(0)){ + if(tbsCostApply.getChargeState().equals(TbsCostApplyState.State_0_unPublish.getCode())){ Map data = new HashMap<>(10); data.put("empId",sysUser.getCode()); data.put("applyTime",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); data.put("money",tbsCostApply.getTotalActivityAmount()); data.put("costApplyCode",tbsCostApply.getId()); data.put("costApplyId",tbsCostApply.getId()); - Map param = new HashMap<>(10); - param.put("templateCode", TbsSeeYonConst.COST_APPLY_FORM); - param.put("memberLoginName",TbsSeeYonConst.COST_APPLY_USER); - param.put("subjectTitle",tbsCostApply.getChargeTheme()); - param.put("dataJson",JsonUtil.objectToJson(data)); - R flowIdResult = HttpUtil.doPostResult(url+TbsSeeYonConst.API_PROCESS_CREATE, JsonUtil.objectToJson(param),null); + BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); + createProcess.setTemplateCode(TbsSeeYonConst.COST_APPLY_FORM); + createProcess.setMemberLoginName(TbsSeeYonConst.COST_APPLY_USER); + createProcess.setSubjectTitle(tbsCostApply.getChargeTheme()); + createProcess.setDataJson(JsonUtil.objectToJson(data)); + R flowIdResult = seeYonService.baseCreateProcess(createProcess); if(flowIdResult.getStatus()!=200){ return R.error("远程服务调用失败"); } String flowId = flowIdResult.getData(); String formId = null; - R formIdResult = HttpUtil.doGetResult(url+TbsSeeYonConst.API_GET_FORM_ID,null); + R formIdResult = seeYonService.getFormId(tbsCostApply.getId()); if(formIdResult.getStatus()==200){ formId = formIdResult.getData(); } @@ -144,13 +145,16 @@ public class TbsCostApplyController { costApply.setSyFlowId(flowId); costApply.setSyFormId(formId); tbsCostApplyService.updateById(costApply); + //todo 扣除预算 return R.ok(); - }else if (tbsCostApply.getChargeState().equals(4)){ + }else if (tbsCostApply.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){ //todo 驳回重新申请 } return R.error("当前状态不可申请"); } + + /** * 更新 * @param param @@ -208,5 +212,92 @@ public class TbsCostApplyController { return R.isTrue(result); } + /** + * 申请审批表单(翻页) + * @param state 状态:0-未完成与已完成;1-未完成;2已完成;其它-加载所有 + * @param pageNum + * @param pageSize + * @return + */ + @GetMapping("/pageMemberAffair") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) + public R pageMemberAffair(Integer state,Integer pageNum,Integer pageSize){ + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + if(!StringUtils.hasText(sysUser.getSyUserId())){ + return R.error("当前账号未绑定致远用户信息"); + } + CtpAffairQo param = new CtpAffairQo(); + param.setMemberId(sysUser.getSyUserId()); + param.setState(state); + param.setPageNum(pageNum); + param.setPageSize(pageSize); + R> syResult = seeYonService.pageMemberAffair(param); + PageVo pageVo = syResult.getData(); + List ctpAffairs = pageVo.getList(); + if(ctpAffairs.size()>0){ + List costApplyIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList()); + List costApplyList = tbsCostApplyService.listByIds(costApplyIds); + for (TbsCostApply costApply : costApplyList) { + for (CtpAffair ctpAffair : ctpAffairs) { + if(costApply.getId().toString().equals(ctpAffair.getCostApplyId())){ + costApply.setAffairId(ctpAffair.getAffairId()); + break; + } + } + } + PageVo costApplyPageVo = new PageVo<>(); + costApplyPageVo.setPageNum(pageVo.getPageNum()); + costApplyPageVo.setPageSize(pageVo.getPageSize()); + costApplyPageVo.setTotal(pageVo.getTotal()); + costApplyPageVo.setTotalPage(pageVo.getTotalPage()); + costApplyPageVo.setList(costApplyList); + return R.ok(costApplyPageVo); + } + return R.byEmptyList(); + } + + /** + * 审批节点 + * @return + */ + @PostMapping("/commitAffair") + @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) + @PreAuthorize("hasRole('tbs:costApply:commit')") + public R commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + TbsCostApply costApply = tbsCostApplyService.getById(affairCommit.getAffairId()); + if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){ + return R.error("param err1"); + } + CtpAffairCommit param = new CtpAffairCommit(); + param.setState(affairCommit.getState()); + param.setAffairId(affairCommit.getAffairId()); + param.setComment(affairCommit.getComment()); + if(affairCommit.getState().equals(0)){ + param.setMemberId(sysUser.getSyUserId()); + }else if(affairCommit.getState().equals(1)){ + param.setMemberId(sysUser.getSyAccount()); + }else { + Assert.throwEx("param err2"); + } + R result = seeYonService.affairCommit(param); + if(result.getStatus()==200){ + //判断是否有下一节点 + String flag = result.getData(); + //审批中(next)、完成(finish)、拒绝(refused) + if("finish".equals(flag)){ + TbsCostApply apply = new TbsCostApply(); + apply.setId(costApply.getId()); + apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); + tbsCostApplyService.updateById(apply); + }else if ("refused".equals(flag)){ + //todo 退回节点 + }else if ("next".equals(flag)){ + return R.ok(); + } + } + return R.error("远程调用失败"); + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java index 9bd00790..9b7eadac 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java @@ -112,5 +112,7 @@ public class TbsActivityCenter implements Serializable { @JsonProperty private String delFlag; + /** 模板唯一健 */ + private String tmpUk; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java index 16b114e1..5418a42d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java @@ -181,6 +181,9 @@ public class TbsActivityCenterGoods implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private LocalDate preCheckDate; + /** 模板唯一健 */ + private String tmpUk; + @TableField(exist = false) private String spuName; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannel.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannel.java index cb27e918..3c5b8ccf 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannel.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannel.java @@ -95,5 +95,7 @@ public class TbsActivityChannel implements Serializable { @JsonProperty private String delFlag; + /** 模板唯一健 */ + private String tmpUk; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannelPoint.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannelPoint.java index ad9f474c..79270a2d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannelPoint.java @@ -105,5 +105,8 @@ public class TbsActivityChannelPoint implements Serializable { @JsonProperty private String delFlag; + /** 模板唯一健 */ + private String tmpUk; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java index 06813e87..e07004ef 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java @@ -100,6 +100,9 @@ public class TbsActivityGoods implements Serializable { @JsonProperty private String delFlag; + /** 模板唯一健 */ + private String tmpUk; + @TableField(exist = false) private String spuName; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java index c49119f7..58316487 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java @@ -103,6 +103,9 @@ public class TbsActivitySubject implements Serializable { @JsonProperty private String delFlag; + /** 模板唯一健 */ + private String tmpUk; + @TableField(exist = false) List activityCenterList; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java index 42070aa7..3349ee4d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java @@ -32,10 +32,6 @@ public class TbsActivityTemplate implements Serializable { @TableId(type = IdType.AUTO) private Long id; - /** 供应商id */ - @NotNull(message = "供应商id不能为空") - private Long supplierId; - /** 模板名称 */ @NotBlank(message = "模板名称不能为空") @Length(max = 30,message = "模板名称长度不能超过30字") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index 4aec398e..3ba0ef91 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -111,5 +111,8 @@ public class TbsCostApply implements Serializable { /** 统计所有活动使用的金额 */ private BigDecimal totalActivityUsedAmount; + @TableField(exist = false) + private String affairId; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java index ff3dd94a..58b4e24d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java @@ -62,5 +62,7 @@ public class TbsActivityCenterGoodsBo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 模板唯一健 */ + private String tmpUk; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java index 952f706d..8c25f6dd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java @@ -41,5 +41,7 @@ public class TbsActivityChannelBo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 模板唯一健 */ + private String tmpUk; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java index 8e3ab80f..67212e76 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java @@ -35,5 +35,7 @@ public class TbsActivityChannelPointBo implements Serializable { private String remark; + /** 模板唯一健 */ + private String tmpUk; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java index e4c35f3e..ce27e4ee 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java @@ -33,5 +33,8 @@ public class TbsActivityGoodsBo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 模板唯一健 */ + private String tmpUk; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java index 1fe31491..fd2fd6ce 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java @@ -43,6 +43,9 @@ public class TbsActivitySubjectBo implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 模板唯一健 */ + private String tmpUk; + /** 成本中心列表 */ private List centerList; @@ -70,6 +73,9 @@ public class TbsActivitySubjectBo implements Serializable { @NotNull(message = "费用占比率不能为空") private BigDecimal centerAmount; + /** 模板唯一健 */ + private String tmpUk; + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java index 763466b5..a5d4b546 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java @@ -29,10 +29,6 @@ public class TbsActivityTemplateBo implements Serializable { /** id */ private Long id; - /** 供应商id */ - @NotNull(message = "供应商id不能为空") - private Long supplierId; - /** 模板名称 */ @NotBlank(message = "模板名称不能为空") @Length(max = 30,message = "模板名称长度不能超过30字") @@ -58,10 +54,10 @@ public class TbsActivityTemplateBo implements Serializable { private Integer bizRegionFlag; /** 销售区域id列表 */ - private List saleRegionIds; + private List saleRegionIds; /** 销售区域id列表 */ - private List bizRegionIds; + private List bizRegionIds; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java new file mode 100644 index 00000000..a313185b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java @@ -0,0 +1,37 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/11/30 + */ +@Data +public class TbsAffairCommitBo { + + /** + * 费用申请id + */ + @NotNull + private Long costApplyId; + + /** 状态:0-否定,1-同意 */ + @NotNull + private Integer state; + + /** + * 流程节点id + */ + @NotNull + private String affairId; + + /** + * 评论 + */ + @NotNull + private String comment; + + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityVo.java index 5bb569e6..42e80b54 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityVo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityVo.java @@ -5,6 +5,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -14,7 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; - +import java.util.List; /** * 费用活动 VO * @author YenHex @@ -85,5 +86,8 @@ public class TbsActivityVo implements Serializable { @JsonProperty private String delFlag; + @TableField(exist = false) + List testids; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java index a91b7f83..1d9e9061 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java @@ -12,7 +12,7 @@ import java.util.List; */ public interface TbsActivityTemplateRegionService extends IService { - List getTemplateIds(String supplierId); + List getTemplateIds(String supplierId,List ignoreTemplateIds); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateService.java index db65d3ea..766981fd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateService.java @@ -11,7 +11,7 @@ import com.qs.serve.modules.tbs.entity.bo.TbsActivityTemplateBo; */ public interface TbsActivityTemplateService extends IService { - void modify(TbsActivityTemplateBo templateBo); + TbsActivityTemplate modify(TbsActivityTemplateBo templateBo); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java index c06e3763..3ed9253a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java @@ -10,11 +10,5 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply; */ public interface TbsCostApplyService extends IService { - /** - * 更新活动金额 - * @param id - */ - void updateActivityAmount(Long id); - } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index b37c9b6b..a883ceb3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -83,6 +83,7 @@ public class TbsActivityServiceImpl extends ServiceImpl getTemplateIds(String supplierId){ + public List getTemplateIds(String supplierId,List ignoreTemplateIds){ List saleRegionIds = new ArrayList<>(); List bizRegionIds = new ArrayList<>(); BmsSupplier supplier = supplierService.getById(supplierId); @@ -36,13 +36,14 @@ public class TbsActivityTemplateRegionServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + if(CollectionUtil.isNotEmpty(ignoreTemplateIds)){ + lqw.notIn(TbsActivityTemplateRegion::getTemplateId,ignoreTemplateIds); + } if(CollectionUtil.isNotEmpty(saleRegionIds) && bizRegionIds.size()==0 ){ lqw.eq(TbsActivityTemplateRegion::getType,"sale") .in(TbsActivityTemplateRegion::getRegionId,saleRegionIds); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java index a3e18a5a..b8dd7759 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java @@ -37,48 +37,51 @@ public class TbsActivityTemplateServiceImpl extends ServiceImpl rmRegion = new LambdaQueryWrapper<>(); - rmRegion.eq(TbsActivityTemplateRegion::getTemplateId,template.getId()); - templateRegionService.remove(rmRegion); - //保存区域 - List templateRegionList = new ArrayList<>(); - if(templateBo.getSaleRegionFlag() != null && templateBo.getSaleRegionFlag().equals(1) - && CollectionUtil.isNotEmpty(templateBo.getSaleRegionIds())){ - List saleRegionList = saleRegionService.listByIds(templateBo.getSaleRegionIds()); - List templateRegions = saleRegionList.stream().map(reg->{ - TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); - templateRegion.setTemplateId(template.getId()); - templateRegion.setType("sale"); - templateRegion.setRegionId(reg.getId()); - templateRegion.setRegionId(reg.getName()); - templateRegion.setRegionCode(reg.getCode()); - templateRegion.setRegionLevel(reg.getLevel()); - return templateRegion; - }).collect(Collectors.toList()); - templateRegionList.addAll(templateRegions); - } - if(templateBo.getBizRegionFlag() != null && templateBo.getBizRegionFlag().equals(1) - && CollectionUtil.isNotEmpty(templateBo.getBizRegionIds())){ - List bizRegionList = bizRegionService.listByIds(templateBo.getBizRegionIds()); - List templateRegions = bizRegionList.stream().map(reg->{ - TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); - templateRegion.setTemplateId(template.getId()); - templateRegion.setType("biz"); - templateRegion.setRegionId(reg.getId()); - templateRegion.setRegionName(reg.getName()); - templateRegion.setRegionCode(reg.getCode()); - templateRegion.setRegionLevel(reg.getLevel()); - return templateRegion; - }).collect(Collectors.toList()); - templateRegionList.addAll(templateRegions); - } - if(CollectionUtil.isNotEmpty(templateRegionList)){ - templateRegionService.saveBatch(templateRegionList); + if(templateBo.getBizRegionFlag()!=null&&templateBo.getSaleRegionFlag()!=null){ + LambdaQueryWrapper rmRegion = new LambdaQueryWrapper<>(); + rmRegion.eq(TbsActivityTemplateRegion::getTemplateId,template.getId()); + templateRegionService.remove(rmRegion); + //保存区域 + List templateRegionList = new ArrayList<>(); + if(templateBo.getSaleRegionFlag() != null && templateBo.getSaleRegionFlag().equals(1) + && CollectionUtil.isNotEmpty(templateBo.getSaleRegionIds())){ + List saleRegionList = saleRegionService.listByIds(templateBo.getSaleRegionIds()); + List templateRegions = saleRegionList.stream().map(reg->{ + TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); + templateRegion.setTemplateId(template.getId()); + templateRegion.setType("sale"); + templateRegion.setRegionId(reg.getId()); + templateRegion.setRegionName(reg.getName()); + templateRegion.setRegionCode(reg.getCode()); + templateRegion.setRegionLevel(reg.getLevel()); + return templateRegion; + }).collect(Collectors.toList()); + templateRegionList.addAll(templateRegions); + } + if(templateBo.getBizRegionFlag() != null && templateBo.getBizRegionFlag().equals(1) + && CollectionUtil.isNotEmpty(templateBo.getBizRegionIds())){ + List bizRegionList = bizRegionService.listByIds(templateBo.getBizRegionIds()); + List templateRegions = bizRegionList.stream().map(reg->{ + TbsActivityTemplateRegion templateRegion = new TbsActivityTemplateRegion(); + templateRegion.setTemplateId(template.getId()); + templateRegion.setType("biz"); + templateRegion.setRegionId(reg.getId()); + templateRegion.setRegionName(reg.getName()); + templateRegion.setRegionCode(reg.getCode()); + templateRegion.setRegionLevel(reg.getLevel()); + return templateRegion; + }).collect(Collectors.toList()); + templateRegionList.addAll(templateRegions); + } + if(CollectionUtil.isNotEmpty(templateRegionList)){ + templateRegionService.saveBatch(templateRegionList); + } } + return template; } } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 57ee5017..0c7c79f7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -18,11 +18,5 @@ import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; @AllArgsConstructor public class TbsCostApplyServiceImpl extends ServiceImpl implements TbsCostApplyService { - - @Override - public void updateActivityAmount(Long id) { - - } - } diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index fa0a15a4..aaa84570 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -55,7 +55,7 @@ public class VtbVerificationController { * @param param * @return */ - //@GetMapping("/page") + @GetMapping("/page") @PreAuthorize("hasRole('vtb:verification:query')") public R> getPage(VtbVerificationSo param){ VtbVerification entity = CopierUtil.copy(param,new VtbVerification()); @@ -70,7 +70,7 @@ public class VtbVerificationController { * @param id * @return */ - //@GetMapping("/getById/{id}") + @GetMapping("/getById/{id}") @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.QUERY) @PreAuthorize("hasRole('vtb:verification:query')") public R getById(@PathVariable("id") String id){ @@ -81,11 +81,11 @@ public class VtbVerificationController { /** - * 更新 + * 提交核销 * @param param * @return */ - //@PostMapping("/updateById") + @PostMapping("/commit") @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE) @PreAuthorize("hasRole('vtb:verification:update')") public R updateById(@RequestBody @Valid VtbVerificationBo param){ @@ -112,7 +112,7 @@ public class VtbVerificationController { * @param ids * @return */ - @DeleteMapping("/deleteById/{ids}") + //@DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.DELETE) @PreAuthorize("hasRole('vtb:verification:delete')") public R deleteById(@PathVariable("ids") String ids){ diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 24c96b7a..8e150f5f 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -84,6 +84,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl