Browse Source

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

checkBack
15989082884@163.com 1 year ago
parent
commit
397925b578
  1. 6
      src/main/java/com/qs/serve/common/model/oa/OaFormMainProcess.java
  2. 1
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  3. 89
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  4. 4
      src/main/java/com/qs/serve/modules/tag/entity/TagData.java
  5. 2
      src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java
  6. 7
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  7. 10
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  8. 21
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java
  9. 101
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  10. 2
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  11. 33
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java
  12. 3
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBatchBo.java
  13. 17
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication2.java
  14. 13
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchOperationService.java
  15. 4
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java
  16. 143
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationApplication2Impl.java
  17. 127
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
  18. 494
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java
  19. 1
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  20. 1
      src/main/resources/mapper/tag/TagDataMapper.xml

6
src/main/java/com/qs/serve/common/model/oa/OaFormMainProcess.java

@ -33,4 +33,10 @@ public class OaFormMainProcess {
*/ */
private String templateCode; private String templateCode;
private String userId;
/**
* 模板编码
*/
private String tableName;
} }

1
src/main/java/com/qs/serve/common/util/CodeGenUtil.java

@ -26,6 +26,7 @@ public class CodeGenUtil {
Activity("activity"), Activity("activity"),
OmsOrder("OmsOrder"), OmsOrder("OmsOrder"),
Verification("verification"), Verification("verification"),
VerificationBatch("verificationBatch"),
Policy("policy"), Policy("policy"),
Budget("Budget"), Budget("Budget"),
BudgetChange("BudgetChange"), BudgetChange("BudgetChange"),

89
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -135,26 +135,36 @@ public interface SeeYonOperationService extends SeeYonBaseService{
addNodeDTO.setComment(param.getComment()); addNodeDTO.setComment(param.getComment());
R<String> result = getRequestService().addNode(addNodeDTO); R<String> result = getRequestService().addNode(addNodeDTO);
if(result.getData()!=null&&result.getData().toLowerCase(Locale.ROOT).contains("ok")){ if(result.getData()!=null&&result.getData().toLowerCase(Locale.ROOT).contains("ok")){
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class); this.insertAddNodeLog(param, affairId, sysUser);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(param.getTargetId());
dataAffairCommit.setId(affairId);
dataAffairCommit.setCommentVal("加签:"+param.getComment());
dataAffairCommit.setReleaseFlag(0);
dataAffairCommit.setState(3);
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData("addNode");
dataAffairCommit.setAttachIds(param.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
return R.ok(); return R.ok();
} }
return R.error(result.getMsg()); return R.error(result.getMsg());
} }
/**
* 给加签添加审批日志
* @param param
* @param affairId
* @param sysUser
*/
default void insertAddNodeLog(CtpAddNodeParam param, String affairId, SysUser sysUser) {
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(param.getTargetId());
dataAffairCommit.setId(affairId);
dataAffairCommit.setCommentVal("加签:"+ param.getComment());
dataAffairCommit.setReleaseFlag(0);
dataAffairCommit.setState(3);
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData("addNode");
dataAffairCommit.setAttachIds(param.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
}
/** /**
* 查看详情也审批前置校验 * 查看详情也审批前置校验
* 检查formId是否存在 * 检查formId是否存在
@ -349,28 +359,8 @@ public interface SeeYonOperationService extends SeeYonBaseService{
e.printStackTrace(); e.printStackTrace();
} }
String flag = checkAffairSummery(affairCommit.getTargetId()); String flag = checkAffairSummery(affairCommit.getTargetId());
//保存记录 //封装提交审批的记录
try { this.buildAffairCommitData(affairCommit, flag);
// 判断是否含有下个节点
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = getUserMapper().selectById(userId);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(getTargetId(affairCommit));
dataAffairCommit.setId(affairCommit.getAffairId());
dataAffairCommit.setCommentVal(affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData(flag);
dataAffairCommit.setAttachIds(affairCommit.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
} catch (Exception e) {
e.printStackTrace();
}
if(flag!=null && isBackCommit){ if(flag!=null && isBackCommit){
this.doBacked(affairCommit); this.doBacked(affairCommit);
@ -395,6 +385,31 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return R.error("远程调用失败"); return R.error("远程调用失败");
} }
default void buildAffairCommitData(TbsAffairCommitBo affairCommit, String flag) {
//保存记录
try {
// 判断是否含有下个节点
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = getUserMapper().selectById(userId);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(getTargetId(affairCommit));
dataAffairCommit.setId(affairCommit.getAffairId());
dataAffairCommit.setCommentVal(affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData(flag);
dataAffairCommit.setAttachIds(affairCommit.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
} catch (Exception e) {
e.printStackTrace();
}
}
/** /**
* 用于回调OA的状态 * 用于回调OA的状态
* @param targetId * @param targetId

4
src/main/java/com/qs/serve/modules/tag/entity/TagData.java

@ -97,6 +97,10 @@ public class TagData implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String bgColorVal; private String bgColorVal;
/** 背景颜色 */
@TableField(exist = false)
private String tagRemark;
@TableField(exist = false) @TableField(exist = false)
private List<String> queryTagIds; private List<String> queryTagIds;

2
src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java

@ -14,6 +14,8 @@ public class TagDataVo {
private String type; private String type;
private String remark;
private List<?> infoList; private List<?> infoList;
} }

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

@ -38,6 +38,13 @@ public interface TbsSeeYonConst {
} }
} }
/** 核销 */
class BatchCostCheckConf{
public static String Code(){
return DevEnvironmentConfig.isDev()?"BatchCheckCost_Test":"BatchCheckCost";
}
}
/** 预算申请 */ /** 预算申请 */
class BudgetApplyConf{ class BudgetApplyConf{
public static String Code(){ public static String Code(){

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

@ -105,6 +105,16 @@ public class TbsBudgetController {
} }
} }
} }
//已用的预算
List<TbsBudgetLogWithAmount> budgetLogWithUsedAmountList = tbsScheduleItemBudgetMapper.getSumAmtNotInList(scheduleItemBudgetIds, Arrays.asList(0,2,3));
for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) {
for (TbsBudgetLogWithAmount withAmount : budgetLogWithUsedAmountList) {
if (itemBudget.getId().equals(withAmount.getId())){
itemBudget.setUsedBudgetAmount(withAmount.getAmt());
break;
}
}
}
budget.setBudgetConditionList(conditionList); budget.setBudgetConditionList(conditionList);
Map<String,List<TbsBudgetCondition>> map = conditionList.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getTargetType)); Map<String,List<TbsBudgetCondition>> map = conditionList.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getTargetType));
budget.setBrandConditions(map.get(TbsGoodsType.brand.name())); budget.setBrandConditions(map.get(TbsGoodsType.brand.name()));

21
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationBatchController.java

@ -10,7 +10,10 @@ import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo;
import com.qs.serve.modules.vtb.service.VtbVerificationApplication2;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -35,7 +38,8 @@ public class VtbVerificationBatchController {
private SeeYonRequestService seeYonService; private SeeYonRequestService seeYonService;
private VtbVerificationBatchService vtbVerificationBatchService; private VtbVerificationBatchService vtbVerificationBatchService;
private VtbVerificationService vtbVerificationService;
private VtbVerificationApplication2 vtbVerificationApplication2;
/** /**
* 翻页 * 翻页
@ -56,10 +60,19 @@ public class VtbVerificationBatchController {
* @return * @return
*/ */
@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Verification, title = "", biz = BizType.QUERY)
public R<VtbVerificationBatch> getById(@PathVariable("id") String id){ public R<VtbVerificationBatch> getById(@PathVariable("id") String id){
VtbVerificationBatch vtbVerificationBatch = vtbVerificationBatchService.getById(id); VtbVerificationBatch batch = vtbVerificationBatchService.getById(id);
return R.ok(vtbVerificationBatch); if(batch.getVtbBatchStatus().equals(VtbVerificationBatch.BatchState.CHECKING)){
//TODO 补偿回调
}
List<VtbVerification> verificationList = vtbVerificationService
.list(new LambdaQueryWrapper<VtbVerification>()
.eq(VtbVerification::getBatchId,batch.getId()));
for (VtbVerification verification : verificationList) {
vtbVerificationApplication2.buildRelateInfo(verification);
}
batch.setVerificationList(verificationList);
return R.ok(batch);
} }

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

@ -65,18 +65,9 @@ public class VtbVerificationController {
private ProjectApisProperties projectApisProperties; private ProjectApisProperties projectApisProperties;
private VtbVerificationService vtbVerificationService; private VtbVerificationService vtbVerificationService;
private VtbVerificationMapper vtbVerificationMapper; private VtbVerificationMapper vtbVerificationMapper;
private VtbVerificationChannelService vtbVerificationChannelService;
private VtbVerificationChannelPointService vtbVerificationChannelPointService;
private VtbVerificationYardCenterItemService vtbVerificationYardCenterItemService; private VtbVerificationYardCenterItemService vtbVerificationYardCenterItemService;
private VtbVerificationSubjectService vtbVerificationSubjectService;
private VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
private TbsActivitySubjectService activitySubjectService;
private TbsActivityCenterService activityCenterService;
private TbsActivityCenterGoodsService activityCenterGoodsService;
private TbsCostApplyService tbsCostApplyService; private TbsCostApplyService tbsCostApplyService;
private TbsActivityService tbsActivityService; private TbsActivityService tbsActivityService;
private TbsActivityPayConditionService tbsActivityPayConditionService;
private SysAttachService attachService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SysPostUserService sysPostUserService; private SysPostUserService sysPostUserService;
private SeeYonRequestService seeYonService; private SeeYonRequestService seeYonService;
@ -84,7 +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; private VtbVerificationApplication2 vtbVerificationApplication2;
/** /**
@ -204,86 +195,7 @@ public class VtbVerificationController {
vtbVerificationOperationService.runCompensate(id); vtbVerificationOperationService.runCompensate(id);
vtbVerification = vtbVerificationService.getById(id); vtbVerification = vtbVerificationService.getById(id);
} }
if(CollectionUtil.isNotEmpty(vtbVerification.getAttachIds())){ vtbVerificationApplication2.buildRelateInfo(vtbVerification);
List<String> attachIds = Arrays.asList(vtbVerification.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
vtbVerification.setAttachList(attachList);
}
LambdaQueryWrapper<VtbVerificationChannel> channelLqw = new LambdaQueryWrapper<>();
channelLqw.eq(VtbVerificationChannel::getVerificationId,id);
List<VtbVerificationChannel> verificationChannelList = vtbVerificationChannelService.list(channelLqw);
vtbVerification.setChannelList(verificationChannelList);
LambdaQueryWrapper<VtbVerificationChannelPoint> channelPointLqw = new LambdaQueryWrapper<>();
channelPointLqw.eq(VtbVerificationChannelPoint::getVerificationId,id);
List<VtbVerificationChannelPoint> verificationChannelPointList = vtbVerificationChannelPointService.list(channelPointLqw);
vtbVerification.setPointList(verificationChannelPointList);
LambdaQueryWrapper<VtbVerificationSubject> subjectLqw = new LambdaQueryWrapper<>();
subjectLqw.eq(VtbVerificationSubject::getVerificationId,id);
List<VtbVerificationSubject> subjectList = vtbVerificationSubjectService.list(subjectLqw);
List<VtbVerificationSubjectCenter> subjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(Long.parseLong(id));
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(vtbVerification.getActivityId());
List<TbsActivityCenter> activityCenters = activityCenterService.listByActivity(vtbVerification.getActivityId());
for (VtbVerificationSubject verificationSubject : subjectList) {
for (TbsActivitySubject activitySubject : activitySubjects) {
if(verificationSubject.getSubjectId().equals(activitySubject.getSubjectId())){
BigDecimal used = activitySubject.getUsedAmount()==null?BigDecimal.ZERO:activitySubject.getUsedAmount();
BigDecimal diff = activitySubject.getAmount().subtract(used);
verificationSubject.setMaxChangeAmount(diff);
}
}
}
if(subjectCenterList.size()<1){
//subjectCenterList为空,代表是旧的审批,需要兼容
for (VtbVerificationSubject verificationSubject : subjectList) {
for (TbsActivityCenter activityCenter : activityCenters) {
BigDecimal userAmountRecord = verificationSubject.getUsedAmountRecord();
BigDecimal useAmount = verificationSubject.getUsedAmount();
VtbVerificationSubjectCenter verCenter = new VtbVerificationSubjectCenter();
verCenter.setCostApplyId(verificationSubject.getCostApplyId());
verCenter.setActivityId(verificationSubject.getActivityId());
verCenter.setSubjectId(verificationSubject.getSubjectId());
verCenter.setSubjectCode(verificationSubject.getSubjectCode());
verCenter.setSubjectName(verificationSubject.getSubjectName());
verCenter.setSupplierId(verificationSubject.getSupplierId());
verCenter.setSupplierCode(verificationSubject.getSupplierCode());
verCenter.setSupplierName(verificationSubject.getSupplierName());
BigDecimal usedItemRecord = userAmountRecord
.multiply(activityCenter.getCenterRate())
.divide(new BigDecimal("100"),2, RoundingMode.DOWN);
BigDecimal usedItem = useAmount
.multiply(activityCenter.getCenterRate())
.divide(new BigDecimal("100"),2, RoundingMode.DOWN);
verCenter.setUsedAmount(usedItem);
verCenter.setUsedAmountRecord(usedItemRecord);
verCenter.setCenterType(activityCenter.getCenterType());
verCenter.setCenterId(activityCenter.getCenterId());
verCenter.setCenterCode(activityCenter.getCenterCode());
verCenter.setCenterName(activityCenter.getCenterName());
verCenter.setActivityCenterId(activityCenter.getId());
subjectCenterList.add(verCenter);
}
}
}
for (VtbVerificationSubjectCenter verCenter : subjectCenterList) {
for (TbsActivityCenter actCenter : activityCenters) {
if(verCenter.getActivityCenterId().equals(actCenter.getId())){
BigDecimal used = actCenter.getUsedAmount()==null?BigDecimal.ZERO:actCenter.getUsedAmount();
BigDecimal diff = actCenter.getCenterAmount().subtract(used);
verCenter.setMaxChangeAmount(diff);
}
}
for (VtbVerificationSubject subject : subjectList) {
if(verCenter.getSubjectId().equals(subject.getSubjectId())){
subject.getSubjectCenterList().add(verCenter);
break;
}
}
}
vtbVerification.setActivityInfo(tbsActivityService.getById(vtbVerification.getActivityId()));
vtbVerification.setSubjectList(subjectList);
return R.ok(vtbVerification); return R.ok(vtbVerification);
} }
@ -370,6 +282,15 @@ public class VtbVerificationController {
public R<List<CtpAffairVo>> pageMemberAffair(Long verificationId){ public R<List<CtpAffairVo>> pageMemberAffair(Long verificationId){
VtbVerification verificationDB = vtbVerificationService.getById(verificationId); VtbVerification verificationDB = vtbVerificationService.getById(verificationId);
String syFormId = verificationDB.getSyFormId(); String syFormId = verificationDB.getSyFormId();
//批量核销
if(verificationDB.getBatchId()!=null){
String templateCode = TbsSeeYonConst.BatchCostCheckConf.Code();
R<List<CtpAffair>> result = seeYonService.commonListAffairs(verificationDB.getBatchId()+"",null,templateCode);
//TODO
List<CtpAffairVo> result2 = verificationApplication.buildCtpAffairVoList(result.getData());
return R.ok(result2);
}
//单个核销
if(syFormId==null){ if(syFormId==null){
return R.ok(); return R.ok();
} }

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

@ -35,6 +35,8 @@ public class VtbVerification implements Serializable {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
private String batchId;
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String verificationMainCode; private String verificationMainCode;

33
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationBatch.java

@ -4,6 +4,7 @@ import java.time.LocalDate;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -36,7 +37,7 @@ public class VtbVerificationBatch implements Serializable {
@Length(max = 255,message = "批次编码长度不能超过255字") @Length(max = 255,message = "批次编码长度不能超过255字")
private String vtbBatchCode; private String vtbBatchCode;
/** 状态 */ /** 状态:0-审批中;1-通过;2-拒绝;3-回退 */
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
private Integer vtbBatchStatus; private Integer vtbBatchStatus;
@ -46,6 +47,18 @@ public class VtbVerificationBatch implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime finishedTime; private LocalDateTime finishedTime;
/** 回退时间 */
@Length(max = 0,message = "核销通过时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime backedTime;
/** 拒绝时间 */
@Length(max = 0,message = "核销通过时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime refuseTime;
/** 费用id */ /** 费用id */
private Long costApplyId; private Long costApplyId;
@ -93,7 +106,7 @@ public class VtbVerificationBatch implements Serializable {
/** 客户id */ /** 客户id */
@NotNull(message = "客户id不能为空") @NotNull(message = "客户id不能为空")
private Long supplierId; private String supplierId;
/** 客户编码 */ /** 客户编码 */
@NotBlank(message = "客户编码不能为空") @NotBlank(message = "客户编码不能为空")
@ -132,5 +145,21 @@ public class VtbVerificationBatch implements Serializable {
@Length(max = 255,message = "业务继承人长度不能超过255字") @Length(max = 255,message = "业务继承人长度不能超过255字")
private String extUserName; private String extUserName;
/** 核销明细列表 */
@TableField(exist = false)
private List<?> verificationList;
/**
* 审批状态
*/
public interface BatchState{
//0-审批中;1-通过;2-拒绝;3-回退
int CHECKING = 0;
int CHECK_OK = 1;
int CHECK_REFUSE = 2;
int CHECK_BACK = 2;
}
} }

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

@ -11,6 +11,9 @@ import java.util.List;
@Data @Data
public class VtbVerificationBatchBo { public class VtbVerificationBatchBo {
/** 退回重新核销时传 */
private Long batchId;
/** 核销列表 */ /** 核销列表 */
List<VtbVerificationBo> verificationList; List<VtbVerificationBo> verificationList;

17
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication2.java

@ -0,0 +1,17 @@
package com.qs.serve.modules.vtb.service;
import com.qs.serve.modules.vtb.entity.VtbVerification;
/**
* @author YenHex
* @since 2024/6/25
*/
public interface VtbVerificationApplication2 {
/**
* 构建核销详情
* @param verification
*/
void buildRelateInfo(VtbVerification verification);
}

13
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchOperationService.java

@ -0,0 +1,13 @@
package com.qs.serve.modules.vtb.service;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
/**
* @author YenHex
* @since 2024/6/25
*/
public interface VtbVerificationBatchOperationService extends SeeYonOperationService {
}

4
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationBatchService.java

@ -1,9 +1,12 @@
package com.qs.serve.modules.vtb.service; package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationBatch; import com.qs.serve.modules.vtb.entity.VtbVerificationBatch;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBatchBo;
import java.util.List;
/** /**
* 服务接口 * 服务接口
* @author YenHex * @author YenHex
@ -17,6 +20,7 @@ public interface VtbVerificationBatchService extends IService<VtbVerificationBat
*/ */
void submit(VtbVerificationBatchBo submitBo); void submit(VtbVerificationBatchBo submitBo);
List<VtbVerification> listVerifications(Long batchId);
} }

143
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationApplication2Impl.java

@ -0,0 +1,143 @@
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.util.CollectionUtil;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.List;
/**
* @author YenHex
* @since 2024/6/25
*/
@Service
@AllArgsConstructor
public class VtbVerificationApplication2Impl implements VtbVerificationApplication2 {
private ProjectApisProperties projectApisProperties;
private VtbVerificationService vtbVerificationService;
private VtbVerificationMapper vtbVerificationMapper;
private VtbVerificationChannelService vtbVerificationChannelService;
private VtbVerificationChannelPointService vtbVerificationChannelPointService;
private VtbVerificationYardCenterItemService vtbVerificationYardCenterItemService;
private VtbVerificationSubjectService vtbVerificationSubjectService;
private VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
private TbsActivitySubjectService activitySubjectService;
private TbsActivityCenterService activityCenterService;
private TbsActivityCenterGoodsService activityCenterGoodsService;
private TbsCostApplyService tbsCostApplyService;
private TbsActivityService tbsActivityService;
private TbsActivityPayConditionService tbsActivityPayConditionService;
private SysAttachService attachService;
private SysUserService sysUserService;
private SysPostUserService sysPostUserService;
private SeeYonRequestService seeYonService;
private VtbVerificationApplication verificationApplication;
private VtbVerificationYardService verificationYardService;
private VtbVerificationYardItemService vtbVerificationYardItemService;
private VtbVerificationOperationServiceImpl vtbVerificationOperationService;
private VtbVerificationExtService vtbVerificationExtService;
@Override
public void buildRelateInfo(VtbVerification vtbVerification) {
Long id = vtbVerification.getId();
if(CollectionUtil.isNotEmpty(vtbVerification.getAttachIds())){
List<String> attachIds = Arrays.asList(vtbVerification.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
vtbVerification.setAttachList(attachList);
}
LambdaQueryWrapper<VtbVerificationChannel> channelLqw = new LambdaQueryWrapper<>();
channelLqw.eq(VtbVerificationChannel::getVerificationId,id);
List<VtbVerificationChannel> verificationChannelList = vtbVerificationChannelService.list(channelLqw);
vtbVerification.setChannelList(verificationChannelList);
LambdaQueryWrapper<VtbVerificationChannelPoint> channelPointLqw = new LambdaQueryWrapper<>();
channelPointLqw.eq(VtbVerificationChannelPoint::getVerificationId,id);
List<VtbVerificationChannelPoint> verificationChannelPointList = vtbVerificationChannelPointService.list(channelPointLqw);
vtbVerification.setPointList(verificationChannelPointList);
LambdaQueryWrapper<VtbVerificationSubject> subjectLqw = new LambdaQueryWrapper<>();
subjectLqw.eq(VtbVerificationSubject::getVerificationId,id);
List<VtbVerificationSubject> subjectList = vtbVerificationSubjectService.list(subjectLqw);
List<VtbVerificationSubjectCenter> subjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(id);
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(vtbVerification.getActivityId());
List<TbsActivityCenter> activityCenters = activityCenterService.listByActivity(vtbVerification.getActivityId());
for (VtbVerificationSubject verificationSubject : subjectList) {
for (TbsActivitySubject activitySubject : activitySubjects) {
if(verificationSubject.getSubjectId().equals(activitySubject.getSubjectId())){
BigDecimal used = activitySubject.getUsedAmount()==null?BigDecimal.ZERO:activitySubject.getUsedAmount();
BigDecimal diff = activitySubject.getAmount().subtract(used);
verificationSubject.setMaxChangeAmount(diff);
}
}
}
if(subjectCenterList.size()<1){
//subjectCenterList为空,代表是旧的审批,需要兼容
for (VtbVerificationSubject verificationSubject : subjectList) {
for (TbsActivityCenter activityCenter : activityCenters) {
BigDecimal userAmountRecord = verificationSubject.getUsedAmountRecord();
BigDecimal useAmount = verificationSubject.getUsedAmount();
VtbVerificationSubjectCenter verCenter = new VtbVerificationSubjectCenter();
verCenter.setCostApplyId(verificationSubject.getCostApplyId());
verCenter.setActivityId(verificationSubject.getActivityId());
verCenter.setSubjectId(verificationSubject.getSubjectId());
verCenter.setSubjectCode(verificationSubject.getSubjectCode());
verCenter.setSubjectName(verificationSubject.getSubjectName());
verCenter.setSupplierId(verificationSubject.getSupplierId());
verCenter.setSupplierCode(verificationSubject.getSupplierCode());
verCenter.setSupplierName(verificationSubject.getSupplierName());
BigDecimal usedItemRecord = userAmountRecord
.multiply(activityCenter.getCenterRate())
.divide(new BigDecimal("100"),2, RoundingMode.DOWN);
BigDecimal usedItem = useAmount
.multiply(activityCenter.getCenterRate())
.divide(new BigDecimal("100"),2, RoundingMode.DOWN);
verCenter.setUsedAmount(usedItem);
verCenter.setUsedAmountRecord(usedItemRecord);
verCenter.setCenterType(activityCenter.getCenterType());
verCenter.setCenterId(activityCenter.getCenterId());
verCenter.setCenterCode(activityCenter.getCenterCode());
verCenter.setCenterName(activityCenter.getCenterName());
verCenter.setActivityCenterId(activityCenter.getId());
subjectCenterList.add(verCenter);
}
}
}
for (VtbVerificationSubjectCenter verCenter : subjectCenterList) {
for (TbsActivityCenter actCenter : activityCenters) {
if(verCenter.getActivityCenterId().equals(actCenter.getId())){
BigDecimal used = actCenter.getUsedAmount()==null?BigDecimal.ZERO:actCenter.getUsedAmount();
BigDecimal diff = actCenter.getCenterAmount().subtract(used);
verCenter.setMaxChangeAmount(diff);
}
}
for (VtbVerificationSubject subject : subjectList) {
if(verCenter.getSubjectId().equals(subject.getSubjectId())){
subject.getSubjectCenterList().add(verCenter);
break;
}
}
}
vtbVerification.setActivityInfo(tbsActivityService.getById(vtbVerification.getActivityId()));
vtbVerification.setSubjectList(subjectList);
}
}

127
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java

@ -1,49 +1,168 @@
package com.qs.serve.modules.vtb.service.impl; package com.qs.serve.modules.vtb.service.impl;
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.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.data.entity.DataAffairCommit;
import com.qs.serve.modules.data.mapper.DataAffairCommitMapper;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationBatch;
import com.qs.serve.modules.vtb.service.VtbVerificationBatchOperationService;
import com.qs.serve.modules.vtb.service.VtbVerificationBatchService;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2024/6/14 * @since 2024/6/14
*/ */
@Service @Service
public class VtbVerificationBatchOperationServiceImpl implements SeeYonOperationService { @AllArgsConstructor
public class VtbVerificationBatchOperationServiceImpl implements VtbVerificationBatchOperationService {
private final VtbVerificationBatchService vtbVerificationBatchService;
private final VtbVerificationService vtbVerificationService;
@Override @Override
public String getTemplateCode() { public String getTemplateCode() {
return null; return TbsSeeYonConst.BatchCostCheckConf.Code();
} }
@Override @Override
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) {
Assert.throwEx("方法未定义getSyFormIdByTargetInfo");
return null; return null;
} }
@Override @Override
public Object doBacked(TbsAffairCommitBo param) { public Object doBacked(TbsAffairCommitBo param) {
//退回
VtbVerificationBatch batch = vtbVerificationBatchService.getById(param.getTargetId());
List<VtbVerification> verificationList = vtbVerificationBatchService.listVerifications(batch.getId());
batch.setVtbBatchStatus(VtbVerificationBatch.BatchState.CHECK_BACK);
batch.setBackedTime(LocalDateTime.now());
vtbVerificationBatchService.updateById(batch);
for (VtbVerification verification : verificationList) {
verification.setVerificationState(VtbVerificationState.Rollback.getCode());
vtbVerificationService.updateById(verification);
}
return null; return null;
} }
@Override @Override
public Object doFinished(TbsAffairCommitBo param) { public Object doFinished(TbsAffairCommitBo param) {
return null; return null;
} }
@Override @Override
public Object doRefuse(TbsAffairCommitBo param) { public Object doRefuse(TbsAffairCommitBo param) {
VtbVerificationBatch batch = vtbVerificationBatchService.getById(param.getTargetId());
List<VtbVerification> verificationList = vtbVerificationBatchService.listVerifications(batch.getId());
batch.setVtbBatchStatus(VtbVerificationBatch.BatchState.CHECK_REFUSE);
batch.setRefuseTime(LocalDateTime.now());
vtbVerificationBatchService.updateById(batch);
for (VtbVerification verification : verificationList) {
verification.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(verification);
}
return null; return null;
} }
@Override
public void insertAddNodeLog(CtpAddNodeParam param, String affairId, SysUser sysUser) {
//给加签添加审批日志
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(param.getTargetId());
dataAffairCommit.setId(affairId);
dataAffairCommit.setCommentVal("加签:"+ param.getComment());
dataAffairCommit.setReleaseFlag(0);
dataAffairCommit.setState(3);
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData("addNode");
dataAffairCommit.setAttachIds(param.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
VtbVerificationBatch batch = vtbVerificationBatchService.getById(param.getTargetId());
List<VtbVerification> verificationList = vtbVerificationBatchService.listVerifications(batch.getId());
//保存到每个核销
for (VtbVerification verification : verificationList) {
DataAffairCommit affairCommit = CopierUtil.copy(dataAffairCommit,new DataAffairCommit());
affairCommit.setId(null);
affairCommit.setTargetId(verification.getId()+"");
affairCommit.setTargetCode(verification.getVerificationCode());
dataAffairCommitMapper.insert(affairCommit);
}
}
@Override
public void buildAffairCommitData(TbsAffairCommitBo affairCommit, String flag) {
//常规的提交审批日志
//保存记录
try {
// 判断是否含有下个节点
DataAffairCommitMapper dataAffairCommitMapper = SpringUtils.getBean(DataAffairCommitMapper.class);
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = getUserMapper().selectById(userId);
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(getTemplateCode());
dataAffairCommit.setTargetId(getTargetId(affairCommit));
dataAffairCommit.setId(affairCommit.getAffairId());
dataAffairCommit.setCommentVal(affairCommit.getComment());
dataAffairCommit.setReleaseFlag(affairCommit.getReleaseFlag());
dataAffairCommit.setState(affairCommit.getState());
dataAffairCommit.setUserId(sysUser.getId());
dataAffairCommit.setUserCode(sysUser.getCode());
dataAffairCommit.setUserName(sysUser.getName());
dataAffairCommit.setResultData(flag);
dataAffairCommit.setAttachIds(affairCommit.getAttachIds());
dataAffairCommitMapper.insert(dataAffairCommit);
VtbVerificationBatch batch = vtbVerificationBatchService.getById(affairCommit.getTargetId());
List<VtbVerification> verificationList = vtbVerificationBatchService.listVerifications(batch.getId());
//保存到每个核销
for (VtbVerification verification : verificationList) {
DataAffairCommit obj = CopierUtil.copy(dataAffairCommit,new DataAffairCommit());
obj.setId(null);
obj.setTargetId(verification.getId()+"");
obj.setTargetCode(verification.getVerificationCode());
dataAffairCommitMapper.insert(obj);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override @Override
public boolean checkSyFormIdIsNotNull(String targetId) { public boolean checkSyFormIdIsNotNull(String targetId) {
return false; VtbVerificationBatch batch = vtbVerificationBatchService.getById(targetId);
return batch.getSyFormId()!=null;
} }
@Override @Override
public void doCommitBacked(String targetId) { public void doCommitBacked(String targetId) {
//审批完成后调用
} }
} }

494
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java

@ -1,9 +1,17 @@
package com.qs.serve.modules.vtb.service.impl; package com.qs.serve.modules.vtb.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.redis.RedisService; import com.qs.serve.common.framework.redis.RedisService;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.common.model.oa.OaUploadFile;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.bms.entity.*; import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
@ -13,28 +21,39 @@ import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.pay.entity.PayWay; import com.qs.serve.modules.pay.entity.PayWay;
import com.qs.serve.modules.pay.mapper.PayWayMapper; import com.qs.serve.modules.pay.mapper.PayWayMapper;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tag.mapper.TagInfoMapper;
import com.qs.serve.modules.tbs.common.TbsActivityState; 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.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
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.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.service.TbsActivityCenterService;
import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivityService;
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.VerificationUtil; import com.qs.serve.modules.vtb.common.VerificationUtil;
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.*; import com.qs.serve.modules.vtb.entity.bo.*;
import com.qs.serve.modules.vtb.entity.dto.VtbSubjectDTO;
import com.qs.serve.modules.vtb.service.*; import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.qs.serve.modules.vtb.mapper.VtbVerificationBatchMapper; import com.qs.serve.modules.vtb.mapper.VtbVerificationBatchMapper;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.time.LocalDateTime;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -53,6 +72,8 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
private final BmsSupplierService bmsSupplierService; private final BmsSupplierService bmsSupplierService;
private final TbsActivityService tbsActivityService; private final TbsActivityService tbsActivityService;
private final TbsCostApplyService tbsCostApplyService; private final TbsCostApplyService tbsCostApplyService;
private final TbsActivitySubjectService tbsActivitySubjectService;
private final TbsActivityCenterService tbsActivityCenterService;
private final SysUserService sysUserService; private final SysUserService sysUserService;
private final VtbVerificationService vtbVerificationService; private final VtbVerificationService vtbVerificationService;
private final PayWayMapper payWayMapper; private final PayWayMapper payWayMapper;
@ -64,10 +85,15 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
private final VtbVerificationSubjectService verificationSubjectService; private final VtbVerificationSubjectService verificationSubjectService;
private final VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService; private final VtbVerificationSubjectCenterService vtbVerificationSubjectCenterService;
private final VtbFundFlowService vtbFundFlowService; private final VtbFundFlowService vtbFundFlowService;
private final ProjectProperties projectProperties;
private final TagInfoMapper tagInfoMapper;
private SysAttachService sysAttachService;
private SeeYonRequestService seeYonService;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void submit(VtbVerificationBatchBo submitBo) { public void submit(VtbVerificationBatchBo submitBo) {
String templateCode = TbsSeeYonConst.BatchCostCheckConf.Code();
TbsCostApply costApply = tbsCostApplyService.getById(submitBo.getCostApplyId()); TbsCostApply costApply = tbsCostApplyService.getById(submitBo.getCostApplyId());
BmsSupplier supplier = bmsSupplierService.getById(costApply.getSupplierId()); BmsSupplier supplier = bmsSupplierService.getById(costApply.getSupplierId());
List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(costApply.getId()); List<TbsActivity> activityList = tbsActivityService.listByCostApplyId(costApply.getId());
@ -117,7 +143,210 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
List<VtbVerificationSubject> allVerificationSubjects = new ArrayList<>(); List<VtbVerificationSubject> allVerificationSubjects = new ArrayList<>();
List<VtbVerificationSubjectCenter> allVerificationCenters = new ArrayList<>(); List<VtbVerificationSubjectCenter> allVerificationCenters = new ArrayList<>();
//校验BO参数 //主创建方法,校验BO参数和创建数据
this.mainCheckAndCreateBatchItemData(submitBo, costApply, supplier, activityList, sysUser, payWay,
orgVerificationIds, newVerificationList, allVerificationChannelList, allVerificationChannelPointList,
allVerificationSubjects, allVerificationCenters);
VtbVerificationBatch verificationBatch = new VtbVerificationBatch();
verificationBatch.setVtbBatchCode("BHX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.VerificationBatch));
verificationBatch.setVtbBatchStatus(0);
verificationBatch.setCostApplyId(costApply.getId());
//verificationBatch.setRemark();
//verificationBatch.setSyFormId();
//verificationBatch.setSyFlowId();
verificationBatch.setSupplierId(supplier.getId());
verificationBatch.setSupplierCode(supplier.getCode());
verificationBatch.setSupplierName(supplier.getName());
verificationBatch.setUserId(sysUser.getId());
verificationBatch.setUserCode(sysUser.getCode());
verificationBatch.setUserName(sysUser.getName());
this.save(verificationBatch);
String batchId = verificationBatch.getId()+"";
Map<String, Object> newWayData = new HashMap<>();
Map<String, Object> data = new HashMap<>();
List<OaUploadFile> uploadFileList = new ArrayList<>();
//创建OA参数data
this.buildBatchOAData(submitBo, templateCode, costApply, supplier, sysUser, saleBizNames, bizBizNames,
verificationBatch, batchId, newWayData, data, uploadFileList);
OaFormMainProcess mainProcess = new OaFormMainProcess();
mainProcess.setTargetId(batchId);
mainProcess.setUploadFiles(uploadFileList);
newWayData.put("formmain_2178",data);
mainProcess.setTableName("formmain_2178");
mainProcess.setData(newWayData);
mainProcess.setTemplateCode(templateCode);
mainProcess.setUserId(sysUser.getId());
mainProcess.setSenderLoginName(sysUser.getAccount());
R flowIdResult = seeYonService.newCreateProcess(mainProcess);
if(flowIdResult==null||flowIdResult.getStatus()!=200){
assert flowIdResult != null;
Assert.throwEx("远程服务调用失败:"+flowIdResult.getMsg());
}
if(flowIdResult.getMsg()!=null && flowIdResult.getMsg().length()>45){
log.error(flowIdResult.getMsg());
JSONObject object = JSON.parseObject(flowIdResult.getMsg());
if(!object.get("code").toString().equals("0")){
Assert.throwEx("流程发起被拦截了");
}
}
//移除历史提交记录
for (Long orgVerificationId : orgVerificationIds) {
verificationChannelService.removeByVerificationId(orgVerificationId);
verificationChannelPointService.removeByVerificationId(orgVerificationId);
verificationSubjectService.removeByVerificationId(orgVerificationId);
vtbVerificationSubjectCenterService.removeByVerificationId(orgVerificationId);
vtbFundFlowService.removeByVerificationId(orgVerificationId);
}
Map<Long,List<VtbVerificationChannel>> allVerificationChannelListMap = allVerificationChannelList.stream()
.collect(Collectors.groupingBy(VtbVerificationChannel::getVerificationId));
Map<Long,List<VtbVerificationChannelPoint>> allVerificationChannelPointListMap = allVerificationChannelPointList.stream()
.collect(Collectors.groupingBy(VtbVerificationChannelPoint::getVerificationId));
Map<Long,List<VtbVerificationSubject>> allVerificationSubjectsMap = allVerificationSubjects.stream()
.collect(Collectors.groupingBy(VtbVerificationSubject::getVerificationId));
Map<Long,List<VtbVerificationSubjectCenter>> allVerificationCentersMap = allVerificationCenters.stream()
.collect(Collectors.groupingBy(VtbVerificationSubjectCenter::getVerificationId));
for (VtbVerification verification : newVerificationList) {
//临时ID,实际是活动ID
Long tmpId = verification.getId();
verification.setId(null);
//关联批量ID
verification.setBatchId(batchId);
vtbVerificationService.save(verification);
Long verificationId = verification.getId();
this.saveVerificationRelateData(allVerificationChannelListMap, allVerificationChannelPointListMap, allVerificationSubjectsMap, allVerificationCentersMap, tmpId, verificationId);
//更新活动状态
TbsActivity activityParam = new TbsActivity();
activityParam.setId(verification.getActivityId());
activityParam.setActivityState(TbsActivityState.STATE_1_Checking);
activityParam.setCurrVerificationId(verification.getId()+"");
tbsActivityService.updateById(activityParam);
}
//更变费用申请的活动状态
TbsCostApply costApplyParam = new TbsCostApply();
costApplyParam.setId(costApply.getId());
costApplyParam.setCheckState(1);
tbsCostApplyService.updateById(costApplyParam);
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(templateCode,batchId);
seeYonService.createCallbackStatus(callbackBo);
}
/**
* 创建OA参数data
* @param submitBo
* @param templateCode
* @param costApply
* @param supplier
* @param sysUser
* @param saleBizNames
* @param bizBizNames
* @param verificationBatch
* @param batchId
* @param newWayData
* @param data
* @param uploadFileList
*/
private void buildBatchOAData(VtbVerificationBatchBo submitBo, String templateCode, TbsCostApply costApply,
BmsSupplier supplier, SysUser sysUser, String saleBizNames, String bizBizNames,
VtbVerificationBatch verificationBatch, String batchId, Map<String, Object> newWayData,
Map<String, Object> data, List<OaUploadFile> uploadFileList) {
data.put("title", verificationBatch.getVtbBatchCode());
data.put("orgId", batchId);
data.put("targetId", batchId);
data.put("targetCode", verificationBatch.getVtbBatchCode());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("supplierName", supplier.getName());
data.put("supplierCode", supplier.getCode());
data.put("exsp1", templateCode);
data.put("exsp2", saleBizNames);
data.put("biz_region", bizBizNames);
//添加跳转地址业务
String urlKey = "exsp5";
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),TbsSeeYonConst.BatchCostCheckConf.Code(), batchId);
data.put("exsp5",urlKey);
data.put("cmsLink",baseJumpUrl);
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","00");
//添加客户标签
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode());
data.put("tags",tags);
List<String> oaAttachmentsIdList = new ArrayList<>();
submitBo.getVerificationList().forEach(obj->{
if(obj.getAttachIds()!=null && obj.getAttachIds().length>0){
oaAttachmentsIdList.addAll(Arrays.asList(obj.getAttachIds()));
}
});
//科目
List<TbsActivitySubject> subjectList = tbsActivitySubjectService.listByCostApplyId(costApply.getId());
List<VtbSubjectDTO> subjectDTOList = new ArrayList<>();
for (TbsActivitySubject activitySubject : subjectList) {
VtbSubjectDTO subjectDTO = new VtbSubjectDTO();
subjectDTO.setKeMuName(activitySubject.getSubjectName());
subjectDTOList.add(subjectDTO);
}
newWayData.put("formson_2180",subjectDTOList);
//成本中心
List<Object> centerDataList = new ArrayList<>();
List<TbsActivityCenter> activityCenter = tbsActivityCenterService.listByCostApplyId(costApply.getId());
for(TbsActivityCenter center : activityCenter){
TbsCostSubItem.CostCenterTranStr costCenter = new TbsCostSubItem.CostCenterTranStr();
if(costCenter.getChengBenZhongXin()==null){
costCenter.setChengBenZhongXin(center.getCenterName());
costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId());
}
centerDataList.add(costCenter);
}
newWayData.put("formson_2179",centerDataList);
//加载附件
if(CollectionUtil.isNotEmpty(oaAttachmentsIdList)){
List<SysAttach> attachList = sysAttachService.listByIds(oaAttachmentsIdList);
for (SysAttach sysAttach : attachList) {
OaUploadFile uploadFile = new OaUploadFile();
uploadFile.setField("file");
uploadFile.setName("核销附件"+sysAttach.getName());
uploadFile.setUrl("https://qsjslservice.oss-cn-guangzhou.aliyuncs.com/"+sysAttach.getRelativePath());
uploadFileList.add(uploadFile);
}
}
}
/**
* 主创建方法校验BO参数和创建数据
* @param submitBo
* @param costApply
* @param supplier
* @param activityList
* @param sysUser
* @param payWay
* @param orgVerificationIds
* @param newVerificationList
* @param allVerificationChannelList
* @param allVerificationChannelPointList
* @param allVerificationSubjects
* @param allVerificationCenters
*/
private void mainCheckAndCreateBatchItemData(VtbVerificationBatchBo submitBo, TbsCostApply costApply, BmsSupplier supplier, List<TbsActivity> activityList, SysUser sysUser, PayWay payWay, List<Long> orgVerificationIds, List<VtbVerification> newVerificationList, List<VtbVerificationChannel> allVerificationChannelList, List<VtbVerificationChannelPoint> allVerificationChannelPointList, List<VtbVerificationSubject> allVerificationSubjects, List<VtbVerificationSubjectCenter> allVerificationCenters) {
for (VtbVerificationBo verificationBo : submitBo.getVerificationList()) { for (VtbVerificationBo verificationBo : submitBo.getVerificationList()) {
for (TbsActivity activity : activityList) { for (TbsActivity activity : activityList) {
if(verificationBo.getActivityId().equals(activity.getId())){ if(verificationBo.getActivityId().equals(activity.getId())){
@ -141,70 +370,13 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
//创建 verification //创建 verification
VtbVerification verification = new VtbVerification(); VtbVerification verification = new VtbVerification();
//临时ID //临时ID 使用活动ID
verification.setId(activity.getId()); verification.setId(activity.getId());
// 给核销赋值
verification.setCostApplyCode(costApply.getCode()); this.verificationSetAssign(costApply, sysUser, payWay, verificationBo, activity, verification);
verification.setActivityCode(activity.getActivityCode()); //创建核销相关数据(未存入数据库)
verification.setPayConditionId(verificationBo.getPayConditionId()); this.buildVerificationRelateData(costApply, allVerificationChannelList, allVerificationChannelPointList,
verification.setVerificationCode("HX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification)); verificationBo, activity, verification);
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setCostApplyId(costApply.getId());
verification.setActivityId(verificationBo.getActivityId());
verification.setAttachIds(verificationBo.getAttachIds());
verification.setInputReleaseFlag(verificationBo.getInputReleaseFlag());
if(verificationBo.getInputReleaseFlag()!=null&&verificationBo.getInputReleaseFlag().equals(0)){
verification.setRegReleaseFlag(1);
}
verification.setSupplierId(activity.getSupplierId());
verification.setSupplierCode(activity.getSupplierCode());
verification.setSupplierName(activity.getSupplierName());
verification.setUserId(sysUser.getId());
verification.setUserCode(sysUser.getCode());
verification.setUserName(sysUser.getName());
verification.setRemark(verificationBo.getRemark());
verification.setWayId(payWay.getId());
verification.setWayTitle(payWay.getTitle());
verification.setSupplierBizRegionFirstName(costApply.getSupplierBizRegionFirstName());
verification.setSupplierBizRegionSecondName(costApply.getSupplierBizRegionSecondName());
verification.setSupplierBizRegionThirdName(costApply.getSupplierBizRegionThirdName());
List<VtbVerificationChannelBo> channelBoList = verificationBo.getChannelList();
List<VtbVerificationChannelPointBo> pointBoList = verificationBo.getPointList();
if(CollectionUtil.isNotEmpty(channelBoList)){
for (VtbVerificationChannelBo channelBo : channelBoList) {
BmsChannel channel = channelService.getById(channelBo.getChannelId());
VtbVerificationChannel verificationChannel = new VtbVerificationChannel();
verificationChannel.setActivityId(activity.getId());
verificationChannel.setCostApplyId(costApply.getId());
verificationChannel.setVerificationId(verification.getId());
verificationChannel.setChannelId(channel.getId());
verificationChannel.setChannelCode(channel.getChannelCode());
verificationChannel.setChannelName(channel.getChannelName());
verificationChannel.setChannelRate(channelBo.getChannelRate());
verificationChannel.setPreCountPoint(channelBo.getPreCountPoint());
verificationChannel.setRemark(channelBo.getRemark());
allVerificationChannelList.add(verificationChannel);
}
}else if (CollectionUtil.isNotEmpty(pointBoList)){
for (VtbVerificationChannelPointBo channelPointBo : pointBoList) {
BmsChannelPoint channelPoint = channelPointService.getById(channelPointBo.getPointId());
BmsChannel channel = channelService.getById(channelPoint.getChannelId());
VtbVerificationChannelPoint channelPoint1 = new VtbVerificationChannelPoint();
channelPoint1.setCostApplyId(costApply.getId());
channelPoint1.setActivityId(activity.getId());
channelPoint1.setChannelId(channel.getId());
channelPoint1.setVerificationId(verification.getId());
channelPoint1.setChannelCode(channel.getChannelCode());
channelPoint1.setChannelName(channel.getChannelName());
channelPoint1.setPointId(channelPoint.getId());
channelPoint1.setPointCode(channelPoint.getPointCode());
channelPoint1.setPointName(channelPoint.getPointName());
channelPoint1.setPointRate(channelPointBo.getPointRate());
channelPoint1.setRemark(channelPointBo.getRemark());
allVerificationChannelPointList.add(channelPoint1);
}
}
List<VtbVerificationSubject> verificationSubjects = new ArrayList<>(); List<VtbVerificationSubject> verificationSubjects = new ArrayList<>();
List<VtbVerificationSubjectCenter> verificationCenters = new ArrayList<>(); List<VtbVerificationSubjectCenter> verificationCenters = new ArrayList<>();
@ -237,80 +409,138 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
} }
} }
} }
}
//TODO 提交审批 /**
* 给核销赋值
//移除历史提交记录 * @param costApply
for (Long orgVerificationId : orgVerificationIds) { * @param sysUser
verificationChannelService.removeByVerificationId(orgVerificationId); * @param payWay
verificationChannelPointService.removeByVerificationId(orgVerificationId); * @param verificationBo
verificationSubjectService.removeByVerificationId(orgVerificationId); * @param activity
vtbVerificationSubjectCenterService.removeByVerificationId(orgVerificationId); * @param verification
vtbFundFlowService.removeByVerificationId(orgVerificationId); */
private void verificationSetAssign(TbsCostApply costApply, SysUser sysUser, PayWay payWay,
VtbVerificationBo verificationBo, TbsActivity activity,
VtbVerification verification) {
verification.setCostApplyCode(costApply.getCode());
verification.setActivityCode(activity.getActivityCode());
verification.setPayConditionId(verificationBo.getPayConditionId());
verification.setVerificationCode("HX"+ CodeGenUtil.generate(CodeGenUtil.SourceKey.Verification));
verification.setVerificationMainCode(verification.getVerificationCode());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setCostApplyId(costApply.getId());
verification.setActivityId(verificationBo.getActivityId());
verification.setAttachIds(verificationBo.getAttachIds());
verification.setInputReleaseFlag(verificationBo.getInputReleaseFlag());
if(verificationBo.getInputReleaseFlag()!=null&& verificationBo.getInputReleaseFlag().equals(0)){
verification.setRegReleaseFlag(1);
} }
verification.setSupplierId(activity.getSupplierId());
verification.setSupplierCode(activity.getSupplierCode());
verification.setSupplierName(activity.getSupplierName());
verification.setUserId(sysUser.getId());
verification.setUserCode(sysUser.getCode());
verification.setUserName(sysUser.getName());
verification.setRemark(verificationBo.getRemark());
verification.setWayId(payWay.getId());
verification.setWayTitle(payWay.getTitle());
verification.setSupplierBizRegionFirstName(costApply.getSupplierBizRegionFirstName());
verification.setSupplierBizRegionSecondName(costApply.getSupplierBizRegionSecondName());
verification.setSupplierBizRegionThirdName(costApply.getSupplierBizRegionThirdName());
verification.setRemark(verificationBo.getRemark());
verification.setWayId(verificationBo.getPayWayId());
verification.setWayTitle(payWay.getTitle());
}
//获取临时ID重新赋值 /**
//List<Long> activityIds = newVerificationList.stream().map(VtbVerification::getId).collect(Collectors.toList()); * 创建核销相关数据(未存入数据库)
* @param costApply
Map<Long,List<VtbVerificationChannel>> allVerificationChannelListMap = allVerificationChannelList.stream() * @param allVerificationChannelList
.collect(Collectors.groupingBy(VtbVerificationChannel::getVerificationId)); * @param allVerificationChannelPointList
Map<Long,List<VtbVerificationChannelPoint>> allVerificationChannelPointListMap = allVerificationChannelPointList.stream() * @param verificationBo
.collect(Collectors.groupingBy(VtbVerificationChannelPoint::getVerificationId)); * @param activity
* @param verification
Map<Long,List<VtbVerificationSubject>> allVerificationSubjectsMap = allVerificationSubjects.stream() */
.collect(Collectors.groupingBy(VtbVerificationSubject::getVerificationId)); private void buildVerificationRelateData(TbsCostApply costApply, List<VtbVerificationChannel> allVerificationChannelList, List<VtbVerificationChannelPoint> allVerificationChannelPointList, VtbVerificationBo verificationBo, TbsActivity activity, VtbVerification verification) {
Map<Long,List<VtbVerificationSubjectCenter>> allVerificationCentersMap = allVerificationCenters.stream() List<VtbVerificationChannelBo> channelBoList = verificationBo.getChannelList();
.collect(Collectors.groupingBy(VtbVerificationSubjectCenter::getVerificationId)); List<VtbVerificationChannelPointBo> pointBoList = verificationBo.getPointList();
if(CollectionUtil.isNotEmpty(channelBoList)){
for (VtbVerificationChannelBo channelBo : channelBoList) {
for (VtbVerification verification : newVerificationList) { BmsChannel channel = channelService.getById(channelBo.getChannelId());
//临时ID,实际是活动ID VtbVerificationChannel verificationChannel = new VtbVerificationChannel();
Long tmpId = verification.getId(); verificationChannel.setActivityId(activity.getId());
verificationChannel.setCostApplyId(costApply.getId());
verification.setId(null); verificationChannel.setVerificationId(verification.getId());
vtbVerificationService.save(verification); verificationChannel.setChannelId(channel.getId());
Long verificationId = verification.getId(); verificationChannel.setChannelCode(channel.getChannelCode());
verificationChannel.setChannelName(channel.getChannelName());
List<VtbVerificationChannel> vtbVerificationChannels = allVerificationChannelListMap.get(tmpId); verificationChannel.setChannelRate(channelBo.getChannelRate());
if(vtbVerificationChannels!=null){ verificationChannel.setPreCountPoint(channelBo.getPreCountPoint());
vtbVerificationChannels.forEach(a->a.setVerificationId(verificationId)); verificationChannel.setRemark(channelBo.getRemark());
verificationChannelService.saveBatch(vtbVerificationChannels); allVerificationChannelList.add(verificationChannel);
}
List<VtbVerificationChannelPoint> verificationChannelPointList = allVerificationChannelPointListMap.get(tmpId);
if(verificationChannelPointList!=null){
verificationChannelPointList.forEach(a->a.setVerificationId(verificationId));
verificationChannelPointService.saveBatch(verificationChannelPointList);
}
List<VtbVerificationSubject> verificationSubjects = allVerificationSubjectsMap.get(tmpId);
if(verificationSubjects!=null){
verificationSubjects.forEach(a->a.setVerificationId(verificationId));
verificationSubjectService.saveBatch(verificationSubjects);
} }
}else if (CollectionUtil.isNotEmpty(pointBoList)){
List<VtbVerificationSubjectCenter> vtbVerificationSubjectCenterList = allVerificationCentersMap.get(tmpId); for (VtbVerificationChannelPointBo channelPointBo : pointBoList) {
if(vtbVerificationSubjectCenterList!=null){ BmsChannelPoint channelPoint = channelPointService.getById(channelPointBo.getPointId());
vtbVerificationSubjectCenterList.forEach(a->a.setVerificationId(verificationId)); BmsChannel channel = channelService.getById(channelPoint.getChannelId());
vtbVerificationSubjectCenterService.saveBatch(vtbVerificationSubjectCenterList); VtbVerificationChannelPoint channelPoint1 = new VtbVerificationChannelPoint();
channelPoint1.setCostApplyId(costApply.getId());
channelPoint1.setActivityId(activity.getId());
channelPoint1.setChannelId(channel.getId());
channelPoint1.setVerificationId(verification.getId());
channelPoint1.setChannelCode(channel.getChannelCode());
channelPoint1.setChannelName(channel.getChannelName());
channelPoint1.setPointId(channelPoint.getId());
channelPoint1.setPointCode(channelPoint.getPointCode());
channelPoint1.setPointName(channelPoint.getPointName());
channelPoint1.setPointRate(channelPointBo.getPointRate());
channelPoint1.setRemark(channelPointBo.getRemark());
allVerificationChannelPointList.add(channelPoint1);
} }
}
}
//更新活动状态 /**
TbsActivity activityParam = new TbsActivity(); * 保存核销相关数据
activityParam.setId(verification.getActivityId()); * @param allVerificationChannelListMap
activityParam.setActivityState(TbsActivityState.STATE_1_Checking); * @param allVerificationChannelPointListMap
activityParam.setCurrVerificationId(verification.getId()+""); * @param allVerificationSubjectsMap
tbsActivityService.updateById(activityParam); * @param allVerificationCentersMap
* @param tmpId
* @param verificationId
*/
private void saveVerificationRelateData(Map<Long, List<VtbVerificationChannel>> allVerificationChannelListMap, Map<Long, List<VtbVerificationChannelPoint>> allVerificationChannelPointListMap, Map<Long, List<VtbVerificationSubject>> allVerificationSubjectsMap, Map<Long, List<VtbVerificationSubjectCenter>> allVerificationCentersMap, Long tmpId, Long verificationId) {
List<VtbVerificationChannel> vtbVerificationChannels = allVerificationChannelListMap.get(tmpId);
if(vtbVerificationChannels!=null){
vtbVerificationChannels.forEach(a->a.setVerificationId(verificationId));
verificationChannelService.saveBatch(vtbVerificationChannels);
}
List<VtbVerificationChannelPoint> verificationChannelPointList = allVerificationChannelPointListMap.get(tmpId);
if(verificationChannelPointList!=null){
verificationChannelPointList.forEach(a->a.setVerificationId(verificationId));
verificationChannelPointService.saveBatch(verificationChannelPointList);
} }
//更变费用申请的活动状态 List<VtbVerificationSubject> verificationSubjects = allVerificationSubjectsMap.get(tmpId);
TbsCostApply costApplyParam = new TbsCostApply(); if(verificationSubjects!=null){
costApplyParam.setId(costApply.getId()); verificationSubjects.forEach(a->a.setVerificationId(verificationId));
costApplyParam.setCheckState(1); verificationSubjectService.saveBatch(verificationSubjects);
tbsCostApplyService.updateById(costApplyParam); }
List<VtbVerificationSubjectCenter> vtbVerificationSubjectCenterList = allVerificationCentersMap.get(tmpId);
if(vtbVerificationSubjectCenterList!=null){
vtbVerificationSubjectCenterList.forEach(a->a.setVerificationId(verificationId));
vtbVerificationSubjectCenterService.saveBatch(vtbVerificationSubjectCenterList);
}
} }
@Override
public List<VtbVerification> listVerifications(Long batchId) {
return vtbVerificationService
.list(new LambdaQueryWrapper<VtbVerification>()
.eq(VtbVerification::getBatchId,batchId));
}
} }

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

@ -1545,6 +1545,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
lqw.eq(SysSyncLog::getFromPlat,"to支付请求") lqw.eq(SysSyncLog::getFromPlat,"to支付请求")
.eq(SysSyncLog::getSuccessStatus,0) .eq(SysSyncLog::getSuccessStatus,0)
.eq(SysSyncLog::getTodoState,1) .eq(SysSyncLog::getTodoState,1)
.notLike(SysSyncLog::getFailReason,"已存在支付")
//重试两次 //重试两次
.lt(SysSyncLog::getTryTimes,3); .lt(SysSyncLog::getTryTimes,3);
List<SysSyncLog> sysSyncLogs = sysSyncLogService.list(lqw); List<SysSyncLog> sysSyncLogs = sysSyncLogService.list(lqw);

1
src/main/resources/mapper/tag/TagDataMapper.xml

@ -41,6 +41,7 @@
SELECT SELECT
tag_info.color_val, tag_info.color_val,
tag_info.bg_color_val, tag_info.bg_color_val,
tag_info.remark as tagRemark,
<include refid="tagDataSql"/> <include refid="tagDataSql"/>
FROM `tag_data` `tag_data` FROM `tag_data` `tag_data`
left join tag_info on tag_data.tag_id = tag_info.id left join tag_info on tag_data.tag_id = tag_info.id

Loading…
Cancel
Save