Browse Source

提交政策审批,调整读取致远配置方式

contract
Yen 2 years ago
parent
commit
daf5c1df14
  1. 1
      src/main/java/com/qs/serve/common/config/DevEnvironmentConfig.java
  2. 7
      src/main/java/com/qs/serve/common/model/consts/BudgetLogOptFlag.java
  3. 36
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  4. 10
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  5. 173
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostUnItemPolicy.java
  6. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostUnItemPolicyMapper.java
  7. 5
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java
  8. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostUnItemPolicyService.java
  9. 33
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java
  10. 6
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  11. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostUnItemPolicyServiceImpl.java
  12. 11
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  13. 4
      src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java
  14. 169
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java
  15. 2
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java
  16. 8
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java
  17. 7
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java
  18. 11
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyServiceImpl.java
  19. 8
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  20. 2
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  21. 6
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

1
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;

7
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;
}

36
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":"";
}
}
//模板ID
String COST_APPLY_TMP_ID = "3018014149748736162";
String VERIFICATION_TMP_ID = "8370474123848467567";
/** 费用申请 */
class CostApplyConf{
public static String Code(){
return DevEnvironmentConfig.isDev()?"CostBill_Test":"";
}
public static String Id(){
return DevEnvironmentConfig.isDev()?"3018014149748736162":"";
}
}
/** 核销 */
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";

10
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<List<CtpAffair>> syResult = seeYonService.commonListAffairs(costApplyId+"",null,templateId,templateCode);
List<CtpAffair> 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<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList();
@ -380,7 +380,7 @@ public class TbsCostApplyController {
if(!costApply.getChargeState().equals(TbsCostApplyState.State_1_apply.getCode())){
return R.error("费用申请处于未非审批状态!");
}
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.COST_APPLY_CODE);
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.CostApplyConf.Code());
boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){
// 判断是否含有下个节点

173
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);
}
}

14
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<TbsCostUnItemPolicy> {
}

5
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> {
*/
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);
}

14
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<TbsCostUnItemPolicy> {
}

33
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<TbsBudgetLogMapper,TbsB
return budgetLog;
}
@Override
public TbsBudgetLog buildTbsBudgetLog(Integer optType, SysUser sysUser, TzcPolicy tzcPolicy, TbsBudgetCostItemPolicy item, TbsBudget budget, BigDecimal amount, TzcPolicyItem policyItem) {
TbsBudgetLog budgetLog = new TbsBudgetLog();
budgetLog.setBudgetId(item.getBudgetId());
budgetLog.setBudgetCode(budget.getBudgetCode());
budgetLog.setOptType(optType);
budgetLog.setOptUserId(sysUser.getId());
budgetLog.setOptUserCode(sysUser.getCode());
budgetLog.setOptUserName(sysUser.getName());
budgetLog.setAmount(amount);
budgetLog.setScheduleId(item.getScheduleId());
budgetLog.setScheduleItemId(item.getScheduleItemId());
budgetLog.setScheduleItemBudgetId(item.getId());
budgetLog.setItemName(item.getScheduleItemName());
budgetLog.setStartDate(policyItem.getPolicyStartDate().atStartOfDay());
budgetLog.setEndDate(policyItem.getPolicyEndDate().atStartOfDay());
budgetLog.setSubjectId(item.getSubjectId());
budgetLog.setSubjectCode(item.getSubjectCode());
budgetLog.setSubjectName(item.getSubjectName());
budgetLog.setCenterId(item.getCenterId());
budgetLog.setCenterCode(item.getCenterCode());
budgetLog.setCenterName(item.getCenterName());
budgetLog.setCenterType(item.getCenterType());
budgetLog.setSupplierId(item.getSupplierId());
budgetLog.setSupplierCode(item.getSupplierCode());
budgetLog.setSupplierName(item.getSupplierName());
budgetLog.setPolicyId(tzcPolicy.getId());
budgetLog.setPolicyCode(tzcPolicy.getPolicyCode());
budgetLog.setPolicyTitle(tzcPolicy.getTitle());
return budgetLog;
}
}

6
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -88,9 +88,9 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("orgId",tbsCostApply.getId());
data.put("targetId",tbsCostApply.getId());
data.put("targetCode",tbsCostApply.getCode());
data.put("exsp1",TbsSeeYonConst.COST_APPLY_CODE);
data.put("exsp1",TbsSeeYonConst.CostApplyConf.Code());
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(TbsSeeYonConst.COST_APPLY_CODE);
createProcess.setTemplateCode(TbsSeeYonConst.CostApplyConf.Code());
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle(TbsSeeYonConst.PRE_TITLE_COST_APPLY + tbsCostApply.getChargeTheme());
createProcess.setDataJson(JsonUtil.objectToJson(data));
@ -159,7 +159,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
budgetLogService.saveBatch(budgetLogList);
}
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.COST_APPLY_CODE,tbsCostApply.getId()+"");
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),tbsCostApply.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
}

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostUnItemPolicyServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsCostUnItemPolicy;
import com.qs.serve.modules.tbs.service.TbsCostUnItemPolicyService;
import com.qs.serve.modules.tbs.mapper.TbsCostUnItemPolicyMapper;
/**
* 预算费用明细 服务实现类
* @author YenHex
* @since 2023-02-24
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsCostUnItemPolicyServiceImpl extends ServiceImpl<TbsCostUnItemPolicyMapper,TbsCostUnItemPolicy> implements TbsCostUnItemPolicyService {
}

11
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

4
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;

169
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<String, Object> 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<String> flowIdResult = seeYonService.baseCreateProcess(createProcess);
if(flowIdResult.getStatus()!=200){
Assert.throwEx("远程服务调用失败");
}
String flowId = flowIdResult.getData();
String formId = null;
R<String> 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<TbsCostUnItemPolicy> costUnItems = result.getBudgetUnMatchList().stream()
.map(obj-> {
TbsCostUnItemPolicy itemPolicy = CopierUtil.copy(obj,new TbsCostUnItemPolicy());
itemPolicy.initSetNull();
return itemPolicy;
}).collect(Collectors.toList());
tbsCostUnItemPolicyService.saveBatch(costUnItems);
}
//重新保存
List<TbsBudgetCostItemPolicy> allBudgetItem = result.getPolicyBudgetMatchList();
tbsBudgetCostItemPolicyService.saveBatch(allBudgetItem);
//保存预算使用日志
if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){
List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList());
if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList);
}
}else {
//排除历史记录
List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList());
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
logLqw.eq(TbsBudgetLog::getPolicyId,policyId);
logLqw.eq(TbsBudgetLog::getRollbackFlag, BudgetLogRollbackFlag.State_1);
List<TbsBudgetLog> oldLogList = budgetLogService.list(logLqw);
List<TbsBudgetLog> 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<TbsBudgetLog> saveBudgetLog(TbsBudgetCostResult result, SysUser sysUser, TzcPolicy tzcPolicy, List<TbsBudgetCostItemPolicy> allBudgetItem, List<TzcPolicyItem> policyItemList) {
List<TbsBudgetLog> budgetLogList = new ArrayList<>();
List<TbsBudget> 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;
}
}

2
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyItemService.java

@ -16,6 +16,8 @@ public interface TzcPolicyItemService extends IService<TzcPolicyItem> {
List<TzcPolicyItem> listByPolicyId(Long id);
void removeByPolicyId(Long id);
TzcPolicyItem getByPolicyItemCode(String code);
R<?> modify(TzcPolicyItemBo param);

8
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyService.java

@ -14,11 +14,9 @@ public interface TzcPolicyService extends IService<TzcPolicy> {
R<?> modify(TzcPolicyBo policyParam);
/**
* 提交审批
* @param policyId
*/
void commitPolicy(Long policyId);
void releaseCost(Long policyId,Integer invalidFlag);
}

7
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyItemServiceImpl.java

@ -62,6 +62,13 @@ public class TzcPolicyItemServiceImpl extends ServiceImpl<TzcPolicyItemMapper,Tz
return this.list(lqw);
}
@Override
public void removeByPolicyId(Long id) {
LambdaQueryWrapper<TzcPolicyItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(TzcPolicyItem::getPolicyId,id);
this.remove(lqw);
}
@Override
@Transactional(rollbackFor = Exception.class)
public R<?> modify(TzcPolicyItemBo param) {

11
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<TzcPolicyMapper,TzcPolicy>
private BmsSupplierService bmsSupplierService;
private SysUserService sysUserService;
private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -71,8 +74,12 @@ public class TzcPolicyServiceImpl extends ServiceImpl<TzcPolicyMapper,TzcPolicy>
@Override
public void commitPolicy(Long policyId) {
public void releaseCost(Long policyId, Integer invalidFlag) {
LambdaQueryWrapper<TbsBudgetCostItemPolicy> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsBudgetCostItemPolicy::getPolicyId,policyId);
TbsBudgetCostItemPolicy param = new TbsBudgetCostItemPolicy();
param.setInvalidFlag(invalidFlag);
tbsBudgetCostItemPolicyService.update(param,lqw);
}

8
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<List<CtpAffair>> result = seeYonService.commonListAffairs(verificationId+"",null, templateId,templateCode);
List<CtpAffairVo> 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<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param);
PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList();

2
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -92,7 +92,7 @@ public class VtbVerificationApplication {
}
boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.VERIFICATION_CODE);
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code());
if(result.getStatus()==200){
// 判断是否含有下个节点
String flag = result.getData();

6
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -315,9 +315,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("orgId",verification.getId());
data.put("targetId",verification.getId());
data.put("targetCode",verification.getVerificationCode());
data.put("exsp1",TbsSeeYonConst.VERIFICATION_CODE);
data.put("exsp1",TbsSeeYonConst.CostCheckConf.Code());
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(TbsSeeYonConst.VERIFICATION_CODE);
createProcess.setTemplateCode(TbsSeeYonConst.CostCheckConf.Code());
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle(TbsSeeYonConst.PRE_TITLE_VERIFICATION + verification.getRemark());
createProcess.setDataJson(JsonUtil.objectToJson(data));
@ -334,7 +334,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setSyFlowId(flowId);
verification.setSyFormId(formId);
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.VERIFICATION_CODE,verification.getId()+"");
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostCheckConf.Code(),verification.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
}

Loading…
Cancel
Save