diff --git a/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java b/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java index db032b96..d858718c 100644 --- a/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java +++ b/src/main/java/com/qs/serve/common/framework/mvc/HttpServletRequestFilter.java @@ -92,7 +92,7 @@ public class HttpServletRequestFilter implements Filter{ } } catch (Exception e) {} if(diffTime< 1D){ - log.debug(buffer.toString()); + log.info(buffer.toString()); }else if (diffTime< 20D){ log.warn(buffer.toString()); }else { diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java index 66d693c5..9c74e790 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java @@ -91,9 +91,10 @@ public class BirActivityCenterGoodsController { @GetMapping("/toSyncBirToday") public R toSyncBirEcro2(){ - //Long[] ids = new Long[]{0L}; + Long[] ids = new Long[]{277466L,277498L,277516L,277533L,277551L,277615L,277651L,277666L,280941L,278119L,278096L,278432L,281315L,281522L,277464L,277471L,277503L,277696L,277714L,277754L,277881L,277890L,277915L,277954L,281632L,281759L,278147L,278383L,277320L,277495L,277506L,277536L,277595L,277604L,277629L,277663L,277695L,298987L,277748L,277755L,277798L,277805L,277930L,278048L,278141L,278473L,298922L,277441L,277475L,277560L,277609L,277641L,277660L,277726L,277741L,277760L,300889L,301023L,278427L,278478L,278495L,278578L,277725L,277891L,295609L,277733L,277734L,277766L,277834L,278001L,278020L,278838L,279305L,282278L,281006L,278984L,278098L,278566L,298143L,297182L,295914L,277730L,277762L,277412L,277455L,277512L,277519L,277548L,295578L,282378L,276919L,298961L,277763L,277865L,277897L,277906L,277963L,299262L,295443L,295513L,293573L,293648L,278068L,278136L,279121L,279139L,279240L,300963L,277732L,277768L,277985L,299696L,277846L,282151L,282165L,276921L,298856L,278121L,278375L,279157L,278557L,278582L,277478L,277514L,277546L,277571L,277596L,277628L,292736L,292915L,294801L,277889L,277165L,277166L,280306L,295599L,295649L,279156L,299294L,300729L,293078L,293191L,278129L,295084L,295145L,282175L,280178L,295586L,295720L,276734L,298923L,277385L,277399L,277435L,277550L,277582L,277667L,277685L,277718L,276731L,299027L,277738L,277872L,277940L,277965L,299632L,299187L,299332L,277102L,278708L,278094L,278111L,278145L,299186L,299220L,277509L,277592L,277594L,277658L,277707L,281579L,277485L,277568L,277618L,277700L,277717L,295451L,277967L,279154L,282255L,301422L,292768L,292866L,292983L,276773L,298884L,298916L,278745L,277472L,277504L,277529L,277563L,277640L,280203L,277806L,293514L,293541L,277593L,277676L,277691L,277693L,277727L,277993L,279112L,299183L,299185L,277460L,277541L,277575L,277607L,277626L,277675L,278428L,277877L,277977L,278095L,299168L,277410L,277491L,277508L,277591L,277657L,277708L,301740L,300623L,277879L,277888L,277981L,278049L,281423L,278090L,279126L,299382L,278581L,281899L,281906L,276887L,298847L,298904L,282292L,282349L,277530L,277555L,277723L,277486L,277522L,277545L,277579L,277588L,277611L,277613L,281966L,277622L,278251L,300948L,277015L,298576L,279188L,279206L,295049L,295063L,292524L,296253L,277014L,277017L,277081L,300964L,301081L,299863L,279304L,299292L,292490L,296083L,278762L,277809L,277892L,277945L,277958L,281587L,277624L,277694L,277709L,277342L,277540L,277576L,278112L,300019L,300153L,291280L,296094L,296375L,294624L,277749L,277886L,277903L,278003L,278018L,278371L,276682L,299009L,299042L,296183L,278859L,278491L,279127L,277830L,277887L,299583L,296307L,294567L,294578L,280179L,278089L,299924L,277739L,277896L,277914L,277946L,279175L,296162L,296248L,277743L,277826L,277894L,277943L,295693L,296980L,296127L,296210L,295259L,296546L,277679L,277686L,277688L,277690L,277722L,295631L,299280L,299337L,278783L,278324L,291331L,292584L,296377L,295107L,295158L,294503L,294690L,294203L,296475L,296560L,295775L,296041L,277744L,277842L,277859L,296092L,292565L,295075L,292733L,301218L,277747L,277949L,278013L,278054L,293932L,279124L,291324L,294393L,292562L,283088L,277161L,296079L,296254L,292737L,292873L,302440L,277772L,277870L,299666L,277465L,277484L,277652L,277752L,277866L,277883L,277952L,278120L,292492L,278114L,278357L,299349L,294394L,294426L,294076L,292622L,295112L,281272L,302071L,294432L,294593L,294368L,292360L,292619L,295136L,295304L,296408L,277447L,277547L,296134L,294697L,294712L,296470L,296552L,296584L,292961L,280307L,295601L,300701L,293081L,296082L,296132L,295078L,295160L,295353L,296471L,296557L,293799L,295319L,293883L,292729L,292890L,281004L,277589L,277603L,277614L,295537L,277711L,277090L,298533L,278377L,300152L,296159L,292364L,292883L,292900L,295825L,279190L,296102L,294679L,294162L,292493L,293843L,279086L,295651L,295852L,295884L,277994L,278126L,278143L,299988L,295559L,294421L,296495L,294002L,295759L,295774L,281172L,278132L,278139L,278350L,278382L,277328L,277446L,277521L,277539L,277553L,277096L,277160L,277746L,278014L,293065L,296087L,295094L,294283L,296491L,293890L,281745L,281946L,299930L,276648L,296167L,294481L,294649L,294682L,281278L,279037L,278844L,277325L,277391L,277459L,277627L,277659L,277710L,282320L,299268L,278418L,300478L,300699L,294512L,296401L,294047L,292794L,292876L,277650L,295533L,295081L,295114L,294614L,292860L,292877L,292909L, + 277683L,295750L,296886L,296954L,295238L,292887L,280998L,277445L,277511L,277513L,277620L,295527L,295795L,296029L,278790L,278392L,278515L,295661L,295663L,299884L,277788L,296163L,296165L,292519L,295120L,294516L,296747L,294050L,281005L,295756L,295811L,295820L,297190L,297619L,296335L,295099L,295132L,300111L,292641L,292777L,295799L,298857L,293627L,293710L,301061L,295077L,295109L,277463L,277572L,277665L,301293L,299155L,298151L,277653L,277664L,277689L,295930L,295973L,296023L,297241L,297416L,277864L,277957L,295083L,292793L,280893L,277518L,277535L,295466L,295634L,282030L,295801L,300631L,281284L,278780L,302191L,282056L,282356L,296060L,300957L,298902L,297866L,293520L,279279L,291281L,294523L,295240L,292683L,292985L,280251L,295457L,295757L,299133L,278011L,295123L,298899L,278445L,299301L,296091L,296161L,296442L,296561L,277456L,277681L,277713L,295602L,295904L,298946L,296174L,295134L,296397L,277483L,277566L,277602L,277616L,277633L,277669L,295618L,300983L,301098L,296594L,294052L,292801L,278778L,295726L,296996L,276738L,301089L,293320L,293335L,301905L,280213L,295528L,277169L,278130L,295385L,293881L,295896L,298947L,297268L,299936L,292548L,295088L,294522L,294605L,296477L,296492L,293854L,295541L,277586L,277654L,277656L,295470L,295706L,295761L,295838L,295970L,296967L,299107L,294051L,281283L,302439L,282233L,295605L,295637L,295898L,295980L,280322L,297745L,299624L,293483L,293715L,294351L,298931L,299106L,299131L,281365L,298270L,298295L,298979L,281456L,300962L,295121L,293824L,294049L,292906L,302516L,277537L,277544L,295161L,294200L,296440L,296565L,292889L,281155L,277388L,277520L,277581L,282393L,296073L,296305L,294401L,292497L,295137L,295144L,295162L,296505L,293747L,293908L,293973L,298921L,298930L,299132L,277729L,277765L,294511L,294075L,295386L,277761L,277893L,278142L,278493L,300689L,296077L,296175L,296309L,294437L,277898L,277905L,277955L,298597L,294342L,292731L,292756L,292963L,277444L,277587L,278134L,296136L,296303L,294596L,294077L,294164L,292491L,295214L,292741L,277619L,294556L,295239L,295341L,296562L,277457L,277525L,277610L,303746L,299134L,296100L,294431L,292423L,295350L,296436L,296554L,293845L,292660L,277502L,277515L,277612L,277623L,277662L,280295L,295503L,295546L,296032L,299472L,305170L,295715L,295765L,281662L,298909L,298991L,299159L,293662L,294798L,294916L,297600L,293463L,293181L,293356L,277948L,278030L,278055L,305763L,294835L,295053L,293582L,294618L,295352L,296558L,293984L,279135L,303876L,279074L,299123L,294752L,296739L,280970L,302441L,277523L,277598L,277655L,295921L,299833L,294910L,295060L,296901L,298937L,299137L,281389L,298312L,297274L,293632L,278422L,294861L,292882L,295592L,295624L,298030L,297379L,300804L,294807L,299953L,300170L,293121L,296329L,296374L,294693L,299105L,281498L,301052L,298169L,294759L,294800L,277500L,277585L,277600L,277668L,277682L,295130L,281630L,282330L,277817L,280958L,295751L,295851L,296034L,301099L,293512L,293579L,277750L,278053L,295065L,293061L,277438L,277538L,277597L,277661L,302204L,281648L,299096L,297492L,293137L,299321L,299135L,281519L,301056L,297380L,280315L,300054L,294989L,295057L,303879L,304315L,294048L,277461L,277697L,295788L,281641L,281843L,296990L,293650L,294820L,303878L,277684L,281896L,281359L,281510L,301083L,297690L,282396L,293445L,293660L,293309L,296559L,295808L,295859L,299118L,300958L,298297L,300739L,295040L,295055L,299320L,280965L,277639L,277678L,282008L,299120L,281608L,280379L,294819L,298413L,296497L,296599L,296742L,296808L,282302L,293255L,293289L,298203L,278549L,277120L,294975L,278125L,277106L,277159L,293303L,299468L,299470L,299485L,299838L,277687L,295664L,282010L,297014L,299004L,297257L,293563L,295067L,300151L,293038L,292734L,293885L,293000L,293036L,293317L,277458L,277507L,277524L,277692L,296827L,295891L,276707L,298869L,281568L,301071L,278560L,293270L,294740L,294821L,305519L,301728L,295644L,296834L,297009L,293558L,306933L,293140L,293333L,305104L,305740L,303880L,299500L,298381L,298632L,298610L,299845L,278092L,299456L,294862L,298806L,299799L,305522L,305245L,298611L,304438L,277951L,293259L,299494L,293509L,293542L,293577L,293677L,300012L,292992L,305142L,294751L,299488L,305147L,305240L,299855L,299158L,293510L,293678L,278469L,294932L,293195L,293327L,299844L,299963L,300128L,293244L,299378L,295857L,296042L,294891L,293002L,293351L,299318L,305370L,293131L,279116L,299433L,299454L,299254L,299279L,299340L,299465L,277155L,277552L,277583L,277716L,295432L,292991L,298943L,298708L,305695L,294993L,303853L,293123L,305221L,306928L,293381L,293387L,305253L,295544L,281915L,296984L,298988L,294808L,306939L,293086L,293267L,295061L,299675L,293180L,293271L,298652L,305172L,299498L,296888L,293175L,293312L,301049L,294933L,294998L,277150L,277164L,293673L,277163L,277168L,277170L,299857L,299330L,299823L,293623L,293396L,294802L,293532L,305966L,300150L,294868L,306936L,299239L,293355L,299850L,298166L,297381L,298417L,294739L,300004L,293001L,293252L,299964L,299376L,278002L,299843L,293003L,293139L,294886L,299357L,299832L,281618L,293484L,294839L,294958L,299419L,293318L,304999L,305520L,292738L,277630L,277705L,298343L,293681L,294810L,295066L,299895L,299492L,298623L,299763L,281293L,295648L,295665L,295684L,295783L,295902L,296887L,294797L,277167L,293044L,299495L,305244L}; //List ids = tbsActivityMapper.selectReleaseCostIds(); - Set ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds(); + //Set ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds(); List errIds = new ArrayList<>(); for (Long id : ids) { log.error("执行ID XXXX:{}",id); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index ed3e9ac4..84c41660 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -75,13 +75,11 @@ public class BmsSupplier implements Serializable { /** 名称 */ @NotBlank(message = "名称不能为空") - @Length(max = 20,message = "名称长度不能超过20字") @TableField(condition = SqlCondition.LIKE) private String name; /** 客户编码 */ @NotBlank(message = "客户编码不能为空") - @Length(max = 20,message = "客户编码长度不能超过20字") @TableField(condition = SqlCondition.LIKE) private String code; diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java index 765911b2..6871b7d9 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java @@ -37,12 +37,10 @@ public class BmsSupplierBo { /** 名称 */ @NotBlank(message = "名称不能为空") - @Length(max = 20,message = "名称长度不能超过20字") private String name; /** 客户编码 */ @NotBlank(message = "客户编码不能为空") - @Length(max = 20,message = "客户编码长度不能超过20字") private String code; /** 父级id,0表总公司无上级 */ diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java index c63a24dc..befe6edc 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java @@ -273,6 +273,15 @@ public class GoodsSkuServiceImpl extends ServiceImpl im goodsSku.setId(dbGoodSku.getId()); } + //code必须唯一 + Long countCode = super.getBaseMapper().selectCount(new LambdaQueryWrapper() + .ne(GoodsSku::getId,dbGoodSku.getId()) + .eq(GoodsSku::getSkuCode,goodSkuVo.getSkuCode()) + ); + if(countCode>0L){ + Assert.throwEx("编码必须唯一"); + } + //拓展spu GoodsSpu goodsSpu = goodsSpuMapper.selectById(goodsSku.getSpuId()); if(goodsSpu==null){ 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 5e0f793a..d9211180 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 @@ -174,6 +174,13 @@ public class GoodsSpuServiceImpl extends ServiceImpl im GoodsCategory category = goodsCategoryService.getById(param.getCategoryId()); relateCate(spu,category); } + Long count = super.baseMapper.selectCount(new LambdaQueryWrapper() + .ne(param.getId()!=null,GoodsSpu::getId,param.getId()) + .eq(GoodsSpu::getSpuCode,param.getSpuCode()) + ); + if(count>0){ + Assert.throwEx("编码不可重复"); + } this.saveOrUpdate(spu); insertSpuSpec(spu.getId()); return 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 0a99d811..926aa929 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 @@ -40,6 +40,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_ORDER_STATUS; @@ -170,6 +171,14 @@ public class OmsOrderApi { addrIds.add(0L); List supplierAddressList = bmsSupplierAddressService.listByIds(addrIds); + List orderIds = list.stream().map(OmsOrder::getId).collect(Collectors.toList()); + orderIds.add(0L); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(OmsOrderItem::getOrderId,orderIds); + List allItems = omsOrderItemService.list(lqw); + + Map> itemsMap = allItems.stream().collect(Collectors.groupingBy(OmsOrderItem::getOrderId)); + for (OmsOrder order : list) { omsOrderService.checkMsOrderStatus(order); @@ -185,10 +194,7 @@ public class OmsOrderApi { } } - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(OmsOrderItem::getOrderId,order.getId()); - List items = omsOrderItemService.list(lqw); - order.setOrderItems(items); + order.setOrderItems(itemsMap.get(order.getId())); } return R.byPageHelperList(list); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java index 653b444f..21f5154c 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java @@ -26,6 +26,9 @@ public class OmsOrderBo { /** 品牌规则ID */ private Long brandRuleId; + /** CD单据备注 */ + private String cdOrderRemark; + /** 购物车ID(购物车方式下单) */ private List shoppingCartIds; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java index 416a0344..3865ed77 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java @@ -33,6 +33,9 @@ public class OmsOrderSkuBo { /** 立刻下单标识 */ private Integer instantFlag; + + /** CD单据备注 */ + private String cdOrderRemark; /** 收货地址 */ private Long addressId; 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 8944d204..01ad0f0e 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 @@ -445,6 +445,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im confirmOrder.setLatitudeFrom("SPU"); confirmOrder.setOrderSource(omsOrderBo.getOrderSource()); CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); + createOrderParam.setCdOrderRemark(omsOrderBo.getCdOrderRemark()); OmsOrder order = this.buildOmsOrder(confirmOrder, createOrderParam); if(omsOrderBo.getInstantFlag()!=null&&omsOrderBo.getInstantFlag().equals(1)){ this.buildPriceOrder(order.getId()+"",null); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index c12fa367..319f1060 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -110,8 +110,6 @@ public class TbsActivityController { @GetMapping("/resetList") public R reset(){ Long[] ids = new Long[]{ - 367411L,370962L,371944L,1664621L,1664735L,1670003L,1670540L,1670543L,1670848L,1672047L,1673700L,1673831L - ,1673871L,1674351L,1674356L,1675523L,1676292L,1678649L,1676360L,1678659L,1677127L,1679655L,1680396L,1683464L }; for (Long id : ids) { tbsActivityDebugApplicationService.reset(id); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java index 2b2b9395..56c1bc1b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java @@ -15,6 +15,7 @@ import com.qs.serve.modules.bms.service.BmsDutyInfoService; import com.qs.serve.modules.sys.entity.SysAttach; import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.tbs.entity.bo.TbsCostContractBo; +import com.qs.serve.modules.tbs.service.TbsCostContractApplication; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -41,6 +42,14 @@ public class TbsCostContractController { private TbsCostContractService tbsCostContractService; private SysAttachService attachService; private BmsDutyInfoService bmsDutyInfoService; + private TbsCostContractApplication tbsCostContractApplication; + + + @GetMapping("resetRelease") + public R getById(){ + tbsCostContractApplication.resetState(); + return R.ok(); + } /** * 列表 diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java index 1fdb9333..33ad7dcc 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java @@ -1,10 +1,14 @@ package com.qs.serve.modules.tbs.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; +import java.util.List; + /** * 活动支付条件 Mapper * @author YenHex @@ -13,6 +17,27 @@ import org.apache.ibatis.annotations.Update; public interface TbsActivityPayConditionMapper extends BaseMapper { + @InterceptorIgnore(tenantLine = "1") + @Select("select " + + "tbs_cost_apply.id " + + " from tbs_cost_apply " + + "left join ( " + + " select cost_apply_id,count(*) as total_contract from tbs_activity_pay_condition " + + " where del_flag = 0 " + + " group by cost_apply_id " + + ") t1 on t1.cost_apply_id = tbs_cost_apply.id " + + "left join ( " + + " select cost_apply_id,count(*) as total_vtb from vtb_verification " + + " where del_flag = 0 " + + " group by cost_apply_id " + + ") t2 on t2.cost_apply_id = tbs_cost_apply.id " + + "where " + + "tbs_cost_apply.del_flag = 0 " + + "and tbs_cost_apply.charge_state !=3 " + + "and tbs_cost_apply.contract_flag = 1 " + + "and t1.total_contract = t2.total_vtb") + List getFinishedCostId(); + @Update("update `tbs_activity_pay_condition` set pre_notify_time = null where id = #{id}") void updateSetNotifyTimeNull(@Param("id")String id); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java index b01f0254..8c0c0181 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityDebugApplicationService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.mapper.*; import com.qs.serve.modules.vtb.entity.VtbVerification; @@ -39,7 +40,7 @@ public class TbsActivityDebugApplicationService { private TbsActivityCenterGoodsService activityCenterGoodsService; private TbsBudgetLogService budgetLogService; private VtbVerificationMapper verificationMapper; - //private VtbVerificationSubjectMapper verificationSubjectMapper; + private TbsCostApplyMapper tbsCostApplyMapper; public String reset(Long activityId){ @@ -50,16 +51,29 @@ public class TbsActivityDebugApplicationService { TbsActivity activity = activityMapper.selectById(activityId); + TbsCostApply costApply = tbsCostApplyMapper.selectById(activity.getCostApplyId()); + if(costApply.getPolicyItemId()!=null){ + log.warn("随货折让不支持该方法"); + return "随货折让不支持该方法"; + } + //过滤 CA SHX YX06 PortalOfCostApplication.createCostProcess() + if(StringUtils.hasText(costApply.getBillNumber())||StringUtils.hasText(costApply.getDisCode())){ + log.warn("方法仅支持普通订单"); + return "方法仅支持普通订单"; + } + BigDecimal checkeAmt = activity.getUsedAmount(); if(activity.getReleaseFlag().equals(1)){ checkeAmt = checkeAmt.add(activity.getReleaseAmount()); } if(checkeAmt.compareTo(activity.getTotalAmount())>0){ + log.warn("活动自身金额异常"); return "活动自身金额异常"; } Long unMatchNum = activitySubjectMapper.checkActAndSubjectAmt(activityId); if(unMatchNum!=null&&unMatchNum>0){ + log.warn("活动科目金额异常"); return "活动科目金额异常"; } @@ -87,6 +101,7 @@ public class TbsActivityDebugApplicationService { List subjectCenterList = activityCenterListMap.get(subjectId); BigDecimal totalCenterRate = BigDecimal.ZERO; BigDecimal totalCenterAmt = BigDecimal.ZERO; + BigDecimal totalCenterUsedAmt = BigDecimal.ZERO; BigDecimal subjectUsedAmt = activitySubject.getUsedAmount(); BigDecimal subjectAmt = activitySubject.getAmount(); @@ -97,11 +112,10 @@ public class TbsActivityDebugApplicationService { if(activityCenter.getCenterAmount().compareTo(BigDecimal.ZERO)>=0){ totalCenterAmt = totalCenterAmt.add(activityCenter.getCenterAmount()); } + totalCenterUsedAmt = totalCenterUsedAmt.add(activityCenter.getUsedAmount()); } - boolean isUpdateCenter = false; if(n100.compareTo(totalCenterRate)!=0){ - log.warn("centerRate不为100:{}",activityId); - isUpdateCenter = true; + log.info("重新分配TbsActivityCenter的比例"); BigDecimal centerRate = n100; for (int i = 0; i < subjectCenterList.size(); i++) { TbsActivityCenter activityCenter = subjectCenterList.get(i); @@ -115,10 +129,65 @@ public class TbsActivityDebugApplicationService { } } } - // 分配占用金额 + + // 更新subject的已用金额 + if(subjectUsedAmt==null || totalCenterUsedAmt.compareTo(subjectUsedAmt)!=0){ + log.info("成本中心和科目已用金额不匹配"); + BigDecimal totalUsedOnCenter = BigDecimal.ZERO; + for (TbsActivityCenter center : activityCenterList) { + totalUsedOnCenter = totalUsedOnCenter.add(center.getUsedAmount()); + } + if(0 == totalUsedOnCenter.compareTo(activity.getUsedAmount())){ + log.info("通过center更新subject金额"); + subjectUsedAmt = BigDecimal.ZERO; + for (TbsActivityCenter center : subjectCenterList) { + subjectUsedAmt = subjectUsedAmt.add(center.getUsedAmount()); + } + activitySubject.setUsedAmount(subjectUsedAmt); + updateSubject = true; + }else if (activitySubjectList.size()==1){ + subjectUsedAmt = activity.getUsedAmount(); + activitySubject.setUsedAmount(subjectUsedAmt); + log.info("更新TbsActivityCenter的已用金额"); + BigDecimal totalCenterSubjectRate = BigDecimal.ZERO; + for (TbsActivityCenter center : subjectCenterList) { + totalCenterSubjectRate = totalCenterSubjectRate.add(center.getCenterRate()); + } + if(totalCenterSubjectRate.compareTo(n100)!=0){ + log.info("更新TbsActivityCenter的比率"); + BigDecimal avgRate = n100.divide(new BigDecimal(subjectCenterList.size()),2,RoundingMode.DOWN); + BigDecimal addRate = BigDecimal.ZERO; + for (int i = 0; i < subjectCenterList.size(); i++) { + TbsActivityCenter center = subjectCenterList.get(i); + if(i+1 == subjectCenterList.size()){ + center.setCenterRate(n100.subtract(addRate)); + }else { + center.setCenterRate(avgRate); + addRate = avgRate.add(avgRate); + } + } + } + BigDecimal totalUsed11 = BigDecimal.ZERO; + for (int i = 0; i < subjectCenterList.size(); i++) { + log.info("更新TbsActivityCenter的已用"); + TbsActivityCenter center = subjectCenterList.get(i); + if(i+1 == subjectCenterList.size()){ + center.setUsedAmount(subjectUsedAmt.subtract(totalUsed11)); + }else { + BigDecimal curAmt = subjectUsedAmt.multiply(center.getCenterRate()).divide(n100,2,RoundingMode.DOWN); + center.setUsedAmount(curAmt); + totalUsed11 = totalUsed11.add(curAmt); + } + } + }else { + log.info("成本中心和科目已用金额不匹配,而且活动金额也不匹配"); + return "成本中心和科目已用金额不匹配,而且活动金额也不匹配"; + } + } + + // 分配center的占用金额和已用金额 if(totalCenterAmt.compareTo(activitySubject.getAmount())!=0){ - log.warn("合计金额异常,将重新分配活动的成本中心金额"); - isUpdateCenter = true; + log.info("重新分配TbsActivityCenter的CenterAmount"); BigDecimal centerAmt = subjectAmt; BigDecimal centerUsedAmt = subjectUsedAmt; for (int i = 0; i < subjectCenterList.size(); i++) { @@ -148,14 +217,6 @@ public class TbsActivityDebugApplicationService { } } } - if(subjectUsedAmt==null){ - subjectUsedAmt = BigDecimal.ZERO; - for (TbsActivityCenter center : subjectCenterList) { - subjectUsedAmt = subjectUsedAmt.add(center.getUsedAmount()); - } - activitySubject.setUsedAmount(subjectUsedAmt); - updateSubject = true; - } List activityCenterGoodsListOfSubject = activityCenterGoodsListMap.get(subjectId); @@ -175,7 +236,7 @@ public class TbsActivityDebugApplicationService { } //重新分配比率 if(totalGoodRate.compareTo(n100)!=0){ - log.warn("totalGoodRate不为100,重新分配"); + log.info("重新分配申请Rate"); BigDecimal avgRate = n100.divide(new BigDecimal(goodsList.size()),2,RoundingMode.DOWN); BigDecimal addRate = BigDecimal.ZERO; for (int i = 0; i < goodsList.size(); i++) { @@ -191,6 +252,7 @@ public class TbsActivityDebugApplicationService { //分配申请金额 BigDecimal centerAmt3 = centerAmt; + log.info("重新分配申请金额"); for (int i = 0; i < goodsList.size(); i++) { TbsActivityCenterGoods goods = goodsList.get(i); if(i+1 == goodsList.size()){ @@ -204,8 +266,9 @@ public class TbsActivityDebugApplicationService { } } - //分配已用金额 + //分配TbsActivityCenterGoods已用金额 BigDecimal centerUsed2 = centerUsed; + log.info("重新分配已用金额"); for (int i = 0; i < goodsList.size(); i++) { TbsActivityCenterGoods goods = goodsList.get(i); if(i+1 == goodsList.size()){ @@ -224,6 +287,8 @@ public class TbsActivityDebugApplicationService { //二次校验 BigDecimal totalSubjectAmt = BigDecimal.ZERO; + BigDecimal totalSubjectUsedAmt = BigDecimal.ZERO; + BigDecimal totalAllCenterUsedAmt = BigDecimal.ZERO; for (TbsActivitySubject activitySubject : activitySubjectList) { Long subjectId = activitySubject.getSubjectId(); List subjectCenterList = activityCenterListMap.get(subjectId); @@ -234,19 +299,21 @@ public class TbsActivityDebugApplicationService { BigDecimal subjectUsedAmt = activitySubject.getUsedAmount(); BigDecimal subjectAmt = activitySubject.getAmount(); totalSubjectAmt = totalSubjectAmt.add(subjectAmt); + totalSubjectUsedAmt = totalSubjectUsedAmt.add(activitySubject.getUsedAmount()); for (TbsActivityCenter activityCenter : subjectCenterList) { totalCenterRate = totalCenterRate.add(activityCenter.getCenterRate()); totalCenterAmt = totalCenterAmt.add(activityCenter.getCenterAmount()); totalCenterUsedAmt = totalCenterUsedAmt.add(activityCenter.getUsedAmount()); } + totalAllCenterUsedAmt = totalAllCenterUsedAmt.add(totalCenterUsedAmt); if(totalCenterAmt.compareTo(subjectAmt)!=0){ - log.error("合计totalCenterUsedAmt金额异常:{}",activityId); - return "合计totalCenterUsedAmt金额异常"; + log.error("合计totalCenterAmt金额异常:{}",activityId); + return "合计totalCenterAmt金额异常"; } if(totalCenterUsedAmt.compareTo(subjectUsedAmt)!=0){ - log.error("合计subjectUsedAmt金额异常,将重新分配活动的成本中心金额:{}",activityId); - return "合计subjectUsedAmt金额异常"; + log.error("合计totalCenterUsedAmt金额异常,将重新分配活动的成本中心金额:{}",activityId); + return "合计totalCenterUsedAmt金额异常"; } if(n100.compareTo(totalCenterRate)!=0){ log.error("centerRate不为100:{}",activityId); @@ -287,12 +354,20 @@ public class TbsActivityDebugApplicationService { } } + + + if(activity.getUsedAmount().compareTo(totalSubjectUsedAmt)!=0){ + log.error("活动和totalSubjectUsedAmt匹对金额异常:{}",activityId); + return "活动和totalSubjectUsedAmt匹对金额异常"; + } + if(totalSubjectUsedAmt.compareTo(totalAllCenterUsedAmt)!=0){ + log.error("活动和totalAllCenterUsedAmt匹对金额异常:{}",activityId); + return "活动和totalAllCenterUsedAmt匹对金额异常"; + } if(activity.getTotalAmount().compareTo(totalSubjectAmt)!=0){ log.error("科目和活动的申请金额不匹配"); return "科目和活动的申请金额不匹配"; } - - // 处理预算占用 List actBudgetLogs = budgetLogService.list(wrapper); @@ -305,13 +380,12 @@ public class TbsActivityDebugApplicationService { BigDecimal releaseAmt = totalBudgetLogAmount(releaseLogs); //检查下占用预算和释放 - - if(applyAmt.compareTo(activity.getTotalAmount())!=0){ - log.warn("历史预算占用金额异常"); + if(applyAmt.negate().compareTo(activity.getTotalAmount())!=0){ + log.info("历史预算占用金额异常"); } if(activity.getReleaseAmount()!=null && releaseAmt.compareTo(activity.getReleaseAmount())!=0){ - log.warn("历史预算释放金额异常"); + log.info("历史预算释放金额异常"); } List newApplyLogList = new ArrayList<>(); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetReleaseApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetReleaseApplicationService.java new file mode 100644 index 00000000..b71e5714 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetReleaseApplicationService.java @@ -0,0 +1,19 @@ +package com.qs.serve.modules.tbs.service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author YenHex + * @since 2024/5/28 + */ +public class TbsBudgetReleaseApplicationService { + + public void check(){ + //校验活动的核销金额是否匹配,不匹配则中断 + //查询需要补偿释放的活动ID + List activitIds = new ArrayList<>(); + + } + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostContractApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostContractApplication.java new file mode 100644 index 00000000..e8f4ea32 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostContractApplication.java @@ -0,0 +1,62 @@ +package com.qs.serve.modules.tbs.service; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.qs.serve.modules.tbs.common.TbsActivityState; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.TbsActivityPayCondition; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author YenHex + * @since 2024/5/28 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsCostContractApplication { + + private final TbsActivityPayConditionMapper activityPayConditionMapper; + private final TbsActivityPayConditionService activityPayConditionService; + private final TbsActivityService tbsActivityService; + private final TbsCostApplyService tbsCostApplyService; + + public void resetState(){ + //更新遗漏的已完成费用申请 + List costIds = activityPayConditionMapper.getFinishedCostId(); + if(CollUtil.isNotEmpty(costIds)){ + List costApplyList = tbsCostApplyService.listByIds(costIds); + for (TbsCostApply costApply : costApplyList) { + costApply.setChargeState(3); + costApply.setCheckState(1); + } + tbsCostApplyService.updateBatchById(costApplyList); + //更新状态 + activityPayConditionService.update(new LambdaUpdateWrapper() + .set(TbsActivityPayCondition::getFinishedFlag,1) + .in(TbsActivityPayCondition::getCostApplyId,costIds)); + List activityList = tbsActivityService.list(new LambdaQueryWrapper() + .in(TbsActivity::getCostApplyId,costIds)); + for (TbsActivity activity : activityList) { + if(activity.getUsedAmount().compareTo(activity.getTotalAmount())==0){ + activity.setActivityState(TbsActivityState.STATE_1_Finished); + }else { + //不进行直接释放,通过补充释放,最终一次性修复 + activity.setReleaseFlag(1); + activity.setReleaseAmount(activity.getTotalAmount().subtract(activity.getUsedAmount())); + activity.setActivityState(TbsActivityState.STATE_4_Release); + } + } + tbsActivityService.updateBatchById(activityList); + } + + } + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java index 49feedc9..8b9c3403 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java @@ -16,6 +16,7 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.service.TbsBudgetLogService; +import com.qs.serve.modules.tbs.service.TbsBudgetService; import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -34,6 +35,7 @@ import java.util.List; @AllArgsConstructor public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationService { + private final TbsBudgetService budgetService; private final TbsBudgetMapper budgetMapper; private final TbsBudgetLogService budgetLogService; private final TbsScheduleItemBudgetService scheduleItemBudgetService; @@ -102,6 +104,7 @@ public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationServic budgetLogService.saveBatch(budgetLogList); } budgetMapper.updateConFlag(); + budgetService.syncMissSchItem(); return null; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java index 199f7da1..42d16ce1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetBatchOperationServiceImpl.java @@ -81,6 +81,7 @@ public class TbsBudgetBatchOperationServiceImpl implements SeeYonOperationServic budgetBatch.setFinishedTime(LocalDateTime.now()); budgetBatchService.updateById(budgetBatch); tbsBudgetMapper.updateConFlag(); + tbsBudgetService.syncMissSchItem(); return null; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java index d39290fa..3fcfde25 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java @@ -35,6 +35,7 @@ import java.util.stream.Collectors; @AllArgsConstructor public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationService { + private TbsBudgetService budgetService; private TbsBudgetMapper budgetMapper; private TbsBudgetChangeMapper budgetChangeMapper; private TbsBudgetConditionService tbsBudgetConditionService; @@ -142,6 +143,7 @@ public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationServi } } budgetMapper.updateConFlag(); + budgetService.syncMissSchItem(); } /** diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 8ecba32b..f01f037b 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -83,6 +83,7 @@ import java.util.stream.Collectors; @AllArgsConstructor public class PortalOfCostApplication { + private TbsCostContractApplication costContractApplication; private SysUserCodeMathMapper userCodeMathMapper; private final SysSyncLogService sysSyncLogService; private SysTableTempMapper sysTableTempMapper; @@ -1155,6 +1156,7 @@ public class PortalOfCostApplication { } // 修复没有vtbFundFlow异常,并修复活动状态 verificationService.successCommit(verification.getId(),false); + costContractApplication.resetState(); } diff --git a/src/main/java/com/qs/serve/task/TbsTask.java b/src/main/java/com/qs/serve/task/TbsTask.java index f8143e5d..f2777716 100644 --- a/src/main/java/com/qs/serve/task/TbsTask.java +++ b/src/main/java/com/qs/serve/task/TbsTask.java @@ -82,7 +82,7 @@ public class TbsTask { } //启用和停用模板规则 - @Scheduled(cron="0 0 1 * * ?") + //@Scheduled(cron="0 0 1 * * ?") public void task2(){ diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ecb7d949..fc9ee4a8 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -56,7 +56,7 @@ mybatis-plus: logging: level: ROOT: info - #com.qs.serve: debug + com.qs.serve: debug #com.qs.serve.modules.his: info #com.qs.serve.modules.sys: debug com.qs.serve.modules.tag: info