From 69b99609542e75546321a3332b1ce419a2cec71d Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 8 Dec 2023 10:33:54 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84Bir;=E7=BD=91=E7=82=B9=E5=AF=BC=E5=87=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E4=BF=AE=E5=A4=8D=EF=BC=9B=E7=BD=91=E7=82=B9=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=BC=82=E5=B8=B8=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bir/mapper/BirBaseActivityMapper.java | 6 +++++ .../BirActivityCenterGoodsServiceImpl.java | 4 +++ .../controller/BmsChannelPointController.java | 25 ++++++++++--------- .../modules/tbs/entity/TbsCostApply.java | 3 +++ .../service/PortalOfCostApplication.java | 5 +--- .../mapper/bir/BirBaseActivityMapper.xml | 7 ++++++ 6 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java b/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java index c8c5575b..21d3f65a 100644 --- a/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java +++ b/src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java @@ -17,5 +17,11 @@ public interface BirBaseActivityMapper extends BaseMapper { List selectByBirActivity(@Param("startDate") LocalDate startDate, @Param("endDate")LocalDate endDate); + /** + * 作废的异常的 + * @return + */ + void deleteErrorBir(); + } 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 d4217169..db057057 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 @@ -12,6 +12,7 @@ import com.qs.serve.modules.bir.entity.BirRemoveId; import com.qs.serve.modules.bir.entity.dto.BirCenterGoodSplitDTO; import com.qs.serve.modules.bir.entity.so.BirMonthCusCenterSo; import com.qs.serve.modules.bir.entity.vo.BirActivityCenterGoodsMonthVo; +import com.qs.serve.modules.bir.mapper.BirBaseActivityMapper; import com.qs.serve.modules.bir.mapper.BirRemoveIdMapper; import com.qs.serve.modules.bms.entity.BmsCostCenter; import com.qs.serve.modules.bms.entity.BmsRegion; @@ -73,6 +74,8 @@ public class BirActivityCenterGoodsServiceImpl extends ServiceImpl activityCenterGoodsAllList = this.baseMapper.selectChangeCenterGoods(startDate,endDate,null); //异常状态的费用申请,导致的Bir + birBaseActivityMapper.deleteErrorBir(); List removeErrorBirList = this.baseMapper.selectErrorBir(); List errorActIds = removeErrorBirList.stream().map(BirActivityCenterGoods::getActivityId).distinct().collect(Collectors.toList()); this.buildRemoveRecode(errorActIds); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java index 2716d6c3..f28d444a 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java @@ -35,10 +35,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -89,7 +86,7 @@ public class BmsChannelPointController { } if(param.getExportNum() != null && param.getExportNum()!= 0 - && param.getStartNum() != null && param.getStartNum()!= 0){ + && param.getStartNum() != null ){ lqw.last(" limit "+param.getStartNum() + "," + param.getExportNum()); } @@ -337,9 +334,9 @@ public class BmsChannelPointController { } }); - List saveList = param.stream().filter(a->a.getType().equals("1")).collect(Collectors.toList()); - List updateList = param.stream().filter(a->a.getType().equals("2")).collect(Collectors.toList()); - List deleteList = param.stream().filter(a->a.getType().equals("3")).collect(Collectors.toList()); + List saveList = param.stream().filter(a-> "1".equals(a.getType())).collect(Collectors.toList()); + List updateList = param.stream().filter(a-> "2".equals(a.getType())).collect(Collectors.toList()); + List deleteList = param.stream().filter(a-> "3".equals(a.getType())).collect(Collectors.toList()); /** ------------------------------- 查渠道列表 ------------------------------------------------ */ List channelCodes = new ArrayList<>(); @@ -363,12 +360,16 @@ public class BmsChannelPointController { }); } } - Map codeToChannaledId = channelList.stream().collect(Collectors.toMap(BmsChannel::getChannelCode, a->a)); + //有重复的key这个方法会报错 + //Map codeToChannaledId = channelList.stream().collect(Collectors.toMap(BmsChannel::getChannelCode, a->a)); + Map codeToChannaledId = channelList.stream() + .filter(a->a.getChannelCode()!=null) + .collect(Collectors.toMap(BmsChannel::getChannelCode, p -> p, (o, n) -> n)); /** ----------------------------------------------------------------------------------- */ /** ------------------------------- 查行政区域列表 ------------------------------------------------ */ List bizRegionCodes = new ArrayList<>(); - bizRegionCodes.addAll(saveList.stream().filter(a->a.getBizRegionCode()!=null).map(a->a.getBizRegionCode()).collect(Collectors.toList())); - bizRegionCodes.addAll(updateList.stream().filter(a->a.getBizRegionCode()!=null).map(a->a.getBizRegionCode()).collect(Collectors.toList())); + bizRegionCodes.addAll(saveList.stream().map(BmsChannelPoint4ExcelBo::getBizRegionCode).filter(Objects::nonNull).collect(Collectors.toList())); + bizRegionCodes.addAll(updateList.stream().map(BmsChannelPoint4ExcelBo::getBizRegionCode).filter(Objects::nonNull).collect(Collectors.toList())); bizRegionCodes = bizRegionCodes.stream().distinct().collect(Collectors.toList()); List region2List = new ArrayList<>(); if(bizRegionCodes.size()>0){ @@ -463,7 +464,7 @@ public class BmsChannelPointController { /** ----------------------------------------------------------------------------------- */ /** ------------------------------- 返回错误 ------------------------------------------- */ - if(param.stream().filter(a->a.getErrorInfo().length()>0).count()>0) { + if(param.stream().filter(a->a.getErrorInfo()!=null&&a.getErrorInfo().length()>0).count()>0) { return R.ok(param, "导入失败,请打开EXCEL查询错误详情!"); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index f057c8e7..4a4b89df 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -178,6 +178,9 @@ public class TbsCostApply implements Serializable { /** 统计所有活动使用的金额 */ private BigDecimal totalActivityUsedAmount; + /** 政策项ID */ + private Long policyItemId; + /** 模板id */ private Long templateId; 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 ecbde498..ecea3a87 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 @@ -257,16 +257,12 @@ public class PortalOfCostApplication { List skuList = this.initSkuListOfProcess(invCodes); //常用参数 final String GOODS_TYPE = "sku"; - final String CENTER_TYPE = "customer"; final BigDecimal OneHundred = new BigDecimal("100"); LocalDateTime nowTime = LocalDateTime.now(); LocalDate nowDate = LocalDate.now(); - Date nowDate_ = new Date(); - String erpCode = createBo.getErpCode(); Long supplierId = Long.parseLong(supplier.getId()); BigDecimal totalAmount = createBo.getTotalAmount(); String costTheme = createBo.getCostTheme(); - String random = String.format("%03d",new Random().nextInt(999)); String costApplyCode = "CA"+CodeGenUtil.generate(CodeGenUtil.SourceKey.CostApply); String activityCode = costApplyCode + "_1"; String activityTitle = "由政策"+policyItem.getPolicyItemCode()+"核销一站式API生成的活动"; @@ -284,6 +280,7 @@ public class PortalOfCostApplication { costApply.setTotalActivity(1); costApply.setTotalActivityAmount(totalAmount); costApply.setTotalActivityUsedAmount(totalAmount); + costApply.setPolicyItemId(policyItem.getId()); //构建活动 TbsActivity activity = new TbsActivity(); activity.setActivityCode(activityCode); diff --git a/src/main/resources/mapper/bir/BirBaseActivityMapper.xml b/src/main/resources/mapper/bir/BirBaseActivityMapper.xml index b561bc0e..d81bdf45 100644 --- a/src/main/resources/mapper/bir/BirBaseActivityMapper.xml +++ b/src/main/resources/mapper/bir/BirBaseActivityMapper.xml @@ -109,5 +109,12 @@ ) + From 9701b5f98528d22ac30aef7969fa19f5c188ad35 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 8 Dec 2023 17:03:26 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E8=B4=B9=E7=94=A8(=E7=AE=A1=E7=90=86=E5=91=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BazVisitInstanceController.java | 10 +- .../baz/entity/so/BazVisitInstanceSo.java | 2 + .../service/impl/BazVisitFlowServiceImpl.java | 3 + .../modules/sys/entity/SysDeleteLog.java | 86 +++++++++++++ .../sys/mapper/SysDeleteLogMapper.java | 14 +++ .../sys/service/SysDeleteLogService.java | 21 ++++ .../service/impl/SysDeleteLogServiceImpl.java | 117 ++++++++++++++++++ .../controller/TbsBudgetLogController.java | 64 +++++++--- .../controller/TbsCostApplyController.java | 15 +++ .../tbs/mapper/TbsCostApplyRemoveMapper.java | 101 +++++++++++++++ .../vtb/common/VtbVerificationState.java | 2 + 11 files changed, 412 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/sys/entity/SysDeleteLog.java create mode 100644 src/main/java/com/qs/serve/modules/sys/mapper/SysDeleteLogMapper.java create mode 100644 src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java create mode 100644 src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java index 0dc78a36..1a22a66e 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java @@ -45,17 +45,15 @@ public class BazVisitInstanceController { */ @GetMapping("/page") public R> getPage(BazVisitInstanceSo param){ - BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance()); if(param.getQueryStartDate()!=null){ - lqw.ge(BazVisitInstance::getCreateTime,param.getQueryStartDate()); + query.setQueryEndDate(param.getQueryStartDate().atStartOfDay()); } if(param.getQueryEndDate()!=null){ - lqw.le(BazVisitInstance::getCreateTime,param.getQueryEndDate().atTime(23,59,59)); + query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59)); } PageUtil.startPage(); - lqw.orderByDesc(BazVisitInstance::getCreateTime); - List list = bazVisitInstanceService.list(lqw); + List list = bazVisitInstanceService.selectBazVisitInstanceList(query); return R.byPageHelperList(list); } diff --git a/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceSo.java b/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceSo.java index 50cf2657..893f86d1 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceSo.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceSo.java @@ -60,6 +60,8 @@ public class BazVisitInstanceSo implements Serializable { /** 遗失定位标识 */ private Integer missLocalFlag; + private String summary; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private LocalDate queryStartDate; diff --git a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java index d6fffb1d..d15e2461 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java @@ -40,6 +40,9 @@ public class BazVisitFlowServiceImpl extends ServiceImpl lqwErrCount = new LambdaQueryWrapper<>(); lqwErrCount.eq(BazVisitFlow::getVisitId,bazVisit.getId()); lqwErrCount.eq(BazVisitFlow::getFlowBizType,param.getFlowBizType()); + if(id!=null){ + lqwErrCount.ne(BazVisitFlow::getId,id); + } if(this.count(lqwErrCount)>0){ Assert.throwEx("流程中业务类型不能重复"); } diff --git a/src/main/java/com/qs/serve/modules/sys/entity/SysDeleteLog.java b/src/main/java/com/qs/serve/modules/sys/entity/SysDeleteLog.java new file mode 100644 index 00000000..35263918 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sys/entity/SysDeleteLog.java @@ -0,0 +1,86 @@ +package com.qs.serve.modules.sys.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 删除日志 实体类 + * @author YenHex + * @since 2023-12-08 + */ +@Data +@TableName("sys_delete_log") +public class SysDeleteLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 删除批次 */ + private String batchCode; + + /** 选项类型 */ + @Length(max = 50,message = "选项类型长度不能超过50字") + private String targetTable; + + /** 目标id */ + @Length(max = 100,message = "目标id长度不能超过100字") + private String targetId; + + /** 目标编码 */ + @Length(max = 100,message = "目标编码长度不能超过100字") + private String targetCode; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; + + + +} + diff --git a/src/main/java/com/qs/serve/modules/sys/mapper/SysDeleteLogMapper.java b/src/main/java/com/qs/serve/modules/sys/mapper/SysDeleteLogMapper.java new file mode 100644 index 00000000..92f26e83 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sys/mapper/SysDeleteLogMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.sys.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.sys.entity.SysDeleteLog; + +/** + * 删除日志 Mapper + * @author YenHex + * @date 2023-12-08 + */ +public interface SysDeleteLogMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java b/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java new file mode 100644 index 00000000..d365f198 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.sys.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.sys.entity.SysDeleteLog; + +/** + * 删除日志 服务接口 + * @author YenHex + * @date 2023-12-08 + */ +public interface SysDeleteLogService extends IService { + + /** + * 删除费用申请相关所有数据 + * @param costApplyId + * @param remark + */ + void deleteCostApply(Long costApplyId,String remark); + +} + diff --git a/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java b/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java new file mode 100644 index 00000000..130ec9cc --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java @@ -0,0 +1,117 @@ +package com.qs.serve.modules.sys.service.impl; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.IdUtil; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.TbsCostTodo; +import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; +import com.qs.serve.modules.tbs.mapper.TbsCostApplyRemoveMapper; +import com.qs.serve.modules.tbs.mapper.TbsCostTodoMapper; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.sys.entity.SysDeleteLog; +import com.qs.serve.modules.sys.service.SysDeleteLogService; +import com.qs.serve.modules.sys.mapper.SysDeleteLogMapper; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +/** + * 删除日志 服务实现类 + * @author YenHex + * @since 2023-12-08 + */ +@Slf4j +@Service +@AllArgsConstructor +public class SysDeleteLogServiceImpl extends ServiceImpl implements SysDeleteLogService { + + private final TbsCostApplyRemoveMapper tbsCostApplyRemoveMapper; + private final TbsCostApplyMapper tbsCostApplyMapper; + private final VtbVerificationMapper verificationMapper; + private final TbsCostTodoMapper tbsCostTodoMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteCostApply(Long costApplyId,String remark) { + TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId); + String batchCode = System.currentTimeMillis()+""; + List deleteLogList = new ArrayList<>(); + if(costApply!=null){ + SysDeleteLog deleteLog = new SysDeleteLog(); + deleteLog.setBatchCode(batchCode); + deleteLog.setTargetTable("tbs_cost_apply"); + deleteLog.setTargetId(costApply.getId()+""); + deleteLog.setTargetCode(costApply.getCode()); + deleteLog.setRemark(remark); + deleteLogList.add(deleteLog); + } + + tbsCostApplyRemoveMapper.tbs_cost_apply(costApplyId); + + tbsCostApplyRemoveMapper.tbs_activity(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_center(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_center_goods(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_goods(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_channel(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_channel_point(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_pay_condition(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_slotting_fee(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_subject(costApplyId); + tbsCostApplyRemoveMapper.tbs_activity_subject_yarn(costApplyId); + //记录进行中的核销 + LambdaQueryWrapper verificationLqw = new LambdaQueryWrapper<>(); + verificationLqw.eq(VtbVerification::getCostApplyId,costApplyId); + List vtbVerificationList = verificationMapper.selectList(verificationLqw); + for (VtbVerification verification : vtbVerificationList) { + SysDeleteLog deleteLog = new SysDeleteLog(); + deleteLog.setBatchCode(batchCode); + deleteLog.setTargetTable("vtb_verification"); + deleteLog.setTargetId(verification.getId()+""); + deleteLog.setTargetCode(verification.getVerificationCode()); + deleteLog.setRemark(remark); + deleteLogList.add(deleteLog); + } + tbsCostApplyRemoveMapper.vtb_verification(costApplyId); + tbsCostApplyRemoveMapper.pay_payment(costApplyId); + tbsCostApplyRemoveMapper.pay_payment_item(costApplyId); + tbsCostApplyRemoveMapper.tbs_budget_log(costApplyId); + tbsCostApplyRemoveMapper.tbs_budget_cost_item(costApplyId); + tbsCostApplyRemoveMapper.tbs_budget_cost_item_split(costApplyId); + tbsCostApplyRemoveMapper.vtb_fund_flow(costApplyId); + tbsCostApplyRemoveMapper.bir_activity_center_goods(costApplyId); + tbsCostApplyRemoveMapper.bir_base_activity(costApplyId); + tbsCostApplyRemoveMapper.bir_payment_item(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_subject(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_yard_item(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_yard_center_item(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_subject_center(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_channel_point(costApplyId); + tbsCostApplyRemoveMapper.vtb_verification_channel(costApplyId); + tbsCostApplyRemoveMapper.tbs_cost_contract(costApplyId); + tbsCostApplyRemoveMapper.tbs_cost_percent(costApplyId); + //记录进行中的协议条款 + LambdaQueryWrapper todoLqw = new LambdaQueryWrapper<>(); + todoLqw.eq(TbsCostTodo::getCostApplyId,costApplyId); + List costTodoList = tbsCostTodoMapper.selectList(todoLqw); + for (TbsCostTodo costTodo : costTodoList) { + SysDeleteLog deleteLog = new SysDeleteLog(); + deleteLog.setBatchCode(batchCode); + deleteLog.setTargetTable("tbs_cost_todo"); + deleteLog.setTargetId(costTodo.getId()+""); + deleteLog.setTargetCode(costTodo.getTodoCode()); + deleteLog.setRemark(remark); + deleteLogList.add(deleteLog); + } + tbsCostApplyRemoveMapper.tbs_cost_todo(costApplyId); + this.saveBatch(deleteLogList); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java index af8741a4..8845b540 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java @@ -21,6 +21,7 @@ import com.qs.serve.modules.tbs.service.TbsBudgetService; import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.Nullable; import org.springframework.web.bind.annotation.*; import com.qs.serve.modules.tbs.entity.so.TbsBudgetLogSo; @@ -117,16 +118,57 @@ public class TbsBudgetLogController { lqw.eq(TbsScheduleItemBudget::getBudgetId,budgetId); lqw.eq(TbsScheduleItemBudget::getScheduleItemId,itemId); List tbsScheduleItemBudgetList = tbsScheduleItemBudgetService.list(lqw); + TbsScheduleItemBudget rs = this.getItemBudget(budgetId, tbsScheduleItemBudgetList); + return R.ok(rs); + } + + + + /** + * 获取统计金额(返回预算列表) + * @param budgetId + * @return + */ + @GetMapping("/getItemListAmount") + public R> getItemListAmount(Long budgetId){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsScheduleItemBudget::getBudgetId,budgetId); + List tbsScheduleItemBudgetList = tbsScheduleItemBudgetService.list(lqw); + + Map> tbsScheduleItemBudgetListMap = tbsScheduleItemBudgetList.stream() + .collect(Collectors.groupingBy(TbsScheduleItemBudget::getScheduleItemId)); + List resultList = new ArrayList<>(); + for (Long schItemId : tbsScheduleItemBudgetListMap.keySet()) { + tbsScheduleItemBudgetList = tbsScheduleItemBudgetListMap.get(schItemId); + TbsScheduleItemBudget rs = this.getItemBudget(budgetId, tbsScheduleItemBudgetList); + resultList.add(rs); + } + return R.ok(resultList); + } + + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Budget, title = "预算日志", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + TbsBudgetLog tbsBudgetLog = tbsBudgetLogService.getById(id); + return R.ok(tbsBudgetLog); + } + @Nullable + private TbsScheduleItemBudget getItemBudget(Long budgetId, List tbsScheduleItemBudgetList) { Optional optional = tbsScheduleItemBudgetList.stream().findFirst(); + TbsScheduleItemBudget rs = null; if(optional.isPresent()){ TbsScheduleItemBudget a = optional.get(); LambdaQueryWrapper lqwLog = new LambdaQueryWrapper<>(); lqwLog.eq(TbsBudgetLog::getScheduleItemBudgetId,a.getId()); - lqwLog.eq(TbsBudgetLog::getBudgetId,budgetId); + lqwLog.eq(TbsBudgetLog::getBudgetId, budgetId); List tbsBudgetLogList = budgetLogService.list(lqwLog); -// a.setBudgetLogList(tbsBudgetLogList); - BigDecimal finalBudgetAmount = tbsBudgetLogList.stream().filter(b-> BudgetLogOptFlag.getFinalBudgetOptFlag().contains(b.getOptType())).map(TbsBudgetLog::getAmount) .reduce(BigDecimal.ZERO,BigDecimal::add); @@ -139,21 +181,9 @@ public class TbsBudgetLogController { a.setFinalBudgetAmount(finalBudgetAmount); a.setUnUsedBudgetAmount(unUsedBudgetAmount); a.setUsedBudgetAmount(usedBudgetAmount); - return R.ok(a); + rs = a; } - return R.ok(); - } - - /** - * ID查询 - * @param id - * @return - */ - @GetMapping("/getById/{id}") - @SysLog(module = SystemModule.Budget, title = "预算日志", biz = BizType.QUERY) - public R getById(@PathVariable("id") String id){ - TbsBudgetLog tbsBudgetLog = tbsBudgetLogService.getById(id); - return R.ok(tbsBudgetLog); + return rs; } } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index 31ede8a2..ce91abcd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -20,6 +20,7 @@ import com.qs.serve.modules.seeyon.entity.CtpAffairQo; import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysDeleteLogService; import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsCostApplyState; @@ -81,6 +82,7 @@ public class TbsCostApplyController { private TbsBudgetCostItemService tbsBudgetCostItemService; private TbsBudgetLogService tbsBudgetLogService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; + private SysDeleteLogService deleteLogService; /** @@ -509,5 +511,18 @@ public class TbsCostApplyController { return R.ok(resultInfoList); } + + /** + * 移除费用申请 + * @param costApplyId + * @param remark + * @return + */ + @GetMapping("removeByAdmin") + public R removeByAdmin(Long costApplyId,String remark){ + deleteLogService.deleteCostApply(costApplyId,remark); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java new file mode 100644 index 00000000..e4d875e8 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java @@ -0,0 +1,101 @@ +package com.qs.serve.modules.tbs.mapper; + +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +/** + * @author YenHex + * @since 2023/12/8 + */ +public interface TbsCostApplyRemoveMapper { + + @Update("update tbs_cost_apply set del_flag = 0 where id = #{costApplyId}") + int tbs_cost_apply(@Param("costApplyId") Long costId); + + @Update("update tbs_activity set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_center set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_center(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_center_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_center_goods(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_goods(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_channel set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_channel(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_channel_point set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_channel_point(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_pay_condition set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_pay_condition(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_slotting_fee set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_slotting_fee(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_subject set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_subject(@Param("costApplyId") Long costId); + + @Update("update tbs_activity_subject_yarn set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_activity_subject_yarn(@Param("costApplyId") Long costId); + + @Update("update vtb_verification set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification(@Param("costApplyId") Long costId); + + @Update("update pay_payment set del_flag = 0 where cost_apply_id = #{costApplyId}") + int pay_payment(@Param("costApplyId") Long costId); + + @Update("update pay_payment_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + int pay_payment_item(@Param("costApplyId") Long costId); + + @Update("update tbs_budget_log set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_budget_log(@Param("costApplyId") Long costId); + + @Update("update tbs_budget_cost_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_budget_cost_item(@Param("costApplyId") Long costId); + + @Update("update tbs_budget_cost_item_split set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_budget_cost_item_split(@Param("costApplyId") Long costId); + + @Update("update vtb_fund_flow set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_fund_flow(@Param("costApplyId") Long costId); + + @Update("update bir_activity_center_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + int bir_activity_center_goods(@Param("costApplyId") Long costId); + + @Update("update bir_base_activity set del_flag = 0 where cost_apply_id = #{costApplyId}") + int bir_base_activity(@Param("costApplyId") Long costId); + + @Update("update bir_payment_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + int bir_payment_item(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_subject set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_subject(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_yard_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_yard_item(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_yard_center_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_yard_center_item(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_subject_center set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_subject_center(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_channel_point set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_channel_point(@Param("costApplyId") Long costId); + + @Update("update vtb_verification_channel set del_flag = 0 where cost_apply_id = #{costApplyId}") + int vtb_verification_channel(@Param("costApplyId") Long costId); + + @Update("update tbs_cost_contract set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_cost_contract(@Param("costApplyId") Long costId); + + @Update("update tbs_cost_percent set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_cost_percent(@Param("costApplyId") Long costId); + + @Update("update tbs_cost_todo set del_flag = 0 where cost_apply_id = #{costApplyId}") + int tbs_cost_todo(@Param("costApplyId") Long costId); +} diff --git a/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java b/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java index 991604c9..1c0e49d8 100644 --- a/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java +++ b/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java @@ -21,4 +21,6 @@ public enum VtbVerificationState { private Integer code; + + } From 0ec13333f0680e558e33183bc71bc00417c270f8 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 8 Dec 2023 17:48:23 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E8=B4=B9=E7=94=A8(=E7=AE=A1=E7=90=86=E5=91=98debug)=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E9=A2=9D=E5=BC=82=E5=B8=B8=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TbsCostApplyController.java | 7 ++ .../tbs/mapper/TbsCostApplyRemoveMapper.java | 65 ++++++++++--------- .../TbsCostApplyOperationServiceImpl.java | 3 +- .../service/impl/TbsDealErrorApplication.java | 2 - 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index ce91abcd..f64033bf 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -524,5 +524,12 @@ public class TbsCostApplyController { return R.ok(); } + public R dealCostBudget(Long costApplyId){ + //调整center_goods和budget_log之间的占用 + + //改方法支持审批完成时回调更新 + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java index e4d875e8..b6554638 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java @@ -1,5 +1,7 @@ package com.qs.serve.modules.tbs.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; @@ -9,93 +11,96 @@ import org.apache.ibatis.annotations.Update; */ public interface TbsCostApplyRemoveMapper { - @Update("update tbs_cost_apply set del_flag = 0 where id = #{costApplyId}") + @Update("update tbs_cost_apply set del_flag = 1 where id = #{costApplyId}") int tbs_cost_apply(@Param("costApplyId") Long costId); - @Update("update tbs_activity set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity(@Param("costApplyId") Long costId); - @Update("update tbs_activity_center set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_center set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_center(@Param("costApplyId") Long costId); - @Update("update tbs_activity_center_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_center_goods set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_center_goods(@Param("costApplyId") Long costId); - @Update("update tbs_activity_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_goods set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_goods(@Param("costApplyId") Long costId); - @Update("update tbs_activity_channel set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_channel set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_channel(@Param("costApplyId") Long costId); - @Update("update tbs_activity_channel_point set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_channel_point set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_channel_point(@Param("costApplyId") Long costId); - @Update("update tbs_activity_pay_condition set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_pay_condition set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_pay_condition(@Param("costApplyId") Long costId); - @Update("update tbs_activity_slotting_fee set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_slotting_fee set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_slotting_fee(@Param("costApplyId") Long costId); - @Update("update tbs_activity_subject set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_subject set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_subject(@Param("costApplyId") Long costId); - @Update("update tbs_activity_subject_yarn set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_activity_subject_yarn set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_activity_subject_yarn(@Param("costApplyId") Long costId); - @Update("update vtb_verification set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification(@Param("costApplyId") Long costId); - @Update("update pay_payment set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update pay_payment set del_flag = 1 where cost_apply_id = #{costApplyId}") int pay_payment(@Param("costApplyId") Long costId); - @Update("update pay_payment_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update pay_payment_item set del_flag = 1 where cost_apply_id = #{costApplyId}") int pay_payment_item(@Param("costApplyId") Long costId); - @Update("update tbs_budget_log set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_budget_log set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_budget_log(@Param("costApplyId") Long costId); - @Update("update tbs_budget_cost_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_budget_cost_item set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_budget_cost_item(@Param("costApplyId") Long costId); - @Update("update tbs_budget_cost_item_split set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_budget_cost_item_split set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_budget_cost_item_split(@Param("costApplyId") Long costId); - @Update("update vtb_fund_flow set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_fund_flow set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_fund_flow(@Param("costApplyId") Long costId); - @Update("update bir_activity_center_goods set del_flag = 0 where cost_apply_id = #{costApplyId}") + @InterceptorIgnore(tenantLine = "true") + @Delete("delete from bir_activity_center_goods where cost_apply_id = #{costApplyId}") int bir_activity_center_goods(@Param("costApplyId") Long costId); - @Update("update bir_base_activity set del_flag = 0 where cost_apply_id = #{costApplyId}") + @InterceptorIgnore(tenantLine = "true") + @Delete("delete from bir_base_activity where cost_apply_id = #{costApplyId}") int bir_base_activity(@Param("costApplyId") Long costId); - @Update("update bir_payment_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + @InterceptorIgnore(tenantLine = "true") + @Delete("delete from bir_payment_item where cost_apply_id = #{costApplyId}") int bir_payment_item(@Param("costApplyId") Long costId); - @Update("update vtb_verification_subject set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_subject set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_subject(@Param("costApplyId") Long costId); - @Update("update vtb_verification_yard_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_yard_item set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_yard_item(@Param("costApplyId") Long costId); - @Update("update vtb_verification_yard_center_item set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_yard_center_item set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_yard_center_item(@Param("costApplyId") Long costId); - @Update("update vtb_verification_subject_center set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_subject_center set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_subject_center(@Param("costApplyId") Long costId); - @Update("update vtb_verification_channel_point set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_channel_point set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_channel_point(@Param("costApplyId") Long costId); - @Update("update vtb_verification_channel set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update vtb_verification_channel set del_flag = 1 where cost_apply_id = #{costApplyId}") int vtb_verification_channel(@Param("costApplyId") Long costId); - @Update("update tbs_cost_contract set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_cost_contract set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_cost_contract(@Param("costApplyId") Long costId); - @Update("update tbs_cost_percent set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_cost_percent set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_cost_percent(@Param("costApplyId") Long costId); - @Update("update tbs_cost_todo set del_flag = 0 where cost_apply_id = #{costApplyId}") + @Update("update tbs_cost_todo set del_flag = 1 where cost_apply_id = #{costApplyId}") int tbs_cost_todo(@Param("costApplyId") Long costId); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java index 4d7136d3..7ec87abe 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java @@ -345,7 +345,8 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService List budgetLogList = tbsBudgetLogMapper.selectList(budgetLogLqw); for (TbsBudgetLog budgetLog : budgetLogList) { for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { - if( budgetLog.getSubjectId().equals(centerGoods.getSubjectId()) + if( budgetLog.getActivityId().equals(centerGoods.getActivityId()) + &&budgetLog.getSubjectId().equals(centerGoods.getSubjectId()) && budgetLog.getCenterType().equals(centerGoods.getCenterType()) && budgetLog.getCenterId().equals(centerGoods.getCenterId()) ){ diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java index f35a9604..810eb638 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsDealErrorApplication.java @@ -101,8 +101,6 @@ public class TbsDealErrorApplication { } } - - } } From d951d0ea1d8a19f26488d3b3dd81af4a06164c36 Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 11 Dec 2023 22:31:06 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tbs/controller/TbsActivityController.java | 1 + .../TbsActivityTemplateController.java | 2 +- .../controller/TbsCostApplyController.java | 111 +++++++++++++++++- .../tbs/entity/TbsActivityTemplate.java | 2 +- .../tbs/entity/bo/TbsActivityTemplateBo.java | 1 - .../tbs/entity/dto/TbsActivityAmtCheck.java | 20 ++++ .../tbs/entity/dto/TbsCostErrorBudgetDTO.java | 29 +++++ .../tbs/mapper/TbsActivityAmtCheckMapper.java | 23 ++++ .../tbs/mapper/TbsCostApplyMapper.java | 27 +++++ .../tbs/service/TbsActivityService.java | 6 + .../service/impl/TbsActivityServiceImpl.java | 24 +++- .../mapper/tbs/TbsCostApplyMapper.xml | 27 +++++ 12 files changed, 264 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActivityAmtCheck.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostErrorBudgetDTO.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityAmtCheckMapper.java 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 df42694a..114d2612 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 @@ -542,5 +542,6 @@ public class TbsActivityController { } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java index e98eba44..c79101b6 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java @@ -146,7 +146,7 @@ public class TbsActivityTemplateController { @PostMapping("/save") @SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.INSERT) @PreAuthorize("hasRole('tbs:activityTemplate:insert')") - public R save(@RequestBody @Valid TbsActivityTemplateBo param){ + public R save(@RequestBody TbsActivityTemplateBo param){ if(param.getId()!=null){ return R.error("id is not null"); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index f64033bf..fe05aa3a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -32,9 +32,12 @@ import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetScheduleWithAmount; import com.qs.serve.modules.tbs.entity.dto.TbsCostBudgetRelateInfo; +import com.qs.serve.modules.tbs.entity.dto.TbsCostErrorBudgetDTO; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; 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.TbsBudgetLogMapper; +import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; import lombok.AllArgsConstructor; @@ -65,6 +68,7 @@ public class TbsCostApplyController { private TbsCostApplyService tbsCostApplyService; private TbsActivityService tbsActivityService; private TbsActivityTemplateService tbsActivityTemplateService; + private TbsActivityCenterGoodsService tbsActivityCenterGoodsService; private final TbsActivityGoodsService activityGoodsService; private final TbsActivitySubjectService activitySubjectService; private final TbsActivityCenterService activityCenterService; @@ -72,6 +76,7 @@ public class TbsCostApplyController { private final TbsActivityChannelService activityChannelService; private final TbsActivityChannelPointService activityChannelPointService; private BmsSupplierService bmsSupplierService; + private final TbsBudgetLogMapper tbsBudgetLogMapper; private BmsRegion2Service region2Service; private SysUserService sysUserService; private TbsBudgetApplicationService budgetApplicationService; @@ -83,6 +88,7 @@ public class TbsCostApplyController { private TbsBudgetLogService tbsBudgetLogService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; private SysDeleteLogService deleteLogService; + private TbsCostApplyMapper tbsCostApplyMapper; /** @@ -524,11 +530,110 @@ public class TbsCostApplyController { return R.ok(); } - public R dealCostBudget(Long costApplyId){ + + @GetMapping("rebuildBudgetLog") + public void dealCostBudget(Long costApplyId){ + List costErrorBudgetDTOList = tbsCostApplyMapper.selectCostErrorBudgetDTO(); + for (TbsCostErrorBudgetDTO budgetDTO : costErrorBudgetDTOList) { + rebuildBudgetLog(budgetDTO.getId()); + } + } + + /** + * 方法不可行 + */ + @Deprecated + //@GetMapping("rebuildBudgetLog2") + public void dealCostBudget2(){ + List costErrorBudgetDTOList = new ArrayList<>(); + costErrorBudgetDTOList.add(new TbsCostErrorBudgetDTO()); + //List costErrorBudgetDTOList = tbsCostApplyMapper.selectCostErrorBudgetDTO(); + for (TbsCostErrorBudgetDTO budgetDTO : costErrorBudgetDTOList) { + //Long costApplyId = budgetDTO.getId(); + Long costApplyId = 115356L; + //BigDecimal diff = budgetDTO.getTotalActivityAmount().subtract(budgetDTO.getSumBudget()); +// if(diff.abs().compareTo(BigDecimal.ONE)<0){ + LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); + logLqw.eq(TbsBudgetLog::getCostApplyId,costApplyId); + logLqw.lt(TbsBudgetLog::getOptType,7); + List budgetLogList = tbsBudgetLogMapper.selectList(logLqw); + + List budgetCostItemList = tbsBudgetCostItemService.listByCostApplyId(costApplyId); + + if(budgetCostItemList.size()==budgetLogList.size()){ + for (TbsBudgetLog budgetLog : budgetLogList) { + for (TbsBudgetCostItem costItem : budgetCostItemList) { + if(budgetLog.getActivityId().equals(costItem.getActivityId()) + &&budgetLog.getSubjectId().equals(costItem.getSubjectId()) + &&budgetLog.getCenterType().equals(costItem.getCenterType()) + &&budgetLog.getCenterId().equals(costItem.getCenterId()) + &&budgetLog.getTargetId().equals(costItem.getTargetId()) + &&budgetLog.getScheduleItemBudgetId().equals(costItem.getScheduleItemBudgetId()) + ){ + budgetLog.setAmount(costItem.getCenterGoodsAmount().negate()); + tbsBudgetLogMapper.updateById(budgetLog); + } + } + } +// } + + } + return; + } + } + + + public void rebuildBudgetLog(Long costApplyId) { + TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId); //调整center_goods和budget_log之间的占用 + BigDecimal centerGoodsTotal = tbsCostApplyMapper.sumCostCenterGoodsAmount(costApplyId); + BigDecimal costAmt = costApply.getTotalActivityAmount(); + //判断合计金额与预算是否有差距过大 + boolean diffCostCenterGoods = costAmt.subtract(centerGoodsTotal).intValue()!=0; + if(diffCostCenterGoods){ + log.error("{}金额错误",costApply.getId()); + return; + } + BigDecimal costAmountBudget = tbsCostApplyMapper.sumCostAmountBudget(costApplyId); - //改方法支持审批完成时回调更新 - return R.ok(); + //判断合计金额与预算是否有差距过大 + boolean diffCostBudget = costAmt.subtract(costAmountBudget).intValue()!=0; + if(diffCostBudget){ + //判断是否有释放,没有直接清理(后续可修改为全部清理) + + LambdaQueryWrapper budgetLogRmLqw = new LambdaQueryWrapper<>(); + budgetLogRmLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); + budgetLogRmLqw.ne(TbsBudgetLog::getOptType,1); + tbsBudgetLogMapper.delete(budgetLogRmLqw); + + LambdaQueryWrapper budgetLogLqw = new LambdaQueryWrapper<>(); + budgetLogLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); + budgetLogLqw.eq(TbsBudgetLog::getOptType,1); + List budgetLogList = tbsBudgetLogMapper.selectList(budgetLogLqw); + + List activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); + + List updateLogIdsList = new ArrayList<>(); + updateLogIdsList.add(0L); + + for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { + for (TbsBudgetLog budgetLog : budgetLogList) { + if( budgetLog.getActivityId().equals(centerGoods.getActivityId()) + &&budgetLog.getSubjectId().equals(centerGoods.getSubjectId()) + && budgetLog.getCenterType().equals(centerGoods.getCenterType()) + && budgetLog.getCenterId().equals(centerGoods.getCenterId()) + && budgetLog.getTargetId().equals(centerGoods.getTargetId()) + ){ + budgetLog.setAmount(centerGoods.getCenterGoodsAmount().negate()); + tbsBudgetLogMapper.updateById(budgetLog); + updateLogIdsList.add(budgetLog.getId()); + break; + } + } + } + budgetLogLqw.notIn(TbsBudgetLog::getId,updateLogIdsList); + tbsBudgetLogMapper.delete(budgetLogLqw); + } } } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java index 96992ab6..46530282 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java @@ -34,7 +34,7 @@ public class TbsActivityTemplate implements Serializable { /** 模板名称 */ @NotBlank(message = "模板名称不能为空") - @Length(max = 30,message = "模板名称长度不能超过30字") + @Length(max = 60,message = "模板名称长度不能超过60字") @TableField(condition = SqlCondition.LIKE) private String templateName; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java index 8cce73a9..24bb9b63 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java @@ -33,7 +33,6 @@ public class TbsActivityTemplateBo implements Serializable { /** 模板名称 */ @NotBlank(message = "模板名称不能为空") - @Length(max = 30,message = "模板名称长度不能超过30字") private String templateName; /** 模板状态 */ diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActivityAmtCheck.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActivityAmtCheck.java new file mode 100644 index 00000000..c559e064 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActivityAmtCheck.java @@ -0,0 +1,20 @@ +package com.qs.serve.modules.tbs.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2023/12/11 + */ +@Data +public class TbsActivityAmtCheck { + + private Long activityId; + + private BigDecimal totalAmount; + private BigDecimal sumCenterGoods; + private BigDecimal diffAmount; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostErrorBudgetDTO.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostErrorBudgetDTO.java new file mode 100644 index 00000000..69c8c69f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostErrorBudgetDTO.java @@ -0,0 +1,29 @@ +package com.qs.serve.modules.tbs.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2023/12/10 + */ +@Data +public class TbsCostErrorBudgetDTO { + + Long id; + + String code; + + BigDecimal totalActivityAmount; + + BigDecimal totalActivityUsedAmount; + + BigDecimal releaseBudget; + + /** + * 统计budgetLog + */ + BigDecimal sumBudget; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityAmtCheckMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityAmtCheckMapper.java new file mode 100644 index 00000000..e80f7ec0 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityAmtCheckMapper.java @@ -0,0 +1,23 @@ +package com.qs.serve.modules.tbs.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.qs.serve.modules.tbs.entity.dto.TbsActivityAmtCheck; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @author YenHex + * @since 2023/12/11 + */ +public interface TbsActivityAmtCheckMapper { + + @Select("") + @InterceptorIgnore(tenantLine = "true") + List listByCostApplyId(Long costApplyId); + + @Select("") + @InterceptorIgnore(tenantLine = "true") + List listByActivityId(Long activityId); + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java index a72054ef..378e9efd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java @@ -1,11 +1,13 @@ package com.qs.serve.modules.tbs.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.entity.dto.TbsCostErrorBudgetDTO; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @@ -68,5 +70,30 @@ public interface TbsCostApplyMapper extends BaseMapper { */ IPage selectCostApplyList(IPage page,@Param("query")TbsCostApply param); + /** + * 查找 + * @return + */ + @InterceptorIgnore(tenantLine = "1") + List selectCostErrorBudgetDTO(); + + /** + * 统计cost的budgetLog占用 + * @param costApplyId + * @return + */ + @InterceptorIgnore(tenantLine = "1") + @Select("SELECT sum(- amount ) AS sum_budget FROM `tbs_budget_log`" + + " where tbs_budget_log.del_flag = 0" + + " and cost_apply_id = #{costApplyId}") + BigDecimal sumCostAmountBudget(@Param("costApplyId") Long costApplyId); + + + @Select("select sum(center_goods_amount)" + + " from tbs_activity_center_goods" + + " where cost_apply_id = #{costApplyId} and del_flag = 0") + BigDecimal sumCostCenterGoodsAmount(@Param("costApplyId") Long costApplyId); + + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java index 4732d55a..43ab2c65 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java @@ -26,5 +26,11 @@ public interface TbsActivityService extends IService { */ void modify(TbsActivityBo activityBo); + /** + * 修复精确度 + * @param updateBudgetLog 新建活动为false,修复数据时为true + */ + void checkCenterGoods(boolean updateBudgetLog); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index 0e8be7e7..c1e27772 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -26,14 +26,13 @@ import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.*; -import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateMapper; -import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper; +import com.qs.serve.modules.tbs.entity.dto.TbsActivityAmtCheck; +import com.qs.serve.modules.tbs.mapper.*; import com.qs.serve.modules.tbs.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.One; import org.springframework.stereotype.Service; -import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; @@ -62,6 +61,7 @@ public class TbsActivityServiceImpl extends ServiceImpl activityAmtCheckList = activityAmtCheckMapper.listByCostApplyId(274022L); + for (TbsActivityAmtCheck amtCheck : activityAmtCheckList) { + LambdaQueryWrapper centerGoodsLqw = new LambdaQueryWrapper<>(); + centerGoodsLqw.eq(TbsActivityCenterGoods::getActivityId,amtCheck.getActivityId()); + centerGoodsLqw.apply(" limit 1"); + TbsActivityCenterGoods centerGoods = activityCenterGoodsService.getOne(centerGoodsLqw); + centerGoods.setCenterGoodsAmount(centerGoods.getCenterGoodsAmount().add(amtCheck.getDiffAmount())); + activityCenterGoodsService.updateById(centerGoods); + + } + + } + @Override public List listByCostApplyId(Long id) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); diff --git a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml index 86f615bc..a2987d87 100644 --- a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml +++ b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml @@ -163,6 +163,33 @@ and `tbs_cost_apply`.`user_id` = #{userId} + + and `tbs_cost_apply`.`check_state` = #{query.checkState} From 3ad87647e85dfebae251ced3a755614380637c34 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 12 Dec 2023 16:16:33 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/service/impl/OmsOrderServiceImpl.java | 4 + .../controller/TbsCostApplyController.java | 132 ++++++++++++++---- .../dto/TbsActNotMatchAmtCenterGoods.java | 18 +++ .../mapper/TbsActivityCenterGoodsMapper.java | 26 ++++ .../TbsActivityCenterGoodsService.java | 8 ++ .../TbsActivityCenterGoodsServiceImpl.java | 5 + .../mapper/tbs/TbsCostApplyMapper.xml | 12 +- 7 files changed, 175 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActNotMatchAmtCenterGoods.java 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 7d0ea939..ea382f1d 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 @@ -416,6 +416,10 @@ public class OmsOrderServiceImpl extends ServiceImpl im orderItem.setSpecValues(shoppingCart.getSpecInfo()); orderItem.setSpuCode(shoppingCart.getSpuCode()); if(goodsSku!=null){ + GoodsSpu goodsSpu = goodsSpuService.getById(goodsSku.getSpuId()); + orderItem.setSpuTitle(goodsSpu.getName()); + orderItem.setSkuTitle(goodsSpu.getSkuName()); + log.warn("shoppingCart json =>"+JsonUtil.objectToJson(shoppingCart)); orderItem.setSkuTitle(goodsSku.getSkuName()); orderItem.setMarketPrice(goodsSku.getMarketPrice()); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index fe05aa3a..25d01430 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -29,10 +29,7 @@ import com.qs.serve.modules.tbs.common.dto.CompensateDTO; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.*; -import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; -import com.qs.serve.modules.tbs.entity.dto.TbsBudgetScheduleWithAmount; -import com.qs.serve.modules.tbs.entity.dto.TbsCostBudgetRelateInfo; -import com.qs.serve.modules.tbs.entity.dto.TbsCostErrorBudgetDTO; +import com.qs.serve.modules.tbs.entity.dto.*; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; import com.qs.serve.modules.tbs.entity.vo.TbsCostApplyVo; @@ -532,10 +529,97 @@ public class TbsCostApplyController { @GetMapping("rebuildBudgetLog") - public void dealCostBudget(Long costApplyId){ + public R dealCostBudget(Long costApplyId){ + if(costApplyId!=null){ + rebuildBudgetLog(costApplyId); + return R.ok(); + } + List costErrorBudgetDTOList = tbsCostApplyMapper.selectCostErrorBudgetDTO(); + for (TbsCostErrorBudgetDTO budgetDTO : costErrorBudgetDTOList) { + Long costApplyId2 = budgetDTO.getId(); + rebuildBudgetLog(costApplyId2); + } + return R.ok(); + } + + @GetMapping("rebuildBudgetLog3") + public void dealCostBudget3(){ List costErrorBudgetDTOList = tbsCostApplyMapper.selectCostErrorBudgetDTO(); for (TbsCostErrorBudgetDTO budgetDTO : costErrorBudgetDTOList) { - rebuildBudgetLog(budgetDTO.getId()); + Long costApplyId = budgetDTO.getId(); + centerGoodsAmtToBudgetLog(costApplyId); + } + } + + @GetMapping("flushActivityCenterGoodsAmount") + public void flushActivityCenterGoodsAmount(){ + //List costErrorBudgetDTOList = tbsCostApplyMapper.selectCostErrorBudgetDTO(); + //过滤大额错误订单 +// costErrorBudgetDTOList = costErrorBudgetDTOList.stream().filter(a->a.getTotalActivityAmount() +// .subtract(a.getSumBudget()) +// .abs() +// .compareTo(BigDecimal.ONE)<1).collect(Collectors.toList()); + //List costApplyIds = costErrorBudgetDTOList.stream().map(TbsCostErrorBudgetDTO::getId).distinct().collect(Collectors.toList()); + List costApplyIds = new ArrayList<>(); + costApplyIds.add(263925L); + costApplyIds.add(263930L); + costApplyIds.add(270102L); + List notMatchAmtCenterGoodsList = activityCenterGoodsService.listNotMatchAmtCenterGoods(costApplyIds); + List activityIds = notMatchAmtCenterGoodsList.stream().map(a->a.getActivityId()).collect(Collectors.toList()); + for (Long activityId : activityIds) { + List activityCenterGoodsList = activityCenterGoodsService.listByActivityId(activityId); + Map> stringListMap = activityCenterGoodsList.stream() + .collect(Collectors.groupingBy(a->a.getSubjectId()+"_"+a.getCenterType()+"_"+a.getCenterId())); + for (String key : stringListMap.keySet()) { + List list = stringListMap.get(key); + BigDecimal totalAmountOfCenter = list.get(0).getCenterAmount(); + BigDecimal totalCenterGoods = BigDecimal.ZERO; + for (TbsActivityCenterGoods centerGoods : list) { + totalCenterGoods = totalCenterGoods.add(centerGoods.getCenterGoodsAmount()); + } + BigDecimal diff = totalAmountOfCenter.subtract(totalCenterGoods); + if(diff.compareTo(BigDecimal.ZERO)!=0&&diff.compareTo(BigDecimal.ONE)<0){ + TbsActivityCenterGoods centerGoods = list.get(0); + centerGoods.setCenterGoodsAmount(centerGoods.getCenterGoodsAmount().add(diff)); + activityCenterGoodsService.updateById(centerGoods); + } + } + } + } + + private void centerGoodsAmtToBudgetLog(Long costApplyId) { + LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); + logLqw.eq(TbsBudgetLog::getCostApplyId, costApplyId); + logLqw.lt(TbsBudgetLog::getOptType,7); + List budgetLogList = tbsBudgetLogMapper.selectList(logLqw); + List activityCenterGoodsList = activityCenterGoodsService.listByCostApplyId(costApplyId); + if(budgetLogList.size()==activityCenterGoodsList.size()){ + List updBudgetLogList = new ArrayList<>(); + for (TbsBudgetLog budgetLog : budgetLogList) { + TbsBudgetLog tmpObject = null; + for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { + if(budgetLog.getActivityId().equals(centerGoods.getActivityId()) + &&budgetLog.getSubjectId().equals(centerGoods.getSubjectId()) + &&budgetLog.getCenterType().equals(centerGoods.getCenterType()) + &&budgetLog.getCenterId().equals(centerGoods.getCenterId()) + &&budgetLog.getTargetId().equals(centerGoods.getTargetId()) + //&&budgetLog.getScheduleItemBudgetId().equals(centerGoods.getScheduleItemBudgetId()) + ){ + budgetLog.setAmount(centerGoods.getCenterGoodsAmount().negate()); + tmpObject = budgetLog; + //tbsBudgetLogMapper.updateById(budgetLog); + } + } + if(tmpObject==null){ + break; + } + updBudgetLogList.add(tmpObject); + } + if(updBudgetLogList.size()== budgetLogList.size()){ + for (TbsBudgetLog budgetLog : updBudgetLogList) { + tbsBudgetLogMapper.updateById(budgetLog); + } + } } } @@ -594,28 +678,21 @@ public class TbsCostApplyController { log.error("{}金额错误",costApply.getId()); return; } - BigDecimal costAmountBudget = tbsCostApplyMapper.sumCostAmountBudget(costApplyId); - - //判断合计金额与预算是否有差距过大 - boolean diffCostBudget = costAmt.subtract(costAmountBudget).intValue()!=0; - if(diffCostBudget){ - //判断是否有释放,没有直接清理(后续可修改为全部清理) + //BigDecimal costAmountBudget = tbsCostApplyMapper.sumCostAmountBudget(costApplyId); - LambdaQueryWrapper budgetLogRmLqw = new LambdaQueryWrapper<>(); - budgetLogRmLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); - budgetLogRmLqw.ne(TbsBudgetLog::getOptType,1); - tbsBudgetLogMapper.delete(budgetLogRmLqw); + //判断是否有释放,没有直接清理(后续可修改为全部清理) - LambdaQueryWrapper budgetLogLqw = new LambdaQueryWrapper<>(); - budgetLogLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); - budgetLogLqw.eq(TbsBudgetLog::getOptType,1); - List budgetLogList = tbsBudgetLogMapper.selectList(budgetLogLqw); + LambdaQueryWrapper budgetLogLqw = new LambdaQueryWrapper<>(); + budgetLogLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); + budgetLogLqw.eq(TbsBudgetLog::getOptType,1); + List budgetLogList = tbsBudgetLogMapper.selectList(budgetLogLqw); - List activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); + List activityCenterGoodsList = tbsActivityCenterGoodsService.listByCostApplyId(costApplyId); - List updateLogIdsList = new ArrayList<>(); - updateLogIdsList.add(0L); + List updateLogIdsList = new ArrayList<>(); + updateLogIdsList.add(0L); + if(activityCenterGoodsList.size()==budgetLogList.size()){ for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { for (TbsBudgetLog budgetLog : budgetLogList) { if( budgetLog.getActivityId().equals(centerGoods.getActivityId()) @@ -631,9 +708,14 @@ public class TbsCostApplyController { } } } - budgetLogLqw.notIn(TbsBudgetLog::getId,updateLogIdsList); - tbsBudgetLogMapper.delete(budgetLogLqw); + + LambdaQueryWrapper delBudgetLogLqw = new LambdaQueryWrapper<>(); + delBudgetLogLqw.eq(TbsBudgetLog::getCostApplyId,costApply.getId()); + delBudgetLogLqw.notIn(TbsBudgetLog::getId,updateLogIdsList); + tbsBudgetLogMapper.delete(delBudgetLogLqw); } + + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActNotMatchAmtCenterGoods.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActNotMatchAmtCenterGoods.java new file mode 100644 index 00000000..bea5f6da --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsActNotMatchAmtCenterGoods.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.tbs.entity.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author YenHex + * @since 2023/12/12 + */ +@Data +public class TbsActNotMatchAmtCenterGoods { + + private Long activityId; + private BigDecimal totalAmount; + private BigDecimal sumGoodsAmt; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java index c67934b2..59764b02 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityCenterGoodsMapper.java @@ -1,7 +1,13 @@ 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.TbsActivityCenterGoods; +import com.qs.serve.modules.tbs.entity.dto.TbsActNotMatchAmtCenterGoods; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 活动成本中心配比项 Mapper @@ -10,5 +16,25 @@ import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; */ public interface TbsActivityCenterGoodsMapper extends BaseMapper { + @Select("" + ) + @InterceptorIgnore(tenantLine = "1") + List listNotMatchAmtCenterGoods(@Param("costApplyIds") List costIds); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java index 045e8e6a..460cc630 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import com.qs.serve.modules.tbs.entity.TbsActivitySubject; +import com.qs.serve.modules.tbs.entity.dto.TbsActNotMatchAmtCenterGoods; import java.util.List; import java.util.Map; @@ -21,5 +22,12 @@ public interface TbsActivityCenterGoodsService extends IService> listByActivityMap(List activityIds); + /** + * 加载center_goods与activity不匹配的 + * @param costIds + * @return + */ + List listNotMatchAmtCenterGoods(List costIds); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java index b588b2fc..7c5277b4 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.tbs.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.modules.tbs.entity.TbsActivitySubject; +import com.qs.serve.modules.tbs.entity.dto.TbsActNotMatchAmtCenterGoods; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -46,5 +47,9 @@ public class TbsActivityCenterGoodsServiceImpl extends ServiceImpl listNotMatchAmtCenterGoods(List costIds) { + return baseMapper.listNotMatchAmtCenterGoods(costIds); + } } diff --git a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml index a2987d87..9195d1fe 100644 --- a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml +++ b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml @@ -183,11 +183,13 @@ and tbs_cost_apply.cancel_flag = 0 AND tbs_cost_apply.charge_state in (1,2,3,7) - and ( - ( release_budget is not null and total_activity_amount - release_budget - sum_budget !=0 ) - or - ( release_budget is null and sum_budget - total_activity_amount!=0 ) - ) + and + ( + (tbs_cost_apply.total_activity_amount - sum_budget != 0 and release_budget is null ) + or (tbs_cost_apply.total_activity_amount-release_budget-sum_budget!=0 and release_budget is not null) + ) + and tbs_cost_apply.total_activity_amount - sum_budget !=0 + From 1fc15232cf819845877be762a79ed79dc655f810 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 13 Dec 2023 09:36:57 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=95=86=E5=93=81=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSkuController.java | 90 +++++++++++-------- .../goods/controller/GoodsSpuController.java | 2 +- .../goods/entity/vo/GoodsSkuExportVo.java | 4 +- 3 files changed, 56 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index 2bf8c6de..8123c4d3 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -230,45 +230,49 @@ public class GoodsSkuController { Map> skuItemList = param.getSkuList().stream().collect(Collectors.groupingBy(GoodsSkuImportBo.SkuItem::getOpt)); //处理删除 List delList = skuItemList.get(DELETE); - List delSkuCodes = delList.stream().map(GoodsSkuImportBo.SkuItem::getSkuCode).collect(Collectors.toList()); - QueryWrapper lqw1 = new QueryWrapper<>(); - lqw1.eq("target_type", TbsGoodsType.sku.name()); - lqw1.eq("target_code",delSkuCodes); - lqw1.select("target_code"); - List activityGoodsList = activityGoodsService.list(lqw1); - List budgetConditionList = budgetConditionService.list(lqw1); - List salePlanGoodsList = salePlanGoodsService.list(lqw1); - for (TbsActivityGoods item : activityGoodsList) { - for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { - if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ - skuItem.setErrMsg(skuItem.getErrMsg()==null?"活动含有当前商品,删除失败;":skuItem.getErrMsg()+"\n活动含有当前商品,删除失败;"); + if(delList!=null){ + List delSkuCodes = delList.stream().map(GoodsSkuImportBo.SkuItem::getSkuCode).collect(Collectors.toList()); + QueryWrapper lqw1 = new QueryWrapper<>(); + lqw1.eq("target_type", TbsGoodsType.sku.name()); + lqw1.eq("target_code",delSkuCodes); + lqw1.select("target_code"); + List activityGoodsList = activityGoodsService.list(lqw1); + List budgetConditionList = budgetConditionService.list(lqw1); + List salePlanGoodsList = salePlanGoodsService.list(lqw1); + for (TbsActivityGoods item : activityGoodsList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"活动含有当前商品,删除失败;":skuItem.getErrMsg()+"\n活动含有当前商品,删除失败;"); + } } } - } - for (TbsBudgetCondition item : budgetConditionList) { - for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { - if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ - skuItem.setErrMsg(skuItem.getErrMsg()==null?"预算含有当前商品,删除失败;":skuItem.getErrMsg()+"\n预算含有当前商品,删除失败;"); + for (TbsBudgetCondition item : budgetConditionList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"预算含有当前商品,删除失败;":skuItem.getErrMsg()+"\n预算含有当前商品,删除失败;"); + } } } - } - for (SalePlanGoods item : salePlanGoodsList) { - for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { - if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ - skuItem.setErrMsg(skuItem.getErrMsg()==null?"销售计划含有当前商品,删除失败;":skuItem.getErrMsg()+"\n销售计划含有当前商品,删除失败;"); + for (SalePlanGoods item : salePlanGoodsList) { + for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { + if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ + skuItem.setErrMsg(skuItem.getErrMsg()==null?"销售计划含有当前商品,删除失败;":skuItem.getErrMsg()+"\n销售计划含有当前商品,删除失败;"); + } } } + //执行删除 + List skuCodeToDelList = param.getSkuList().stream() + .filter(a->a.getErrMsg()==null) + .map(GoodsSkuImportBo.SkuItem::getSkuCode) + .collect(Collectors.toList()); + if(skuCodeToDelList.size()>0){ + LambdaQueryWrapper delLqw = new LambdaQueryWrapper<>(); + delLqw.in(GoodsSku::getSkuCode,skuCodeToDelList); + goodsSkuService.remove(delLqw); + } } - //执行删除 - List skuCodeToDelList = param.getSkuList().stream() - .filter(a->a.getErrMsg()==null) - .map(GoodsSkuImportBo.SkuItem::getSkuCode) - .collect(Collectors.toList()); - if(skuCodeToDelList.size()>0){ - LambdaQueryWrapper delLqw = new LambdaQueryWrapper<>(); - delLqw.in(GoodsSku::getSkuCode,skuCodeToDelList); - goodsSkuService.remove(delLqw); - } + + //处理更新和新增 List skuCodes = param.getSkuList().stream().map(GoodsSkuImportBo.SkuItem::getSkuCode).distinct().collect(Collectors.toList()); @@ -337,18 +341,28 @@ public class GoodsSkuController { } private GoodsSku selectSku( List skuList, String skuCode){ - for (GoodsSku goodsSku : skuList) { - if(goodsSku.getSkuCode().equals(skuCode)){ - return goodsSku; + if(skuCode!=null){ + for (GoodsSku goodsSku : skuList) { + if(goodsSku.getSkuCode()==null){ + continue; + } + if(goodsSku.getSkuCode().equals(skuCode)){ + return goodsSku; + } } } return null; } private GoodsSpu selectSpu( List spuList, String skuCode){ - for (GoodsSpu goodsSpu : spuList) { - if(goodsSpu.getSkuCode().equals(skuCode)){ - return goodsSpu; + if(skuCode!=null){ + for (GoodsSpu goodsSpu : spuList) { + if(goodsSpu.getSkuCode()==null){ + continue; + } + if(goodsSpu.getSkuCode().equals(skuCode)){ + return goodsSpu; + } } } return null; diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 812164b3..71e2020c 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -416,7 +416,7 @@ public class GoodsSpuController { } if(isError){ - return R.error("数据异常",param); + return R.ok(param); } List rmIds = new ArrayList<>(); diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuExportVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuExportVo.java index 33053315..d819c28a 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuExportVo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsSkuExportVo.java @@ -36,8 +36,10 @@ public class GoodsSkuExportVo implements Serializable { private String skuName; + private String name; + /** spu编码 */ - private Long spuCode; + private String spuCode; /** 销售价格 */ private BigDecimal salesPrice; From ca68b9fd963a523419e725cb7c4179a8272f42ce Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 13 Dec 2023 11:53:05 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=9B=E6=B4=BB=E5=8A=A8=E5=8F=91=E5=B8=83=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/UnifiedExceptionHandler.java | 5 ++ .../oms/service/impl/OmsOrderServiceImpl.java | 7 ++- .../service/impl/TbsActivityServiceImpl.java | 55 +++++++++---------- .../TbsCostApplyOperationServiceImpl.java | 17 ++++++ 4 files changed, 53 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java b/src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java index 636234b5..e14d98a7 100644 --- a/src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java +++ b/src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java @@ -38,6 +38,7 @@ public class UnifiedExceptionHandler { @ResponseBody public R handleBindException(BusinessException e,HttpServletRequest request) { log.warn("自定义异常触发【{},{}】,请求地址:{}",e.getCode(),e.getMessage(),request.getRequestURI()); + e.printStackTrace(); return new R(e.getCode(),e.getMessage()); } @@ -46,6 +47,7 @@ public class UnifiedExceptionHandler { public R handleBindException(NullPointerException e,HttpServletRequest request) { e.printStackTrace(); log.error("空指针【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); + e.printStackTrace(); return R.error("数据不存在或被移除"); } @@ -104,6 +106,7 @@ public class UnifiedExceptionHandler { @ResponseBody public R handleDuplicateKeyException(DuplicateKeyException e,HttpServletRequest request) { log.error("限制重复数据【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); + e.printStackTrace(); return R.error("限制重复数据,请联系管理员"); } @@ -120,6 +123,7 @@ public class UnifiedExceptionHandler { @ResponseBody public R handleSqlIntegrityException(Exception e,HttpServletRequest request) { log.warn("数据库拦截【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); + e.printStackTrace(); return new R(500,"数据库拦截,请联系管理员"); } @@ -138,6 +142,7 @@ public class UnifiedExceptionHandler { @ResponseBody public R handleException(Exception e,HttpServletRequest request) { log.error("Servlet异常\n请求地址:{},异常类型:{}\n异常信息:{}\n异常体:",request.getRequestURI(),e.getClass().getSimpleName(),e.getMessage(),e); + e.printStackTrace(); if(DevEnvironmentConfig.isDev()){return R.error(e.getMessage());} return R.error(); } 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 ea382f1d..2662b766 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 @@ -529,9 +529,12 @@ public class OmsOrderServiceImpl extends ServiceImpl im OmsOrder omsOrder = super.getById(id); String userId = AuthContextUtils.getSysUserId(); SysUser sysUser = sysUserService.getById(userId); - if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ + if(omsOrder==null){ Assert.throwEx("订单不存在或被移除"); } + if(!omsOrder.getUserId().equals(userId)){ + Assert.throwEx("非制单人无法下单"); + } this.checkMsOrderStatus(omsOrder); if(!omsOrder.getStatus().equals(0)&&!omsOrder.getStatus().equals(6)){ Assert.throwEx("订单状态不支持下单"); @@ -630,6 +633,8 @@ public class OmsOrderServiceImpl extends ServiceImpl im seeYonRequestBaseService.postBase(ERP_ORDER_CREATE,xltOrderDTO,"创建订单:"+xltOrder.getDingDanHao()); //更新订单 omsOrder.setStatus(1); + omsOrder.setCheckTime(LocalDateTime.now()); + omsOrder.setCheckUserId(AuthContextUtils.getSysUserId()); this.updateById(omsOrder); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index c1e27772..9c71b9c7 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -36,6 +36,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; @@ -216,9 +217,8 @@ public class TbsActivityServiceImpl extends ServiceImpl centerDtoMap = new HashMap<>(); this.initSubjectAndCenter(activityBo,subjectMap,centerDtoMap,activitySubjects,activityCenterList,costApply.getId(),activity.getId()); //产品成本配占比 - Map checkAmountMap = new HashMap<>(); List activityCenterGoodsList = new ArrayList<>(); - this.initCenterGoods(activityBo,subjectMap,centerDtoMap,checkAmountMap,activityGoodsList,activityCenterGoodsList,costApply.getId(),activity,supplier); + this.initCenterGoods(activityBo,subjectMap,centerDtoMap,activityGoodsList,activityCenterGoodsList,costApply.getId(),activity,supplier); //校验金额和比率 Map> actCenterGoodsMap = activityCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getSubjectId)); for (Long subjectId : actCenterGoodsMap.keySet()) { @@ -232,13 +232,6 @@ public class TbsActivityServiceImpl extends ServiceImpl activityChannelPointList = new ArrayList<>(); List activityChannelList = new ArrayList<>(); @@ -407,7 +400,6 @@ public class TbsActivityServiceImpl extends ServiceImpl subjectMap, Map centerDtoMap, - Map checkAmountMap, List activityGoodsList, List activityCenterGoodsList, Long costApplyId,TbsActivity activity,BmsSupplier supplier){ @@ -442,8 +433,17 @@ public class TbsActivityServiceImpl extends ServiceImpl activitySubjects, List activityCenterList, Long costApplyId,Long activityId){ + + List existKeyList = new ArrayList<>(); + for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) { BmsSubject subject = subjectService.getById(subjectBo.getSubjectId()); if(subject==null){ @@ -531,9 +526,18 @@ public class TbsActivityServiceImpl extends ServiceImpl