diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java index 177948bd..b3e19a99 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java @@ -71,6 +71,7 @@ public class OmsOrderController { List list = omsOrderService.list(orderWrapper); Set addrIds = list.stream().map(OmsOrder::getSupplierAddrId).collect(Collectors.toSet()); + addrIds.add(0L); List supplierAddressList = bmsSupplierAddressService.listByIds(addrIds); Set userIds = list.stream().map(OmsOrder::getCheckUserId).collect(Collectors.toSet()); diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java index 42368931..4241d4f3 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java +++ b/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 result = getRequestService().commonCommit(affairCommit, getTemplateCode(),syFormId); boolean isBackCommit = affairCommit.getState()==2; if(result.getStatus()==200){ diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java index 1ae67dcf..0f7724ad 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java +++ b/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() + .eq(TagInfo::getTagCode,param.getTagCode())); + if(tagInfo==null){ + return R.error("无效的标签编码"); + } + tagDataService.remove(new LambdaQueryWrapper() + .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() + .eq(TagInfo::getTagCode,param.getTagCode())); + if(tagInfo==null){ + return R.error("无效的标签编码"); + } + List tagDataList = new ArrayList<>(); + if(param.getTargetType().equals(TagTypeConst.Customer)){ + List bmsSuppliers = bmsSupplierService.list(new LambdaQueryWrapper() + .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 diff --git a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoApiBindBo.java b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoApiBindBo.java new file mode 100644 index 00000000..7567ddfe --- /dev/null +++ b/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 targetCodeList; + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java index 34e46eae..4c3b82a1 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java +++ b/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 verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verificationId); + Map> subjectCenterLinesMap = commitBo.getAffairSubjectCenterLines() + .stream().collect(Collectors.groupingBy(TbsAffairCommitBo.AffairSubjectCenterLine::getSubjectId)); + for (Long subjectId : subjectCenterLinesMap.keySet()) { + List 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) { //常规的提交审批日志 diff --git a/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml b/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml index 71faed27..8a93f818 100644 --- a/src/main/resources/mapper/bir/BirTbsVtbPayJoinMapper.xml +++ b/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 ) - AND c.center_name is not null + AND ac.center_name is not null AND a.contract_flag = #{query.contractFlag}