Browse Source

feat: 拓展对接嘉士利标签同步规则;feat: 添加审批前置检验

checkBack
Yen 1 year ago
parent
commit
edaef3fa3b
  1. 1
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java
  2. 12
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  3. 67
      src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java
  4. 29
      src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoApiBindBo.java
  5. 39
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
  6. 2
      src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml

1
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java

@ -71,6 +71,7 @@ public class OmsOrderController {
List<OmsOrder> list = omsOrderService.list(orderWrapper);
Set<Long> addrIds = list.stream().map(OmsOrder::getSupplierAddrId).collect(Collectors.toSet());
addrIds.add(0L);
List<BmsSupplierAddress> supplierAddressList = bmsSupplierAddressService.listByIds(addrIds);
Set<String> userIds = list.stream().map(OmsOrder::getCheckUserId).collect(Collectors.toSet());

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

@ -335,6 +335,14 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return result.getData();
}
/**
* 用于前置校验审批参数
* @param affairCommit
* @return
*/
default boolean preCheckCommitAffair(TbsAffairCommitBo affairCommit){
return true;
}
/**
* 审批提交
@ -347,6 +355,10 @@ public interface SeeYonOperationService extends SeeYonBaseService{
if(syFormId==null){
Assert.throwEx("["+affairCommit.getTargetId()+"]__syFormId is null");
}
boolean preCheckResult = this.preCheckCommitAffair(affairCommit);
if(!preCheckResult){
return R.error("提交失败,参数异常");
}
R<String> result = getRequestService().commonCommit(affairCommit, getTemplateCode(),syFormId);
boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){

67
src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java

@ -23,6 +23,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tag.TagTypeConst;
import com.qs.serve.modules.tag.entity.TagData;
import com.qs.serve.modules.tag.entity.TagInfo;
import com.qs.serve.modules.tag.entity.bo.TagInfoApiBindBo;
import com.qs.serve.modules.tag.entity.bo.TagInfoBindBo;
import com.qs.serve.modules.tag.entity.bo.TagInfoBo;
import com.qs.serve.modules.tag.entity.so.TagDataSo;
@ -59,6 +60,7 @@ public class TagDataController {
private BmsChannelService bmsChannelService;
private SysUserService sysUserService;
/**
* 批量获取标签
* @param param
@ -84,6 +86,71 @@ public class TagDataController {
return R.ok(tagDataVoList);
}
/**
* 删除(对接JSL接口)
* @param param
* @return
*/
@PostMapping("/apiDelete")
@SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.DELETE)
public R<?> apiDelete(@RequestBody @Valid TagInfoApiBindBo param){
TagInfo tagInfo = tagInfoService.getOne(new LambdaQueryWrapper<TagInfo>()
.eq(TagInfo::getTagCode,param.getTagCode()));
if(tagInfo==null){
return R.error("无效的标签编码");
}
tagDataService.remove(new LambdaQueryWrapper<TagData>()
.eq(TagData::getTargetType,param.getTargetType())
.eq(TagData::getTagId,tagInfo.getId())
.in(TagData::getTargetCode,param.getTargetCodeList())
);
return R.ok();
}
/**
* 新增(对接JSL接口)
* @param param
* @return
*/
@PostMapping("/apiSave")
@SysLog(module = SystemModule.Tag, title = "标签信息", biz = BizType.INSERT)
public R<?> apiSave(@RequestBody @Valid TagInfoApiBindBo param){
if(CollUtil.isEmpty(param.getTargetCodeList())){
return R.error("编码列表不能为空");
}
TagInfo tagInfo = tagInfoService.getOne(new LambdaQueryWrapper<TagInfo>()
.eq(TagInfo::getTagCode,param.getTagCode()));
if(tagInfo==null){
return R.error("无效的标签编码");
}
List<TagData> tagDataList = new ArrayList<>();
if(param.getTargetType().equals(TagTypeConst.Customer)){
List<BmsSupplier> bmsSuppliers = bmsSupplierService.list(new LambdaQueryWrapper<BmsSupplier>()
.in(BmsSupplier::getCode,param.getTargetCodeList()));
for (BmsSupplier supplier : bmsSuppliers) {
TagData data = new TagData();
data.setTenantId(supplier.getId());
data.setTargetCode(supplier.getCode());
data.setTargetName(supplier.getName());
tagDataList.add(data);
}
}
//其它类型暂未用的上
// else if (param.getTargetType().equals(TagTypeConst.Channel)){
// BmsChannel channel = bmsChannelService.getById(objectDTO.getTargetId());
// }else if (param.getTargetType().equals(TagTypeConst.Point)){
// BmsChannelPoint point = bmsChannelPointService.getById(objectDTO.getTargetId());
// }else{
// SysUser sysUser = sysUserService.getById(objectDTO.getTargetId());
// }
for (TagData data : tagDataList) {
data.setTargetType(param.getTargetType());
data.setTagName(tagInfo.getTagName());
data.setTagId(tagInfo.getId());
}
return R.ok();
}
/**
* 新增
* @param param

29
src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoApiBindBo.java

@ -0,0 +1,29 @@
package com.qs.serve.modules.tag.entity.bo;
import com.qs.serve.common.model.dto.TargetObjectDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 标签信息 Bo
* @author YenHex
* @since 2023-04-23
*/
@Data
public class TagInfoApiBindBo implements Serializable {
private static final long serialVersionUID = 1L;
/** 标签编码 */
private String tagCode;
/** 目标数据。目标类型:customer、point、channel、salesman */
private String targetType;
/** 对应数据的编码 */
private List<String> targetCodeList;
}

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

@ -1,5 +1,6 @@
package com.qs.serve.modules.vtb.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*;
@ -27,6 +28,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -138,6 +140,43 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
}
@Override
public boolean preCheckCommitAffair(TbsAffairCommitBo affairCommit) {
/*
* 校验前端的参数金额如果金额异常
*/
for (TbsAffairCommitBo commitBo : affairCommit.getChildList()) {
Long verificationId = Long.parseLong(commitBo.getTargetId());
List<VtbVerificationSubject> verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verificationId);
Map<Long,List<TbsAffairCommitBo.AffairSubjectCenterLine>> subjectCenterLinesMap = commitBo.getAffairSubjectCenterLines()
.stream().collect(Collectors.groupingBy(TbsAffairCommitBo.AffairSubjectCenterLine::getSubjectId));
for (Long subjectId : subjectCenterLinesMap.keySet()) {
List<TbsAffairCommitBo.AffairSubjectCenterLine> list = subjectCenterLinesMap.get(subjectId);
BigDecimal totalSubjectAmt = BigDecimal.ZERO;
for (TbsAffairCommitBo.AffairSubjectCenterLine itemLine : list) {
if(CollUtil.isEmpty(itemLine.getCenterItemLines())){
continue;
}
for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : itemLine.getCenterItemLines()) {
totalSubjectAmt = totalSubjectAmt.add(centerItemLine.getAmount());
}
}
//与上一次提交金额作对比
for (VtbVerificationSubject vtbSubject : verificationSubjects) {
if(vtbSubject.getSubjectId().equals(subjectId)){
if(vtbSubject.getUsedAmount()!=null&&vtbSubject.getUsedAmount().compareTo(BigDecimal.ZERO)>0){
if(vtbSubject.getUsedAmount().compareTo(totalSubjectAmt)<0){
Assert.throwEx("["+vtbSubject.getSubjectName()+"]金额错误,不支持超过"+vtbSubject.getUsedAmount());
}
}
}
}
}
}
return true;
}
@Override
public void buildAffairCommitData(TbsAffairCommitBo commitParam, String flag) {
//常规的提交审批日志

2
src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml

@ -114,7 +114,7 @@
and (v.del_flag = 0 or v.id is null )
and (p.del_flag = 0 or p.id is null )
<if test="query.centerName != null and query.centerName != ''">
AND c.center_name is not null
AND ac.center_name is not null
</if>
<if test="query.contractFlag != null and query.contractFlag != ''">
AND a.contract_flag = #{query.contractFlag}

Loading…
Cancel
Save