Browse Source

大调整

contract
Yen 2 years ago
parent
commit
765bce981d
  1. 7
      src/main/java/com/qs/serve/Application.java
  2. 5
      src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java
  3. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java
  4. 21
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  5. 3
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  6. 3
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java
  7. 6
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  8. 126
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java
  9. 10
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  10. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  11. 117
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java
  12. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java
  13. 3
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java
  14. 83
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java
  15. 3
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java
  16. 25
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java
  17. 60
      src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityPayConditionSo.java
  18. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java
  19. 4
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityGoodsService.java
  20. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityPayConditionService.java
  21. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityGoodsServiceImpl.java
  22. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityPayConditionServiceImpl.java
  23. 4
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  24. 72
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  25. 2
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  26. 3
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java
  27. 12
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  28. 19
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  29. 1
      src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java
  30. 13
      src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java
  31. 1
      src/main/resources/application-dev.yml
  32. 3
      src/main/resources/mapper/bms/BmsSupplierMapper.xml
  33. 4
      src/main/resources/mapper/sys/SysUserMapper.xml
  34. 10
      src/main/resources/mapper/wx/WxFormPushMapper.xml

7
src/main/java/com/qs/serve/Application.java

@ -3,6 +3,7 @@ package com.qs.serve;
import com.qs.serve.common.config.DevEnvironmentConfig;
import com.qs.serve.task.TbsTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -10,6 +11,7 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@ -30,8 +32,10 @@ import java.util.TimeZone;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Value("${project.dev}")
String dev;
public static void main(String[] args) {
DevEnvironmentConfig.openDevEnv(true);
SpringApplication.run(Application.class,args);
}
@ -48,6 +52,7 @@ public class Application extends SpringBootServletInitializer {
@PostConstruct
void started() {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
DevEnvironmentConfig.openDevEnv(dev.equals("true"));
}
}

5
src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java

@ -1,5 +1,6 @@
package com.qs.serve.common.config;
import com.qs.serve.common.util.Assert;
import lombok.experimental.UtilityClass;
/**
@ -14,9 +15,9 @@ public class DevEnvironmentConfig {
if(devEnv==null){devEnv = open;}
}
public static boolean isDev(){
public static Boolean isDev(){
if(devEnv==null){
return false;
Assert.throwEx("资源加载中...");
}
return devEnv;
}

8
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java

@ -66,7 +66,7 @@ public class BmsSupplierAddressController {
/**
* 根据ID更新
* 根据ID更新默认
* @param param
* @return
*/
@ -74,12 +74,6 @@ public class BmsSupplierAddressController {
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:supplierAddress:update')")
public R<?> updateById(@RequestBody @Valid BmsSupplierAddress param){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(param.getSupplierId());
if(supplierAddress==null){
param.setDefaultFlag(1);
}else {
param.setDefaultFlag(0);
}
boolean result = bmsSupplierAddressService.updateById(param);
return R.isTrue(result);
}

21
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -419,6 +419,26 @@ public class BmsSupplierController {
return R.ok();
}
/**
* 根据ID更新供应商标识
* @apiNote (SupplierFlag,id)不能为空
* @param param
* @return
*/
@PostMapping("/updateSupplierFlagById")
@SysLog(module = SystemModule.BASE, title = "供应商标识", biz = BizType.UPDATE)
public R<?> updateSupplierFlagById(@RequestBody BmsSupplierBo param){
if(param.getId()==null){
return R.error("id不能为空");
}
BmsSupplier entity = new BmsSupplier();
entity.setId(param.getId());
entity.setSupplierFlag(param.getSupplierFlag());
bmsSupplierService.updateById(entity);
return R.ok();
}
/**
* 更新父级ID
* @param param
@ -459,7 +479,6 @@ public class BmsSupplierController {
bmsSupplierService.updateById(bmsSupplier2);
}
}
bmsSupplierService.updateById(supplier);
redisService.remove(RedisCacheKeys.SUPPLIER_RELATE_TREE);
return R.ok();

3
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -110,6 +110,9 @@ public class BmsSupplier implements Serializable {
/** 所属账套 */
private String belong;
/** 是否供应商 */
private Integer supplierFlag;
/** 创建时间 */
@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/bms/entity/bo/BmsSupplierBo.java

@ -50,4 +50,7 @@ public class BmsSupplierBo {
/** 可投放费用标识 */
private Integer costFlag;
/** 是否供应商 */
private Integer supplierFlag;
}

6
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -14,21 +14,21 @@ public interface TbsSeeYonConst {
/** 政策申请模板 */
class PolicyConf {
public static String Code(){
return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":"";
return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":"ReleasePolicy";
}
}
/** 费用申请 */
class CostApplyConf{
public static String Code(){
return DevEnvironmentConfig.isDev()?"CostBill_Test":"";
return DevEnvironmentConfig.isDev()?"CostBill_Test":"CostBill";
}
}
/** 核销 */
class CostCheckConf{
public static String Code(){
return DevEnvironmentConfig.isDev()?"CheckCost_Test":"";
return DevEnvironmentConfig.isDev()?"CheckCost_Test":"CheckCost";
}
}

126
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java

@ -0,0 +1,126 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.so.TbsActivityPayConditionSo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityPayConditionBo;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 活动支付条件
* @author YenHex
* @since 2023-05-10
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/activityPayCondition")
public class TbsActivityPayConditionController {
private TbsActivityPayConditionService tbsActivityPayConditionService;
private TbsActivityService tbsActivityService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<TbsActivityPayCondition>> getList(TbsActivityPayConditionSo param){
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
LambdaQueryWrapper<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>(entity);
List<TbsActivityPayCondition> list = tbsActivityPayConditionService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<TbsActivityPayCondition>> getPage(TbsActivityPayConditionSo param){
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
LambdaQueryWrapper<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsActivityPayCondition> list = tbsActivityPayConditionService.list(lqw);
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.QUERY)
public R<TbsActivityPayCondition> getById(@PathVariable("id") String id){
TbsActivityPayCondition tbsActivityPayCondition = tbsActivityPayConditionService.getById(id);
return R.ok(tbsActivityPayCondition);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.UPDATE)
public R<?> updateById(@RequestBody @Valid TbsActivityPayConditionBo param){
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
entity.setCostApplyId(null);
boolean result = tbsActivityPayConditionService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid TbsActivityPayConditionBo param){
TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition());
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(param.getCostApplyId());
Long actId = activityList.get(0).getId();
entity.setActivityId(actId);
boolean result = tbsActivityPayConditionService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.Budget, title = "活动支付条件", biz = BizType.DELETE)
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = tbsActivityPayConditionService.removeByIds(idsLong);
return R.isTrue(result);
}
}

10
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -298,16 +298,22 @@ public class TbsCostApplyController {
//模板类直接删除
if(entity.getTemplateId()!=null){
tbsCostApplyService.removeById(id);
tbsActivityService.removeById(id);
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivity::getCostApplyId,id);
List<TbsActivity> activityList = tbsActivityService.list(lqw);
for (TbsActivity activity : activityList) {
Long actId = activity.getId();
tbsActivityService.removeById(actId);
//删除子表数据
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("activity_id",id);
queryWrapper.eq("activity_id",actId);
activitySubjectService.remove(queryWrapper);
activityGoodsService.remove(queryWrapper);
activityChannelPointService.remove(queryWrapper);
activityChannelService.remove(queryWrapper);
activityCenterService.remove(queryWrapper);
activityCenterGoodsService.remove(queryWrapper);
}
return R.ok();
}
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java

@ -167,6 +167,9 @@ public class TbsActivity implements Serializable {
/** 模板值 */
private String templateValue;
/** 模板ID */
private Long templateId;
/** 产品类型 */
@TableField(exist = false)
private String goodsType;

117
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java

@ -0,0 +1,117 @@
package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 活动支付条件 实体类
* @author YenHex
* @since 2023-05-10
*/
@Data
@TableName("tbs_activity_pay_condition")
public class TbsActivityPayCondition implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 标题 */
@TableField(condition = SqlCondition.LIKE)
private String title;
/** 费用id */
@NotNull(message = "费用id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 付款条件 */
@NotBlank(message = "付款条件不能为空")
@Length(max = 4000,message = "付款条件长度不能超过4000字")
private String conditionMsg;
/** 付款金额 */
@NotNull(message = "付款金额不能为空")
private BigDecimal paymentPrice;
/** 付款时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate paymentDate;
/** 完成标识 2->审批中 */
private Integer finishedFlag;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
public static TbsActivityPayCondition toNewObject(TbsActivityPayCondition source){
TbsActivityPayCondition activityPayCondition = new TbsActivityPayCondition();
activityPayCondition.setId(source.getId());
activityPayCondition.setCostApplyId(source.getCostApplyId());
activityPayCondition.setActivityId(source.getActivityId());
activityPayCondition.setConditionMsg(source.getConditionMsg());
activityPayCondition.setPaymentPrice(source.getPaymentPrice());
activityPayCondition.setPaymentDate(source.getPaymentDate());
activityPayCondition.setRemark(source.getRemark());
activityPayCondition.setCreateTime(source.getCreateTime());
activityPayCondition.setUpdateTime(source.getUpdateTime());
activityPayCondition.setCreateBy(source.getCreateBy());
activityPayCondition.setUpdateBy(source.getUpdateBy());
activityPayCondition.setTenantId(source.getTenantId());
activityPayCondition.setDelFlag(source.getDelFlag());
return activityPayCondition;
}
}

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java

@ -55,6 +55,9 @@ public class TbsActivityTemplate implements Serializable {
@NotNull(message = "行政区域标识:0-全部可见;1-部分可见;2-全部不可不能为空")
private Integer bizRegionFlag;
/** 合同类型:0->无;1->有合同 */
private Integer contractFlag;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;

3
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java

@ -87,6 +87,9 @@ public class TbsActivityBo implements Serializable {
/** 客户详情可选:网点配比列表 */
List<TbsActivityChannelPointBo> activityPointList;
private Long templateId;
/** 模板值 */
private String templateValue;

83
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java

@ -0,0 +1,83 @@
package com.qs.serve.modules.tbs.entity.bo;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 活动支付条件 Bo
* @author YenHex
* @since 2023-05-10
*/
@Data
public class TbsActivityPayConditionBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用id */
@NotNull(message = "费用id不能为空")
private Long costApplyId;
/** 标题 */
@TableField(condition = SqlCondition.LIKE)
private String title;
/** 付款条件 */
@NotBlank(message = "付款条件不能为空")
@Length(max = 4000,message = "付款条件长度不能超过4000字")
private String conditionMsg;
/** 付款金额 */
@NotNull(message = "付款金额不能为空")
private BigDecimal paymentPrice;
/** 付款时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate paymentDate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/** 创建人 */
private String createBy;
/** 更新人 */
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

3
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java

@ -55,6 +55,9 @@ public class TbsActivityTemplateBo implements Serializable {
/** 行政区域标识:0-全部可见;1-部分可见;2-全部不可 */
private Integer bizRegionFlag;
/** 合同类型:0->无;1->有合同 */
private Integer contractFlag;
/** 销售区域id列表 */
private List<String> saleRegionIds;

25
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java

@ -0,0 +1,25 @@
package com.qs.serve.modules.tbs.entity.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author YenHex
* @since 2023/5/9
*/
public class TbsCostSubItem {
@Data
@AllArgsConstructor
public static class CostCenter{
private String chengBenZhongXin;
private String chengBenZhongXinId;
}
@Data
@AllArgsConstructor
public static class Subject{
private String keMuName;
}
}

60
src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityPayConditionSo.java

@ -0,0 +1,60 @@
package com.qs.serve.modules.tbs.entity.so;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 活动支付条件 查询参数
* @author YenHex
* @since 2023-05-10
*/
@Data
public class TbsActivityPayConditionSo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 标题 */
@TableField(condition = SqlCondition.LIKE)
private String title;
/** 费用id */
private Long costApplyId;
/** 活动id */
private Long activityId;
/** 付款条件 */
private String conditionMsg;
/** 付款金额 */
private BigDecimal paymentPrice;
/** 完成标识 */
private Integer finishedFlag;
/** 付款时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate paymentDate;
/** 备注 */
private String remark;
}

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
/**
* 活动支付条件 Mapper
* @author YenHex
* @date 2023-05-10
*/
public interface TbsActivityPayConditionMapper extends BaseMapper<TbsActivityPayCondition> {
}

4
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityGoodsService.java

@ -2,7 +2,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivityGoods;
import java.util.List;
/**
* 活动商品项 服务接口
* @author YenHex
@ -10,5 +10,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivityGoods;
*/
public interface TbsActivityGoodsService extends IService<TbsActivityGoods> {
List<TbsActivityGoods> listByCostApplyId(Long id);
}

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

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
/**
* 活动支付条件 服务接口
* @author YenHex
* @date 2023-05-10
*/
public interface TbsActivityPayConditionService extends IService<TbsActivityPayCondition> {
}

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityGoodsServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -7,7 +8,7 @@ import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsActivityGoods;
import com.qs.serve.modules.tbs.service.TbsActivityGoodsService;
import com.qs.serve.modules.tbs.mapper.TbsActivityGoodsMapper;
import java.util.List;
/**
* 活动商品项 服务实现类
* @author YenHex
@ -18,5 +19,13 @@ import com.qs.serve.modules.tbs.mapper.TbsActivityGoodsMapper;
@AllArgsConstructor
public class TbsActivityGoodsServiceImpl extends ServiceImpl<TbsActivityGoodsMapper,TbsActivityGoods> implements TbsActivityGoodsService {
@Override
public List<TbsActivityGoods> listByCostApplyId(Long id) {
LambdaQueryWrapper<TbsActivityGoods> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityGoods::getCostApplyId,id);
return this.list(lqw);
}
}

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityPayConditionServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService;
import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper;
/**
* 活动支付条件 服务实现类
* @author YenHex
* @since 2023-05-10
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsActivityPayConditionServiceImpl extends ServiceImpl<TbsActivityPayConditionMapper,TbsActivityPayCondition> implements TbsActivityPayConditionService {
}

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

@ -24,6 +24,7 @@ import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateMapper;
import com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -54,6 +55,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
private final TbsActivityCenterGoodsService activityCenterGoodsService;
private final TbsActivityChannelService activityChannelService;
private final TbsActivityChannelPointService activityChannelPointService;
private final TbsActivityTemplateMapper activityTemplateMapper;
private final TbsCostApplyService costApplyService;
private final TbsCenterDtoService tbsCenterDtoService;
@ -69,6 +71,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
private final SysConfigService configService;
@Override
public List<TbsActivity> listByCostApplyId(Long id) {
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();
@ -118,6 +121,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activity.setPreStartDate(activityBo.getPreStartDate());
activity.setPreEndDate(activityBo.getPreEndDate());
activity.setPreCheckDate(activityBo.getPreCheckDate());
activity.setTemplateId(activityBo.getTemplateId());
activity.setTemplateValue(activityBo.getTemplateValue());
activity.setSupplierId(Long.parseLong(supplier.getId()));
activity.setSupplierCode(supplier.getCode());

72
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -18,6 +18,9 @@ import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper;
import com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -28,10 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -50,8 +50,13 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private SysUserService sysUserService;
private SeeYonService seeYonService;
private TbsActivityTemplateService tbsActivityTemplateService;
private TbsActivityCenterService tbsActivityCenterService;
private TbsActivitySubjectService tbsActivitySubjectService;
private TbsActivityGoodsService tbsActivityGoodsService;
private TbsCostUnItemService tbsCostUnItemService;
private BmsSupplierService bmsSupplierService;
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityMapper tbsActivityMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@ -68,6 +73,37 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
Assert.throwEx("当前模板已停用");
}
}
if(tbsCostApply.getContractFlag().equals(1)){
LambdaQueryWrapper<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityPayCondition::getCostApplyId,id);
List<TbsActivityPayCondition> payConditions = tbsActivityPayConditionMapper.selectList(lqw);
if(payConditions.size()<1){
Assert.throwEx("请补充支付条件");
}
//暂且只有一个协议申请,只有一个活动,后续可能要改
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
actLqw.eq(TbsActivity::getCostApplyId,id);
List<TbsActivity> activityList = tbsActivityMapper.selectList(actLqw);
if(activityList.size()>1){
Assert.throwEx("协议类申请出现多条活动,请联系管理员");
}else if (activityList.size()<1){
Assert.throwEx("没有有效的活动内容");
}else {
// Long supplierId = activityList.get(0).getSupplierId();
// BmsSupplier supplier = bmsSupplierService.getById(supplierId);
// if(!supplier.getSupplierFlag().equals(1)){
// Assert.throwEx("协议类申请只对供应商开放");
// }
BigDecimal total = activityList.get(0).getTotalAmount();
BigDecimal total2 = BigDecimal.ZERO;
for (TbsActivityPayCondition payCondition : payConditions) {
total2 = total2.add(payCondition.getPaymentPrice());
}
if(total.compareTo(total2)!=0){
Assert.throwEx("支付条件金额["+total2+"]与核销金额["+total+"]不匹配");
}
}
}
BmsSupplier supplier = bmsSupplierService.getById(tbsCostApply.getSupplierId());
if(supplier.getCostFlag().equals(0)){
Assert.throwEx("["+supplier.getName()+"]无投放费用权限");
@ -83,12 +119,34 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("supplierName",tbsCostApply.getSupplierName());
data.put("supplierCode",tbsCostApply.getSupplierCode());
data.put("title",tbsCostApply.getChargeTheme());
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME2));
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03");
data.put("orgId",tbsCostApply.getId());
data.put("targetId",tbsCostApply.getId());
data.put("orgId",tbsCostApply.getId()+"");
data.put("targetId",tbsCostApply.getId()+"");
data.put("targetCode",tbsCostApply.getCode());
data.put("exsp1",TbsSeeYonConst.CostApplyConf.Code());
//添加科目和成本中心
List<TbsActivityCenter> tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id));
List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id));
List<String> subjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).distinct().collect(Collectors.toList());
List<Object> subList = new ArrayList<>();
for (String subjectName : subjectNames) {
subList.add(new TbsCostSubItem.Subject(subjectName));
}
for (TbsActivityCenter activityCenter : tbsActivityCenters) {
subList.add(new TbsCostSubItem.CostCenter(activityCenter.getCenterName(),
activityCenter.getCenterType()+"_"+
activityCenter.getCenterId()));
}
List<TbsActivityGoods> tbsActivityGoods = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id));
Set<String> bands = new HashSet<>();
for (TbsActivityGoods tbsActivityGood : tbsActivityGoods) {
String band = tbsActivityGood.getTargetLevelPathNames().split("_")[0];
bands.add(band);
}
String goods = bands.stream().collect(Collectors.joining(","));
data.put("chanPinPinLei",goods);
data.put("sub",subList);
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code());
createProcess.setMemberLoginName(sysUser.getSyAccount());

2
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java

@ -121,6 +121,8 @@ public class VtbVerification implements Serializable {
@JsonProperty
private String delFlag;
/** 支付条件id */
private Long payConditionId;
/** 申请人 */
@NotBlank(message = "申请人不能为空")

3
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java

@ -48,5 +48,8 @@ public class VtbVerificationBo implements Serializable {
/** 科目 */
private List<VtbVerificationSubjectBo> subjectList;
/** 支付条件id */
private Long payConditionId;
}

12
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.seeyon.entity.CtpAffair;
@ -12,10 +13,12 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsActivitySubjectService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
@ -49,6 +52,7 @@ public class VtbVerificationApplication {
private VtbVerificationSubjectService vtbVerificationSubjectService;
private VtbVerificationYardService yardService;
private VtbVerificationYardItemService yardItemService;
private final TbsActivityPayConditionService activityPayConditionService;
private TbsActivityService tbsActivityService;
private TbsCostApplyService tbsCostApplyService;
@ -212,6 +216,10 @@ public class VtbVerificationApplication {
vtbVerificationSubjectService.updateBatchById(verSubject4Update);
//重新计算合计
if(isFinish){
//支付条件完成
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(1);
activityPayConditionService.updateById(payCondition);
//更新金额,已完成
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
@ -250,6 +258,10 @@ public class VtbVerificationApplication {
vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer);
}
//还原支付条件
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId());
payCondition.setFinishedFlag(0);
activityPayConditionService.updateById(payCondition);
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());

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

@ -64,6 +64,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
private final TbsActivitySubjectService activitySubjectService;
private final TbsActivityCenterGoodsService activityCenterGoodsService;
private final TbsActivityCenterService activityCenterService;
private final TbsActivityPayConditionService activityPayConditionService;
private final TbsBudgetCostItemService budgetCostItemService;
private final TbsBudgetLogService budgetLogService;
private final TbsBudgetService budgetService;
@ -198,11 +199,29 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("当前费用状态不支持");
}
//协议类申请
if(costApply.getContractFlag().equals(1)){
if(verificationBo.getPayConditionId()==null){
Assert.throwEx("请选择支付条件");
}
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList();
BigDecimal totalSubjectAmt = BigDecimal.ZERO;
for (VtbVerificationSubjectBo subjectBo : subjectBoList) {
totalSubjectAmt = totalSubjectAmt.add(subjectBo.getAmount());
}
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verificationBo.getPayConditionId());
if(payCondition.getPaymentPrice().compareTo(totalSubjectAmt)>1){
Assert.throwEx("核销金额超过支付条件金额");
}
payCondition.setFinishedFlag(2);
activityPayConditionService.updateById(payCondition);
}
//退回的审批跳过校验
boolean isCurrentCommit = verificationBo.getId()!=null;
validActivity(activity,true,isCurrentCommit);
VtbVerification verification = new VtbVerification();
verification.setId(verificationBo.getId());
verification.setPayConditionId(verificationBo.getPayConditionId());
verification.setVerificationCode("HX"+IdUtil.timeStampId());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setActivityId(verificationBo.getActivityId());

1
src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java

@ -71,6 +71,7 @@ public class WxFormPushController {
public R<PageVo<WxFormPush>> getPage(WxFormPush param){
LambdaQueryWrapper<WxFormPush> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
lqw.orderByDesc(WxFormPush::getCreateTime);
List<WxFormPush> list = wxFormPushService.list(lqw);
return R.byPageHelperList(list);
}

13
src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java

@ -104,6 +104,19 @@ public class WxFormPush implements Serializable {
@TableField(exist = false)
private String queryUserId;
@TableField(exist = false)
private String formTitle;
/** 查询的用户id */
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate queryStartTime;
/** 查询的用户id */
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate queryEndTime;
@TableField(exist = false)
private List<WxFormPushUser> wxFormPushUserList;

1
src/main/resources/application-dev.yml

@ -1,5 +1,6 @@
#项目配置
project:
dev: true
seeyon:
enable: true
url: 'http://192.168.0.9:7444'

3
src/main/resources/mapper/bms/BmsSupplierMapper.xml

@ -36,6 +36,7 @@
<result property="tenantId" column="tenant_id"/>
<result property="costFlag" column="cost_flag"/>
<result property="delFlag" column="del_flag"/>
<result property="supplierFlag" column="supplier_flag"/>
</resultMap>
@ -68,6 +69,7 @@
bms_supplier.`update_by`,
bms_supplier.`tenant_id`,
bms_supplier.`cost_flag`,
bms_supplier.`supplier_flag`,
bms_supplier.`del_flag` </sql>
<select id="selectSupplierList" parameterType="com.qs.serve.modules.bms.entity.BmsSupplier" resultMap="bmsSupplierMap">
@ -92,6 +94,7 @@
<if test="query.updateTime != null"> and `bms_supplier`.`update_time` = #{query.updateTime}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_supplier`.`update_by` = #{query.updateBy}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `bms_supplier`.`tenant_id` = #{query.tenantId}</if>
<if test="query.supplierFlag != null and query.supplierFlag != ''"> and `bms_supplier`.`supplier_flag` = #{query.supplierFlag}</if>
<if test="query.delFlag != null"> and `bms_supplier`.`del_flag` = #{query.delFlag}</if>
<if test="query.delFlag == null"> and `bms_supplier`.`del_flag` = '0'</if>
<if test="query.currUserId!=null and query.currUserId != ''">

4
src/main/resources/mapper/sys/SysUserMapper.xml

@ -25,6 +25,8 @@
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="syAccount" column="sy_account"/>
<result property="syUserId" column="sy_user_id"/>
</resultMap>
<sql id="sysUserSql">
@ -49,6 +51,8 @@
sys_user.update_time,
sys_user.update_by,
sys_user.del_flag,
sys_user.sy_account,
sys_user.sy_user_id,
sys_user.tenant_id </sql>
<select id="listUser" parameterType="com.qs.serve.modules.sys.entity.SysUser" resultMap="sysUserMap">

10
src/main/resources/mapper/wx/WxFormPushMapper.xml

@ -63,6 +63,16 @@
<if test="query.delFlag != null and query.delFlag != ''"> and `wx_form_push`.`del_flag` = #{query.delFlag}</if>
<if test="query.status != null and query.status != ''"> and `wx_form_push`.`status` = #{query.status}</if>
<if test="query.businessType != null and query.businessType != ''"> and `wx_form_push`.`business_type` = #{query.businessType}</if>
<if test="query.formTitle != null and query.formTitle != ''"> and `wx_form_push`.`title` like concat('%',#{query.formTitle},'%') </if>
<if test="query.queryStartTime != null">
and `wx_form_push_user`.`create_time` &gt;= #{query.queryStartTime}
</if>
<if test="query.queryEndTime != null">
and `wx_form_push_user`.`create_time` &lt;= #{query.queryEndTime}
</if>
<if test="query.queryUserId != null and query.queryUserId != ''">
and `wx_form_push_user`.`user_id` = #{query.queryUserId}
</if>

Loading…
Cancel
Save