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 c387dd23..5404a214 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 @@ -24,5 +24,8 @@ public class ProjectApisProperties { /** 嘉士利接口,spu转换sku */ private String spuToSku; - + /** + * 原是生成销路通apt的中间表,替换伟成的接口直接生成 + */ + private String policySync; } diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index 68a3ef0a..175a2188 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java @@ -27,7 +27,9 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * BI报表 ROI费率 @@ -42,7 +44,7 @@ public class BirRoiRateController { private BirRoiRateService birRoiRateService; private BirBaseActivityService activityService; - private BirActivityCenterGoodsService activityCenterGoodsService; + private BirActivityCenterGoodsService birActivityCenterGoodsService; private BirReportAccountBookService birReportAccountBookService; private TbsBudgetService tbsBudgetService; private BirCenterRateService birCenterRateService; @@ -188,5 +190,18 @@ public class BirRoiRateController { return R.ok(sysDictData.getKeyVal(),"ok"); } + + /** + * 重新指定费用申请生成bir + * @return + */ + @GetMapping("/rebuildBir") + public R rebuildBir(){ + Long[] costIds = new Long[]{ + }; + birActivityCenterGoodsService.rebuildBir(Arrays.asList(costIds).stream().distinct().collect(Collectors.toList())); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/bir/service/BirActivityCenterGoodsService.java b/src/main/java/com/qs/serve/modules/bir/service/BirActivityCenterGoodsService.java index cd871199..45754471 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/BirActivityCenterGoodsService.java +++ b/src/main/java/com/qs/serve/modules/bir/service/BirActivityCenterGoodsService.java @@ -29,5 +29,8 @@ public interface BirActivityCenterGoodsService extends IService listMonthCusCenterVo(BirMonthCusCenterSo param); + + void rebuildBir(List costApplyId); + } diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java index db057057..fe145d41 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirActivityCenterGoodsServiceImpl.java @@ -207,6 +207,92 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl costApplyIds) { + + LambdaQueryWrapper costLqw = new LambdaQueryWrapper<>(); + costLqw.in(TbsActivityCenterGoods::getCostApplyId,costApplyIds); + List activityCenterGoodsAllList = tbsActivityCenterGoodsMapper.selectList(costLqw); + + if(activityCenterGoodsAllList.size()<1){ + return; + } + // 删除历史数据 + List activityIds = activityCenterGoodsAllList.stream().filter(a->a.getId()!=null) + .map(TbsActivityCenterGoods::getActivityId).collect(Collectors.toList()); + this.buildRemoveRecode(activityIds); + + //加载所有自定义成本中心 + List costCenterList = costCenterMapper.selectList(new QueryWrapper<>()); + + // 按活动id分组 + Map> collectMap = activityCenterGoodsAllList.stream() + .collect(Collectors.groupingBy(TbsActivityCenterGoods::getActivityId)); + + LambdaQueryWrapper supplierLqw = new LambdaQueryWrapper<>(); + supplierLqw.in(BmsSupplier::getId,activityCenterGoodsAllList.stream().map(a->a.getSupplierId()).distinct().collect(Collectors.toList())); + List bmsSupplierList = bmsSupplierMapper.selectList(supplierLqw); + Map supplierMap = bmsSupplierList.stream().collect(Collectors.toMap(BmsSupplier::getId,a->a)); + + LambdaQueryWrapper regionLqw = new LambdaQueryWrapper<>(); + regionLqw.in(BmsRegion::getId,bmsSupplierList.stream().map(a->a.getRegionLast()).collect(Collectors.toList())); + List saleRegionList = regionMapper.selectList(regionLqw); + Map saleRegionMap = saleRegionList.stream().collect(Collectors.toMap(BmsRegion::getId,a->a)); + + + LambdaQueryWrapper region2Lqw = new LambdaQueryWrapper<>(); + region2Lqw.in(BmsRegion2::getId,bmsSupplierList.stream().map(a->a.getRegion2Last()).collect(Collectors.toList())); + List bizRegionList = region2Mapper.selectList(region2Lqw); + Map bizRegionMap = bizRegionList.stream().collect(Collectors.toMap(BmsRegion2::getId,a->a)); + + List costApplyList = tbsCostApplyMapper.selectBatchIds(costApplyIds); + + Map> costApplyMap = costApplyList.stream().collect(Collectors.groupingBy(TbsCostApply::getId)); + + for (Long activityId : collectMap.keySet()) { + //用于保存的对象列表 + List bacgList = new ArrayList<>(); + + //创建对象列表 + List activityCenterGoodsList = collectMap.get(activityId); + + TbsActivityCenterGoods tempGoods = activityCenterGoodsList.get(0); + TbsCostApply costApply = costApplyMap.get(tempGoods.getCostApplyId()).get(0); + + for (TbsActivityCenterGoods activityCenterGoods : activityCenterGoodsList) { + LocalDate actStartDate = activityCenterGoods.getPreStartDate(); + LocalDate actEndDate = activityCenterGoods.getPreEndDate(); + int currentActDays = (int) (actEndDate.toEpochDay()-actStartDate.toEpochDay()+1); + List dateSplitList = DateSplitUtil.getSplitDto(actStartDate,actEndDate); + if(dateSplitList.size()>1){ + for (DateSplitDTO currDateSplit : dateSplitList) { + //获取该项分割金额对象 + BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods, + dateSplitList, currDateSplit,currentActDays); + //创建底表对象 + BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList, + activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap,costApply); + bacgList.add(entity); + } + }else if (dateSplitList.size()==1){ + DateSplitDTO currDateSplit = dateSplitList.get(0); + //获取该项分割金额对象 + BirCenterGoodSplitDTO goodSplitDTO = this.buildSplitAmount(activityCenterGoods, + dateSplitList, currDateSplit,currentActDays); + //创建底表对象 + BirActivityCenterGoods entity = createBirActivityCenterGoodsEntity(costCenterList, + activityCenterGoods, currentActDays, currDateSplit, goodSplitDTO,supplierMap,saleRegionMap,bizRegionMap,costApply); + bacgList.add(entity); + } + } + if(bacgList.size()>0){ + this.saveBatch(bacgList); + } + } + } + + private void buildRemoveRecode(List activityIds) { if(CollectionUtil.isNotEmpty(activityIds)) { LambdaQueryWrapper birBaseActivityLqw = new LambdaQueryWrapper<>(); @@ -453,7 +539,7 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl baseCreateProcess(BaseCreateProcessBo createProcessBo) { String title = "【创建流程】"; - return seeYonRequestBaseService.postBase(TbsSeeYonConst.API_PROCESS_CREATE,createProcessBo,title); + R result = seeYonRequestBaseService.postBase(TbsSeeYonConst.API_PROCESS_CREATE,createProcessBo,title); + return result; } @Override diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java index ad16903d..c6b5755b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java @@ -260,7 +260,7 @@ public class TbsActivityCenterGoods implements Serializable { /** 后台参数:用于生成BIR */ @TableField(exist = false) - private Integer activityFinishedFlag; + private Integer activityFinishedFlag = 0; @TableField(exist = false) private List queryGoodsGroups; 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 b5267b65..b86aeb72 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 @@ -405,7 +405,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl flowIdResult = null; - //TODO 启用新方法开关 + //启用新方法开关 boolean newWay = true; if(newWay && tbsCostApply.getContractFlag().equals(1)){ List uploadFileList = new ArrayList<>(); @@ -449,9 +449,12 @@ public class TbsCostApplyServiceImpl extends ServiceImpl45){ + flowId = flowId.substring(0,40); + } String formId = null; R formIdResult = seeYonService.getFormId(templateCode,tbsCostApply.getId()); if(formIdResult.getStatus()==200){ 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 33de42ff..8275ba88 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java @@ -148,6 +148,7 @@ public class PortalOfCostController { syncLog.setSuccessStatus(1); } catch (Exception e) { log.error("站式创建费用(费用申请)===>{}", JsonUtil.objectToJson(createBo)); + e.printStackTrace(); syncLog.setFailReason(e.getMessage()); sysSyncLogService.save(syncLog); return R.error(e.getMessage()); 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 4c660fdb..81f4bf55 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 @@ -248,7 +248,7 @@ public class PortalOfCostApplication { //发票号 String billNumber = createBo.getBillNumber(); //校验商品信息 - List skuCodes = createBo.getGoodsList().stream().map(a->a.getInventoryCode()).collect(Collectors.toList()); + List skuCodes = createBo.getGoodsList().stream().map(ProcessGoodsItem::getInventoryCode).collect(Collectors.toList()); //初始化sku列表 List processGoodsItems = createBo.getGoodsList(); List invCodes = new ArrayList<>(); @@ -284,6 +284,8 @@ public class PortalOfCostApplication { costApply.setTotalActivityUsedAmount(totalAmount); costApply.setPolicyItemId(policyItem.getId()); costApply.setSubmitTime(LocalDateTime.now()); + //2024年1月17日,添加 + costApply.setRemark(createBo.getErpCode()); //构建活动 TbsActivity activity = new TbsActivity(); activity.setActivityCode(activityCode); @@ -418,7 +420,9 @@ public class PortalOfCostApplication { tbsLogLqw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_11.getCode()); tbsLogLqw.isNull(TbsBudgetLog::getCostApplyId); TbsBudgetLog oriPolicyBudgetLog = budgetLogService.getOne(tbsLogLqw); - + if(oriPolicyBudgetLog==null){ + Assert.throwEx("政策预算数据异常"); + } TbsBudgetLog dropPolicyBudgetLog = new TbsBudgetLog(); CopierUtil.copy(oriPolicyBudgetLog,dropPolicyBudgetLog); dropPolicyBudgetLog.setId(null); @@ -609,11 +613,25 @@ public class PortalOfCostApplication { List invCodeList = new ArrayList<>(); if(CollectionUtil.isNotEmpty(createBo.getGoodsList())){ invCodeList = createBo.getGoodsList().stream() - .map(ProcessGoodsItem::getInventoryCode).distinct().collect(Collectors.toList()); + .map(ProcessGoodsItem::getInventoryCode).distinct() + .filter(StringUtils::hasText).collect(Collectors.toList()); + } + if(invCodeList.size()<1){ + Assert.throwEx("请选择存货提交"); } List skuList = this.initSkuListOfProcess(invCodeList); if(skuList.size()!=invCodeList.size()){ - Assert.throwEx("品类缺失"); + Set missCodes = new HashSet<>(); + for (String code : invCodeList) { + boolean noneMatch = skuList.stream().noneMatch(a->a.getSkuCode().equals(code)); + if(noneMatch){ + missCodes.add(code); + } + } + Assert.throwEx("品类缺失:"+missCodes.stream().collect(Collectors.joining(","))); + } + if(skuList.size()<1){ + Assert.throwEx("请选择品类再提交"); } //常用参数 final String GOODS_TYPE = "sku"; diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 7e103d84..3efc9e8c 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -74,7 +74,7 @@ public class TzcPolicyController { private TbsBudgetLogService budgetLogService; private BmsRegion2Service bmsRegion2Service; - @GetMapping("succ") + //@GetMapping("succ") public R succ(Long id,String all){ if("all".equals(all)){ LambdaQueryWrapper itemLqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyTestController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyTestController.java new file mode 100644 index 00000000..eb2fdc18 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyTestController.java @@ -0,0 +1,224 @@ +package com.qs.serve.modules.tzc.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.LimitSubmit; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.BudgetLogOptFlag; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.service.BmsRegion2Service; +import com.qs.serve.modules.seeyon.entity.CtpAffairQo; +import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; +import com.qs.serve.modules.sys.entity.SysTableTemp; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysTableTempMapper; +import com.qs.serve.modules.sys.service.SysPostUserService; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; +import com.qs.serve.modules.tbs.entity.TbsBudget; +import com.qs.serve.modules.tbs.entity.TbsBudgetCostItemPolicy; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; +import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; +import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; +import com.qs.serve.modules.tbs.service.TbsBudgetCostItemPolicyService; +import com.qs.serve.modules.tbs.service.TbsBudgetLogService; +import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; +import com.qs.serve.modules.tzc.common.TzcPolicyStatus; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.entity.bo.TzcPolicyBo; +import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; +import com.qs.serve.modules.tzc.service.TzcPolicyService; +import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 政策 政策 + * @author YenHex + * @since 2023-02-20 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tzc/policyTest") +public class TzcPolicyTestController { + + private TzcPolicyService tzcPolicyService; + private TzcPolicyItemService tzcPolicyItemService; + private TzcPolicyApplicationService policyApplicationService; + private TzcPolicyOperationServiceImpl tzcPolicyOperationService; + private SysPostUserService postUserService; + private VtbVerificationService verificationService; + private TbsBudgetLogService budgetLogService; + private BmsRegion2Service bmsRegion2Service; + private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService; + private SysUserService sysUserService; + private SysTableTempMapper sysTableTempMapper; + private TzcPolicyApplicationService tzcPolicyApplicationService; + + + @GetMapping("/testSyncPolicy") + public R syncPolicy(Long policyId){ + tzcPolicyApplicationService.syncPolicy(policyId); + return R.ok(); + } + + + @GetMapping("/rebulidAllPolicy") + public R rebulidAllPolicy(){ + Long[] ids = new Long[]{ + 685L, + 771L, + 995L + }; + for (Long id : ids) { + rebuildPolicy(id); + } + return R.ok(); + } + + public R rebuildPolicy(Long policyId){ + + // TzcPolicy tzcPolicy = tzcPolicyService.getById(policyId); + //Integer tzcPolicyStatus = tzcPolicy.getPolicyStatus(); + //SysUser sysUser = sysUserService.getById(tzcPolicy.getCreateBy()); + + SysTableTemp sysTableTemp = new SysTableTemp(); + sysTableTemp.setTableName("policyId"); + sysTableTemp.setTableId(""+policyId); + sysTableTemp.setOptionTitle("PreRebuildPolicy"); + TbsBudgetCostResult result = policyApplicationService.buildBudgetCostResult(policyId,false,false); + if(result.getBudgetUnMatchList()!=null&&result.getBudgetUnMatchList().size()>0){ + sysTableTemp.setResultMsg("政策匹配预算失败"); + sysTableTempMapper.insert(sysTableTemp); + return R.error("政策匹配预算失败"); + } + LambdaQueryWrapper itemPolicyLqw = new LambdaQueryWrapper<>(); + itemPolicyLqw.eq(TbsBudgetCostItemPolicy::getPolicyId,policyId); + List orgBudgetItem = tbsBudgetCostItemPolicyService.list(itemPolicyLqw); + + List allBudgetItem = result.getPolicyBudgetMatchList(); + + boolean isMatchAll = true; + for (TbsBudgetCostItemPolicy item1 : allBudgetItem) { + boolean isMatch = false; + for (TbsBudgetCostItemPolicy item2 : orgBudgetItem) { + if(item1.getScheduleItemBudgetId().equals(item2.getScheduleItemBudgetId())&&item1.getPolicyItemId().equals(item2.getPolicyItemId())){ + isMatch = true; + } + } + if(!isMatch){ + isMatchAll = false; + break; + } + } + + if(isMatchAll){ + sysTableTemp.setResultMsg("正常"); + sysTableTempMapper.insert(sysTableTemp); + return R.ok("正常"); + }else { + sysTableTemp.setResultMsg("预算占用错误"); + sysTableTempMapper.insert(sysTableTemp); + return R.ok("预算占用错误"); + } + + +// tbsBudgetCostItemPolicyService.saveBatch(allBudgetItem); +// //保存预算使用日志 +// List budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); +// if(tzcPolicyStatus.equals(TzcPolicyStatus.Status_0_UnCommit)){ +// budgetLogService.saveBatch(budgetLogList); +// }else { +// //排除历史记录 +// LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); +// logLqw.eq(TbsBudgetLog::getPolicyId,policyId); +// logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1); +// List oldLogList = budgetLogService.list(logLqw); +// List oldLogList4Upd = oldLogList.stream().map(a->{ +// TbsBudgetLog budgetLog = new TbsBudgetLog(); +// budgetLog.setId(a.getId()); +// budgetLog.setRollbackFlag(BudgetLogRollbackFlag.State_2); +// return budgetLog; +// }).collect(Collectors.toList()); +// budgetLogService.updateBatchById(oldLogList4Upd); +// for (TbsBudgetLog budgetLog : oldLogList) { +// budgetLog.setCreateBy(null); +// budgetLog.setCreateTime(null); +// budgetLog.setUpdateBy(null); +// budgetLog.setUpdateTime(null); +// budgetLog.setId(null); +// BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_12; +// budgetLog.setAmount(TbsBudgetLogBuildUtil.buildAmount(budgetLog.getAmount(),optFlag)); +// budgetLog.setOptType(optFlag.getCode()); +// } +// budgetLogService.saveBatch(oldLogList); +// BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_13; +// budgetLogList.forEach(a->{ +// a.setOptType(optFlag.getCode()); +// a.setAmount(TbsBudgetLogBuildUtil.buildAmount(a.getAmount(),optFlag)); +// }); +// budgetLogService.saveBatch(budgetLogList); +// } + //return R.ok(); + } + + /** + * 保存预算使用日志 + * @param result + * @param sysUser + * @param tzcPolicy + * @param allBudgetItem + */ + private List saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TzcPolicy tzcPolicy, List allBudgetItem, List policyItemList) { + List budgetLogList = new ArrayList<>(); + List budgetList = result.getBudgetList(); + for (TbsBudgetCostItemPolicy item : allBudgetItem) { + //排除不匹配预算的项 + if(item.getBudgetId().equals(0L)){ + continue; + } + TbsBudget budget = null; + for (TbsBudget tbsBudget : budgetList) { + if(item.getBudgetId().equals(tbsBudget.getId())){ + budget = tbsBudget; + break; + } + } + if(budget==null){ + continue; + } + TzcPolicyItem currPolicyItem = null; + for (TzcPolicyItem policyItem : policyItemList) { + if(item.getPolicyItemId().equals(policyItem.getId())){ + currPolicyItem = policyItem; + } + } + TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_11,sysUser, tzcPolicy, item, budget,item.getPolicyItemAmount().negate(),currPolicyItem); + budgetLogList.add(budgetLog); + } + return budgetLogList; + } +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItemLog.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItemLog.java index 2bf9eedb..701cc474 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItemLog.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItemLog.java @@ -165,7 +165,6 @@ public class TzcPolicyItemLog implements Serializable { public static TzcPolicyItemLog toNewObject(TzcPolicyItem source,BigDecimal totalAmount){ TzcPolicyItemLog policyItemLog = new TzcPolicyItemLog(); - policyItemLog.setId(source.getId()); policyItemLog.setTitle(source.getTitle()); policyItemLog.setPolicyId(source.getPolicyId()); policyItemLog.setPolicyItemCode(source.getPolicyItemCode()); diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index b424ebc7..be111ce5 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tzc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.framework.manager.AsyncFactory; import com.qs.serve.common.framework.manager.AsyncManager; @@ -96,6 +97,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ private ProjectProperties projectProperties; private final BmsRegionMapper regionMapper; private final BmsRegion2Mapper region2Mapper; + private ProjectApisProperties projectApisProperties; @Override public void syncPolicy(Long policyId) { @@ -179,6 +181,14 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ policyItemDto.setInvCodeList(invCodes); policyItemDto.setPolicyGoodsItemList(goodsItems); + + String policySyncUrl = projectApisProperties.getPolicySync(); + + //String rs = HttpUtil.doPost(policySyncUrl, JsonUtil.objectToJson(policyItemDto), null); + + //log.debug("PolicySync() ==>{} \n{}",JsonUtil.objectToJson(policyItemDto),rs); + + //TODO 测试临时注释 //保存异步处理的 xiaoLuTonService.savePolicyItem(policyItemDto); TzcPolicyItem updParam = new TzcPolicyItem(); diff --git a/src/main/java/com/qs/serve/task/TbsTask.java b/src/main/java/com/qs/serve/task/TbsTask.java index 350971dc..508192bf 100644 --- a/src/main/java/com/qs/serve/task/TbsTask.java +++ b/src/main/java/com/qs/serve/task/TbsTask.java @@ -14,6 +14,7 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; @@ -34,6 +35,7 @@ public class TbsTask { private final TbsActivityService activityService; private final TbsCostApplyService tbsCostApplyService; private final TbsActivityTemplateService activityTemplateService; + private final VtbVerificationService vtbVerificationService; //每日更新过期的活动,过期则进行冻结 @@ -117,4 +119,12 @@ public class TbsTask { } + /** + * 每半小时执行一次 + */ + @Scheduled(cron="0 0/30 * * * ?") + public void syncPayToErp(){ + vtbVerificationService.toPayRequest(); + } + } diff --git a/src/main/java/com/qs/serve/task/TzcPolicyTask.java b/src/main/java/com/qs/serve/task/TzcPolicyTask.java index 4f2f9d52..48883514 100644 --- a/src/main/java/com/qs/serve/task/TzcPolicyTask.java +++ b/src/main/java/com/qs/serve/task/TzcPolicyTask.java @@ -9,6 +9,7 @@ import com.qs.serve.modules.third.entity.AptPolicyPayment; import com.qs.serve.modules.third.service.PortalOfCostApplication; import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto; import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService; import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.service.TzcPolicyService;