Browse Source

Merge remote-tracking branch 'origin/mssql' into mssql

mssql
07 3 years ago
parent
commit
3ea50426bd
  1. 8
      src/main/java/com/qs/serve/common/util/StringUtils.java
  2. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelController.java
  3. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java
  4. 10
      src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java
  5. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  6. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsSubjectController.java
  7. 3
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  8. 17
      src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java
  9. 16
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  10. 17
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  11. 27
      src/main/java/com/qs/serve/modules/seeyon/entity/BaseCreateProcessBo.java
  12. 27
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java
  13. 18
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCancel.java
  14. 24
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairCommit.java
  15. 32
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java
  16. 61
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java
  17. 98
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java
  18. 8
      src/main/java/com/qs/serve/modules/sys/entity/SysUser.java
  19. 3
      src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java
  20. 4
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  21. 16
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  22. 19
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java
  23. 123
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  24. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java
  25. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java
  26. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannel.java
  27. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityChannelPoint.java
  28. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityGoods.java
  29. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java
  30. 4
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java
  31. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  32. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityCenterGoodsBo.java
  33. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelBo.java
  34. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityChannelPointBo.java
  35. 3
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityGoodsBo.java
  36. 6
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivitySubjectBo.java
  37. 8
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java
  38. 37
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  39. 6
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsActivityVo.java
  40. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java
  41. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateService.java
  42. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java
  43. 14
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  44. 7
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateRegionServiceImpl.java
  45. 79
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java
  46. 6
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  47. 10
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  48. 2
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

8
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 {}的表达式

8
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<TbsActivityChannel> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityChannel::getChannelId,id);
if(activityChannelService.count()>0){
return R.error("活动含当前渠道,删除失败");
}
boolean result = bmsChannelService.removeById(id);
return R.isTrue(result);
}

8
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<TbsActivityChannelPoint> 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);
}

10
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<TbsActivityCenter> 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);
}

2
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("含有子区域无法删除");
}

8
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<TbsActivitySubject> 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);
}

3
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());

17
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);
}

16
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){
//删除商品规格值

17
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){
//删除商品规格

27
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<Long> attachments;
}

27
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;
}

18
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;
}

24
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;
}

32
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<String> templateCodes;
List<String> templateIds;
String memberId;
String formMainId;
/**
* 状态0-未完成与已完成1-未完成2已完成其它-加载所有
*/
Integer state;
Integer pageNum;
Integer pageSize;
}

61
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<String> baseCreateProcess(BaseCreateProcessBo createProcessBo);
/**
* 获取表单id
* @param costApplyId
* @return
*/
R<String> getFormId(Long costApplyId);
/**
* 提交
* @param affairCommit
* @return
*/
R<String> affairCommit(CtpAffairCommit affairCommit);
/**
* 取消流程
* @param affairCancel
* @return
*/
R<String> affairCancel(CtpAffairCancel affairCancel);
/**
* 获取用户表单
* @param ctpAffairQo
* @return
*/
R<PageVo<CtpAffair>> pageMemberAffair(CtpAffairQo ctpAffairQo);
/**
* 列表表单审批节点
* @param ctpAffairQo
* @return
*/
R<List<CtpAffair>> listFormAffair(CtpAffairQo ctpAffairQo);
}

98
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<String> baseCreateProcess(BaseCreateProcessBo createProcessBo) {
String title = "创建流程";
return postBase(TbsSeeYonConst.API_PROCESS_CREATE,createProcessBo,title);
}
@Override
public R<String> getFormId(Long costApplyId) {
String title = "获取表单ID";
String url2 = TbsSeeYonConst.API_GET_FORM_ID+"?costApplyId="+costApplyId;
return getBase(url2,title);
}
@Override
public R<String> affairCommit(CtpAffairCommit affairCommit) {
String title = "审批流程";
return postBase(TbsSeeYonConst.API_PROCESS_COMMIT,affairCommit,title);
}
@Override
public R<String> affairCancel(CtpAffairCancel affairCancel) {
String title = "取消流程";
return postBase(TbsSeeYonConst.API_PROCESS_CANCEL,affairCancel,title);
}
@Override
public R<PageVo<CtpAffair>> pageMemberAffair(CtpAffairQo ctpAffairQo) {
String title = "用户审批流程";
R<String> result = postBase(TbsSeeYonConst.API_PAGE_AFFAIR,ctpAffairQo,title);
return null;
}
@Override
public R<List<CtpAffair>> listFormAffair(CtpAffairQo ctpAffairQo) {
String title = "表单审批节点";
R<String> result = postBase(TbsSeeYonConst.API_LIST_AFFAIR,ctpAffairQo,title);
return null;
}
private R<String> getBase(String url2, String title){
String url = getBaseUrl();
R<String> result = HttpUtil.doGetResult(url+url2,null);
if(result.getStatus()!=200){
log.error("致远服务失败[{},{}] url2:{}",title,result.getMsg(),url2);
}
return result;
}
private R<String> postBase(String url2,Object param,String title){
String url = getBaseUrl();
R<String> 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();
}
}

8
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")

3
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;

4
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";
}

16
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();
}
}

19
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<List<TbsActivityTemplate>> listBySupplier(@PathVariable("id") String id){
List<TbsActivityTemplateRegion> templateRegions = tbsActivityTemplateRegionService.getTemplateIds(id);
LambdaQueryWrapper<TbsActivityTemplate> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityTemplate::getBizRegionFlag,0).or().eq(TbsActivityTemplate::getSaleRegionFlag,0);
List<TbsActivityTemplate> activityTemplateList = tbsActivityTemplateService.list(lqw);
List<Long> tmpIds = activityTemplateList.stream().map(TbsActivityTemplate::getId).collect(Collectors.toList());
List<TbsActivityTemplateRegion> templateRegions = tbsActivityTemplateRegionService.getTemplateIds(id,tmpIds);
List<Long> templateIds = templateRegions.stream().map(TbsActivityTemplateRegion::getTemplateId)
.distinct().collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(templateIds)){
if(CollectionUtil.isEmpty(templateIds)){
return R.ok();
}
List<TbsActivityTemplate> templates = tbsActivityTemplateService.listByIds(templateIds);
templates.addAll(activityTemplateList);
return R.ok(templates);
}

123
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<String, Object> 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<String,Object> 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<String> 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<String> flowIdResult = seeYonService.baseCreateProcess(createProcess);
if(flowIdResult.getStatus()!=200){
return R.error("远程服务调用失败");
}
String flowId = flowIdResult.getData();
String formId = null;
R<String> formIdResult = HttpUtil.doGetResult(url+TbsSeeYonConst.API_GET_FORM_ID,null);
R<String> 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<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList();
if(ctpAffairs.size()>0){
List<String> costApplyIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<TbsCostApply> 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<TbsCostApply> 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<String> 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("远程调用失败");
}
}

2
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;
}

3
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;

2
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;
}

3
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;
}

3
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;

3
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<TbsActivityCenter> activityCenterList;

4
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字")

3
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;
}

2
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;
}

2
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;
}

2
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;
}

3
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;
}

6
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<ActivityCenterBo> centerList;
@ -70,6 +73,9 @@ public class TbsActivitySubjectBo implements Serializable {
@NotNull(message = "费用占比率不能为空")
private BigDecimal centerAmount;
/** 模板唯一健 */
private String tmpUk;
}
}

8
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<Long> saleRegionIds;
private List<String> saleRegionIds;
/** 销售区域id列表 */
private List<Long> bizRegionIds;
private List<String> bizRegionIds;
}

37
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;
}

6
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<String> testids;
}

2
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityTemplateRegionService.java

@ -12,7 +12,7 @@ import java.util.List;
*/
public interface TbsActivityTemplateRegionService extends IService<TbsActivityTemplateRegion> {
List<TbsActivityTemplateRegion> getTemplateIds(String supplierId);
List<TbsActivityTemplateRegion> getTemplateIds(String supplierId,List<Long> ignoreTemplateIds);
}

2
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<TbsActivityTemplate> {
void modify(TbsActivityTemplateBo templateBo);
TbsActivityTemplate modify(TbsActivityTemplateBo templateBo);
}

6
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<TbsCostApply> {
/**
* 更新活动金额
* @param id
*/
void updateActivityAmount(Long id);
}

14
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

@ -83,6 +83,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
String random = String.format("%03d",new Random().nextInt(999));
activity.setActivityCode("G"+ StringUtils.genShortId() + random);
}
activity.setTemplateValue(activityBo.getTemplateValue());
activity.setSupplierId(Long.parseLong(supplier.getId()));
activity.setSupplierCode(supplier.getCode());
activity.setSupplierName(supplier.getName());
@ -163,6 +164,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityChannel.setChannelRate(activityChannelBo.getChannelRate());
activityChannel.setPreCountPoint(activityChannelBo.getPreCountPoint());
activityChannel.setRemark(activityChannelBo.getRemark());
activityChannel.setTmpUk(activityChannelBo.getTmpUk());
activityChannelList.add(activityChannel);
}
activityChannelService.saveBatch(activityChannelList);
@ -182,6 +184,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityChannelPoint.setPointName(channelPoint.getPointName());
activityChannelPoint.setPointRate(activityChannelPointBo.getPointRate());
activityChannelPoint.setRemark(activityChannelPointBo.getRemark());
activityChannelPoint.setTmpUk(activityChannelPointBo.getTmpUk());
activityChannelPointList.add(activityChannelPoint);
}
activityChannelPointService.saveBatch(activityChannelPointList);
@ -211,6 +214,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
BmsSubject subject = subjectMap.get(centerGoodsBo.getSubjectId());
TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods();
centerGoods.setCenterGoodsCode(activity.getActivityCode()+"_"+(i+1));
centerGoods.setTmpUk(centerGoodsBo.getTmpUk());
//设置成本中心
String key = centerGoodsBo.getCenterType()+":"+centerGoodsBo.getCenterId();
TbsCenterDto tbsCenterDto = centerDtoMap.get(key);
@ -286,8 +290,12 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
TbsCostApply costApply,TbsActivity activity){
for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) {
BmsSubject subject = subjectService.getById(subjectBo.getSubjectId());
if(subject==null){
Assert.throwEx("部分科目不存在了,请重新编辑");
}
subjectMap.put(subject.getId(),subject);
TbsActivitySubject activitySubject = new TbsActivitySubject();
activitySubject.setTmpUk(subjectBo.getTmpUk());
activitySubject.setCostApplyId(costApply.getId());
activitySubject.setActivityId(activity.getId());
activitySubject.setSubjectId(subject.getId());
@ -309,6 +317,9 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
TbsCenterDto tbsCenterDto = centerDtoMap.get(key);
if(tbsCenterDto==null){
tbsCenterDto = tbsCenterDtoService.getCenterDto(centerType,centerId);
if(tbsCenterDto==null){
Assert.throwEx("部分成本中心不存在了,请重新编辑");
}
tbsCenterDto.setCenterRate(centerBo.getCenterRate());
tbsCenterDto.setCenterAmount(centerBo.getCenterAmount());
centerDtoMap.put(key,tbsCenterDto);
@ -323,15 +334,16 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityCenter.setCenterId(centerBo.getCenterId());
activityCenter.setCenterName(tbsCenterDto.getCenterName());
activityCenter.setCenterCode(tbsCenterDto.getCenterCode());
activityCenter.setTmpUk(centerBo.getTmpUk());
activityCenterList.add(activityCenter);
}
//判断是否允许超预算
if(activitySubject.getAmount().compareTo(totalAmount)!=0){
Assert.throwEx("成本中心费用入参有误");
}
if(totalRate.compareTo(new BigDecimal(100))!=0){
Assert.throwEx("成本中心费用配比有误");
}
//todo 判断是否允许超预算
}
}

7
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateRegionServiceImpl.java

@ -28,7 +28,7 @@ public class TbsActivityTemplateRegionServiceImpl extends ServiceImpl<TbsActivit
private final BmsSupplierService supplierService;
@Override
public List<TbsActivityTemplateRegion> getTemplateIds(String supplierId){
public List<TbsActivityTemplateRegion> getTemplateIds(String supplierId,List<Long> ignoreTemplateIds){
List<String> saleRegionIds = new ArrayList<>();
List<String> bizRegionIds = new ArrayList<>();
BmsSupplier supplier = supplierService.getById(supplierId);
@ -36,13 +36,14 @@ public class TbsActivityTemplateRegionServiceImpl extends ServiceImpl<TbsActivit
if(supplier.getRegionSecond()!=null){ saleRegionIds.add(supplier.getRegionSecond()); }
if(supplier.getRegionThird()!=null){ saleRegionIds.add(supplier.getRegionThird()); }
if(supplier.getRegionFourthly()!=null){ saleRegionIds.add(supplier.getRegionFourthly()); }
if(supplier.getRegion2First()!=null){ bizRegionIds.add(supplier.getRegion2First()); }
if(supplier.getRegion2Second()!=null){ bizRegionIds.add(supplier.getRegion2Second()); }
if(supplier.getRegion2Third()!=null){ bizRegionIds.add(supplier.getRegion2Third()); }
if(supplier.getRegion2Fourthly()!=null){ bizRegionIds.add(supplier.getRegion2Fourthly()); }
LambdaQueryWrapper<TbsActivityTemplateRegion> 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);

79
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityTemplateServiceImpl.java

@ -37,48 +37,51 @@ public class TbsActivityTemplateServiceImpl extends ServiceImpl<TbsActivityTempl
private final BmsRegion2Service bizRegionService;
@Override
public void modify(TbsActivityTemplateBo templateBo) {
public TbsActivityTemplate modify(TbsActivityTemplateBo templateBo) {
TbsActivityTemplate template = CopierUtil.copy(templateBo,new TbsActivityTemplate());
this.saveOrUpdate(template);
//移除历史
LambdaQueryWrapper<TbsActivityTemplateRegion> rmRegion = new LambdaQueryWrapper<>();
rmRegion.eq(TbsActivityTemplateRegion::getTemplateId,template.getId());
templateRegionService.remove(rmRegion);
//保存区域
List<TbsActivityTemplateRegion> templateRegionList = new ArrayList<>();
if(templateBo.getSaleRegionFlag() != null && templateBo.getSaleRegionFlag().equals(1)
&& CollectionUtil.isNotEmpty(templateBo.getSaleRegionIds())){
List<BmsRegion> saleRegionList = saleRegionService.listByIds(templateBo.getSaleRegionIds());
List<TbsActivityTemplateRegion> 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<BmsRegion2> bizRegionList = bizRegionService.listByIds(templateBo.getBizRegionIds());
List<TbsActivityTemplateRegion> 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<TbsActivityTemplateRegion> rmRegion = new LambdaQueryWrapper<>();
rmRegion.eq(TbsActivityTemplateRegion::getTemplateId,template.getId());
templateRegionService.remove(rmRegion);
//保存区域
List<TbsActivityTemplateRegion> templateRegionList = new ArrayList<>();
if(templateBo.getSaleRegionFlag() != null && templateBo.getSaleRegionFlag().equals(1)
&& CollectionUtil.isNotEmpty(templateBo.getSaleRegionIds())){
List<BmsRegion> saleRegionList = saleRegionService.listByIds(templateBo.getSaleRegionIds());
List<TbsActivityTemplateRegion> 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<BmsRegion2> bizRegionList = bizRegionService.listByIds(templateBo.getBizRegionIds());
List<TbsActivityTemplateRegion> 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;
}
}

6
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<TbsCostApplyMapper,TbsCostApply> implements TbsCostApplyService {
@Override
public void updateActivityAmount(Long id) {
}
}

10
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<PageVo<VtbVerification>> 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<VtbVerification> 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){

2
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -84,6 +84,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
fundFlow.setActivityId(activity.getId());
fundFlow.setUsedAmount(releaseAmount);
fundFlowService.save(fundFlow);
//todo 恢复预算
}

Loading…
Cancel
Save