Browse Source

成本中心维度核销

v1.0
Yen 2 years ago
parent
commit
2f12e010b5
  1. 3
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java
  2. 2
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  3. 6
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  4. 3
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java
  5. 7
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  6. 24
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  7. 193
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubjectCenter.java
  8. 5
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java
  9. 49
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterCommitBo.java
  10. 66
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectCenterBo.java
  11. 51
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectCommitBo.java
  12. 13
      src/main/java/com/qs/serve/modules/vtb/entity/dto/PayPaymentItemExtend.java
  13. 15
      src/main/java/com/qs/serve/modules/vtb/entity/so/PayPaymentItemExtendSo.java
  14. 14
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectCenterMapper.java
  15. 14
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationExtService.java
  16. 3
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  17. 16
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectCenterService.java
  18. 65
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationExtServiceImpl.java
  19. 146
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  20. 31
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectCenterServiceImpl.java
  21. 2
      src/main/resources/mapper/goods/GoodsSkuMapper.xml
  22. 4
      src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml
  23. 6
      src/main/resources/mapper/vtb/VtbVerForPayReportMapper.xml

3
src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSpuVo.java

@ -64,4 +64,7 @@ public class GoodsSpuVo {
/** 是否可以下单 1、是;0否 */ /** 是否可以下单 1、是;0否 */
private Integer orderFlag; private Integer orderFlag;
/** 可投放费用标识 */
private Integer costFlag;
} }

2
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -582,7 +582,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
if(supplierAddress.getTmsSysId()==null){ if(supplierAddress.getTmsSysId()==null){
Assert.throwEx("地址缺失TmsSysId关联"); Assert.throwEx("地址缺失TmsSysId关联");
} }
xltOrder.setTmsSysId(supplierAddress.getTmsSysId()); xltOrder.setTmsSysId(supplierAddress.getId()+"");
xltOrder.setEmpName(omsOrder.getUserName()); xltOrder.setEmpName(omsOrder.getUserName());
xltOrder.setCusCode(omsOrder.getSupplierCode()); xltOrder.setCusCode(omsOrder.getSupplierCode());
xltOrder.setCusName(omsOrder.getSupplierName()); xltOrder.setCusName(omsOrder.getSupplierName());

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

@ -215,7 +215,10 @@ public class TbsActivity implements Serializable {
/** 是否取消(异动时设置) */ /** 是否取消(异动时设置) */
private Integer cancelFlag; private Integer cancelFlag;
/**
* 核销匹配标识(区分是否自定义核销比例)
*/
private Integer vtbMatchTypeFlag;
@TableField(exist = false) @TableField(exist = false)
private List<?> attachList; private List<?> attachList;
@ -283,6 +286,7 @@ public class TbsActivity implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Long birActId; private Long birActId;
/** /**
* 处理预警时间 * 处理预警时间
* @param preDays * @param preDays

3
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -101,7 +101,8 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
if(orgCost.getCancelFlag().equals(1)){ if(orgCost.getCancelFlag().equals(1)){
Assert.throwEx("该记录的费用已异动"); Assert.throwEx("该记录的费用已异动");
} }
if(!userId.equals(orgCost.getUserId())){ boolean isExtUser = orgCost.getExtUserId()!=null&&userId.equals(orgCost.getExtUserId());
if(!userId.equals(orgCost.getUserId())&&!isExtUser){
Assert.throwEx("拒绝访问"); Assert.throwEx("拒绝访问");
} }
if(!orgCost.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())&& if(!orgCost.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())&&

7
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -61,6 +61,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -120,7 +121,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
policyItemDto.setStartDate(DateUtils.localDateToDate(policyItem.getPolicyStartDate())); policyItemDto.setStartDate(DateUtils.localDateToDate(policyItem.getPolicyStartDate()));
policyItemDto.setEndDate(DateUtils.localDateToDate(policyItem.getPolicyEndDate())); policyItemDto.setEndDate(DateUtils.localDateToDate(policyItem.getPolicyEndDate()));
policyItemDto.setDiscountAmount(policyItem.getDiscountAmount()); policyItemDto.setDiscountAmount(policyItem.getDiscountAmount());
policyItemDto.setDiscountRate(policyItem.getDiscountRate()); policyItemDto.setDiscountRate(policyItem.getDiscountRate().divide(new BigDecimal("100"),4, RoundingMode.DOWN));
policyItemDto.setDiscountMax(policyItem.getDiscountMax()); policyItemDto.setDiscountMax(policyItem.getDiscountMax());
//加载InvCode //加载InvCode
List<TzcPolicyGoods> policyGoods = tzcPolicyGoodsService.listByItemId(policyItemId); List<TzcPolicyGoods> policyGoods = tzcPolicyGoodsService.listByItemId(policyItemId);
@ -159,14 +160,12 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
} }
policyItemDto.setInvCodeList(invCodes); policyItemDto.setInvCodeList(invCodes);
//保存异步处理的 //保存异步处理的
R<String> result = xiaoLuTonService.savePolicyItem(policyItemDto); xiaoLuTonService.savePolicyItem(policyItemDto);
if(result.getStatus()==200){
TzcPolicyItem updParam = new TzcPolicyItem(); TzcPolicyItem updParam = new TzcPolicyItem();
updParam.setId(policyItemId); updParam.setId(policyItemId);
updParam.setPolicyItemStatus(TzPolicyItemStatus.Status_2_SyncSuccess); updParam.setPolicyItemStatus(TzPolicyItemStatus.Status_2_SyncSuccess);
tzcPolicyItemService.updateById(updParam); tzcPolicyItemService.updateById(updParam);
} }
}
/** /**
* 提交申请 * 提交申请

24
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -20,7 +20,6 @@ import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity; 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.TbsActivitySubject;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
@ -31,7 +30,9 @@ import com.qs.serve.modules.tbs.service.TbsActivitySubjectService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationCenterCommitBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectCommitBo;
import com.qs.serve.modules.vtb.service.*; import com.qs.serve.modules.vtb.service.*;
import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl; import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -74,6 +75,7 @@ public class VtbVerificationController {
private VtbVerificationYardService verificationYardService; private VtbVerificationYardService verificationYardService;
private VtbVerificationYardItemService vtbVerificationYardItemService; private VtbVerificationYardItemService vtbVerificationYardItemService;
private VtbVerificationOperationServiceImpl vtbVerificationOperationService; private VtbVerificationOperationServiceImpl vtbVerificationOperationService;
private VtbVerificationExtService vtbVerificationExtService;
/** /**
@ -253,15 +255,31 @@ public class VtbVerificationController {
/** /**
* 提交核销 * 提交核销
* @param param * @param commitBo
* @return * @return
*/ */
@LimitSubmit(interval = 3000) @LimitSubmit(interval = 3000)
@PostMapping("/commit") @PostMapping("/commit")
@SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE) @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE)
@PreAuthorize("hasRole('vtb:verification:commit')") @PreAuthorize("hasRole('vtb:verification:commit')")
public R<?> commit(@RequestBody @Valid VtbVerificationBo param){ public R<?> commit(@RequestBody @Valid VtbVerificationSubjectCommitBo commitBo){
seeYonService.testConnection();
VtbVerificationBo param = CopierUtil.copy(commitBo,new VtbVerificationBo());
vtbVerificationService.commit(param);
return R.ok();
}
/**
* 提交核销2
* @param commitBo
* @return
*/
@LimitSubmit(interval = 3000)
@PostMapping("/commitWithChange")
@SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE)
public R<?> commit(@RequestBody @Valid VtbVerificationCenterCommitBo commitBo){
seeYonService.testConnection(); seeYonService.testConnection();
VtbVerificationBo param = CopierUtil.copy(commitBo,new VtbVerificationBo());
vtbVerificationService.commit(param); vtbVerificationService.commit(param);
return R.ok(); return R.ok();
} }

193
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubjectCenter.java

@ -0,0 +1,193 @@
package com.qs.serve.modules.vtb.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-11-28
*/
@Data
@TableName("vtb_verification_subject_center")
public class VtbVerificationSubjectCenter implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 核算id */
@NotNull(message = "核算id不能为空")
private Long verificationId;
/** 科目核销编码 */
@NotBlank(message = "科目核销编码不能为空")
@Length(max = 32,message = "科目核销编码长度不能超过32字")
private String verificationSubCode;
/** 费用申请id */
private Long costApplyId;
/** 活动id */
private Long activityId;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId;
/** 客户编码 */
@NotBlank(message = "客户编码不能为空")
@Length(max = 30,message = "客户编码长度不能超过30字")
private String supplierCode;
/** 客户名称 */
@NotBlank(message = "客户名称不能为空")
@Length(max = 200,message = "客户名称长度不能超过200字")
private String supplierName;
/** 本次核销额 */
@NotNull(message = "本次核销额不能为空")
private BigDecimal usedAmount;
/** 申请时本次核销额 */
@NotNull(message = "申请时本次核销额不能为空")
private BigDecimal usedAmountRecord;
/** 已支付核销费用 */
@NotNull(message = "已支付核销费用不能为空")
private BigDecimal payAmount;
/** 支付完成 */
@NotNull(message = "支付完成不能为空")
private Integer payFinishedFlag;
/** 备注 */
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 是否无效 */
@NotNull(message = "是否无效不能为空")
private Integer effectiveFlag;
/** 支付是否标识 */
private Integer payReleaseFlag;
/** 成本中心类型 */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 255,message = "成本中心类型长度不能超过255字")
private String centerType;
/** 成本中心id */
@NotBlank(message = "成本中心id不能为空")
@Length(max = 32,message = "成本中心id长度不能超过32字")
private String centerId;
/** 成本中心编码 */
@NotBlank(message = "成本中心编码不能为空")
@Length(max = 50,message = "成本中心编码长度不能超过50字")
private String centerCode;
/** 成本中心名称 */
@NotBlank(message = "成本中心名称不能为空")
@Length(max = 200,message = "成本中心名称长度不能超过200字")
private String centerName;
/** 活动成本中心ID */
private Long activityCenterId;
public static VtbVerificationSubjectCenter toNewObject(VtbVerificationSubjectCenter source){
VtbVerificationSubjectCenter verificationSubjectCenter = new VtbVerificationSubjectCenter();
verificationSubjectCenter.setId(source.getId());
verificationSubjectCenter.setVerificationId(source.getVerificationId());
verificationSubjectCenter.setVerificationSubCode(source.getVerificationSubCode());
verificationSubjectCenter.setCostApplyId(source.getCostApplyId());
verificationSubjectCenter.setActivityId(source.getActivityId());
verificationSubjectCenter.setSubjectId(source.getSubjectId());
verificationSubjectCenter.setSubjectCode(source.getSubjectCode());
verificationSubjectCenter.setSubjectName(source.getSubjectName());
verificationSubjectCenter.setSupplierId(source.getSupplierId());
verificationSubjectCenter.setSupplierCode(source.getSupplierCode());
verificationSubjectCenter.setSupplierName(source.getSupplierName());
verificationSubjectCenter.setUsedAmount(source.getUsedAmount());
verificationSubjectCenter.setUsedAmountRecord(source.getUsedAmountRecord());
verificationSubjectCenter.setPayAmount(source.getPayAmount());
verificationSubjectCenter.setPayFinishedFlag(source.getPayFinishedFlag());
verificationSubjectCenter.setRemark(source.getRemark());
verificationSubjectCenter.setCreateTime(source.getCreateTime());
verificationSubjectCenter.setUpdateTime(source.getUpdateTime());
verificationSubjectCenter.setTenantId(source.getTenantId());
verificationSubjectCenter.setCreateBy(source.getCreateBy());
verificationSubjectCenter.setUpdateBy(source.getUpdateBy());
verificationSubjectCenter.setDelFlag(source.getDelFlag());
verificationSubjectCenter.setEffectiveFlag(source.getEffectiveFlag());
verificationSubjectCenter.setPayReleaseFlag(source.getPayReleaseFlag());
verificationSubjectCenter.setCenterType(source.getCenterType());
verificationSubjectCenter.setCenterId(source.getCenterId());
verificationSubjectCenter.setCenterCode(source.getCenterCode());
verificationSubjectCenter.setCenterName(source.getCenterName());
verificationSubjectCenter.setActivityCenterId(source.getActivityCenterId());
return verificationSubjectCenter;
}
}

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

@ -45,9 +45,12 @@ public class VtbVerificationBo implements Serializable {
/** 网点 */ /** 网点 */
private List<VtbVerificationChannelPointBo> pointList; private List<VtbVerificationChannelPointBo> pointList;
/** 科目 */ /** 科目(科目维度核销) */
private List<VtbVerificationSubjectBo> subjectList; private List<VtbVerificationSubjectBo> subjectList;
/** 成本中心(科目成本中心维度核销) */
private List<VtbVerificationSubjectCenterBo> subjectCenterList;
/** 支付条件id */ /** 支付条件id */
private Long payConditionId; private Long payConditionId;

49
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterCommitBo.java

@ -0,0 +1,49 @@
package com.qs.serve.modules.vtb.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author YenHex
* @since 2023/11/27
*/
@Data
public class VtbVerificationCenterCommitBo {
/** id(退回的核销要传) */
private Long id;
/** 活动id */
private Long activityId;
/** 附件id */
private String[] attachIds;
/** 备注 */
private String remark;
/** 渠道 */
private List<VtbVerificationChannelBo> channelList;
/** 网点 */
private List<VtbVerificationChannelPointBo> pointList;
/** 科目 */
@NotNull(message = "subject center list is null")
private List<VtbVerificationSubjectCenterBo> subjectCenterList;
/** 支付条件id */
private Long payConditionId;
/** 支付方式 */
private Long payWayId;
/** 原来的审批id */
private Long orgVerificationId;
/** 是否释放 */
private Integer inputReleaseFlag;
}

66
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectCenterBo.java

@ -0,0 +1,66 @@
package com.qs.serve.modules.vtb.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 核销科目费用 Bo
* @author YenHex
* @since 2022-11-24
*/
@Data
public class VtbVerificationSubjectCenterBo implements Serializable {
private static final long serialVersionUID = 1L;
/** 科目id */
private Long subjectId;
/** 场次 */
@NotNull(message = "场次不能为空")
private Integer countSession;
/** 人数 */
@NotNull(message = "人数不能为空")
private Integer countPerson;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 表单id */
private Long formId;
/** 表单标题 */
private String formTitle;
/** 表单版本 */
private Integer formVersion;
/** 表单内容 */
private String formContext;
/** 表单内容值 */
private String formContextValue;
private List<ChangeSubjectCenter> centerAmount;
@Data
public class ChangeSubjectCenter{
@NotNull(message = "subjectCenterId不能为空")
private Long subjectCenterId;
/** 费用额 */
@NotNull(message = "费用额不能为空")
private BigDecimal amount;
}
}

51
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectCommitBo.java

@ -0,0 +1,51 @@
package com.qs.serve.modules.vtb.entity.bo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 核销 Bo
* @author YenHex
* @since 2022-11-24
*/
@Data
public class VtbVerificationSubjectCommitBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id(退回的核销要传) */
private Long id;
/** 活动id */
private Long activityId;
/** 附件id */
private String[] attachIds;
/** 备注 */
private String remark;
/** 渠道 */
private List<VtbVerificationChannelBo> channelList;
/** 网点 */
private List<VtbVerificationChannelPointBo> pointList;
/** 科目*/
private List<VtbVerificationSubjectBo> subjectList;
/** 支付条件id */
private Long payConditionId;
/** 支付方式 */
private Long payWayId;
/** 原来的审批id */
private Long orgVerificationId;
/** 是否释放 */
private Integer inputReleaseFlag;
}

13
src/main/java/com/qs/serve/modules/vtb/entity/dto/PayPaymentItemExtend.java

@ -31,6 +31,11 @@ public class PayPaymentItemExtend {
**/ **/
private String payType; private String payType;
/**
* 支付编码
*/
private String payCode;
/** 支付id */ /** 支付id */
@NotNull(message = "支付id不能为空") @NotNull(message = "支付id不能为空")
private Long paymentId; private Long paymentId;
@ -39,6 +44,14 @@ public class PayPaymentItemExtend {
@NotNull(message = "供应商id不能为空") @NotNull(message = "供应商id不能为空")
private Long supplierId; private Long supplierId;
private String supplierCode;
private String supplierName;
private String userCode;
private String userName;
/** 支付金额 */ /** 支付金额 */
@NotNull(message = "支付金额不能为空") @NotNull(message = "支付金额不能为空")
private BigDecimal itemPayAmount; private BigDecimal itemPayAmount;

15
src/main/java/com/qs/serve/modules/vtb/entity/so/PayPaymentItemExtendSo.java

@ -22,6 +22,7 @@ import java.util.List;
*/ */
@Data @Data
public class PayPaymentItemExtendSo { public class PayPaymentItemExtendSo {
/** /**
* 支付类型 * 支付类型
* pay - 支付 * pay - 支付
@ -29,6 +30,11 @@ public class PayPaymentItemExtendSo {
**/ **/
private String payType; private String payType;
/**
* 支付编码
*/
private String payCode;
/** 支付id */ /** 支付id */
@NotNull(message = "支付id不能为空") @NotNull(message = "支付id不能为空")
private Long paymentId; private Long paymentId;
@ -37,6 +43,15 @@ public class PayPaymentItemExtendSo {
@NotNull(message = "供应商id不能为空") @NotNull(message = "供应商id不能为空")
private Long supplierId; private Long supplierId;
/** 供应商 */
private String supplierCode;
private String supplierName;
private String userCode;
private String userName;
/** 核销Code */ /** 核销Code */
private String verificationMainCode; private String verificationMainCode;

14
src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectCenterMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubjectCenter;
/**
* 核销成本中心费用 Mapper
* @author YenHex
* @date 2023-11-28
*/
public interface VtbVerificationSubjectCenterMapper extends BaseMapper<VtbVerificationSubjectCenter> {
}

14
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationExtService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.service;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationCenterCommitBo;
/**
* 核销 服务接口
* @author YenHex
* @date 2023-11-24
*/
public interface VtbVerificationExtService {
}

3
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java

@ -8,9 +8,7 @@ import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.Map; import java.util.Map;
/** /**
@ -51,6 +49,7 @@ public interface VtbVerificationService extends IService<VtbVerification> {
*/ */
void commit(VtbVerificationBo vtbVerificationBo); void commit(VtbVerificationBo vtbVerificationBo);
/** /**
* 提交到致远审批流程的DATA * 提交到致远审批流程的DATA
* @param activityId * @param activityId

16
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectCenterService.java

@ -0,0 +1,16 @@
package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubjectCenter;
/**
* 核销成本中心费用 服务接口
* @author YenHex
* @date 2023-11-28
*/
public interface VtbVerificationSubjectCenterService extends IService<VtbVerificationSubjectCenter> {
void removeByVerificationId(Long verificationId);
}

65
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationExtServiceImpl.java

@ -0,0 +1,65 @@
package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bir.service.BirCenterRateService;
import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.service.BmsChannelPointService;
import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.pay.entity.PayWay;
import com.qs.serve.modules.pay.mapper.PayWayMapper;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.seeyon.service.XiaoLuTonService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysSyncLogService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsCostPercentMapper;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationChannel;
import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationCenterCommitBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelPointBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectBo;
import com.qs.serve.modules.vtb.mapper.VtbVerificationYardItemMapper;
import com.qs.serve.modules.vtb.mapper.VtbVerificationYardMapper;
import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 核销 服务实现类
* @author YenHex
* @since 2022-11-27
*/
@EnableAsync
@Slf4j
@Service
@AllArgsConstructor
public class VtbVerificationExtServiceImpl implements VtbVerificationExtService {
}

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

@ -83,6 +83,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
private final TbsActivityCenterGoodsService activityCenterGoodsService; private final TbsActivityCenterGoodsService activityCenterGoodsService;
private final TbsActivityCenterService activityCenterService; private final TbsActivityCenterService activityCenterService;
private final TbsActivityPayConditionService activityPayConditionService; private final TbsActivityPayConditionService activityPayConditionService;
private final VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
private final TbsBudgetCostItemService budgetCostItemService; private final TbsBudgetCostItemService budgetCostItemService;
private final TbsBudgetLogService budgetLogService; private final TbsBudgetLogService budgetLogService;
private final TbsBudgetService budgetService; private final TbsBudgetService budgetService;
@ -577,6 +578,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
sysUser.checkSyAccount(); sysUser.checkSyAccount();
TbsActivity activity = activityService.getById(verificationBo.getActivityId()); TbsActivity activity = activityService.getById(verificationBo.getActivityId());
//自定义成本中心核销
List<VtbVerificationSubjectCenterBo> subjectCenterBoList = verificationBo.getSubjectCenterList();
boolean isCenterCheck = CollectionUtil.isNotEmpty(subjectCenterBoList);
if(activity.getVtbMatchTypeFlag().equals(1) && !isCenterCheck){
Assert.throwEx("页面参数异常,请刷新页面重试");
}
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
if(costApply.getContractFlag().equals(1)){ if(costApply.getContractFlag().equals(1)){
Assert.throwEx("协议类申请不支持CRM核销"); Assert.throwEx("协议类申请不支持CRM核销");
@ -625,11 +632,20 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(verificationBo.getPayConditionId()==null){ if(verificationBo.getPayConditionId()==null){
Assert.throwEx("请选择支付条件"); Assert.throwEx("请选择支付条件");
} }
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList();
BigDecimal totalSubjectAmt = BigDecimal.ZERO; BigDecimal totalSubjectAmt = BigDecimal.ZERO;
if(isCenterCheck){
List<VtbVerificationSubjectCenterBo> subjectCenterList = verificationBo.getSubjectCenterList();
for (VtbVerificationSubjectCenterBo subjectCenterBo : subjectCenterList) {
for (VtbVerificationSubjectCenterBo.ChangeSubjectCenter subjectCenter : subjectCenterBo.getCenterAmount()) {
totalSubjectAmt = totalSubjectAmt.add(subjectCenter.getAmount());
}
}
}else {
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList();
for (VtbVerificationSubjectBo subjectBo : subjectBoList) { for (VtbVerificationSubjectBo subjectBo : subjectBoList) {
totalSubjectAmt = totalSubjectAmt.add(subjectBo.getAmount()); totalSubjectAmt = totalSubjectAmt.add(subjectBo.getAmount());
} }
}
TbsActivityPayCondition payCondition = activityPayConditionService.getById(verificationBo.getPayConditionId()); TbsActivityPayCondition payCondition = activityPayConditionService.getById(verificationBo.getPayConditionId());
if(payCondition.getPaymentPrice().compareTo(totalSubjectAmt)>1){ if(payCondition.getPaymentPrice().compareTo(totalSubjectAmt)>1){
Assert.throwEx("核销金额超过支付条件金额"); Assert.throwEx("核销金额超过支付条件金额");
@ -714,7 +730,16 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verificationChannelPointList.add(channelPoint1); verificationChannelPointList.add(channelPoint1);
} }
} }
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verification.getVerificationCode(),verificationBo, activity, costApply, supplier); List<VtbVerificationSubject> verificationSubjects = new ArrayList<>();
List<VtbVerificationSubjectCenter> verificationCenters = new ArrayList<>();
String verificationCode = verification.getVerificationCode();
if(isCenterCheck){
//建立核销 VtbVerificationSubjectCenter
this.validCreateVeriSubjectAndCenter(activity, subjectCenterBoList, costApply, supplier, verificationSubjects, verificationCenters, verificationCode);
}else {
//建立核销 VtbVerificationSubject
verificationSubjects = this.validCreateVeriSubject(verificationCode,verificationBo, activity, costApply, supplier);
}
//设置总金额 //设置总金额
BigDecimal totalAmount = BigDecimal.ZERO; BigDecimal totalAmount = BigDecimal.ZERO;
for (VtbVerificationSubject verificationSubject : verificationSubjects) { for (VtbVerificationSubject verificationSubject : verificationSubjects) {
@ -734,6 +759,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verificationChannelService.removeByVerificationId(verificationBo.getId()); verificationChannelService.removeByVerificationId(verificationBo.getId());
verificationChannelPointService.removeByVerificationId(verificationBo.getId()); verificationChannelPointService.removeByVerificationId(verificationBo.getId());
verificationSubjectService.removeByVerificationId(verificationBo.getId()); verificationSubjectService.removeByVerificationId(verificationBo.getId());
vtbVerificationSubjectCenterService.removeByVerificationId(verificationBo.getId());
} }
if(CollectionUtil.isNotEmpty(vtbVerificationChannelList)){ if(CollectionUtil.isNotEmpty(vtbVerificationChannelList)){
vtbVerificationChannelList.forEach(obj->obj.setVerificationId(verification.getId())); vtbVerificationChannelList.forEach(obj->obj.setVerificationId(verification.getId()));
@ -745,6 +771,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
//保存科目费用 //保存科目费用
verificationSubjects.forEach(obj->obj.setVerificationId(verification.getId())); verificationSubjects.forEach(obj->obj.setVerificationId(verification.getId()));
verificationCenters.forEach(obj->obj.setVerificationId(verification.getId()));
if(CollectionUtil.isNotEmpty(verificationCenters)){
vtbVerificationSubjectCenterService.saveBatch(verificationCenters);
}
verificationSubjectService.saveBatch(verificationSubjects); verificationSubjectService.saveBatch(verificationSubjects);
TbsActivity activityParam = new TbsActivity(); TbsActivity activityParam = new TbsActivity();
activityParam.setId(activity.getId()); activityParam.setId(activity.getId());
@ -764,6 +794,118 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
private void validCreateVeriSubjectAndCenter(TbsActivity activity, List<VtbVerificationSubjectCenterBo> subjectCenterBoList, TbsCostApply costApply, BmsSupplier supplier, List<VtbVerificationSubject> verificationSubjects, List<VtbVerificationSubjectCenter> verificationCenters, String verificationCode) {
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(activity.getId());
List<TbsActivityCenter> activityCenters = activityCenterService.listByActivity(activity.getId());
List<VtbFundFlow> existFundFlowList = fundFlowService.listByActivity(activity.getId(), VtbFundFlowType.Verification);
Map<Long,List<VtbFundFlow>> funFlowListMap = existFundFlowList.stream().collect(Collectors.groupingBy(VtbFundFlow::getSubjectId));
//校验余额
int countCode = 1;
for (VtbVerificationSubjectCenterBo subjectCenterBo : subjectCenterBoList) {
//科目总金额
BmsSubject subject = subjectService.getById(subjectCenterBo.getSubjectId());
BigDecimal totalSubjectAmt = BigDecimal.ZERO;
for (VtbVerificationSubjectCenterBo.ChangeSubjectCenter centerBo : subjectCenterBo.getCenterAmount()) {
BigDecimal centerAmt = centerBo.getAmount();
if(centerAmt==null){
Assert.throwEx("SubjectCenterId: "+centerBo.getSubjectCenterId()+" amount is null");
}
if (centerAmt.compareTo(BigDecimal.ZERO)==0){
//0核销,成本中心维度不进行保存
continue;
}
totalSubjectAmt = totalSubjectAmt.add(centerAmt);
//当前活动成本中心进行校验,再构建
TbsActivityCenter currActivityCenter = null;
for (TbsActivityCenter activityCenter : activityCenters) {
if(activityCenter.getSubjectId().equals(subjectCenterBo.getSubjectId())&&activityCenter.getId().equals(centerBo.getSubjectCenterId())){
currActivityCenter = activityCenter;
break;
}
}
if(currActivityCenter==null){
Assert.throwEx("SubjectCenterId: "+centerBo.getSubjectCenterId()+" 不匹配");
}
//判断是否够核销
BigDecimal surplus = currActivityCenter.getCenterAmount()
.subtract(currActivityCenter.getUsedAmount())
.subtract(centerAmt);
if(surplus.compareTo(BigDecimal.ZERO)<0){
Assert.throwEx("SubjectCenterId: "+centerBo.getSubjectCenterId()+" 金额不足");
}
VtbVerificationSubjectCenter subjectCenter = new VtbVerificationSubjectCenter();
subjectCenter.setVerificationSubCode(verificationCode +"_"+countCode);
subjectCenter.setCostApplyId(costApply.getId());
subjectCenter.setActivityId(activity.getId());
subjectCenter.setSubjectId(subject.getId());
subjectCenter.setSubjectCode(subject.getSubjectCode());
subjectCenter.setSubjectName(subject.getSubjectName());
subjectCenter.setSupplierId(Long.parseLong(supplier.getId()));
subjectCenter.setSupplierCode(supplier.getCode());
subjectCenter.setSupplierName(supplier.getName());
subjectCenter.setUsedAmount(centerAmt);
subjectCenter.setUsedAmountRecord(centerAmt);
subjectCenter.setCenterType(currActivityCenter.getCenterType());
subjectCenter.setCenterId(currActivityCenter.getCenterId());
subjectCenter.setCenterCode(currActivityCenter.getCenterCode());
subjectCenter.setCenterName(currActivityCenter.getCenterName());
subjectCenter.setActivityCenterId(currActivityCenter.getId());
verificationCenters.add(subjectCenter);
}
boolean isCheckZero = totalSubjectAmt.compareTo(BigDecimal.ZERO)==0;
//忽略金额为0的数据
if (!isCheckZero && totalSubjectAmt.compareTo(BigDecimal.ZERO) < 1) {
continue;
}
//判断是否超额
TbsActivitySubject currentActivitySubject = null;
for (TbsActivitySubject activitySubject : activitySubjects) {
if (activitySubject.getSubjectId().equals(subject.getId())) {
currentActivitySubject = activitySubject;
break;
}
}
//兼容支持非0元核销
if(!isCheckZero){
List<VtbFundFlow> subjectFundFlowItems = funFlowListMap.get(subject.getId());
BigDecimal totalSubjectUsedAmount = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(subjectFundFlowItems)) {
for (VtbFundFlow subjectFundFlowItem : subjectFundFlowItems) {
totalSubjectUsedAmount = totalSubjectUsedAmount.add(subjectFundFlowItem.getUsedAmount());
}
}
totalSubjectUsedAmount = totalSubjectUsedAmount.add(totalSubjectAmt);
if (totalSubjectUsedAmount.compareTo(currentActivitySubject.getAmount()) > 0) {
Assert.throwEx("费用类型[" + subject.getSubjectName() + "]超额");
}
}
//保存费用结果
VtbVerificationSubject verificationSubject = new VtbVerificationSubject();
verificationSubject.setVerificationSubCode(verificationCode +"_"+countCode);
countCode++;
verificationSubject.setCostApplyId(costApply.getId());
verificationSubject.setActivityId(activity.getId());
verificationSubject.setSubjectId(subject.getId());
verificationSubject.setSubjectCode(subject.getSubjectCode());
verificationSubject.setSubjectName(subject.getSubjectName());
verificationSubject.setSupplierId(Long.parseLong(supplier.getId()));
verificationSubject.setSupplierCode(supplier.getCode());
verificationSubject.setSupplierName(supplier.getName());
verificationSubject.setUsedAmount(totalSubjectAmt);
verificationSubject.setUsedAmountRecord(totalSubjectAmt);
verificationSubject.setCountPerson(subjectCenterBo.getCountPerson());
verificationSubject.setCountSession(subjectCenterBo.getCountSession());
verificationSubject.setRemark(subjectCenterBo.getRemark());
verificationSubject.setFormId(subjectCenterBo.getFormId());
verificationSubject.setFormTitle(subjectCenterBo.getFormTitle());
verificationSubject.setFormVersion(subjectCenterBo.getFormVersion());
verificationSubject.setFormContext(subjectCenterBo.getFormContext());
verificationSubject.setFormContextValue(subjectCenterBo.getFormContextValue());
verificationSubjects.add(verificationSubject);
}
}
/** /**
* 提交到致远审批流程 * 提交到致远审批流程

31
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectCenterServiceImpl.java

@ -0,0 +1,31 @@
package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubjectCenter;
import com.qs.serve.modules.vtb.service.VtbVerificationSubjectCenterService;
import com.qs.serve.modules.vtb.mapper.VtbVerificationSubjectCenterMapper;
/**
* 核销成本中心费用 服务实现类
* @author YenHex
* @since 2023-11-28
*/
@Slf4j
@Service
@AllArgsConstructor
public class VtbVerificationSubjectCenterServiceImpl extends ServiceImpl<VtbVerificationSubjectCenterMapper,VtbVerificationSubjectCenter> implements VtbVerificationSubjectCenterService {
@Override
public void removeByVerificationId(Long verificationId) {
LambdaQueryWrapper<VtbVerificationSubjectCenter> lqw = new LambdaQueryWrapper<>();
lqw.eq(VtbVerificationSubjectCenter::getVerificationId,verificationId);
this.remove(lqw);
}
}

2
src/main/resources/mapper/goods/GoodsSkuMapper.xml

@ -149,7 +149,7 @@
goods_sku.tenant_id = #{tenantId} goods_sku.tenant_id = #{tenantId}
and goods_sku.del_flag = 0 and goods_sku.del_flag = 0
and goods_sku.enable = 1 and goods_sku.enable = 1
and goods_spu.shlef = 1 and goods_spu.shelf = 1
and goods_spu.category_third in and goods_spu.category_third in
<foreach collection="categoryIds" item ="selectId" index="i" open="(" close=")" separator=","> <foreach collection="categoryIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId} #{selectId}

4
src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml

@ -71,7 +71,7 @@
SELECT SELECT
`tbs_budget_log`.budget_id, `tbs_budget_log`.budget_id,
`tbs_budget_log`.schedule_item_id, `tbs_budget_log`.schedule_item_id,
sum (`tbs_budget_log`.amount) amount sum(`tbs_budget_log`.amount) amount
FROM FROM
`tbs_budget_log` `tbs_budget_log`
LEFT JOIN LEFT JOIN
@ -116,7 +116,7 @@
SELECT SELECT
`tbs_budget_log`.budget_id, `tbs_budget_log`.budget_id,
`tbs_budget_log`.schedule_item_id, `tbs_budget_log`.schedule_item_id,
sum (`tbs_budget_log`.amount) amount sum(`tbs_budget_log`.amount) amount
FROM FROM
`tbs_budget_log` `tbs_budget_log`
LEFT JOIN LEFT JOIN

6
src/main/resources/mapper/vtb/VtbVerForPayReportMapper.xml

@ -210,6 +210,7 @@
pay_payment_item.`id`, pay_payment_item.`id`,
pay_payment_item.`verification_main_code`, pay_payment_item.`verification_main_code`,
pay_payment_item.`verification_code`, pay_payment_item.`verification_code`,
pay_payment.`pay_code`,
pay_payment_item.`pay_time`, pay_payment_item.`pay_time`,
pay_payment_item.`pay_date`, pay_payment_item.`pay_date`,
pay_payment_item.`bill_number`, pay_payment_item.`bill_number`,
@ -242,8 +243,13 @@
and act.cancel_flag = 0 and act.cancel_flag = 0
and pay_payment.del_flag = 0 and pay_payment.del_flag = 0
<if test="query.payType != null and query.payType != ''"> and `pay_payment_item`.`pay_type` = #{query.payType}</if> <if test="query.payType != null and query.payType != ''"> and `pay_payment_item`.`pay_type` = #{query.payType}</if>
<if test="query.payCode != null and query.payCode != ''"> and `pay_payment`.`pay_code` like concat('%',#{query.payCode},'%') </if>
<if test="query.paymentId != null"> and `pay_payment_item`.`payment_id` = #{query.paymentId}</if> <if test="query.paymentId != null"> and `pay_payment_item`.`payment_id` = #{query.paymentId}</if>
<if test="query.costApplyCode != null and query.costApplyCode != ''"> and `cost`.`code` like concat('%',#{query.costApplyCode},'%') </if> <if test="query.costApplyCode != null and query.costApplyCode != ''"> and `cost`.`code` like concat('%',#{query.costApplyCode},'%') </if>
<if test="query.supplierCode != null and query.supplierCode != ''"> and `pay_payment`.`supplier_code` like concat('%',#{query.supplierCode},'%') </if>
<if test="query.supplierName != null and query.supplierName != ''"> and `pay_payment`.`supplier_name` like concat('%',#{query.supplierName},'%') </if>
<if test="query.userCode != null and query.userCode != ''"> and `pay_payment`.`user_code` like concat('%',#{query.userCode},'%') </if>
<if test="query.userName != null and query.userName != ''"> and `pay_payment`.`user_name` like concat('%',#{query.userName},'%') </if>
<if test="query.costApplyTitle != null and query.costApplyTitle != ''"> and `cost`.`charge_theme` like concat('%',#{query.costApplyTitle},'%') </if> <if test="query.costApplyTitle != null and query.costApplyTitle != ''"> and `cost`.`charge_theme` like concat('%',#{query.costApplyTitle},'%') </if>
<if test="query.activityTitle != null and query.activityTitle != ''"> and `act`.`act_title` like concat('%',#{query.activityTitle},'%') </if> <if test="query.activityTitle != null and query.activityTitle != ''"> and `act`.`act_title` like concat('%',#{query.activityTitle},'%') </if>
<if test="query.supplierId != null"> and `pay_payment_item`.`supplier_id` = #{query.supplierId}</if> <if test="query.supplierId != null"> and `pay_payment_item`.`supplier_id` = #{query.supplierId}</if>

Loading…
Cancel
Save