diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java index 28793f93..f97c013d 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java @@ -93,6 +93,24 @@ public class BazVisitInstance implements Serializable { /** 遗失定位标识 */ private Integer missLocalFlag; + /** 省 */ + private String extProvince; + + /** 城市 */ + private String extCity; + + /** 区 */ + private String extRegionArea; + + /** 乡镇 */ + private String extTownship; + + /** 街道 */ + private String extStreet; + + /** 街道编号 */ + private String extStreetNumber; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime finishedTime; diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java index 3c94e8c3..32293a52 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java @@ -112,6 +112,24 @@ public class BazVisitInstanceFlow implements Serializable { @Length(max = 255,message = "经度长度不能超过255字") private String valLocalY; + /** 省 */ + private String extProvince; + + /** 城市 */ + private String extCity; + + /** 区 */ + private String extRegionArea; + + /** 乡镇 */ + private String extTownship; + + /** 街道 */ + private String extStreet; + + /** 街道编号 */ + private String extStreetNumber; + /** 拍照图片地址 */ @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) private String[] valPhotoUrls; @@ -199,13 +217,21 @@ public class BazVisitInstanceFlow implements Serializable { public void initInputValues(BazVisitInstanceFlowBo source){ this.setTargetAddressId(source.getTargetAddressId()); - //this.setFormJson(source.getFormJson()); this.setValInputValue(source.getValInputValue()); this.setValLocalX(source.getValLocalX()); this.setValLocalY(source.getValLocalY()); this.setValPhotoUrls(source.getValPhotoUrls()); this.setValFormValue(source.getValFormValue()); this.setMapAddress(source.getMapAddress()); + + this.setExtProvince(source.getExtProvince()); + this.setExtCity(source.getExtCity()); + this.setExtRegionArea(source.getExtRegionArea()); + this.setExtTownship(source.getExtTownship()); + this.setExtStreet(source.getExtStreet()); + this.setExtStreetNumber(source.getExtStreetNumber()); + + } } diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java index 3ab22ee8..34ad4814 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java @@ -39,6 +39,24 @@ public class BazVisitInstanceFlowBo implements Serializable { /** 地图地址 */ private String mapAddress; + /** 省 */ + private String extProvince; + + /** 城市 */ + private String extCity; + + /** 区 */ + private String extRegionArea; + + /** 乡镇 */ + private String extTownship; + + /** 街道 */ + private String extStreet; + + /** 街道编号 */ + private String extStreetNumber; + /** 纬度 */ @Length(max = 255,message = "纬度长度不能超过255字") private String valLocalX; diff --git a/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java b/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java index fac57358..f9a30e31 100644 --- a/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java +++ b/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java @@ -48,6 +48,24 @@ public class BizVisit implements Serializable { @Length(max = 512,message = "地址长度不能超过512字") private String address; + /** 省 */ + private String extProvince; + + /** 城市 */ + private String extCity; + + /** 区 */ + private String extRegionArea; + + /** 乡镇 */ + private String extTownship; + + /** 街道 */ + private String extStreet; + + /** 街道编号 */ + private String extStreetNumber; + /** 类型:单选 【潜在客户签到;培训会议;其他定点签到;在家办公 】 */ private String signType; diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsRuleService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsRuleService.java index 40cf1d38..20275b2c 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsRuleService.java +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsRuleService.java @@ -48,5 +48,13 @@ public interface GoodsRuleService extends IService { */ List checkSkuCode(String supplierId,List skuIds); + /** + * 检测sku是否符合的人员规则,返回不和规范的ID + * @param userId + * @param skuIds + * @return + */ + List checkSkuCodeByUserId(String userId,List skuIds); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java index aa3ff026..5db60c53 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsRuleServiceImpl.java @@ -456,17 +456,32 @@ public class GoodsRuleServiceImpl extends ServiceImpl return false; } + @Override + public List checkSkuCodeByUserId(String userId, List skuIds) { + List ruleItems = this.listByUserId(userId); + if(CollUtil.isEmpty(skuIds)){ + return new ArrayList<>(); + } + return baseCheckRuleItem(skuIds, ruleItems,true); + } + @Override public List checkSkuCode( String supplierId,List skuIds) { - List errorSkuIds = new ArrayList<>(); List ruleItems = this.listBySupplierId(supplierId); if(CollUtil.isEmpty(skuIds)){ - return errorSkuIds; + return new ArrayList<>(); } + return baseCheckRuleItem(skuIds, ruleItems,false); + } + + @NotNull + private List baseCheckRuleItem(List skuIds, List ruleItems,boolean isUserRule) { + List errorSkuIds = new ArrayList<>(); GoodsRuleItemDTO itemDTO = this.buildGoodsRuleItemDTO(ruleItems); if(itemDTO==null){ return errorSkuIds; - }List goodsSkuList = skuMapper.selectBatchIds(skuIds); + } + List goodsSkuList = skuMapper.selectBatchIds(skuIds); for (GoodsSku sku : goodsSkuList) { boolean notExistInOnly = false; if(itemDTO.getOnlySpuIds()!=null){ @@ -476,19 +491,19 @@ public class GoodsRuleServiceImpl extends ServiceImpl break; } } + if(!notExistInOnly){ + errorSkuIds.add(new SimpleKeyValue(isUserRule?"客户人员维度(只可选未包含该产品)":"客户维度(只可选未包含该产品)",sku.getId())); + continue; + } } - if(!notExistInOnly){ - errorSkuIds.add(new SimpleKeyValue("客户维度(只可选未包含该产品)",sku.getId())); - continue; - } if(itemDTO.getNotInSpuIds()!=null){ boolean isErr = false; for (String notInSpuId : itemDTO.getNotInSpuIds()) { if(sku.getSpuId().toString().equals(notInSpuId)){ isErr = true; - errorSkuIds.add(new SimpleKeyValue("客户维度(不可选)",sku.getId())); + errorSkuIds.add(new SimpleKeyValue(isUserRule?"客户人员维度(不可选)":"客户维度(不可选)",sku.getId())); break; } } @@ -512,7 +527,7 @@ public class GoodsRuleServiceImpl extends ServiceImpl } } if (!anyMatch){ - errorSkuIds.add(new SimpleKeyValue("客户维度(只可选未包含该产品)",sku.getId())); + errorSkuIds.add(new SimpleKeyValue(isUserRule?"客户人员维度(只可选未包含该产品)":"客户维度(只可选未包含该产品)",sku.getId())); continue; } @@ -524,7 +539,7 @@ public class GoodsRuleServiceImpl extends ServiceImpl boolean b3 = notInCateId.equals(spu.getCategoryThird()); boolean anyMatch = b1||b2||b3; if (anyMatch){ - errorSkuIds.add(new SimpleKeyValue("客户维度(不可选)",sku.getId())); + errorSkuIds.add(new SimpleKeyValue(isUserRule?"客户人员维度(不可选)":"客户维度(不可选)",sku.getId())); } } } 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 3d20e0ab..c8d012ce 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 @@ -446,7 +446,7 @@ public class OmsOrderApi { * 获取临期品订单折扣率 * @return */ - @PostMapping("/expiredOrderRates") + @GetMapping("/expiredOrderRates") public R getExpiredOrderRates(){ return R.ok(omsOrderService.selectExpiredOrderRates()); } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java index 8c3b7fdb..705a7e77 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java @@ -28,6 +28,7 @@ import com.qs.serve.modules.oms.entity.OmsXltOrder; import com.qs.serve.modules.oms.entity.OmsXltOrderItem; import com.qs.serve.modules.oms.entity.dto.SeeYonOrderItemDTO; import com.qs.serve.modules.oms.entity.dto.XltOrderDTO; +import com.qs.serve.modules.oms.mapper.OmsOrderMapper; import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderOptionsService; import com.qs.serve.modules.oms.service.OmsOrderService; @@ -81,6 +82,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { private final TagInfoMapper tagInfoMapper; private final GoodsSkuMapper goodsSkuMapper; private final GoodsSpuMapper goodsSpuMapper; + private final OmsOrderMapper omsOrderMapper; private final GoodsCategoryMapper goodsCategoryMapper; private final SeeYonRequestService seeYonService; private final SeeYonRequestBaseService seeYonRequestBaseService; @@ -278,7 +280,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { BigDecimal dr = null; if(codeRs.getData()!=null){ try { - dr = new BigDecimal(codeRs.getData().toString()); + String oaRateId = codeRs.getData().toString(); + dr = omsOrderMapper.getExpiredOrderRates(oaRateId); omsOrder.setDiscountRate(dr); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java index f9c8c135..317453ea 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderPart1ServiceImpl.java @@ -180,6 +180,8 @@ public class OmsOrderPart1ServiceImpl implements OmsOrderPart1Service { //拦截客户维度规则 errorSkuIds.addAll(goodsRuleService.checkSkuCode( supplier.getId(),skuIds)); + //拦截客户维度的用户规则 + errorSkuIds.addAll(goodsRuleService.checkSkuCodeByUserId( AuthContextUtils.getSysUserId(),skuIds)); //拦截品类下单规则 errorSkuIds.addAll(omsOrderService.handleCategoryRule(skuIds,categoryRule));