From 886a57f561e63ec5f108e9315d514318c46bae10 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 8 Aug 2023 17:32:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=B7=BB=E5=8A=A0=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qs/serve/common/util/CodeGenUtil.java | 2 +- .../tbs/common/TbsBudgetCheckState.java | 18 ++++ .../modules/tbs/common/TbsSeeYonConst.java | 7 ++ .../controller/TbsBudgetCheckController.java | 43 +++++++++ .../tbs/controller/TbsBudgetController.java | 14 ++- .../serve/modules/tbs/entity/TbsBudget.java | 6 ++ .../tbs/entity/bo/TbsAffairCommitBo.java | 9 +- .../modules/tbs/entity/bo/TbsBudgetAmtBo.java | 18 ++++ .../bo/TbsBudgetUpdateAfterStartBo.java | 2 + .../TbsBudgetApplyOperationServiceImpl.java | 92 +++++++++++++++++++ .../service/impl/TbsBudgetServiceImpl.java | 6 +- 11 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/common/TbsBudgetCheckState.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java diff --git a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java index 88d18c31..db1f3994 100644 --- a/src/main/java/com/qs/serve/common/util/CodeGenUtil.java +++ b/src/main/java/com/qs/serve/common/util/CodeGenUtil.java @@ -24,6 +24,7 @@ public class CodeGenUtil { Activity("activity"), Verification("verification"), Policy("policy"), + Budget("Budget"), PolicyItem("policy_item"); private String code; } @@ -33,7 +34,6 @@ public class CodeGenUtil { public enum SourceDataKey{ TagInfo("T","TagInfo"), SaleRegion("S","SaleRegion"), - Budget("","Budget"), BizRegion("B","BizRegion"), ActivityPayCondition("K","ActivityPayCondition"); private String prefix; diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsBudgetCheckState.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsBudgetCheckState.java new file mode 100644 index 00000000..bbcabcda --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsBudgetCheckState.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.tbs.common; + +/** + * @author YenHex + * @since 2023/8/8 + */ +public interface TbsBudgetCheckState { + + /** + * 0=未发布;1=审批中;2=完成;3-被驳回;4-中止; + */ + int State_0_unPublish = 0; + int State_1_apply = 1; + int State_2_finished = 2; + int State_3_setback = 3; + int State_4_stop = 4; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 24bd83b8..157d78ea 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -38,6 +38,13 @@ public interface TbsSeeYonConst { } } + /** 预算申请 */ + class BudgetApplyConf{ + public static String Code(){ + return DevEnvironmentConfig.isDev()?"budgetAdjust":"budgetAdjust_Test"; + } + } + String API_TEST = "/testConnection"; String API_PROCESS_CREATE = "/process/create"; String API_PROCESS_CREATE_CALLBACK = "/process/createCallback"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java new file mode 100644 index 00000000..23e007ac --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java @@ -0,0 +1,43 @@ +package com.qs.serve.modules.tbs.controller; + +import com.qs.serve.common.model.dto.R; +import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 预算 预算审批 + * @author YenHex + * @since 2023/8/8 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tbs/budgetCheck") +public class TbsBudgetCheckController { + + /** + * 提交申请 + * @return + */ + @PostMapping("commitApply/{id}") + public R commitApply(@PathVariable("id") String id){ + + return R.ok(); + } + + /** + * 提交更新申请 + * @param param + * @return + */ + @PostMapping("commitChangeApply") + public R commitApply(@RequestBody TbsBudgetUpdateAfterStartBo param){ + + return R.ok(); + } + + + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 48cf5571..9c4834e0 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -11,6 +11,7 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.*; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.*; @@ -164,7 +165,9 @@ public class TbsBudgetController { SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); - + if(budget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + Assert.throwEx("预算审批中无法编辑"); + } LambdaQueryWrapper logLambdaQueryWrapper = new LambdaQueryWrapper<>(); logLambdaQueryWrapper.in(TbsBudgetLog::getOptType,BudgetLogOptFlag.getFinalBudgetOptFlag()); logLambdaQueryWrapper.eq(TbsBudgetLog::getScheduleItemBudgetId,scheduleItemBudget.getId()); @@ -199,6 +202,9 @@ public class TbsBudgetController { //金额相同时退出 // if(scheduleItemBudget.getBudgetAmount().compareTo(param.getBudgetAmount())==0){return R.ok();} TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); + if(budget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + Assert.throwEx("预算审批中无法编辑"); + } // TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget(); // itemBudget.setId(param.getId()); // itemBudget.setBudgetAmount(param.getBudgetAmount()); @@ -230,6 +236,12 @@ public class TbsBudgetController { TbsScheduleItemBudget itemBudget = new TbsScheduleItemBudget(); itemBudget.setId(param.getId()); itemBudget.setPreDispatchAmount(param.getPreDispatchAmount()); + //添加拦截 + TbsScheduleItemBudget scheduleItemBudget = tbsScheduleItemBudgetService.getById(param.getId()); + TbsBudget budget = tbsBudgetService.getById(scheduleItemBudget.getBudgetId()); + if(budget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + Assert.throwEx("预算审批中无法编辑"); + } tbsScheduleItemBudgetService.updateById(itemBudget); return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java index c6ccd777..faeeb281 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java @@ -43,6 +43,9 @@ public class TbsBudget implements Serializable { /** 费用启用状态 0/1 */ private Integer budgetState; + /** 审批流程状态 */ + private Integer budgetCheckState; + /** 科目id */ @NotNull(message = "科目id不能为空") private Long subjectId; @@ -98,6 +101,9 @@ public class TbsBudget implements Serializable { /** 生成底表标识:默认0;同步成功为1 */ private Integer birFlag; + /** 致远表单id */ + private String syFormId; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java index eafa08ea..0c944e8d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java @@ -17,12 +17,17 @@ import java.util.List; public class TbsAffairCommitBo { /** - * 旧版的:费用申请id、核销id + * 旧版的:费用申请id、核销id(截止2023/5/23) */ private Long costApplyId; /** - * 政策ID + * 新增所有审批业务使用该字段,作数据的目标ID + */ + private String targetId; + + /** + * 政策ID(截止2023/8/8) */ private Long policyId; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java new file mode 100644 index 00000000..a054747d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java @@ -0,0 +1,18 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +/** + * @author YenHex + * @since 2023/8/8 + */ +@Data +public class TbsBudgetAmtBo { + + private Integer type; + + private Long budgetScheduleItemId; + + private Integer amount; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetUpdateAfterStartBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetUpdateAfterStartBo.java index 1a411321..68398209 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetUpdateAfterStartBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetUpdateAfterStartBo.java @@ -53,6 +53,8 @@ public class TbsBudgetUpdateAfterStartBo implements Serializable { private String[] attachIds; + /** 修改的金额值 */ + private List budgetAmtUpdateList; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java new file mode 100644 index 00000000..82419b52 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java @@ -0,0 +1,92 @@ +package com.qs.serve.modules.tbs.service.impl; + +import com.qs.serve.common.util.Assert; +import com.qs.serve.modules.seeyon.service.SeeYonOperationService; +import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; +import com.qs.serve.modules.tbs.entity.TbsBudget; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; +import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 预算申请 + * @author YenHex + * @since 2023/8/8 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationService { + + private TbsBudgetMapper budgetMapper; + + @Override + public String getTargetId(TbsAffairCommitBo affairCommit) { + return affairCommit.getTargetId(); + } + + @Override + public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { + TbsBudget tbsBudget = budgetMapper.selectById(affairCommit.getTargetId()); + if(!tbsBudget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + Assert.throwEx("操作失败,预算处于非审批状态"); + } + return tbsBudget.getSyFormId(); + } + + @Override + public Object doBacked(TbsAffairCommitBo param) { + TbsBudget tbsBudget = budgetMapper.selectById(param.getTargetId()); + if(tbsBudget.getBudgetState().equals(0)&&tbsBudget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + tbsBudget.setBudgetCheckState(TbsBudgetCheckState.State_3_setback); + budgetMapper.updateById(tbsBudget); + } + return null; + } + + @Override + public Object doFinished(TbsAffairCommitBo param) { + TbsBudget tbsBudget = budgetMapper.selectById(param.getTargetId()); + if(tbsBudget.getBudgetState().equals(0)&&tbsBudget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + tbsBudget.setBudgetCheckState(TbsBudgetCheckState.State_2_finished); + //启用预算 + tbsBudget.setBudgetState(1); + budgetMapper.updateById(tbsBudget); + } + return null; + } + + @Override + public Object doRefuse(TbsAffairCommitBo param) { + TbsBudget tbsBudget = budgetMapper.selectById(param.getTargetId()); + if(tbsBudget.getBudgetState().equals(0)&&tbsBudget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + tbsBudget.setBudgetCheckState(TbsBudgetCheckState.State_4_stop); + budgetMapper.updateById(tbsBudget); + } + return null; + } + + @Override + public Object compensateBacked(String targetId) { + return null; + } + + @Override + public Object compensateFinished(String targetId) { + return null; + } + + @Override + public Object compensateRefuse(String targetId) { + return null; + } + + @Override + public String getTemplateCode() { + return TbsSeeYonConst.BudgetApplyConf.Code(); + } + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index f21ed392..3a1ff9e4 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -18,6 +18,7 @@ import com.qs.serve.modules.sys.entity.SysAttach; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum; @@ -92,13 +93,16 @@ public class TbsBudgetServiceImpl extends ServiceImpl if(budget.getBudgetState().equals(1)){ Assert.throwEx("已开启的预算无法编辑"); } + if(budget.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){ + Assert.throwEx("预算审批中无法编辑"); + } //移除旧的条件数据 LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TbsBudgetCondition::getBudgetId,budget.getId()); budgetConditionService.remove(lqw); }else { budget = CopierUtil.copy(budgetBo,new TbsBudget()); - budget.setBudgetNumber(CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.Budget)); + budget.setBudgetNumber(CodeGenUtil.generate(CodeGenUtil.SourceKey.Budget)); } List skuIds = budgetBo.getSkuIds(); List spuIds = budgetBo.getSpuIds();