From 765bce981db0b02a01572bd3db2eb9c450059ea7 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 11 May 2023 08:31:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/qs/serve/Application.java | 7 +- .../common/config/DevEnvironmentConfig.java | 5 +- .../BmsSupplierAddressController.java | 8 +- .../bms/controller/BmsSupplierController.java | 21 ++- .../serve/modules/bms/entity/BmsSupplier.java | 3 + .../modules/bms/entity/bo/BmsSupplierBo.java | 3 + .../modules/tbs/common/TbsSeeYonConst.java | 6 +- .../TbsActivityPayConditionController.java | 126 ++++++++++++++++++ .../controller/TbsCostApplyController.java | 26 ++-- .../serve/modules/tbs/entity/TbsActivity.java | 3 + .../tbs/entity/TbsActivityPayCondition.java | 117 ++++++++++++++++ .../tbs/entity/TbsActivityTemplate.java | 3 + .../modules/tbs/entity/bo/TbsActivityBo.java | 3 + .../entity/bo/TbsActivityPayConditionBo.java | 83 ++++++++++++ .../tbs/entity/bo/TbsActivityTemplateBo.java | 3 + .../tbs/entity/dto/TbsCostSubItem.java | 25 ++++ .../entity/so/TbsActivityPayConditionSo.java | 60 +++++++++ .../mapper/TbsActivityPayConditionMapper.java | 14 ++ .../tbs/service/TbsActivityGoodsService.java | 4 +- .../TbsActivityPayConditionService.java | 14 ++ .../impl/TbsActivityGoodsServiceImpl.java | 11 +- .../TbsActivityPayConditionServiceImpl.java | 22 +++ .../service/impl/TbsActivityServiceImpl.java | 4 + .../service/impl/TbsCostApplyServiceImpl.java | 72 +++++++++- .../modules/vtb/entity/VtbVerification.java | 2 + .../vtb/entity/bo/VtbVerificationBo.java | 3 + .../service/VtbVerificationApplication.java | 12 ++ .../impl/VtbVerificationServiceImpl.java | 19 +++ .../wx/controller/WxFormPushController.java | 1 + .../serve/modules/wx/entity/WxFormPush.java | 13 ++ src/main/resources/application-dev.yml | 1 + .../mapper/bms/BmsSupplierMapper.xml | 3 + .../resources/mapper/sys/SysUserMapper.xml | 4 + .../resources/mapper/wx/WxFormPushMapper.xml | 10 ++ 34 files changed, 678 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityPayConditionSo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/TbsActivityPayConditionService.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityPayConditionServiceImpl.java diff --git a/src/main/java/com/qs/serve/Application.java b/src/main/java/com/qs/serve/Application.java index 33d2ef84..f8608638 100644 --- a/src/main/java/com/qs/serve/Application.java +++ b/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")); } } diff --git a/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java b/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java index a51a115f..6cb85448 100644 --- a/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java +++ b/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; } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java index 531d92c8..f291fb07 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java +++ b/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); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index 508caab1..3d690860 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/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(); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 1d456753..08d034ea 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -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") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java index 135317ae..de71022b 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java +++ b/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; } diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 1bb0ddf4..44a83c3c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -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"; } } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityPayConditionController.java new file mode 100644 index 00000000..471360fc --- /dev/null +++ b/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> getList(TbsActivityPayConditionSo param){ + TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + List list = tbsActivityPayConditionService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(TbsActivityPayConditionSo param){ + TbsActivityPayCondition entity = CopierUtil.copy(param,new TbsActivityPayCondition()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List 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 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 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 idsLong = StringUtils.splitIdLong(ids); + boolean result = tbsActivityPayConditionService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index b175e656..2464db2a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -298,16 +298,22 @@ public class TbsCostApplyController { //模板类直接删除 if(entity.getTemplateId()!=null){ tbsCostApplyService.removeById(id); - tbsActivityService.removeById(id); - //删除子表数据 - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("activity_id",id); - activitySubjectService.remove(queryWrapper); - activityGoodsService.remove(queryWrapper); - activityChannelPointService.remove(queryWrapper); - activityChannelService.remove(queryWrapper); - activityCenterService.remove(queryWrapper); - activityCenterGoodsService.remove(queryWrapper); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivity::getCostApplyId,id); + List activityList = tbsActivityService.list(lqw); + for (TbsActivity activity : activityList) { + Long actId = activity.getId(); + tbsActivityService.removeById(actId); + //删除子表数据 + QueryWrapper queryWrapper = new QueryWrapper(); + 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 lqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java index c392e577..6a787895 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityPayCondition.java new file mode 100644 index 00000000..d4706540 --- /dev/null +++ b/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; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java index b7b92a5d..a1a78e4c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java @@ -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; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java index 780b470d..26506d73 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityBo.java @@ -87,6 +87,9 @@ public class TbsActivityBo implements Serializable { /** 客户详情可选:网点配比列表 */ List activityPointList; + + private Long templateId; + /** 模板值 */ private String templateValue; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityPayConditionBo.java new file mode 100644 index 00000000..76109675 --- /dev/null +++ b/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; + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java index 5156129d..fd99251f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java @@ -55,6 +55,9 @@ public class TbsActivityTemplateBo implements Serializable { /** 行政区域标识:0-全部可见;1-部分可见;2-全部不可 */ private Integer bizRegionFlag; + /** 合同类型:0->无;1->有合同 */ + private Integer contractFlag; + /** 销售区域id列表 */ private List saleRegionIds; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java new file mode 100644 index 00000000..a50c821d --- /dev/null +++ b/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; + } + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityPayConditionSo.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityPayConditionSo.java new file mode 100644 index 00000000..a5ec7d40 --- /dev/null +++ b/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; + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java new file mode 100644 index 00000000..34e48345 --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityGoodsService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityGoodsService.java index 87dd4c49..4e063c35 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityGoodsService.java +++ b/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 { + List listByCostApplyId(Long id); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityPayConditionService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityPayConditionService.java new file mode 100644 index 00000000..d08e52df --- /dev/null +++ b/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 { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityGoodsServiceImpl.java index 9082fdde..ddb5bc59 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityGoodsServiceImpl.java +++ b/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 implements TbsActivityGoodsService { + + @Override + public List listByCostApplyId(Long id) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityGoods::getCostApplyId,id); + return this.list(lqw); + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityPayConditionServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityPayConditionServiceImpl.java new file mode 100644 index 00000000..4686bffb --- /dev/null +++ b/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 implements TbsActivityPayConditionService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index 1c451041..6664135d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -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 listByCostApplyId(Long id) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); @@ -118,6 +121,7 @@ public class TbsActivityServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsActivityPayCondition::getCostApplyId,id); + List payConditions = tbsActivityPayConditionMapper.selectList(lqw); + if(payConditions.size()<1){ + Assert.throwEx("请补充支付条件"); + } + //暂且只有一个协议申请,只有一个活动,后续可能要改 + LambdaQueryWrapper actLqw = new LambdaQueryWrapper<>(); + actLqw.eq(TbsActivity::getCostApplyId,id); + List 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 tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id)); + List tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id)); + List subjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).distinct().collect(Collectors.toList()); + List 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 = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id)); + Set 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()); diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java index 72aed23e..c398a011 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java +++ b/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 = "申请人不能为空") diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java index c28a9acc..a71e9565 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java @@ -48,5 +48,8 @@ public class VtbVerificationBo implements Serializable { /** 科目 */ private List subjectList; + /** 支付条件id */ + private Long payConditionId; + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index 92ef52e0..efe362be 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/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()); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index ef7d8d7c..1eb7b510 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -64,6 +64,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl 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()); diff --git a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java index 05d285c3..144b82d3 100644 --- a/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java +++ b/src/main/java/com/qs/serve/modules/wx/controller/WxFormPushController.java @@ -71,6 +71,7 @@ public class WxFormPushController { public R> getPage(WxFormPush param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); PageUtil.startPage(); + lqw.orderByDesc(WxFormPush::getCreateTime); List list = wxFormPushService.list(lqw); return R.byPageHelperList(list); } diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java b/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java index f8930095..4591dc12 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/WxFormPush.java +++ b/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 wxFormPushUserList; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 47357739..3b22cd50 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,5 +1,6 @@ #项目配置 project: + dev: true seeyon: enable: true url: 'http://192.168.0.9:7444' diff --git a/src/main/resources/mapper/bms/BmsSupplierMapper.xml b/src/main/resources/mapper/bms/BmsSupplierMapper.xml index 53dc7209..ef8f7d85 100644 --- a/src/main/resources/mapper/bms/BmsSupplierMapper.xml +++ b/src/main/resources/mapper/bms/BmsSupplierMapper.xml @@ -36,6 +36,7 @@ + @@ -68,6 +69,7 @@ bms_supplier.`update_by`, bms_supplier.`tenant_id`, bms_supplier.`cost_flag`, + bms_supplier.`supplier_flag`, bms_supplier.`del_flag` diff --git a/src/main/resources/mapper/wx/WxFormPushMapper.xml b/src/main/resources/mapper/wx/WxFormPushMapper.xml index 5db0da69..9658b0f4 100644 --- a/src/main/resources/mapper/wx/WxFormPushMapper.xml +++ b/src/main/resources/mapper/wx/WxFormPushMapper.xml @@ -63,6 +63,16 @@ and `wx_form_push`.`del_flag` = #{query.delFlag} and `wx_form_push`.`status` = #{query.status} and `wx_form_push`.`business_type` = #{query.businessType} + and `wx_form_push`.`title` like concat('%',#{query.formTitle},'%') + + + and `wx_form_push_user`.`create_time` >= #{query.queryStartTime} + + + + and `wx_form_push_user`.`create_time` <= #{query.queryEndTime} + + and `wx_form_push_user`.`user_id` = #{query.queryUserId}