diff --git a/src/main/java/com/qs/serve/common/model/consts/ResultFlag.java b/src/main/java/com/qs/serve/common/model/consts/ResultFlag.java new file mode 100644 index 00000000..2641b445 --- /dev/null +++ b/src/main/java/com/qs/serve/common/model/consts/ResultFlag.java @@ -0,0 +1,12 @@ +package com.qs.serve.common.model.consts; + +/** + * @author YenHex + * @since 2023/2/15 + */ +public interface ResultFlag { + + int OK = 1; + int NOT = 0; + +} diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsSubjectService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsSubjectService.java index efc83613..11ae1ec0 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsSubjectService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsSubjectService.java @@ -17,6 +17,7 @@ public interface BmsSubjectService extends IService { void updatePathNameByParent(BmsSubject subject); BmsSubject getByName(String name); + BmsSubject getByCode(String code); boolean removeSelfAndChildById(Long id); } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSubjectServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSubjectServiceImpl.java index ad353ff7..2aedbbe5 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSubjectServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSubjectServiceImpl.java @@ -54,6 +54,13 @@ public class BmsSubjectServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSubject::getSubjectCode,code); + return getOne(lqw,false); + } + @Override public boolean removeSelfAndChildById(Long id) { List list = listChild(id); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 6b34266f..06d0f058 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -145,7 +145,7 @@ public class TbsBudgetApplicationService { /** * 创建费用占用结果 - * @param costApplyId + * @param costApplyId 用于加载历史预算时,排除当前费用占比 * @param throwEx 是否需要抛出异常 * @param buildTableFlag 创建表VO */ @@ -160,15 +160,38 @@ public class TbsBudgetApplicationService { if(activityList.size()<1){ Assert.throwEx("当前费用未设置活动"); } + //补充添加 科目与成本中心拦截 + List centerGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); + List activityCenterList = tbsActivityCenterService.listByCostApplyId(costApplyId); + return this.buildBudgetCostResult(costApplyId,activityList,activitySubjects,centerGoodsList,activityCenterList,overspend,throwEx,buildTableFlag); + } + + /** + * 创建费用占用结果 + * @param costApplyId 用于加载历史预算时,排除当前费用占比 + * @param activityList 活动列表 + * @param activitySubjects 判断预算时,科目拦截 + * @param centerGoodsList 活动成本中心组商品 + * @param activityCenterList 判断预算时,成本中心拦截 + * @param overspend 是否支持超出预算 + * @param throwEx 是否需要抛出异常 + * @param buildTableFlag 创建表VO + * @return + */ + public TbsBudgetCostResult buildBudgetCostResult(Long costApplyId, + List activityList, + List activitySubjects, + List centerGoodsList, + List activityCenterList, + Boolean overspend, + Boolean throwEx, + Boolean buildTableFlag){ //考核期有关的预算id,判断逻辑为活动需要允许在 List budgetIds = new ArrayList<>(); //没有预算的活动 List noBudgetActivityIds = new ArrayList<>(); //所有满足条件的考核期,用于加载历史核销费用 List scheduleItemList = this.loadScheduleBudgetAndSetting(activityList, budgetIds, noBudgetActivityIds); - //补充添加 科目与成本中心拦截 - List centerGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); - List activityCenterList = tbsActivityCenterService.listByCostApplyId(costApplyId); List centerIds = activityCenterList.stream().map(TbsActivityCenter::getCenterId).collect(Collectors.toList()); List subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); // 加载所有条件 @@ -640,4 +663,5 @@ public class TbsBudgetApplicationService { budgetIds.addAll(budgetIdsSet); return scheduleItemList; } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 6903d6ee..c4e865e3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -123,6 +123,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl budgetLogList = saveBudgetLog(result, sysUser, costApply, result.getBudgetMatchList(),result.getActivityList()); diff --git a/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java b/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java index 679cd582..d4532ec2 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java @@ -2,13 +2,18 @@ package com.qs.serve.modules.third; import com.qs.serve.common.model.dto.R; import com.qs.serve.modules.third.entity.ProcessCreateBo; +import com.qs.serve.modules.third.service.PortalOfCostApplication; 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 javax.validation.Valid; + /** - * 第三方接口:核销系统 + * 【第三方接口】核销系统 * @author YenHex * @since 2023/2/14 */ @@ -18,7 +23,16 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("portal/cost") public class PortalOfCostController { - public R createCostProcess(ProcessCreateBo createBo){ + private PortalOfCostApplication portalOfCostApplication; + + /** + * 一站式创建费用 + * @param createBo + * @return + */ + @PostMapping("create") + public R createCostProcess(@Valid @RequestBody ProcessCreateBo createBo){ + portalOfCostApplication.createCostProcess(createBo); return R.error(); } diff --git a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateBo.java b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateBo.java index eb4e570b..0ab52087 100644 --- a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateBo.java +++ b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateBo.java @@ -4,6 +4,7 @@ import lombok.Data; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.List; /** * @author YenHex @@ -12,7 +13,7 @@ import java.math.BigDecimal; @Data public class ProcessCreateBo { - /** 员工编码 */ + /** 员工编码(申请人/操作人) */ @NotNull(message = "员工编码 不能为空") private String userCode; @@ -25,22 +26,22 @@ public class ProcessCreateBo { /** 活动编码(可为空) */ private String activityCode; + /** 活动标题(可为空) */ + private String activityTitle; + @NotNull(message = "客户编码 不能为空") private String customerCode; /** 客户所属 */ private String customerBelong; - @NotNull(message = "成本中心编码 不能为空") - private String centerCode; - @NotNull(message = "合计金额 不能为空") private BigDecimal totalAmount; - @NotNull(message = "成本中心id 不能为空") - private String centerId; + @NotNull(message = "科目编码 不能为空") + private String subjectCode; - @NotNull(message = "成本中心类型 不能为空") - private String centerType; + @NotNull(message = "存货编码 不能为空") + private List goodsList; } 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 1560d3c7..65599603 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 @@ -1,20 +1,43 @@ package com.qs.serve.modules.third.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.consts.ResultFlag; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; +import com.qs.serve.modules.goods.service.GoodsCategoryService; +import com.qs.serve.modules.goods.service.GoodsSkuService; +import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsCostApplyState; -import com.qs.serve.modules.tbs.entity.TbsActivity; -import com.qs.serve.modules.tbs.entity.TbsCostApply; -import com.qs.serve.modules.tbs.service.TbsActivityService; -import com.qs.serve.modules.tbs.service.TbsCenterDtoService; +import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; +import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.third.entity.ProcessCreateBo; +import com.qs.serve.modules.third.entity.ProcessGoodsItem; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Random; +import java.util.stream.Collectors; /** * @author YenHex @@ -25,23 +48,227 @@ import org.springframework.stereotype.Service; @AllArgsConstructor public class PortalOfCostApplication { - private TbsActivityService tbsActivityService; + private TbsActivityService activityService; + private TbsActivityCenterService activityCenterService; + private TbsActivitySubjectService activitySubjectService; + private TbsActivityGoodsService activityGoodsService; + private TbsActivityCenterGoodsService activityCenterGoodsService; private BmsSupplierService supplierService; + private BmsSubjectService subjectService; private SysUserService userService; - private TbsCenterDtoService tbsCenterDtoService; + private TbsBudgetApplicationService budgetApplicationService; + private TbsCostApplyService costApplyService; + private GoodsSkuService goodsSkuService; + private GoodsSpuService goodsSpuService; + private GoodsCategoryService goodsCategoryService; - void createCostProcess(ProcessCreateBo createBo){ + @Transactional(rollbackFor = Exception.class) + public void createCostProcess(ProcessCreateBo createBo){ SysUser user = userService.getByAccount(createBo.getUserCode()); if(user==null){Assert.throwEx("用户不存在,请重新编辑");} BmsSupplier supplier = supplierService.getByCode(createBo.getCustomerCode(),createBo.getCustomerBelong()); if(supplier==null){Assert.throwEx("客户不存在,请重新编辑");} - TbsCenterDto tbsCenterDto = tbsCenterDtoService.getCenterDto(createBo.getCenterType(),createBo.getCenterId()); - if(tbsCenterDto==null){Assert.throwEx("部分成本中心不存在了,请重新编辑");} + BmsSubject subject = subjectService.getByCode(createBo.getSubjectCode()); + if(subject==null){Assert.throwEx("科目不存在,请重新编辑");} + //初始化sku列表 + List skuList = this.initSkuListOfProcess(createBo); + //常用参数 + final String GOODS_TYPE = "sku"; + final String CENTER_TYPE = "customer"; + final BigDecimal OneHundred = new BigDecimal("100"); + LocalDateTime nowTime = LocalDateTime.now(); + LocalDate nowDate = LocalDate.now(); + Long supplierId = Long.parseLong(supplier.getId()); + BigDecimal totalAmount = createBo.getTotalAmount(); + String costCode = createBo.getCostCode(); + String costTheme = createBo.getCostTheme(); +// String random = String.format("%03d",new Random().nextInt(999)); +// activity.setActivityCode("G"+ StringUtils.genShortId() + random); + String activityCode = createBo.getActivityCode(); + String activityTitle = createBo.getActivityTitle(); + //构建费用申请 TbsCostApply costApply = new TbsCostApply(); - costApply.setCode(createBo.getCostCode()); - costApply.setCode(createBo.getCostTheme()); + costApply.setCode(costCode); + costApply.setChargeTheme(costTheme); costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode()); + costApply.setSupplierId(supplierId); + costApply.setSupplierName(supplier.getName()); + costApply.setSupplierCode(supplier.getCode()); + costApply.setUserId(user.getId()); + costApply.setUserCode(user.getCode()); + costApply.setUserName(user.getName()); + costApply.setTotalActivity(1); + costApply.setTotalActivityAmount(totalAmount); + costApply.setTotalActivityUsedAmount(totalAmount); + //构建活动 + TbsActivity activity = new TbsActivity(); + activity.setActivityCode(activityCode); + activity.setActivityState(TbsActivityState.STATE_1_Finished); + activity.setCostPassFlag(1); + activity.setCostPassTime(nowTime); + activity.setActTitle(activityTitle); + activity.setSupplierId(supplierId); + activity.setSupplierName(supplier.getName()); + activity.setSupplierCode(supplier.getCode()); + activity.setActStartDate(nowDate); + activity.setActEndDate(nowDate); + activity.setPreStartDate(nowDate); + activity.setPreEndDate(nowDate); + activity.setPreCheckDate(nowDate); + activity.setTotalAmount(totalAmount); + activity.setUsedAmount(totalAmount); + activity.setFinishedFlag(ResultFlag.OK); + activity.setFinishedTime(nowTime); + //活动-科目 + TbsActivitySubject activitySubject = new TbsActivitySubject(); + activitySubject.setSubjectId(subject.getId()); + activitySubject.setSubjectCode(subject.getSubjectCode()); + activitySubject.setSubjectName(subject.getSubjectName()); + activitySubject.setAmount(totalAmount); + activitySubject.setUsedAmount(totalAmount); + activitySubject.setCountSession(0); + activitySubject.setCountPerson(0); + + //活动-成本中心 + TbsActivityCenter activityCenter = new TbsActivityCenter(); + activityCenter.setSubjectId(subject.getId()); + activityCenter.setCenterAmount(totalAmount); + activityCenter.setCenterRate(OneHundred); + activityCenter.setCenterType(CENTER_TYPE); + activityCenter.setCenterId(supplier.getId()); + activityCenter.setCenterName(supplier.getName()); + activityCenter.setCenterCode(supplier.getCode()); + activityCenter.setUsedAmount(totalAmount); + + //活动-商品 + List activityGoodsList = new ArrayList<>(); + for (GoodsSku sku : skuList) { + GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId()); + GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst()); + GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond()); + GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird()); + TbsActivityGoods activityGoods = new TbsActivityGoods(); + activityGoods.setTargetType(GOODS_TYPE); + activityGoods.setTargetId(sku.getId()); + activityGoods.setTargetCode(sku.getSkuCode()); + activityGoods.setTargetName(sku.getSpecInfos()); + activityGoods.setTargetLevelPathIds(category1.getId()+"_"+category2.getId()+"_"+category3.getId()+"_"+goodsSpu.getId()+"_"+sku.getId()); + activityGoods.setTargetLevelPathNames(category1.getName()+"_"+category2.getName()+"_"+category3.getName()+"_"+goodsSpu.getName()+"_"+sku.getSpecInfos()); + activityGoodsList.add(activityGoods); + } + //活动-商品与成本中心记录 + List activityCenterGoodsList = new ArrayList<>(); + for (int i = 0; i < activityGoodsList.size(); i++) { + TbsActivityGoods activityGoods = activityGoodsList.get(i); + TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods(); + centerGoods.setActivityCode(activity.getActivityCode()); + centerGoods.setCenterGoodsCode(activity.getActivityCode()+"_"+(i+1)); + centerGoods.setSupplierId(supplierId); + centerGoods.setSupplierCode(supplier.getCode()); + centerGoods.setSupplierName(supplier.getName()); + //设置成本中心 + centerGoods.setCenterType(CENTER_TYPE); + centerGoods.setCenterId(supplier.getId()); + centerGoods.setCenterCode(supplier.getCode()); + centerGoods.setCenterName(supplier.getName()); + centerGoods.setCenterRate(OneHundred); + centerGoods.setCenterAmount(totalAmount); + //设置科目 + centerGoods.setSubjectId(subject.getId()); + centerGoods.setSubjectCode(subject.getSubjectCode()); + centerGoods.setSubjectName(subject.getSubjectName()); + //TODO 分配 + centerGoods.setCenterGoodsAmount(BigDecimal.ZERO); + centerGoods.setCenterGoodsRate(BigDecimal.ZERO); + centerGoods.setUsedAmount(BigDecimal.ZERO); + //设置活动时间 + centerGoods.setActEndDate(nowDate); + centerGoods.setActStartDate(nowDate); + centerGoods.setPreEndDate(nowDate); + centerGoods.setPreStartDate(nowDate); + centerGoods.setPreCheckDate(nowDate); + //设置目标 + centerGoods.setTargetId(activityGoods.getTargetId()); + centerGoods.setTargetCode(activityGoods.getTargetCode()); + centerGoods.setTargetName(activityGoods.getTargetName()); + centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); + centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); + activityCenterGoodsList.add(centerGoods); + } + + //保存活动有关数据 + costApplyService.save(costApply); + activity.setCostApplyId(costApply.getId()); + activityService.save(activity); + activitySubject.setCostApplyId(costApply.getId()); + activitySubject.setActivityId(activity.getId()); + activitySubjectService.save(activitySubject); + activityCenter.setCostApplyId(costApply.getId()); + activityCenter.setActivityId(activity.getId()); + activityCenterService.save(activityCenter); + activityGoodsList.forEach(item->{ + item.setCostApplyId(costApply.getId()); + item.setActivityId(activity.getId()); + }); + activityGoodsService.saveBatch(activityGoodsList); + activityCenterGoodsList.forEach(item->{ + item.setCostApplyId(costApply.getId()); + item.setActivityId(activity.getId()); + }); + activityCenterGoodsService.saveBatch(activityCenterGoodsList); + + //获取匹配的预算结果 + TbsBudgetCostResult budgetCostResult = budgetApplicationService.buildBudgetCostResult( + costApply.getId(), + Arrays.asList(activity), + Arrays.asList(activitySubject), + activityCenterGoodsList, + Arrays.asList(activityCenter),true,false,false); + List matchBudgetItem = budgetCostResult.getBudgetMatchList(); + //TODO 匹配列表生成预算日志 + List unMatchBudgetItem = budgetCostResult.getBudgetUnMatchList(); + //不匹配保存到无预算标 + + } + + /** + * 创建流程中,初始化SKU列表 + * @param createBo + * @return + */ + private List initSkuListOfProcess(ProcessCreateBo createBo) { + List goodsSkus = null; + if(CollectionUtil.isNotEmpty(createBo.getGoodsList())){ + List invCodes = createBo.getGoodsList().stream() + .map(ProcessGoodsItem::getInventoryCode).distinct().collect(Collectors.toList()); + LambdaQueryWrapper skuLqw = new LambdaQueryWrapper<>(); + skuLqw.in(GoodsSku::getSkuCode,invCodes); + goodsSkus = goodsSkuService.list(skuLqw); + if(invCodes.size()!=goodsSkus.size()){ + List skuCodeNotExistList = new ArrayList<>(); + for (String invCode : invCodes) { + boolean notExist = true; + for (GoodsSku sku : goodsSkus) { + if(sku.getSkuCode().equals(invCode)){ + notExist = false; + break; + } + } + if(notExist){ + skuCodeNotExistList.add(invCode); + } + } + if(skuCodeNotExistList.size()>0){ + String invCodesString = skuCodeNotExistList.stream().collect(Collectors.joining(",")); + Assert.throwEx("存货编码["+invCodesString+"]不存在,请重新编辑"); + } + } + } + if(goodsSkus==null){ + Assert.throwEx("存货编码未设置,请重新编辑"); + } + return goodsSkus; } } 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 0c527742..439447d4 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 @@ -67,6 +67,7 @@ public class VtbVerificationController { private SeeYonService seeYonService; private VtbVerificationApplication verificationApplication; private VtbVerificationYardService verificationYardService; + private VtbVerificationYardItemService vtbVerificationYardItemService; /** @@ -136,15 +137,25 @@ public class VtbVerificationController { * @return */ @GetMapping("/getForCommentList/{id}") - @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.QUERY) public R getForCommentList(@PathVariable("id") String id){ + VtbVerification verification = vtbVerificationService.getById(id); LambdaQueryWrapper yardLqw = new LambdaQueryWrapper<>(); yardLqw.eq(VtbVerificationYard::getVerificationId,id); + yardLqw.orderByDesc(VtbVerificationYard::getId); List yardList = verificationYardService.list(yardLqw); for (VtbVerificationYard yard : yardList) { - + LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); + itemLqw.eq(VtbVerificationYardItem::getYardId,yard.getId()); + itemLqw.apply("(last_amount!=curr_amount or last_session!=curr_session or last_person!=curr_person)"); + List yardItemList = vtbVerificationYardItemService.list(itemLqw); + yard.setYardItemList(yardItemList); + SysUser sysUser = sysUserService.getById(yard.getCreateBy()); + yard.setUserInfo(sysUser.toSysUserVo()); } - return R.ok(); + Map result = new HashMap<>(2); + result.put("verification",verification); + result.put("commentLines",yardList); + return R.ok(result); } /** diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java index 3b41917f..7173a91d 100644 --- a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java @@ -4,6 +4,7 @@ import java.time.LocalDate; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -92,5 +93,11 @@ public class VtbVerificationYard implements Serializable { @NotNull(message = "是否无效不能为空") private Integer effectiveFlag; + @TableField(exist = false) + private List yardItemList; + + @TableField(exist = false) + private Object userInfo; + } 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 4d3e0424..3da7577e 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 @@ -153,15 +153,16 @@ public class VtbVerificationApplication { yardItem.setLastSession(currVs.getCountSession()); yardItem.setCurrSession(currVs.getCountSession()); if(countSession != null){ - if(!countSession.equals(currVs.getCountSession())){ - yardItem.setLastSession(currVs.getCountSession()); + Integer lastSession = currVs.getCountSession(); + if(!countSession.equals(lastSession)){ + yardItem.setLastSession(lastSession); yardItem.setCurrSession(countSession); VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); verSub4Upd.setId(currVs.getId()); verSub4Upd.setCountPerson(countSession); verSubject4Update.add(verSub4Upd); - if(currVs.getCountSession()!=null){ - if(currVs.getCountSession()>countSession){ + if(lastSession!=null){ + if(lastSession > countSession){ yardItem.setRemark2("减少场次:"+ (currVs.getCountSession() - countSession)); }else { yardItem.setRemark2("增加场次:"+ (countSession - currVs.getCountSession())); @@ -173,18 +174,19 @@ public class VtbVerificationApplication { yardItem.setLastSession(currVs.getCountSession()); yardItem.setCurrSession(currVs.getCountSession()); if( countPerson != null ){ - if(!countPerson.equals(currVs.getCountPerson())){ - yardItem.setLastPerson(currVs.getCountPerson()); + Integer lastPerson = currVs.getCountPerson(); + if(!countPerson.equals(lastPerson)){ + yardItem.setLastPerson(lastPerson); yardItem.setCurrPerson(countPerson); VtbVerificationSubject verSub4Upd = new VtbVerificationSubject(); verSub4Upd.setId(currVs.getId()); verSub4Upd.setCountPerson(countPerson); verSubject4Update.add(verSub4Upd); - if(currVs.getCountPerson()!=null){ - if(currVs.getCountPerson()>countPerson){ - yardItem.setRemark3("减少人数:"+ (currVs.getCountPerson() - countPerson)); + if(lastPerson!=null){ + if(lastPerson>countPerson){ + yardItem.setRemark3("减少人数:"+ (lastPerson - countPerson)); }else { - yardItem.setRemark3("增加人数:"+ (countPerson - currVs.getCountPerson())); + yardItem.setRemark3("增加人数:"+ (countPerson - lastPerson)); } } }