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 7b8bb61c..4d51c929 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 @@ -151,12 +151,12 @@ public class BirActivityCenterGoodsController { public R syncBir(Integer idType){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw - .select(TbsCostApply::getId).ne(TbsCostApply::getChargeState,0) - .eq(TbsCostApply::getCancelFlag,0) - .gt(TbsCostApply::getTotalActivity,0) - .ne(TbsCostApply::getTmpState,11) - //.le(TbsCostApply::getCreateTime, LocalDate.of(2024,1,1).atStartOfDay()) - .ge(TbsCostApply::getCreateTime, LocalDate.of(2024,1,1).atStartOfDay()) ; + .select(TbsCostApply::getId).ne(TbsCostApply::getChargeState,0) + .eq(TbsCostApply::getCancelFlag,0) + .gt(TbsCostApply::getTotalActivity,0) + .ne(TbsCostApply::getTmpState,11) + .le(TbsCostApply::getCreateTime, LocalDate.of(2024,1,1).atStartOfDay()) + .ge(TbsCostApply::getCreateTime, LocalDate.of(2024,2,1).atStartOfDay()) ; boolean ex = extracted(lqw); while (!ex){ ex = extracted(lqw); diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java index f7eaed11..9473cc06 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirCenterRateServiceImpl.java @@ -373,6 +373,11 @@ public class BirCenterRateServiceImpl implements BirCenterRateService { log.error("[{}]创建客户成本中心的费率出现异常:{}",supplierCode,e.getMessage()); } } + + costCenter.setCenterCode(centerKey); + costCenter.setCentertype(centerType); + costCenter.setCenterId(centerId); + return costCenter; } 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 293fd022..765911b2 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 @@ -101,4 +101,10 @@ public class BmsSupplierBo { private String comRegionCode; + /** + * CD订单 + * 0-> 非必填 + * 1-> 下单时必须填写CD订单信息 + */ + private Integer cdOrderFlag; } diff --git a/src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java b/src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java index 38383f57..8be89020 100644 --- a/src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java +++ b/src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java @@ -1,7 +1,14 @@ package com.qs.serve.modules.sys.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.sys.entity.SysTableTemp; +import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; /** * 临时数据表 Mapper @@ -10,5 +17,34 @@ import com.qs.serve.modules.sys.entity.SysTableTemp; */ public interface SysTableTempMapper extends BaseMapper { + @InterceptorIgnore(tenantLine = "1") + @Select("select t1.* from tbs_budget_cost_item t1 " + + " left join tbs_activity t2 on t1.activity_id = t2.id " + + " left join tbs_cost_apply t3 on t1.cost_apply_id = t3.id " + + " where 1=1 " + + " and t1.del_flag = 0 " + + " and t2.del_flag = 0 " + + " and t3.del_flag = 0 " + + " and t2.cancel_flag = 0 " + + " and t3.cancel_flag = 0 " + + " and t3.charge_state in (1,2,3) " + + //" and t1.id = 2009163" ) + " and (t1.check_state is null or t1.check_state = 0)" + + " and t3.code like '24%' limit 1000 ") + List getListByCostId(); + + @InterceptorIgnore(tenantLine = "1") + @Update("") + int updateBudgetCoistItemState(@Param("itemIds") List itemId,@Param("state") Integer state); + + @InterceptorIgnore(tenantLine = "1") + @Select("select cost_apply_id from `tbs_budget_cost_item` where check_state = 2 group by cost_apply_id ") + List getGoodsUnMatchCostIds(); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java index b2db5f23..6df2e64e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyCheckController.java @@ -104,17 +104,21 @@ public class TbsCostApplyCheckController { */ @PostMapping("/replaceCommit/{id}") public R replaceApplySyData(@PathVariable("id") Long id){ - Long[] ids = new Long[]{ id }; + Long[] ids = new Long[]{id}; LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.in(TbsCostApply::getId,Arrays.asList(ids)); //lqw.notIn(TbsCostApply::getId,Arrays.asList(notIds)); - lqw.notLike(TbsCostApply::getRemark,"审批节点重置"); - lqw.select(TbsCostApply::getId); + //lqw.notLike(TbsCostApply::getRemark,"审批节点重置"); + lqw.in(TbsCostApply::getChargeState,1,2,3); + lqw.select(TbsCostApply::getId,TbsCostApply::getChargeState,TbsCostApply::getCode); List costApplyList = tbsCostApplyService.list(lqw); + List msgs = new ArrayList<>(); for (TbsCostApply costApply : costApplyList) { - tbsCostApplyService.replaceApplySyData(costApply.getId()+""); + String msg = tbsCostApplyService.replaceApplySyData(costApply.getId()+""); + msgs.add(costApply.getCode() + " : " + msg); } + msgs.forEach(System.out::println); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java index 8ed3af76..9ce46b17 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java @@ -34,6 +34,7 @@ import com.qs.serve.modules.tbs.entity.dto.TbsCostErrorBudgetDTO; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableResultVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; import com.qs.serve.modules.tbs.entity.vo.TbsCostApplyVo; +import com.qs.serve.modules.tbs.mapper.TbsBudgetConditionMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; import com.qs.serve.modules.tbs.service.*; @@ -87,38 +88,87 @@ public class TbsCostApplyTestController { private TbsBudgetCostItemService budgetCostItemService; private TbsBudgetLogService budgetLogService; private SysTableTempMapper sysTableTempMapper; + private TbsBudgetConditionMapper tbsBudgetConditionMapper; + /** + * 判断预算商品的条件是否匹配 + * @return + */ + @GetMapping("matchGoods") + public R matchGoods(){ + for (int i = 0; i < 1000; i++) { + matchGoods1000(); + } + return R.ok(); + } - - //@GetMapping("/overspendRebuildAll") - public R ss(){ - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SysTableTemp::getOptionTitle,"rebuildCost"); - lqw.likeRight(SysTableTemp::getResultMsg,"预算未匹配"); - lqw.eq(SysTableTemp::getDealState,0); - List sysTableTempList = sysTableTempMapper.selectList(lqw); - for (SysTableTemp tableTemp : sysTableTempList) { - overRebuildCost(Long.parseLong(tableTemp.getTableId())); + @GetMapping("reBuildGoods") + public R reBuildGoods(){ + List costIds = sysTableTempMapper.getGoodsUnMatchCostIds(); + for (Long costId : costIds) { + overRebuildCost(costId); } - return R.ok(sysTableTempList.size()); + return R.ok(); } - @GetMapping("/overspendRebuild") - public R ss2(Long costId){ - return overRebuildCost(costId); + + private void matchGoods1000() { + List conditionList = tbsBudgetConditionMapper.selectList(new QueryWrapper<>()); + Map> conditionListMap = conditionList.stream().collect(Collectors.groupingBy(TbsBudgetCondition::getBudgetId)); + List budgetCostItemList = sysTableTempMapper.getListByCostId(); + if(budgetCostItemList.size()<1){ + Assert.throwEx("匹配完成"); + } + List mIds = new ArrayList<>(); + mIds.add(0L); + List umIds = new ArrayList<>(); + umIds.add(0L); + for (TbsBudgetCostItem item : budgetCostItemList) { + List conditions = conditionListMap.get(item.getBudgetId()); + if(conditions==null||conditions.size()<1){ + mIds.add(item.getId()); + continue; + } + boolean m = false; + for (TbsBudgetCondition condition : conditions) { + String itemLevels = item.getTargetLevelPathIds(); + String conGoodsId = condition.getTargetId()+""; + if(itemLevels.equals(conGoodsId) || itemLevels.contains(conGoodsId+"_")){ + mIds.add(item.getId()); + m = true; + break; + } + } + //没有匹配到预算 + if(!m){ + umIds.add(item.getId()); + } + } + sysTableTempMapper.updateBudgetCoistItemState(mIds,1); + sysTableTempMapper.updateBudgetCoistItemState(umIds,2); } + + public void saveTableTmp(SysTableTemp sysTableTemp){ sysTableTempMapper.insert(sysTableTemp); } - //@GetMapping("/overRebuildCost") public R overRebuildCost(Long costApplyId){ SysTableTemp sysTableTemp = new SysTableTemp(); sysTableTemp.setTableName("tbs_cost_apply"); sysTableTemp.setTableId(""+costApplyId); - sysTableTemp.setOptionTitle("overRebuildCost"); + //后缀数字 2 标识第几次批次 + sysTableTemp.setOptionTitle("overRebuildCost2"); + + LambdaQueryWrapper checkExist = new LambdaQueryWrapper<>(); + long count = sysTableTempMapper.selectCount(checkExist.eq(SysTableTemp::getTableId,costApplyId) + .eq(SysTableTemp::getOptionTitle,sysTableTemp.getOptionTitle())); + if(count>0){ + return R.ok(); + } + TbsCostApply costApply = tbsCostApplyService.getById(costApplyId); TbsBudgetTableResultVo resultVo = tbsBudgetMatchApplication.getMatchResult(costApplyId ,false,true); @@ -258,7 +308,7 @@ public class TbsCostApplyTestController { // 设置remark标记防止误删,移除旧的记录 for (TbsBudgetCostItem costItem : itemList) { - costItem.setRemark("toDel"); + costItem.setRemark("toDel2"); } budgetCostItemService.updateBatchById(itemList); List itemIds = itemList.stream().map(TbsBudgetCostItem::getId).collect(Collectors.toList()); @@ -271,7 +321,7 @@ public class TbsCostApplyTestController { bLqw.eq(TbsBudgetLog::getCostApplyId,costApplyId); List dbbudgetLogs = budgetLogService.list(bLqw); for (TbsBudgetLog budgetLog : dbbudgetLogs) { - budgetLog.setRemark("toDel"); + budgetLog.setRemark("toDel2"); } budgetLogService.updateBatchById(dbbudgetLogs); List budIds = dbbudgetLogs.stream().map(TbsBudgetLog::getId).collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java index 1f722404..46038044 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java @@ -61,7 +61,7 @@ public interface TbsCostApplyService extends IService { * 事故修复方法,替换原来的审批流程(仅支持无核销的审批) * @param id */ - void replaceApplySyData(String id); + String replaceApplySyData(String id); /** * 获取致远data 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 8fe28c3a..79a5f336 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 @@ -353,18 +353,18 @@ public class TbsCostApplyServiceImpl extends ServiceImpl vtbLqw = new LambdaQueryWrapper<>(); vtbLqw.eq(VtbVerification::getCostApplyId,id).in(VtbVerification::getVerificationState,0,1); if(vtbVerificationMapper.selectCount(vtbLqw)>0){ - return; + return "有核销"; } BmsSupplier supplier = bmsSupplierService.getById(tbsCostApply.getSupplierId()); @@ -463,6 +463,9 @@ public class TbsCostApplyServiceImpl extends ServiceImpl45){ flowId = flowId.substring(0,40); @@ -480,12 +483,13 @@ public class TbsCostApplyServiceImpl extends ServiceImpl centerList = centerMapList.values().stream().map(a->a.get(0)).collect(Collectors.toList()); for(TbsActivityCenter center : centerList){ TbsCostSubItem.CostCenterTranStr costCenter = BirHttpUtil.buildCostCenter(center.getCenterType(),center.getCenterId(),center.getCenterName(),supplierCode); - if(costCenter!=null){ - subList.add(costCenter); + if(costCenter==null ){ + log.error("BIR 成本中心缺失:{},{},{},{}", + center.getCenterType(), + center.getCenterId(), + center.getCenterName(), + supplierCode); + Assert.throwEx("成本中心缺失,请联系工作人员"); + } + if(costCenter.getChengBenZhongXin()==null){ + costCenter.setChengBenZhongXin(center.getCenterName()); + costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId()); } + subList.add(costCenter); } } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 938a0db1..789743a6 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -1124,9 +1124,19 @@ public class VtbVerificationServiceImpl extends ServiceImpl activityCenter = activityCenterService.listByActivity(verification.getActivityId()); for(TbsActivityCenter center : activityCenter){ TbsCostSubItem.CostCenterTranStr costCenter = BirHttpUtil.buildCostCenter(center.getCenterType(),center.getCenterId(),center.getCenterName(),activity.getSupplierCode()); - if(costCenter!=null){ - subList.add(costCenter); + if(costCenter==null ){ + log.error("BIR 成本中心缺失(核销):{},{},{},{}", + center.getCenterType(), + center.getCenterId(), + center.getCenterName(), + activity.getSupplierCode()); + Assert.throwEx("成本中心缺失,请联系工作人员"); } + if(costCenter.getChengBenZhongXin()==null){ + costCenter.setChengBenZhongXin(center.getCenterName()); + costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId()); + } + subList.add(costCenter); } } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/qs/serve/modules/wx/service/impl/WxPushServiceImpl.java b/src/main/java/com/qs/serve/modules/wx/service/impl/WxPushServiceImpl.java index a0cbd2b3..9740a23a 100644 --- a/src/main/java/com/qs/serve/modules/wx/service/impl/WxPushServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/wx/service/impl/WxPushServiceImpl.java @@ -41,9 +41,9 @@ public class WxPushServiceImpl implements WxPushService { // 发送模板消息 msgId = wxMpConfig.wxMpService().switchoverTo(appId).getTemplateMsgService().sendTemplateMsg(message); } catch (WxErrorException e) { - e.printStackTrace(); + log.warn("推送微信模板失败,{}",e.getMessage()); } - log.warn("推送微信模板信息:{}\n{}", msgId != null ? "成功" : "失败", JsonUtil.objectToJson(message)); + log.info("推送微信模板信息:{}\n{}", msgId != null ? "成功" : "失败", JsonUtil.objectToJson(message)); } @Override