From daf5c1df140e2c510caee9a063a8707816ea5211 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 24 Feb 2023 12:00:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=94=BF=E7=AD=96=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=EF=BC=8C=E8=B0=83=E6=95=B4=E8=AF=BB=E5=8F=96=E8=87=B4?= =?UTF-8?q?=E8=BF=9C=E9=85=8D=E7=BD=AE=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/config/DevEnvironmentConfig.java | 1 - .../common/model/consts/BudgetLogOptFlag.java | 7 +- .../modules/tbs/common/TbsSeeYonConst.java | 36 +++- .../controller/TbsCostApplyController.java | 10 +- .../tbs/entity/TbsCostUnItemPolicy.java | 173 ++++++++++++++++++ .../tbs/mapper/TbsCostUnItemPolicyMapper.java | 14 ++ .../tbs/service/TbsBudgetLogService.java | 5 + .../service/TbsCostUnItemPolicyService.java | 14 ++ .../service/impl/TbsBudgetLogServiceImpl.java | 33 ++++ .../service/impl/TbsCostApplyServiceImpl.java | 6 +- .../impl/TbsCostUnItemPolicyServiceImpl.java | 22 +++ .../tzc/controller/TzcPolicyController.java | 11 ++ .../serve/modules/tzc/entity/TzcPolicy.java | 4 + .../tzc/service/TzcPolicyApplication.java | 169 ++++++++++++++++- .../tzc/service/TzcPolicyItemService.java | 2 + .../modules/tzc/service/TzcPolicyService.java | 8 +- .../impl/TzcPolicyItemServiceImpl.java | 7 + .../service/impl/TzcPolicyServiceImpl.java | 11 +- .../controller/VtbVerificationController.java | 8 +- .../service/VtbVerificationApplication.java | 2 +- .../impl/VtbVerificationServiceImpl.java | 6 +- 21 files changed, 510 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/TbsCostUnItemPolicy.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostUnItemPolicyMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/TbsCostUnItemPolicyService.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostUnItemPolicyServiceImpl.java diff --git a/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java b/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java index f3fbc14c..a51a115f 100644 --- a/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java +++ b/src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java @@ -14,7 +14,6 @@ public class DevEnvironmentConfig { if(devEnv==null){devEnv = open;} } - public static boolean isDev(){ if(devEnv==null){ return false; diff --git a/src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java b/src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java index a9197ee4..3c7b6d2a 100644 --- a/src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java +++ b/src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java @@ -22,7 +22,12 @@ public interface BudgetLogOptFlag { /** 9-行政区域迁移调增,10-行政区域迁移调减 */ Integer State_9 = 9; Integer State_10 = 10; - /** 11-政策调减 */ + + /** 11-政策申请 */ Integer State_11 = 11; + /** 12-政策申请调增 */ + Integer State_12 = 12; + /** 13-政策申请调减 */ + Integer State_13 = 13; } 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 89267629..c90a8bf0 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 @@ -1,5 +1,7 @@ package com.qs.serve.modules.tbs.common; +import com.qs.serve.common.config.DevEnvironmentConfig; + /** * @author YenHex * @since 2022/11/23 @@ -9,13 +11,35 @@ public interface TbsSeeYonConst { String PRE_TITLE_COST_APPLY = "【预算费用申请】"; String PRE_TITLE_VERIFICATION = "【预算费用核销】"; - //模板编码 - String COST_APPLY_CODE = "CostBill_Test"; - String VERIFICATION_CODE = "CheckCost_Test"; + /** 政策申请模板 */ + class PolicyConf { + public static String Code(){ + return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":""; + } + public static String Id(){ + return DevEnvironmentConfig.isDev()?"ReleasePolicy_Test":""; + } + } + + /** 费用申请 */ + class CostApplyConf{ + public static String Code(){ + return DevEnvironmentConfig.isDev()?"CostBill_Test":""; + } + public static String Id(){ + return DevEnvironmentConfig.isDev()?"3018014149748736162":""; + } + } - //模板ID - String COST_APPLY_TMP_ID = "3018014149748736162"; - String VERIFICATION_TMP_ID = "8370474123848467567"; + /** 核销 */ + class CostCheckConf{ + public static String Code(){ + return DevEnvironmentConfig.isDev()?"CheckCost_Test":""; + } + public static String Id(){ + return DevEnvironmentConfig.isDev()?"8370474123848467567":""; + } + } String API_TEST = "/testConnection"; String API_PROCESS_CREATE = "/process/create"; 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 adbfbefb..690eea12 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 @@ -297,8 +297,8 @@ public class TbsCostApplyController { if(costApplyParam.getSyFormId()==null){ return R.ok(); } - String templateId = TbsSeeYonConst.COST_APPLY_TMP_ID; - String templateCode = TbsSeeYonConst.COST_APPLY_CODE; + String templateId = TbsSeeYonConst.CostApplyConf.Id(); + String templateCode = TbsSeeYonConst.CostApplyConf.Code(); R> syResult = seeYonService.commonListAffairs(costApplyId+"",null,templateId,templateCode); List ctpAffairs = syResult.getData(); if(ctpAffairs.size()>0){ @@ -334,8 +334,8 @@ public class TbsCostApplyController { return R.error("当前账号未绑定致远用户信息"); } param.setMemberId(sysUser.getSyUserId()); - param.setTemplateId(TbsSeeYonConst.COST_APPLY_TMP_ID); - param.setTemplateCode(TbsSeeYonConst.COST_APPLY_CODE); + param.setTemplateId(TbsSeeYonConst.CostApplyConf.Id()); + param.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code()); R> syResult = seeYonService.pageMemberAffair(param); PageVo pageVo = syResult.getData(); List ctpAffairs = pageVo.getList(); @@ -380,7 +380,7 @@ public class TbsCostApplyController { if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){ return R.error("费用申请处于未非审批状态!"); } - R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.COST_APPLY_CODE); + R result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code()); boolean isBackCommit = affairCommit.getState()==2; if(result.getStatus()==200){ // 判断是否含有下个节点 diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostUnItemPolicy.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostUnItemPolicy.java new file mode 100644 index 00000000..c367d2ba --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostUnItemPolicy.java @@ -0,0 +1,173 @@ +package com.qs.serve.modules.tbs.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-02-24 + */ +@Data +@TableName("tbs_cost_un_item_policy") +public class TbsCostUnItemPolicy implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long policyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long policyItemId; + + /** 活动编码 */ + @Length(max = 30,message = "活动编码长度不能超过30字") + private String policyItemCode; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 费用额度 */ + @NotNull(message = "费用额度不能为空") + private BigDecimal policyItemAmount; + + /** 备注 */ + @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; + + /** 最后更新时间 */ + @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; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 政策项开始时间 */ + @NotNull(message = "政策项开始时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDate policyItemStartDate; + + /** 政策项结束时间 */ + @NotNull(message = "政策项结束时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDate policyItemEndDate; + + /** 后补的考核id */ + private Long scheduleId; + + /** 后补的考核期项id */ + private Long scheduleItemId; + + /** 后补的预算id */ + private Long budgetId; + + /** 后补的预算考核期id */ + private Long scheduleItemBudgetId; + + /** 是否无效 */ + @NotNull(message = "是否无效不能为空") + private Integer invalidFlag; + + /** 客户id */ + @NotNull(message = "客户id不能为空") + private Long supplierId; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 30,message = "客户编码长度不能超过30字") + private String supplierCode; + + /** 客户名称 */ + @NotBlank(message = "客户名称不能为空") + @Length(max = 30,message = "客户名称长度不能超过30字") + private String supplierName; + + public void initSetNull(){ + this.setScheduleId(null); + this.setScheduleItemId(null); + this.setBudgetId(null); + this.setScheduleItemBudgetId(null); + this.setId(null); + this.setCreateBy(null); + this.setCreateTime(null); + this.setUpdateBy(null); + this.setUpdateTime(null); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostUnItemPolicyMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostUnItemPolicyMapper.java new file mode 100644 index 00000000..3c4ce84d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostUnItemPolicyMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tbs.entity.TbsCostUnItemPolicy; + +/** + * 预算费用明细 Mapper + * @author YenHex + * @date 2023-02-24 + */ +public interface TbsCostUnItemPolicyMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java index d24eab08..2f1e93b5 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java @@ -3,6 +3,8 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import java.math.BigDecimal; @@ -25,5 +27,8 @@ public interface TbsBudgetLogService extends IService { */ TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TbsCostApply costApply, TbsBudgetCostItem item, TbsBudget budget, BigDecimal amount, TbsActivity activity); + + TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TzcPolicy tzcPolicy, TbsBudgetCostItemPolicy item, TbsBudget budget, BigDecimal amount, TzcPolicyItem policyItem); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostUnItemPolicyService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostUnItemPolicyService.java new file mode 100644 index 00000000..b15440a8 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostUnItemPolicyService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tbs.entity.TbsCostUnItemPolicy; + +/** + * 预算费用明细 服务接口 + * @author YenHex + * @date 2023-02-24 + */ +public interface TbsCostUnItemPolicyService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java index 9d02becc..e075918f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java @@ -3,6 +3,8 @@ package com.qs.serve.modules.tbs.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tzc.entity.TzcPolicy; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -64,5 +66,36 @@ public class TbsBudgetLogServiceImpl extends ServiceImpl implements TbsCostUnItemPolicyService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 629fecc3..1723d6a5 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -54,6 +54,17 @@ public class TzcPolicyController { return R.ok(result.getTableData()); } + /** + * 提交政策申请 + * @param id + * @return + */ + @PostMapping("commitApply") + public R commitApply(Long id){ + policyApplication.commitPolicy(id); + return R.ok(); + } + /** * 翻页 * @param param diff --git a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java index 3a9ba47e..fa1cb383 100644 --- a/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java +++ b/src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java @@ -92,6 +92,10 @@ public class TzcPolicy implements Serializable { @Length(max = 32,message = "申请人长度不能超过32字") private String userName; + private String syFormId; + + private String syFlowId; + /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java index d69ce8d4..347d8b59 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java @@ -1,10 +1,22 @@ package com.qs.serve.modules.tzc.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.serve.common.util.Assert; -import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.model.consts.BudgetLogOptFlag; +import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.*; +import com.qs.serve.common.util.model.DateFormatString; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; +import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; +import com.qs.serve.modules.seeyon.service.SeeYonService; +import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysConfigService; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsGoodsType; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.util.TbsBudgetCostUtil; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; @@ -12,10 +24,8 @@ import com.qs.serve.modules.tbs.entity.dto.TbsBudgetItemCostResult; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; -import com.qs.serve.modules.tbs.service.TbsBudgetApplicationService; -import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; -import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService; -import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService; +import com.qs.serve.modules.tbs.service.*; +import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; @@ -23,8 +33,10 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -40,19 +52,123 @@ public class TzcPolicyApplication { private TzcPolicyService tzcPolicyService; private TzcPolicyItemService tzcPolicyItemService; private TzcPolicyGoodsService tzcPolicyGoodsService; + private TbsCostUnItemPolicyService tbsCostUnItemPolicyService; + private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService; private TbsBudgetApplicationService budgetApplicationService; private TbsScheduleItemBudgetService tbsScheduleItemBudgetService; private TbsBudgetMapper tbsBudgetMapper; private TbsScheduleItemBudgetMapper tbsScheduleItemBudgetMapper; + private TbsBudgetLogService budgetLogService; private TbsBudgetConditionService tbsBudgetConditionService; private TbsBudgetCostItemService tbsBudgetCostItemService; private SysConfigService configService; + private SysUserService sysUserService; + private SeeYonService seeYonService; + private BmsSupplierService bmsSupplierService; + /** - * + * 提交申请 * @param policyId */ + @Transactional(rollbackFor = Exception.class) public void commitPolicy(Long policyId){ - // + seeYonService.testConnection(); + TzcPolicy tzcPolicy = tzcPolicyService.getById(policyId); + if(!tzcPolicy.allowEditFlag()){ + Assert.throwEx("操作失败,政策状态不支持"); + } + BmsSupplier supplier = bmsSupplierService.getById(tzcPolicy.getSupplierId()); + if(supplier.getCostFlag().equals(0)){ + Assert.throwEx("["+supplier.getName()+"]无投放费用权限"); + } + TbsBudgetCostResult result = this.buildBudgetCostResult(policyId,true,false); + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + sysUser.checkSyAccount(); + Map data = new HashMap<>(10); + data.put("applyUserCode",sysUser.getCode()); + data.put("applyUserName",sysUser.getName()); + data.put("supplierName",tzcPolicy.getSupplierName()); + data.put("supplierCode",tzcPolicy.getSupplierCode()); + data.put("title",tzcPolicy.getTitle()); + data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); + data.put("rowState","03"); + data.put("orgId",tzcPolicy.getId()); + data.put("targetId",tzcPolicy.getId()); + data.put("targetCode",tzcPolicy.getPolicyCode()); + data.put("exsp1", TbsSeeYonConst.PolicyConf.Code()); + BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); + createProcess.setTemplateCode(TbsSeeYonConst.PolicyConf.Code()); + createProcess.setMemberLoginName(sysUser.getSyAccount()); + createProcess.setSubjectTitle(TbsSeeYonConst.PRE_TITLE_COST_APPLY + tzcPolicy.getTitle()); + createProcess.setDataJson(JsonUtil.objectToJson(data)); + R flowIdResult = seeYonService.baseCreateProcess(createProcess); + if(flowIdResult.getStatus()!=200){ + Assert.throwEx("远程服务调用失败"); + } + String flowId = flowIdResult.getData(); + String formId = null; + R formIdResult = seeYonService.getCostFormId(policyId); + if(formIdResult.getStatus()==200){ + formId = formIdResult.getData(); + } + TzcPolicy updPolicy = new TzcPolicy(); + updPolicy.setId(policyId); + updPolicy.setSyFlowId(flowId); + updPolicy.setSyFormId(formId); + updPolicy.setPolicyStatus(TzcPolicyStatus.Status_1_Checking); + tzcPolicyService.updateById(updPolicy); + tzcPolicy = tzcPolicyService.getById(policyId); + //移除历史记录 + tzcPolicyItemService.removeByPolicyId(policyId); + //保存无命中条件的预算 + if(CollectionUtil.isNotEmpty(result.getBudgetUnMatchList())){ + List costUnItems = result.getBudgetUnMatchList().stream() + .map(obj-> { + TbsCostUnItemPolicy itemPolicy = CopierUtil.copy(obj,new TbsCostUnItemPolicy()); + itemPolicy.initSetNull(); + return itemPolicy; + }).collect(Collectors.toList()); + tbsCostUnItemPolicyService.saveBatch(costUnItems); + } + //重新保存 + List allBudgetItem = result.getPolicyBudgetMatchList(); + tbsBudgetCostItemPolicyService.saveBatch(allBudgetItem); + //保存预算使用日志 + if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){ + List budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); + if(CollectionUtil.isNotEmpty(budgetLogList)){ + budgetLogService.saveBatch(budgetLogList); + } + }else { + //排除历史记录 + List budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); + LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); + logLqw.eq(TbsBudgetLog::getPolicyId,policyId); + logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1); + List oldLogList = budgetLogService.list(logLqw); + List oldLogList4Upd = oldLogList.stream().map(a->{ + TbsBudgetLog budgetLog = new TbsBudgetLog(); + budgetLog.setId(a.getId()); + budgetLog.setRollbackFlag(BudgetLogRollbackFlag.State_2); + return budgetLog; + }).collect(Collectors.toList()); + budgetLogService.updateBatchById(oldLogList4Upd); + for (TbsBudgetLog budgetLog : oldLogList) { + budgetLog.setCreateBy(null); + budgetLog.setCreateTime(null); + budgetLog.setUpdateBy(null); + budgetLog.setUpdateTime(null); + budgetLog.setId(null); + budgetLog.setAmount(budgetLog.getAmount().negate()); + budgetLog.setOptType(BudgetLogOptFlag.State_12); + } + budgetLogService.saveBatch(oldLogList); + budgetLogList.forEach(a->a.setOptType(BudgetLogOptFlag.State_13)); + budgetLogService.saveBatch(budgetLogList); + } + //创建流程后回调 + BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),policyId+""); + seeYonService.createCallbackStatus(callbackBo); } public TbsBudgetCostResult buildBudgetCostResult(Long policyId, @@ -530,4 +646,41 @@ public class TzcPolicyApplication { return scheduleItemList; } + /** + * 保存预算使用日志 + * @param result + * @param sysUser + * @param tzcPolicy + * @param allBudgetItem + */ + private List saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TzcPolicy tzcPolicy, List allBudgetItem, List policyItemList) { + List budgetLogList = new ArrayList<>(); + List budgetList = result.getBudgetList(); + for (TbsBudgetCostItemPolicy item : allBudgetItem) { + //排除不匹配预算的项 + if(item.getBudgetId().equals(0L)){ + continue; + } + TbsBudget budget = null; + for (TbsBudget tbsBudget : budgetList) { + if(item.getBudgetId().equals(tbsBudget.getId())){ + budget = tbsBudget; + break; + } + } + if(budget==null){ + continue; + } + TzcPolicyItem currPolicyItem = null; + for (TzcPolicyItem policyItem : policyItemList) { + if(item.getPolicyItemId().equals(policyItem.getId())){ + currPolicyItem = policyItem; + } + } + TbsBudgetLog budgetLog = budgetLogService.buildTbsBudgetLog(BudgetLogOptFlag.State_11,sysUser, tzcPolicy, item, budget,item.getPolicyItemAmount().negate(),currPolicyItem); + budgetLogList.add(budgetLog); + } + return budgetLogList; + } + } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java index 5eb6a9f5..87641441 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java @@ -16,6 +16,8 @@ public interface TzcPolicyItemService extends IService { List listByPolicyId(Long id); + void removeByPolicyId(Long id); + TzcPolicyItem getByPolicyItemCode(String code); R modify(TzcPolicyItemBo param); diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java index 75dfef12..d0fbf5a6 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java @@ -14,11 +14,9 @@ public interface TzcPolicyService extends IService { R modify(TzcPolicyBo policyParam); - /** - * 提交审批 - * @param policyId - */ - void commitPolicy(Long policyId); + + void releaseCost(Long policyId,Integer invalidFlag); + } diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java index 71339752..8e097c18 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java @@ -62,6 +62,13 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(TzcPolicyItem::getPolicyId,id); + this.remove(lqw); + } + @Override @Transactional(rollbackFor = Exception.class) public R modify(TzcPolicyItemBo param) { diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java index 856b66b9..9adc6a50 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java @@ -14,6 +14,8 @@ import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.entity.TbsBudgetCostItemPolicy; +import com.qs.serve.modules.tbs.service.TbsBudgetCostItemPolicyService; import com.qs.serve.modules.tbs.service.TbsCenterDtoService; import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; @@ -39,6 +41,7 @@ public class TzcPolicyServiceImpl extends ServiceImpl private BmsSupplierService bmsSupplierService; private SysUserService sysUserService; + private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService; @Override @Transactional(rollbackFor = Exception.class) @@ -71,8 +74,12 @@ public class TzcPolicyServiceImpl extends ServiceImpl @Override - public void commitPolicy(Long policyId) { - + public void releaseCost(Long policyId, Integer invalidFlag) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsBudgetCostItemPolicy::getPolicyId,policyId); + TbsBudgetCostItemPolicy param = new TbsBudgetCostItemPolicy(); + param.setInvalidFlag(invalidFlag); + tbsBudgetCostItemPolicyService.update(param,lqw); } diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index 3602c593..d968d253 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -184,8 +184,8 @@ public class VtbVerificationController { if(syFormId==null){ return R.ok(); } - String templateId = TbsSeeYonConst.VERIFICATION_TMP_ID; - String templateCode = TbsSeeYonConst.VERIFICATION_CODE; + String templateId = TbsSeeYonConst.CostCheckConf.Id(); + String templateCode = TbsSeeYonConst.CostCheckConf.Code(); R> result = seeYonService.commonListAffairs(verificationId+"",null, templateId,templateCode); List result2 = verificationApplication.buildCtpAffairVoList(result.getData()); return R.ok(result2); @@ -209,8 +209,8 @@ public class VtbVerificationController { param.setState(state); param.setPageNum(pageNum); param.setPageSize(pageSize); - param.setTemplateId(TbsSeeYonConst.VERIFICATION_TMP_ID); - param.setTemplateCode(TbsSeeYonConst.VERIFICATION_CODE); + param.setTemplateId(TbsSeeYonConst.CostCheckConf.Id()); + param.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code()); R> syResult = seeYonService.pageMemberAffair(param); PageVo pageVo = syResult.getData(); List ctpAffairs = pageVo.getList(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index 1458d141..9f3734a5 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java @@ -92,7 +92,7 @@ public class VtbVerificationApplication { } boolean isBackCommit = affairCommit.getState()==2; - R result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.VERIFICATION_CODE); + R result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code()); if(result.getStatus()==200){ // 判断是否含有下个节点 String flag = result.getData(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 9e683f56..e8f72eee 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -315,9 +315,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl