diff --git a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java b/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java index 1dc50666..0568e806 100644 --- a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java +++ b/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java @@ -21,4 +21,7 @@ public class ProjectApisProperties { /** 调度系统-发货单 */ private String diaoduPlanOrder; + /** 嘉士利接口,spu转换sku */ + private String spuToSku; + } diff --git a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java index 0a5f7a42..5dba1ed8 100644 --- a/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java +++ b/src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java @@ -70,31 +70,45 @@ public class AsyncFactory { return new TimerTask() { @Override public void run() { - String lockKey = "customer_price_lock:"+userId+":"+supplierCode; - String priceDataKey = "customer_price_data:"+userId; - RedisService redisService = SpringUtils.getBean(RedisService.class); - redisService.set(lockKey,1,30,TimeUnit.SECONDS); - log.debug("获取客户金额,cusCode:{}",supplierCode); - //请求获取金额 - SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); - R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); - if(reqResult==null || !reqResult.getStatus().equals(200)){ - //有错误退出 - log.warn("获取客户金额失败,cusCode:{}",supplierCode); - redisService.set(lockKey,0); - return; - } - String amount = reqResult.getData()==null?"0":reqResult.getData(); - //数据格式:supplierCode_&_amount 如 A235654_&_612.00 - String value = supplierCode+"_&_"+amount; - //缓存15分钟 - log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); - redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); - redisService.set(lockKey,0); + getCumSurplusPrice(userId, supplierCode); } + }; } + /** + * 获取客户帐余 + * @param userId + * @param supplierCode + * @return + */ + public static String getCumSurplusPrice(String userId, String supplierCode) { + String lockKey = "customer_price_lock:"+userId+":"+supplierCode; + String priceDataKey = "customer_price_data:"+userId; + RedisService redisService = SpringUtils.getBean(RedisService.class); + redisService.set(lockKey,1,30,TimeUnit.SECONDS); + log.debug("获取客户金额,cusCode:{}",supplierCode); + //请求获取金额 + SeeYonRequestBaseService seeYonRequestService = SpringUtils.getBean(SeeYonRequestBaseService.class); + R reqResult = seeYonRequestService.getBase(ERP_CUS_AMOUNT+"?supplierCode="+supplierCode,"获取客户["+supplierCode+"]金额"); + if(reqResult==null || !reqResult.getStatus().equals(200)){ + //有错误退出 + log.warn("获取客户金额失败,cusCode:{}",supplierCode); + redisService.set(lockKey,0); + return "-1"; + } + String amount = reqResult.getData()==null?"0":reqResult.getData(); + //数据格式:supplierCode_&_amount 如 A235654_&_612.00 + String value = supplierCode+"_&_"+amount; + //缓存15分钟 + log.debug("获取客户金额成功,cusCode:{},缓存15分钟",supplierCode); + redisService.set(priceDataKey,value,15, TimeUnit.MINUTES); + redisService.set(lockKey,0); + + // + return amount; + } + /** * 异步保存政策状态 * @param policyId @@ -283,13 +297,13 @@ public class AsyncFactory { * @return */ public static TimerTask saveVtbSubmit(Long verificationId, BigDecimal totalAmount,Integer state,boolean realaseFlag) { + log.warn("费用释放---verificationId:{} totalAmount:{} state:{} realaseFlag:{}",verificationId,totalAmount,state,realaseFlag); return new TimerTask() { @Override public void run() { try { AuthContextUtils.setTenant("001"); Thread.sleep(20*1000); - log.debug("saveVtbSubmit"); VtbVerificationService vtbVerificationService = SpringUtils.getBean(VtbVerificationService.class); VtbVerification verification = vtbVerificationService.getById(verificationId); if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ diff --git a/src/main/java/com/qs/serve/common/model/dto/RowParam.java b/src/main/java/com/qs/serve/common/model/dto/RowParam.java index b0f40732..a7c491bd 100644 --- a/src/main/java/com/qs/serve/common/model/dto/RowParam.java +++ b/src/main/java/com/qs/serve/common/model/dto/RowParam.java @@ -14,7 +14,8 @@ public class RowParam { private Integer size; public RowParam(Integer startIndex, Integer size) { - + this.startIndex = startIndex; + this.size = size; } public RowParam(boolean pageable) { diff --git a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java index 1eef7d9e..33ab1a1b 100644 --- a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java +++ b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java @@ -70,7 +70,7 @@ public class CodeGenUtil { return value; } - public static String generate(SourceKey sourceKey){ + public synchronized static String generate(SourceKey sourceKey){ try { LocalDate localDateTime = LocalDate.now(); DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -102,7 +102,7 @@ public class CodeGenUtil { return digitsNum + appendZeros + appendStr+subflex; } - public static String getDataCode(SourceDataKey dataKey){ + public synchronized static String getDataCode(SourceDataKey dataKey){ String key = "code_data_index:"+dataKey.getCode(); String commonVal = getCommonValue(key); return dataKey.getPrefix() + commonVal; diff --git a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java index 8b4076da..8451df93 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/my/BmsChannelPointMyController.java @@ -21,6 +21,7 @@ import com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo; import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper; import com.qs.serve.modules.bms.service.*; import com.qs.serve.modules.his.service.HisUserChannelPointService; +import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysUserSalesService; @@ -57,6 +58,7 @@ public class BmsChannelPointMyController { private TbsActivityChannelPointService activityChannelPointService; private BmsChannelPointMapper channelPointMapper; private HisUserChannelPointService hisUserChannelPointService; + private HisUserSupplierService hisUserSupplierService; private SysUserService sysUserService; private BmsRegionUserService bmsRegionUserService; private SysPostUserService postUserService; @@ -85,37 +87,41 @@ public class BmsChannelPointMyController { if(CollectionUtil.isNotEmpty(param.getSelectIds())){ lqw.in(BmsChannelPoint::getId, param.getSelectIds()); } + RowParam rowParam = new RowParam(param.getStartNum(),param.getExportNum()); + List list = bmsChannelPointService.selectChannelPointMyList(param, Arrays.asList(AuthContextUtils.getSysUserId()),rowParam); - //过滤为当前负责人 - LambdaQueryWrapper masterLqw = new LambdaQueryWrapper<>(); - masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point); - masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId()); - List masterUsers = bmsMasterUserService.list(masterLqw); - Map> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType)); - List channelMasterList = masterUsersMap.get(MasterUserType.Channel); - List pointMasterList = masterUsersMap.get(MasterUserType.Point); - List channelIds = new ArrayList<>(); - List pointIds = new ArrayList<>(); - channelIds.add("#"); - pointIds.add("#"); - if(CollectionUtil.isNotEmpty(channelMasterList)){ - List channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); - channelIds.addAll(channelMasterIdsTmp); - } - if(CollectionUtil.isNotEmpty(pointMasterList)){ - List pointMasterIdsTmp = pointMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); - pointIds.addAll(pointMasterIdsTmp); - } - lqw.and(qw->{ - qw.in(BmsChannelPoint::getChannelId,channelIds).or().in(BmsChannelPoint::getId,pointIds); - }); - if(param.getExportNum() != null && param.getExportNum()!= 0 - && param.getStartNum() != null && param.getStartNum()!= 0){ - lqw.last(" limit "+param.getStartNum() + "," + param.getExportNum()); - } - - List list = bmsChannelPointService.list(lqw); + //取消,当下逻辑只加载直属负责人的数据 + //过滤为当前负责人 +// LambdaQueryWrapper masterLqw = new LambdaQueryWrapper<>(); +// masterLqw.in(BmsMasterUser::getType,MasterUserType.Channel,MasterUserType.Point); +// masterLqw.eq(BmsMasterUser::getUserId,AuthContextUtils.getSysUserId()); +// List masterUsers = bmsMasterUserService.list(masterLqw); +// Map> masterUsersMap = masterUsers.stream().collect(Collectors.groupingBy(BmsMasterUser::getType)); +// List channelMasterList = masterUsersMap.get(MasterUserType.Channel); +// List pointMasterList = masterUsersMap.get(MasterUserType.Point); +// List channelIds = new ArrayList<>(); +// List pointIds = new ArrayList<>(); +// channelIds.add("#"); +// pointIds.add("#"); +// if(CollectionUtil.isNotEmpty(channelMasterList)){ +// List channelMasterIdsTmp = channelMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); +// channelIds.addAll(channelMasterIdsTmp); +// } +// if(CollectionUtil.isNotEmpty(pointMasterList)){ +// List pointMasterIdsTmp = pointMasterList.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); +// pointIds.addAll(pointMasterIdsTmp); +// } +// lqw.and(qw->{ +// qw.in(BmsChannelPoint::getChannelId,channelIds).or().in(BmsChannelPoint::getId,pointIds); +// }); +// +// if(param.getExportNum() != null && param.getExportNum()!= 0 +// && param.getStartNum() != null && param.getStartNum()!= 0){ +// lqw.last(" limit "+param.getStartNum() + "," + param.getExportNum()); +// } +// +// List list = bmsChannelPointService.list(lqw); List bizRegionIds = new ArrayList<>(); bizRegionIds.addAll(list.stream().filter(a->a.getBizRegionId()!=null).map(a->a.getBizRegionId()).collect(Collectors.toList())); bizRegionIds = bizRegionIds.stream().distinct().collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java index caa30886..e9d585e8 100644 --- a/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java +++ b/src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java @@ -1,8 +1,10 @@ package com.qs.serve.modules.erp.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.framework.manager.AsyncFactory; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; @@ -54,6 +56,19 @@ public class ErpCustomerController { return R.error(); } + /** + * 获取客户帐余(同步) + * @param code + * @return + */ + @GetMapping("/getAmountSync/{code}") + public R getAmountSync(@PathVariable String code){ + ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult(); + String amount = AsyncFactory.getCumSurplusPrice(AuthContextUtils.getSysUserId(),code); + amountResult.setAmount(new BigDecimal(amount)); + return R.ok(amountResult); + } + /** * 初始化客户帐余 * @param code diff --git a/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java b/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java index 74bbb832..4549f26e 100644 --- a/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java +++ b/src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java @@ -38,5 +38,7 @@ public class ExlTableBo { private List columnList; /** 管理员配置 */ - private ExlTableUserBo adminParam; + private ExlTableUserBo administratorParam; + + private List userIds; } diff --git a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java index e7362b1b..8235da2e 100644 --- a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java @@ -58,7 +58,7 @@ public class ExlTableConfServiceImpl extends ServiceImpl> getPage(GoodsCategoryRule param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + if(StringUtils.hasText(param.getBrandName())){ + lqw.like(GoodsCategoryRule::getBrandNames,param.getBrandName()); + } PageUtil.startPage(); List list = goodsCategoryRuleService.list(lqw); return R.byPageHelperList(list); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 559805e5..9242039a 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -11,6 +11,7 @@ import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.ValidateTools; +import com.qs.serve.modules.goods.common.GoodsConst; import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBo; @@ -18,6 +19,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; import com.qs.serve.modules.goods.service.*; +import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.entity.TbsActivityGoods; import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; @@ -31,6 +33,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; import java.util.Locale; +import java.util.stream.Collectors; /** * 商品 spu @@ -74,6 +77,30 @@ public class GoodsSpuController { return this.getPage(param); } + /** + * 翻页搜索(组件接口),拓展SKU数据 + * @param param + * @return + */ + @GetMapping("/shelfPageToSku") + public R> shelfPageToSku(GoodsSpu param){ + PageVo result = this.getShelfPage(param).getData(); + List goodsSpuList = result.getList(); + List spuCodes = goodsSpuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); + List toSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodes); + for (GoodsSpu spu : goodsSpuList) { + for (OmsSpuToSkuKey skuKey : toSkuKeys) { + if(spu.getSpuCode().equals(skuKey.getSkuCode())){ + GoodsSku goodsSku = goodsSkuService.getByCode(skuKey.getInvCode()); + spu.setSkuPrice(goodsSku.getSalesPrice()); + break; + } + } + } + result.setList(goodsSpuList); + return R.ok(result); + } + /** * 翻页搜索(组件接口) * @apiNote 用于加载模板选中的商品 diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategoryRule.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategoryRule.java index ca0f323b..b3cec805 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategoryRule.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsCategoryRule.java @@ -34,6 +34,7 @@ public class GoodsCategoryRule implements Serializable { /** 标题 */ @NotBlank(message = "标题不能为空") @Length(max = 255,message = "标题长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String label; /** 品牌id */ @@ -84,6 +85,8 @@ public class GoodsCategoryRule implements Serializable { @TableField(fill = FieldFill.UPDATE) private String updateBy; + @TableField(exist = false) + private String brandName; public static GoodsCategoryRule toNewObject(GoodsCategoryRule source){ GoodsCategoryRule categoryRule = new GoodsCategoryRule(); diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index b0471043..718e910e 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java @@ -144,5 +144,7 @@ public class GoodsSpu implements Serializable { @TableField(exist = false) private List selectCateIds; + @TableField(exist = false) + private BigDecimal skuPrice; } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index 34a02acb..6226c3d1 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java @@ -8,6 +8,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo; import com.qs.serve.modules.goods.entity.vo.GoodSkuBatchResult; import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo; +import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -35,5 +36,7 @@ public interface GoodsSpuService extends IService { GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct); + List getSpuToSkuInfo(String book, List skuCodes); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 4b8f4f11..cc9c524e 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -2,7 +2,10 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.HttpUtil; +import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bms.entity.BmsFactory; import com.qs.serve.modules.bms.service.BmsFactoryService; @@ -13,6 +16,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo; import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo; import com.qs.serve.modules.goods.entity.vo.*; import com.qs.serve.modules.goods.service.*; +import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -20,7 +24,9 @@ import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * spu 服务实现类 @@ -39,6 +45,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl im private GoodsSkuSpecValueService goodsSkuSpecValueService; private GoodsCategoryService goodsCategoryService; private BmsFactoryService bmsFactoryService; + private ProjectApisProperties projectApisProperties; @Override public List selectSpuList(GoodsSpu goodsSpu) { @@ -246,6 +253,21 @@ public class GoodsSpuServiceImpl extends ServiceImpl im return skuBatchResult; } + /** + * 根据账套,获取spu对应的sku + * @param book 账套 + * @param skuCodes 嘉士利的SKU-CODE + * @return 嘉士利的invCode + */ + @Override + public List getSpuToSkuInfo(String book, List skuCodes){ + Map params = new HashMap<>(); + params.put("book",book); + params.put("skuCode",skuCodes); + String apiUrl = projectApisProperties.getSpuToSku(); + String response = HttpUtil.doPost(apiUrl, JsonUtil.objectToJson(params),null); + return JsonUtil.jsonToList(response,OmsSpuToSkuKey.class); + } /** * 关联上下级 * @param spu diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index c6817590..ba1f0ad1 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -25,6 +25,7 @@ import com.qs.serve.modules.oms.entity.bo.OmsOrderSkuBo; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderService; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; import lombok.AllArgsConstructor; @@ -34,6 +35,8 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; +import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_ORDER_STATUS; + /** * API订单模块 订单 * @author YenHex @@ -52,6 +55,7 @@ public class OmsOrderApi { private GoodsCategoryRuleService goodsCategoryRuleService; private GoodsSpuService goodsSpuService; private GoodsCategoryService goodsCategoryService; + private SeeYonRequestBaseService seeYonRequestBaseService; /** * 确认订单 @@ -103,11 +107,19 @@ public class OmsOrderApi { @PostMapping("/cancelOrder") public R cancelOrder(@RequestBody @Valid OmsCancelOrder omsOrderBo){ OmsOrder omsOrder = omsOrderService.getById(omsOrderBo.getOrderId()); - if(omsOrder.getStatus().equals(0)&&omsOrder.getCheckState().equals(0)){ - omsOrder.setStatus(2); - return R.ok(); + if(omsOrder.getStatus().equals(1)){ + //检索是否能取消 + String status = seeYonRequestBaseService.postBase(ERP_ORDER_STATUS+"/"+omsOrder.getOrderSn() + ,null + ,"获取订单状态" + ).getData(); + if(!status.equals("0")){ + omsOrder.setStatus(6); + omsOrderService.updateById(omsOrder); + return R.ok(); + } } - return R.ok(omsOrderBo); + return R.error("取消失败"); } /** @@ -198,13 +210,28 @@ public class OmsOrderApi { * @param id * @return */ - @PostMapping("/buildPriceOrder/{id}") + @PostMapping("/buildPriceOrder/{id}/{amount}") @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) - public R buildPriceOrder(@PathVariable("id") String id){ - omsOrderService.buildPriceOrder(id); + public R buildPriceOrder(@PathVariable("id") String id,@PathVariable("amount") String amount){ + omsOrderService.buildPriceOrder(id,amount); return R.ok(); } + /** + * 删除 + * @param id + * @return + */ + @DeleteMapping("/deleteById/{id}") + @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) + public R deleteById(@PathVariable("id") Long id){ + OmsOrder dbOmsOrder = omsOrderService.getById(id); + if(dbOmsOrder.getStatus().equals(0)&&dbOmsOrder.getCheckState().equals(0)){ + boolean result = omsOrderService.removeById(id); + return R.isTrue(result); + } + return R.error("当前状态无法删除"); + } } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java index ec217d25..148c1c12 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java @@ -48,11 +48,13 @@ public class OmsOrder implements Serializable { /** 供应商编码 */ @NotBlank(message = "供应商编码不能为空") @Length(max = 20,message = "供应商编码长度不能超过20字") + @TableField(condition = SqlCondition.LIKE) private String supplierCode; /** 供应商名称 */ @NotBlank(message = "供应商名称不能为空") @Length(max = 30,message = "供应商名称长度不能超过30字") + @TableField(condition = SqlCondition.LIKE) private String supplierName; /** 供应商收货地址id */ @@ -99,7 +101,12 @@ public class OmsOrder implements Serializable { /** 是否加急 */ private Integer urgentFlag; - /** 订单状态 0->草稿;1->下单;2->已确认 */ + /** 订单状态 + * 0->草稿; + * 1->下单(同步到调度系统); + * 2->已确认(已生成报价单); + * 6->已取消 + **/ private Integer status; /** 备注 */ diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java index 94992c77..28f45108 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java @@ -22,7 +22,6 @@ import javax.validation.constraints.NotBlank; * @since 2023-10-09 */ @Data -@TableName("oms_xlt_order") public class OmsXltOrder implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java index 3da438b7..6b037fc9 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java @@ -37,6 +37,8 @@ public class OmsXltOrderItem implements Serializable { @TableField("dingDanID") private String dingDanID; + private String spuCode; + /** 产品编号 */ @Length(max = 100,message = "产品编号长度不能超过100字") @TableField("chanPinBianHao") diff --git a/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java b/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java index 2586a7b0..aeb29b41 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java @@ -9,8 +9,14 @@ import lombok.Data; @Data public class OmsSpuToSkuKey { - private Long spuId; + /** + * 实质为spuCode + */ + private String skuCode; - private Long skuId; + /** + * 实质为skuCode + */ + private String invCode; } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/dto/XltOrderDTO.java b/src/main/java/com/qs/serve/modules/oms/entity/dto/XltOrderDTO.java new file mode 100644 index 00000000..4e9ad7e5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/dto/XltOrderDTO.java @@ -0,0 +1,23 @@ +package com.qs.serve.modules.oms.entity.dto; + +import com.qs.serve.modules.oms.entity.OmsOrderItem; +import com.qs.serve.modules.oms.entity.OmsXltOrder; +import com.qs.serve.modules.oms.entity.OmsXltOrderItem; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @author YenHex + * @since 2023/10/17 + */ +@Data +@AllArgsConstructor +public class XltOrderDTO { + + OmsXltOrder xltOrder; + + List xltOrderItemList; + +} diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java deleted file mode 100644 index c2c3ad9d..00000000 --- a/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.qs.serve.modules.oms.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.qs.serve.modules.oms.entity.OmsXltOrderItem; - -/** - * 销路通订单明细 Mapper - * @author YenHex - * @date 2023-10-09 - */ -public interface OmsXltOrderItemMapper extends BaseMapper { - -} - diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java deleted file mode 100644 index 01847059..00000000 --- a/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.qs.serve.modules.oms.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.qs.serve.modules.oms.entity.OmsXltOrder; - -/** - * 销路通订单 Mapper - * @author YenHex - * @date 2023-10-09 - */ -public interface OmsXltOrderMapper extends BaseMapper { - -} - diff --git a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java b/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java index 0fb58e44..83f23ebb 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java +++ b/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java @@ -65,7 +65,7 @@ public interface OmsOrderService extends IService { * 对接调度系统,生成ERP的报价单 * @param id */ - void buildPriceOrder(String id); + void buildPriceOrder(String id,String amount); } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 4612a5b6..e2fb5072 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.util.*; import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsSupplier; @@ -9,6 +10,7 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; +import com.qs.serve.modules.goods.common.GoodsConst; import com.qs.serve.modules.goods.entity.GoodsCategoryRule; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; @@ -18,20 +20,16 @@ import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.oms.entity.*; import com.qs.serve.modules.oms.entity.bo.*; -import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; -import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; -import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; -import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; +import com.qs.serve.modules.oms.entity.dto.*; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; -import com.qs.serve.modules.oms.mapper.OmsXltOrderItemMapper; -import com.qs.serve.modules.oms.mapper.OmsXltOrderMapper; import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsShoppingCartService; import com.qs.serve.modules.sale.entity.SalePlan; import com.qs.serve.modules.sale.entity.SalePlanGoods; import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper; import com.qs.serve.modules.sale.mapper.SalePlanMapper; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysDeptService; @@ -49,6 +47,8 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_ORDER_CREATE; + /** * 订单 服务实现类 * @author YenHex @@ -73,9 +73,8 @@ public class OmsOrderServiceImpl extends ServiceImpl im private SalePlanGoodsMapper salePlanGoodsMapper; private OmsOrderItemService omsOrderItemService; - private OmsXltOrderMapper omsXltOrderMapper; - private OmsXltOrderItemMapper omsXltOrderItemMapper; private OmsShoppingCartService omsShoppingCartService; + private SeeYonRequestBaseService seeYonRequestBaseService; @Override @@ -135,6 +134,17 @@ public class OmsOrderServiceImpl extends ServiceImpl im .map(OmsOrderSkuBo.SpuParam::getSpuId).collect(Collectors.toList()); List spuList = goodsSpuService.listByIds(spuIds); + //通过当前函数获取当前账套对于的skuID,默认全部转化为开平(001)的sku + Map goodsSpuMap = new HashMap<>(spuList.size()); + for (GoodsSpu goodsSpu : spuList) { + goodsSpuMap.put(goodsSpu.getId(),goodsSpu); + } + List spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); + List spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodeList); + Map spuGetSkuMap = new HashMap<>(spuToSkuKeys.size()); + for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { + spuGetSkuMap.put(toSkuKey.getSkuCode(),toSkuKey.getInvCode()); + } //构建临时购物车列表 List shoppingCartList = new ArrayList<>(); @@ -145,14 +155,16 @@ public class OmsOrderServiceImpl extends ServiceImpl im qty = spuParam.getQty(); } } + String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode()); + GoodsSku goodsSku = goodsSkuService.getByCode(skuCode); OmsShoppingCart shoppingCart = new OmsShoppingCart(); shoppingCart.setSpuId(goodsSpu.getId()); shoppingCart.setSpuCode(goodsSpu.getSpuCode()); shoppingCart.setQuantity(qty); - shoppingCart.setSkuId(0L); - shoppingCart.setSkuCode(""); - shoppingCart.setSpecInfo(goodsSpu.getName()); - shoppingCart.setAddPrice(BigDecimal.ZERO); + shoppingCart.setSkuId(goodsSku.getId()); + shoppingCart.setSkuCode(goodsSku.getSkuCode()); + shoppingCart.setSpecInfo(goodsSku.getSpecInfos()); + shoppingCart.setAddPrice(goodsSku.getSalesPrice()); shoppingCartList.add(shoppingCart); } @@ -209,6 +221,20 @@ public class OmsOrderServiceImpl extends ServiceImpl im order.setUrgentFlag(param.getUrgentFlag()); order.setRemark(param.getRemark()); + //通过当前函数获取当前账套对于的skuID,默认全部转化为开平(001)的sku + List spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList()); + List spuList = goodsSpuService.listByIds(spuIds); + Map goodsSpuMap = new HashMap<>(spuList.size()); + for (GoodsSpu goodsSpu : spuList) { + goodsSpuMap.put(goodsSpu.getId(),goodsSpu); + } + List spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); + List spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodeList); + Map spuGetSkuMap = new HashMap<>(spuToSkuKeys.size()); + for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { + spuGetSkuMap.put(toSkuKey.getSkuCode(),toSkuKey.getInvCode()); + } + //构建新的item List newOrderItemList = new ArrayList<>(); List orderModifyItems = param.getOrderItems(); @@ -221,7 +247,10 @@ public class OmsOrderServiceImpl extends ServiceImpl im goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); }else { //PC下单 - goodsSpu = goodsSpuService.getById(modifyItem.getSpuId()); + //goodsSpu = goodsSpuService.getById(modifyItem.getSpuId()); + goodsSpu = goodsSpuMap.get(modifyItem.getSpuId()); + String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode()); + goodsSku = goodsSkuService.getByCode(skuCode); } OmsOrderItem orderItem = new OmsOrderItem(); orderItem.setOrderId(order.getId()); @@ -390,7 +419,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im } @Override - public void buildPriceOrder(String id) { + public void buildPriceOrder(String id,String amount) { OmsOrder omsOrder = super.getById(id); String userId = AuthContextUtils.getSysUserId(); // if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ @@ -401,36 +430,11 @@ public class OmsOrderServiceImpl extends ServiceImpl im List orderItemList = omsOrderItemService.list(iteLqw); - List spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); + //List spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); - //通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku - List spuToSkuKeys = this.getSpuToSkuInfo("001",spuIds); - for (OmsOrderItem orderItem : orderItemList) { - if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ - continue; - } - //设置订单的sku信息 - GoodsSku goodsSku = null; - for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { - if(orderItem.getSpuId().equals(toSkuKey.getSpuId())){ - goodsSku = goodsSkuService.getById(toSkuKey.getSkuId()); - break; - } - } - if(goodsSku==null){ - Assert.throwEx("未能匹配当前账号的产品信息:"+orderItem.getSpuCode()); - }else { - orderItem.setSkuId(goodsSku.getId()); - orderItem.setSkuCode(goodsSku.getSkuCode()); - orderItem.setSpecValues(goodsSku.getSpecInfos()); - orderItem.setSalesPrice(goodsSku.getSalesPrice()); - orderItem.setSalesPrice(goodsSku.getSalesPrice()); - orderItem.setMarketPrice(goodsSku.getSalesPrice()); - } - } //更新设置sku后的信息 - omsOrderItemService.updateBatchById(orderItemList); + //omsOrderItemService.updateBatchById(orderItemList); //直接调用U8接口生成 //SysUser sysUser = sysUserService.getById(userId); @@ -478,11 +482,14 @@ public class OmsOrderServiceImpl extends ServiceImpl im } xltOrder.setDealerArea(bmsRegion.getPathNames()); - omsXltOrderMapper.insert(xltOrder); //保存到临时表-明细表 - for (OmsOrderItem orderItem : orderItemList) { + List xltOrderItemList = new ArrayList<>(); + for (int i = 0; i < orderItemList.size(); i++) { + OmsOrderItem orderItem = orderItemList.get(i); OmsXltOrderItem xltOrderItem = new OmsXltOrderItem(); + xltOrderItem.setId(xltOrder.getId()+"_"+(i+1)); xltOrderItem.setDingDanID(xltOrder.getId()); + xltOrderItem.setSpuCode(orderItem.getSpuCode()); xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit()); xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity()); @@ -494,9 +501,11 @@ public class OmsOrderServiceImpl extends ServiceImpl im xltOrderItem.setRowCreateDate(nowTime); xltOrderItem.setBeiZhu(null); xltOrderItem.setZhuangTai(0); - omsXltOrderItemMapper.insert(xltOrderItem); + xltOrderItemList.add(xltOrderItem); } - + XltOrderDTO xltOrderDTO = new XltOrderDTO(xltOrder,xltOrderItemList); + //请求到中间服务保存 + seeYonRequestBaseService.postBase(ERP_ORDER_CREATE,xltOrderDTO,"创建订单:"+xltOrder.getDingDanHao()); //更新订单 omsOrder.setStatus(1); this.updateById(omsOrder); @@ -538,39 +547,5 @@ public class OmsOrderServiceImpl extends ServiceImpl im offerOrder.setMakerName(sysUser.getName()); } - - /** - * TODO: 根据账套,获取spuId对应的skuId - * @param book 账套 - * @param spuIds 嘉士利的SKU-CODE - * @return 嘉士利的invCode - */ - public List getSpuToSkuInfo(String book, List spuIds){ - //TODO 测试数据 - List rs = new ArrayList<>(); - Long[] skuIds = {2315912284L, - 2315912286L, - 2315912287L, - 2315912288L, - 2315912289L, - 2315912290L, - 2315912291L, - 2315912292L, - 2315912293L, - 2315912294L, - 2315912295L, - 2315912296L, - 2315912297L, - 2315912298L, - 2315912300L,}; - for (int i = 0; i < spuIds.size(); i++) { - OmsSpuToSkuKey skuKey = new OmsSpuToSkuKey(); - skuKey.setSpuId(spuIds.get(i)); - skuKey.setSkuId(skuIds[i]); - rs.add(skuKey); - } - return rs; - } - } diff --git a/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java index 234b2eba..0b3e3d7b 100644 --- a/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java +++ b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java @@ -43,11 +43,13 @@ public class SalePlan implements Serializable { /** 编码 */ @NotBlank(message = "编码不能为空") @Length(max = 50,message = "编码长度不能超过50字") + @TableField(condition = SqlCondition.LIKE) private String planCode; /** 标题 */ @NotBlank(message = "标题不能为空") @Length(max = 255,message = "标题长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String planTitle; /** 状态 */ @@ -72,10 +74,12 @@ public class SalePlan implements Serializable { /** 客户编码 */ @Length(max = 255,message = "客户编码长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String supplierCode; /** 客户名称 */ @Length(max = 255,message = "客户名称长度不能超过255字") + @TableField(condition = SqlCondition.LIKE) private String supplierName; /** 创建时间 */ 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 ac2c4fbd..68048776 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 @@ -282,7 +282,14 @@ public interface SeeYonOperationService extends SeeYonBaseService{ boolean isBackCommit = affairCommit.getState()==2; if(result.getStatus()==200){ // 判断是否含有下个节点 - String flag = result.getData(); + //String flag = result.getData(); + //取消异步防止导致各种异常 + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + String flag = checkAffairSummery(affairCommit.getTargetId()); //保存记录 try { // 判断是否含有下个节点 @@ -307,10 +314,10 @@ public interface SeeYonOperationService extends SeeYonBaseService{ } //审批中(next)、完成(finish)、拒绝(refused) - if("finish".equals(flag)){ + if("finished".equals(flag)){ this.doFinished(affairCommit); return R.ok(); - }else if ("stop".equals(flag)){ + }else if ("refuse".equals(flag)||"backed".equals(flag)){ if(isBackCommit){ this.doBacked(affairCommit); return R.ok(); diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 9384a6fc..e25c67a8 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -83,6 +83,8 @@ public interface TbsSeeYonConst { /** 客户账单余额 */ String ERP_CUS_AMOUNT = "/erp/customer/amount"; String ERP_CUS_INV_PRICE = "/erp/inventory/invPrices"; + String ERP_ORDER_CREATE = "/erp/order/create"; + String ERP_ORDER_STATUS = "/erp/order/getStatus"; String XLT_SAVE_CHECK = "/xlt/saveCheck"; String XLT_SAVE_PAYMENT = "/xlt/savePayment"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 7624ebd8..cfee2f1e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -209,6 +209,19 @@ public class TbsBudgetController { return R.ok(); } + /** + * 更新预算指定模板 + * @param param + * @return + */ + @PostMapping("/updateTemplates") + @SysLog(module = SystemModule.Budget, title = "更新预算指定模板", biz = BizType.UPDATE) + @PreAuthorize("hasRole('tbs:budget:update')") + public R updateById(@RequestBody @Valid TbsBudgetTempBo param){ + tbsBudgetService.updateTemplates(param); + return R.ok(); + } + /** * 修改周期金额 * @param param diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java index 56547150..8e69af22 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java @@ -156,10 +156,16 @@ public class TbsBudget implements Serializable { @JsonProperty private String delFlag; + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + /** 附件id */ @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) private String[] attachIds; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] templateIds; + /** 预算条件 */ @TableField(exist = false) private List budgetConditionList; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index 84ca43ef..c93b03ed 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -75,7 +75,7 @@ public class TbsCostApply implements Serializable { private Integer chargeState; /** - * 核销状态: + * 不参与业务流程,核销状态: * 有这四个状态: * 0-未核销:代表这案子里面的所有活动都还未开始核销; * 1-已通过:代表这个案子的所有活动都已经核销完成; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java index 3ec01de6..e91b6d4f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java @@ -76,6 +76,11 @@ public class TbsBudgetBo implements Serializable { private String[] attachIds; + private String[] templateIds; + + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + @Data public static class ScheduleItem{ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java new file mode 100644 index 00000000..e3093047 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetTempBo.java @@ -0,0 +1,24 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/11/16 + */ +@Data +public class TbsBudgetTempBo { + + /** id */ + @NotNull + private Long id; + + + private String[] templateIds; + + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityTemplateSo.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityTemplateSo.java index b33d0d09..2b6dabdb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityTemplateSo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsActivityTemplateSo.java @@ -34,6 +34,8 @@ public class TbsActivityTemplateSo implements Serializable { /** 模板状态 */ private Integer templateState; + private Integer contractFlag; + /** 备注 */ private String remark; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java index 8cae2993..e8555a26 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java @@ -174,5 +174,10 @@ public class TbsBudgetVo implements Serializable { /** 变更列表 */ private List changeList; + /** 是否指定模板类型的预算 */ + private Integer templateFlag; + + /** 模板列表 */ + private List templateList; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java index e7c8e6b2..43b5d467 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.tbs.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.AmountDTO; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.StringUtils; @@ -7,10 +8,12 @@ import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.util.CostSort2WrapperUtil; import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; +import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.dto.TbsCenterGoodsGroupDTO; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableResultVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; +import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMatchMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -34,13 +37,23 @@ public class TbsBudgetMatchApplication { private final TbsActivityCenterGoodsService tbsActivityCenterGoodsService; private final TbsActivityService activityService; private final TbsBudgetMatchMapper budgetMatchMapper; + private final TbsBudgetMapper budgetMapper; public TbsBudgetTableResultVo getMatchResult(Long costApplyId,boolean buildTable){ + List activityList = activityService.listByCostApplyId(costApplyId); + //list转map,减少循环代码 Map activityMap = new HashMap<>(activityList.size()); + //模板过滤-活动指定预算 + Map> activityBudgetIdsMap = new HashMap<>(activityList.size()); for (TbsActivity activity : activityList) { activityMap.put(activity.getId(),activity); + if(StringUtils.hasText(activity.getTemplateBudgetIds())){ + List budgetIdsList = Arrays.stream(activity.getTemplateBudgetIds().split(",")).map(Long::parseLong) + .collect(Collectors.toList()); + activityBudgetIdsMap.put(activity.getId(),budgetIdsList); + } } List activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); // 记录使用金额 @@ -48,6 +61,8 @@ public class TbsBudgetMatchApplication { // 提取命中的预算 Map matchItemBudgetsMap = new HashMap<>(); Set scheduleItemBudgetIds = new HashSet<>(); + //所有的预算 + Set allBudgetIds = new HashSet<>(); for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { // 通过TbsActivityCenterGoods获取匹配条件的预算 List scheduleItemBudgetList = this.centerGoodsMatchTbsScheduleItemBudget(centerGoods); @@ -56,17 +71,67 @@ public class TbsBudgetMatchApplication { if(scheduleItemBudgetList.size()>0){ List sids = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getId).collect(Collectors.toList()); scheduleItemBudgetIds.addAll(sids); + List budgetIds = scheduleItemBudgetList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList()); + allBudgetIds.addAll(budgetIds); } centerGoods.setMatch2ScheduleItemBudgetList(scheduleItemBudgetList); } //加载金额统计 this.batchInitScheduleAmount(activityCenterGoodsList, scheduleItemBudgetIds,costApplyId); + + //加载所有预算 + allBudgetIds.add(0L); + List allBudgetList = budgetMapper.selectBatchIds(allBudgetIds); + Map allBudgetMap = new HashMap<>(allBudgetList.size()); + for (TbsBudget budget : allBudgetList) { + allBudgetMap.put(budget.getId(),budget); + } + // 金额匹配 for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { // 通过TbsActivityCenterGoods获取匹配条件的预算 List scheduleItemBudgetList = centerGoods.getMatch2ScheduleItemBudgetList(); // 判断金额是否够扣 for (TbsScheduleItemBudget itemBudget : scheduleItemBudgetList) { + + + //跳过活动模板指定的预算 + List matchActBudgetIds = activityBudgetIdsMap.get(centerGoods.getActivityId()); + boolean notMatch = false; + if(CollectionUtil.isNotEmpty(matchActBudgetIds)){ + notMatch = true; + for (Long budgetId : matchActBudgetIds) { + if(itemBudget.getBudgetId().equals(budgetId)){ + notMatch = false; + break; + } + } + } + if(notMatch){ + continue; + } + + //跳过预算指定的模板 + TbsActivity activity = activityMap.get(centerGoods.getActivityId()); + String templateId = activity.getTemplateId()==null?null:activity.getTemplateId().toString(); + TbsBudget budget = allBudgetMap.get(itemBudget.getBudgetId()); + if (budget.getTemplateFlag().equals(1)) { + if(templateId==null||budget.getTemplateIds()==null||budget.getTemplateIds().length<1){ + continue; + } + boolean matchTemId = false; + for (String budgetTemplateId : budget.getTemplateIds()) { + if(templateId.equals(budgetTemplateId)){ + matchTemId = true; + break; + } + } + if(!matchTemId){ + continue; + } + } + + //开始匹配主要逻辑 Long scheduleItemBudgetId = itemBudget.getId(); BigDecimal usableAmt = usableAmountMap.get(scheduleItemBudgetId); if(usableAmt==null){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index b14abff2..2d59ec77 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java @@ -33,6 +33,9 @@ public interface TbsBudgetService extends IService { void startBudget(Long id); + /** 更新模板 */ + void updateTemplates(TbsBudgetTempBo tempBo); + // void modifyByExcel(TbsBudgetExcelBo budgetBo); //void modifyByExcelBatch(TbsBudgetExcelBatchDto budgetBo); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 56592a41..8f032d9f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -33,11 +33,9 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetExcelBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetMoveAmountBo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo; +import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; +import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.service.*; @@ -86,6 +84,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl private final TzcPolicyItemService tzcPolicyItemService; private final TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService; private final VtbFundFlowService vtbFundFlowService; + private final TbsActivityTemplateMapper tbsActivityTemplateMapper; private SysAttachService attachService; private SeeYonRequestService seeYonService; @@ -189,6 +188,16 @@ public class TbsBudgetServiceImpl extends ServiceImpl } budget.setBudgetCode(budgetBo.getBudgetCode()); budget.setSubjectId(budgetBo.getSubjectId()); + //设置指定模板 + budget.setTemplateIds(new String[]{}); + if(budget.getTemplateFlag()!=null&&budget.getTemplateFlag().equals(1)){ + if(budgetBo.getTemplateIds()!=null&&budgetBo.getTemplateIds().length>0){ + budget.setTemplateIds(budgetBo.getTemplateIds()); + } + budget.setTemplateFlag(1); + }else { + budget.setTemplateFlag(0); + } BmsSubject subject = null; if(budget.getSubjectId()!=0L){ subject = subjectService.getById(budgetBo.getSubjectId()); @@ -342,6 +351,21 @@ public class TbsBudgetServiceImpl extends ServiceImpl budgetLogService.saveBatch(budgetLogList); } + @Override + public void updateTemplates(TbsBudgetTempBo tempBo) { + TbsBudget budget = new TbsBudget(); + budget.setId(tempBo.getId()); + budget.setTemplateIds(new String[]{}); + if(tempBo.getTemplateFlag()!=null&&tempBo.getTemplateFlag().equals(1)){ + if(tempBo.getTemplateIds()!=null&&tempBo.getTemplateIds().length>0){ + budget.setTemplateIds(tempBo.getTemplateIds()); + } + budget.setTemplateFlag(1); + }else { + budget.setTemplateFlag(0); + } + this.updateById(budget); + } @Override public TbsBudget getByCode(String code) { @@ -559,6 +583,13 @@ public class TbsBudgetServiceImpl extends ServiceImpl budgetVo.setBudgetCheckState(TbsBudgetCheckState.State_1_apply); } } + + budgetVo.setTemplateFlag(budget.getTemplateFlag()); + if(budget.getTemplateFlag().equals(1)&&budget.getTemplateIds()!=null&&budget.getTemplateIds().length>0){ + List templates = tbsActivityTemplateMapper.selectBatchIds(Arrays.asList(budget.getTemplateIds())); + budgetVo.setTemplateList(templates); + } + return budgetVo; } diff --git a/src/main/java/com/qs/serve/modules/third/PortalGoodsController.java b/src/main/java/com/qs/serve/modules/third/PortalGoodsController.java new file mode 100644 index 00000000..e802d0ba --- /dev/null +++ b/src/main/java/com/qs/serve/modules/third/PortalGoodsController.java @@ -0,0 +1,53 @@ +package com.qs.serve.modules.third; + +import com.qs.serve.common.model.dto.R; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.service.GoodsSkuService; +import com.qs.serve.modules.goods.service.GoodsSpuService; +import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; +import com.qs.serve.modules.third.entity.param.SkuToGetSpuParam; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author YenHex + * @since 2023/10/16 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("thirty/goods") +public class PortalGoodsController { + + private GoodsSkuService goodsSkuService; + private GoodsSpuService goodsSpuService; + + /** + * 通过invCode获取spuCode + * @param param + * @return + */ + @PostMapping("getSpuBySku") + public List getSpuBySku(@RequestBody SkuToGetSpuParam param){ + List skuList = goodsSkuService.getByCodes(param.getInvCodes()); + List rs = new ArrayList<>(); + for (GoodsSku sku : skuList) { + GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); + OmsSpuToSkuKey key = new OmsSpuToSkuKey(); + key.setSkuCode(goodsSpu.getSpuCode()); + key.setInvCode(sku.getSkuCode()); + rs.add(key); + } + return rs; + } + +} diff --git a/src/main/java/com/qs/serve/modules/third/entity/param/SkuToGetSpuParam.java b/src/main/java/com/qs/serve/modules/third/entity/param/SkuToGetSpuParam.java new file mode 100644 index 00000000..a77bf3c9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/third/entity/param/SkuToGetSpuParam.java @@ -0,0 +1,13 @@ +package com.qs.serve.modules.third.entity.param; + +import lombok.Data; +import java.util.List; + +/** + * @author YenHex + * @since 2023/10/16 + */ +@Data +public class SkuToGetSpuParam { + List invCodes; +} diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index a563458d..f35486d9 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -29,6 +29,7 @@ import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivitySubjectService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; import com.qs.serve.modules.vtb.service.*; @@ -179,6 +180,10 @@ public class VtbVerificationController { @PreAuthorize("hasRole('vtb:verification:query')") public R getById(@PathVariable("id") String id){ VtbVerification vtbVerification = vtbVerificationService.getById(id); + if(vtbVerification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ + vtbVerificationOperationService.runCompensate(id); + vtbVerification = vtbVerificationService.getById(id); + } if(CollectionUtil.isNotEmpty(vtbVerification.getAttachIds())){ List attachIds = Arrays.asList(vtbVerification.getAttachIds()); List attachList = attachService.listByIds(attachIds); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index 0eb2d701..601eca28 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java @@ -33,6 +33,7 @@ import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; import com.qs.serve.modules.vtb.entity.VtbVerificationYard; import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem; +import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl; import com.qs.serve.task.TbsTask; import lombok.AllArgsConstructor; import org.jetbrains.annotations.NotNull; @@ -89,29 +90,22 @@ public class VtbVerificationApplication { } } } -// List activitySubjects = activitySubjectService.listByActivityId(verification.getActivityId()); -// for (TbsActivitySubject activitySubject : activitySubjects) { -// for (TbsAffairCommitBo.AffairSubjectLine subjectLine : affairCommit.getAffairSubjectLines()) { -// if(subjectLine.getSubjectId()==null||subjectLine.getAmount()==null){ -// return R.error("AffairSubjectLines参数错误"); -// } -// if(subjectLine.getSubjectId().equals(activitySubject.getSubjectId())){ -// BigDecimal used = activitySubject.getUsedAmount()==null?BigDecimal.ZERO:activitySubject.getUsedAmount(); -// BigDecimal diff = activitySubject.getAmount().subtract(used); -// if(subjectLine.getAmount().compareTo(diff)>=0){ -// return R.error("科目["+activitySubject.getSubjectName()+"]余额为:"+ diff); -// } -// } -// } -// } } boolean isBackCommit = affairCommit.getState()==2; R result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); if(result.getStatus()==200){ // 判断是否含有下个节点 - String flag = result.getData(); - R r = commitAffairSuccess(affairCommit, verification, isBackCommit, flag); + //String flag = result.getData(); + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); + String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); + + R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); try { //解决同步冻结时有过期的活动 TbsTask tbsTask = SpringUtils.getBean(TbsTask.class); @@ -169,9 +163,9 @@ public class VtbVerificationApplication { yard.setComment(affairCommit.getComment()); yard.setCaseRemark(affairCommit.getCaseRemark()); //审批中(next)、完成(finish)、拒绝(refused) - boolean isFinish = "finish".equals(flag); + boolean isFinish = "finished".equals(flag); boolean isNext = "next".equals(flag); - boolean isStop = "stop".equals(flag); + boolean isStop = "backed".equals(flag)||"refuse".equals(flag); //释放费用 boolean isRelease = affairCommit.getReleaseFlag()!=null&&affairCommit.getReleaseFlag().equals(1); if (isStop){ @@ -284,10 +278,6 @@ public class VtbVerificationApplication { vtbVerificationService.updateById(vtbVer); } } - if(isNext){ - //判断是否直接跳过审批的申请 - AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification.getId(), totalAmount,affairCommit.getState(),isRelease)); - } return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index dc7a6e48..31669cfd 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -57,6 +57,7 @@ import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; @@ -446,6 +447,14 @@ public class VtbVerificationServiceImpl extends ServiceImpl