Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
2913b32174
  1. 31
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 1
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  3. 4
      src/main/java/com/qs/serve/modules/bms/entity/BmsSubject.java
  4. 5
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  5. 108
      src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetConditionUtil.java
  6. 15
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java
  7. 1
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java
  8. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java
  9. 170
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java
  10. 126
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeCondition.java
  11. 141
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java
  12. 6
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java
  13. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeConditionMapper.java
  14. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeMapper.java
  15. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeScheduleItemMapper.java
  16. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeConditionService.java
  17. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeScheduleItemService.java
  18. 22
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeService.java
  19. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java
  20. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeConditionServiceImpl.java
  21. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeScheduleItemServiceImpl.java
  22. 62
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java
  23. 57
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  24. 16
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

31
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -7,8 +7,10 @@ import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.SpringUtils; import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.sys.entity.SysOperationLog; import com.qs.serve.modules.sys.entity.SysOperationLog;
import com.qs.serve.modules.sys.mapper.SysOperationLogMapper; import com.qs.serve.modules.sys.mapper.SysOperationLogMapper;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.service.impl.TbsBudgetApplyOperationServiceImpl;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl; import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl;
import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerification;
@ -72,6 +74,35 @@ public class AsyncFactory {
}; };
} }
/**
* 异步保存费用申请状态
* @param budgetId
* @return
*/
public static TimerTask submitBudgetApply(String budgetId) {
return new TimerTask() {
@Override
public void run() {
try {
AuthContextUtils.setTenant("001");
log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start------------------------------");
Thread.sleep(7*1000);
TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(budgetId);
if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
finishedParam.setTargetId(budgetId);
applyOperationService.doFinished(finishedParam);
}
log.debug("--------------------------SubmitBudgetApply CallbackTimer summeryResult:{} ------------------------------",summeryResult);
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
/** /**
* 异步保存费用申请状态 * 异步保存费用申请状态
* @param costApply * @param costApply

1
src/main/java/com/qs/serve/common/util/CodeGenUtil.java

@ -25,6 +25,7 @@ public class CodeGenUtil {
Verification("verification"), Verification("verification"),
Policy("policy"), Policy("policy"),
Budget("Budget"), Budget("Budget"),
BudgetChange("BudgetChange"),
PolicyItem("policy_item"); PolicyItem("policy_item");
private String code; private String code;
} }

4
src/main/java/com/qs/serve/modules/bms/entity/BmsSubject.java

@ -65,6 +65,10 @@ public class BmsSubject implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
private String thirdCode;
private String thirdName;
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

5
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.seeyon.service; package com.qs.serve.modules.seeyon.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -314,6 +316,9 @@ public interface SeeYonOperationService extends SeeYonBaseService{
} }
}else if ("next".equals(flag)){ }else if ("next".equals(flag)){
this.doNext(affairCommit); this.doNext(affairCommit);
//请求校验是否成功
AsyncManager.me().execute(AsyncFactory.submitBudgetApply(affairCommit.getTargetId()));
return R.ok(); return R.ok();
} }
}else if (result.getStatus()==500){ }else if (result.getStatus()==500){

108
src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetConditionUtil.java

@ -0,0 +1,108 @@
package com.qs.serve.modules.tbs.common.util;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.goods.entity.GoodsCategory;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.service.GoodsCategoryService;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author YenHex
* @since 2023/8/9
*/
public class TbsBudgetConditionUtil {
/**
* 建立条件数据
* @param budgetId
* @param brandIds
* @param categoryIds
* @param seriesIds
* @param spuIds
* @param skuIds
*/
public static List<TbsBudgetCondition> buildCondition(Long budgetId, List<Long> brandIds, List<Long> categoryIds, List<Long> seriesIds, List<Long> spuIds, List<Long> skuIds){
GoodsSkuService goodsSkuService = SpringUtils.getBean(GoodsSkuService.class);
GoodsSpuService goodsSpuService = SpringUtils.getBean(GoodsSpuService.class);
GoodsCategoryService goodsCategoryService = SpringUtils.getBean(GoodsCategoryService.class);
List<TbsBudgetCondition> budgetConditions = new ArrayList<>();
if (CollectionUtil.isNotEmpty(skuIds)) {
List<GoodsSku> skuList = goodsSkuService.listByIds(skuIds);
for (GoodsSku sku : skuList) {
GoodsSpu goodsSpu = goodsSpuService.getById(sku.getSpuId());
GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst());
GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond());
GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird());
TbsBudgetCondition condition = new TbsBudgetCondition();
condition.setBudgetId(budgetId);
condition.setTargetType(TbsGoodsType.sku.name());
condition.setTargetId(sku.getId());
condition.setTargetCode(sku.getSkuCode());
condition.setTargetName(sku.getSpecInfos());
condition.setTargetLevelPathIds(category1.getId() + "_" + category2.getId() + "_" + category3.getId() + "_" + goodsSpu.getId() + "_" + sku.getId());
condition.setTargetLevelPathNames(category1.getName() + "_" + category2.getName() + "_" + category3.getName() + "_" + goodsSpu.getName() + "_" + sku.getSpecInfos());
budgetConditions.add(condition);
}
}
if (CollectionUtil.isNotEmpty(spuIds)) {
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds);
for (GoodsSpu goodsSpu : spuList) {
GoodsCategory category1 = goodsCategoryService.getById(goodsSpu.getCategoryFirst());
GoodsCategory category2 = goodsCategoryService.getById(goodsSpu.getCategorySecond());
GoodsCategory category3 = goodsCategoryService.getById(goodsSpu.getCategoryThird());
TbsBudgetCondition condition = new TbsBudgetCondition();
condition.setBudgetId(budgetId);
condition.setTargetType(TbsGoodsType.spu.name());
condition.setTargetId(goodsSpu.getId());
condition.setTargetCode(goodsSpu.getSpuCode());
condition.setTargetName(goodsSpu.getName());
condition.setTargetLevelPathIds(category1.getId() + "_" + category2.getId() + "_" + category3.getId() + "_" + goodsSpu.getId());
condition.setTargetLevelPathNames(category1.getName() + "_" + category2.getName() + "_" + category3.getName() + "_" + goodsSpu.getName());
budgetConditions.add(condition);
}
}
budgetConditions.addAll(buildCategoryCondition(goodsCategoryService,budgetId, seriesIds, TbsGoodsType.series.name()));
budgetConditions.addAll(buildCategoryCondition(goodsCategoryService,budgetId, categoryIds, TbsGoodsType.category.name()));
budgetConditions.addAll(buildCategoryCondition(goodsCategoryService,budgetId, brandIds, TbsGoodsType.brand.name()));
return budgetConditions;
}
/**
* 建立类目条件
* @param goodsCategoryService
* @param budgetId
* @param categoryIds
* @param targetType
* @return
*/
private static List<TbsBudgetCondition> buildCategoryCondition(GoodsCategoryService goodsCategoryService, Long budgetId, List<Long> categoryIds, String targetType){
List<TbsBudgetCondition> budgetConditions = new ArrayList<>();
if(CollectionUtil.isNotEmpty(categoryIds)){
List<GoodsCategory> categoryList = goodsCategoryService.listByIds(categoryIds);
for (GoodsCategory category : categoryList) {
TbsBudgetCondition condition = new TbsBudgetCondition();
condition.setBudgetId(budgetId);
condition.setTargetType(targetType);
condition.setTargetId(category.getId());
condition.setTargetCode(category.getCode());
condition.setTargetName(category.getName());
condition.setTargetLevelPathIds(category.getLevelPath());
condition.setTargetLevelPathNames(category.getLevelPathNames());
budgetConditions.add(condition);
}
}
return budgetConditions;
}
}

15
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java

@ -1,7 +1,11 @@
package com.qs.serve.modules.tbs.controller; package com.qs.serve.modules.tbs.controller;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeService;
import com.qs.serve.modules.tbs.service.TbsBudgetService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -17,13 +21,16 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping("tbs/budgetCheck") @RequestMapping("tbs/budgetCheck")
public class TbsBudgetCheckController { public class TbsBudgetCheckController {
private final TbsBudgetService tbsBudgetService;
private final TbsBudgetChangeService tbsBudgetChangeService;
/** /**
* 提交申请 * 提交申请
* @return * @return
*/ */
@PostMapping("commitApply/{id}") @PostMapping("commitApply/{id}")
public R<?> commitApply(@PathVariable("id") String id){ public R<?> commitApply(@PathVariable("id") Long id){
tbsBudgetService.commitApply(id);
return R.ok(); return R.ok();
} }
@ -34,10 +41,8 @@ public class TbsBudgetCheckController {
*/ */
@PostMapping("commitChangeApply") @PostMapping("commitChangeApply")
public R<?> commitApply(@RequestBody TbsBudgetUpdateAfterStartBo param){ public R<?> commitApply(@RequestBody TbsBudgetUpdateAfterStartBo param){
tbsBudgetChangeService.commitApply(param);
return R.ok(); return R.ok();
} }
} }

1
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySubject.java

@ -119,6 +119,7 @@ public class TbsActivitySubject implements Serializable {
@JsonProperty @JsonProperty
private String delFlag; private String delFlag;
/** 模板唯一健 */ /** 模板唯一健 */
private String tmpUk; private String tmpUk;

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java

@ -104,6 +104,9 @@ public class TbsBudget implements Serializable {
/** 致远表单id */ /** 致远表单id */
private String syFormId; private String syFormId;
/** 提交审批时间 */
private LocalDateTime submitTime;
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

170
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java

@ -0,0 +1,170 @@
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-08-09
*/
@Data
@TableName("tbs_budget_change")
public class TbsBudgetChange implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 更变记录编码 */
@Length(max = 30,message = "更变记录编码长度不能超过30字")
private String changeCode;
/** 名称 */
@NotBlank(message = "名称不能为空")
@Length(max = 30,message = "名称长度不能超过30字")
private String budgetTitle;
/** 名称 */
private String newBudgetTitle;
/** 编码 */
@Length(max = 30,message = "编码长度不能超过30字")
private String budgetNumber;
/** 审批状态 */
@NotNull(message = "审批状态不能为空")
private Integer budgetCheckState;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@Length(max = 30,message = "科目编码长度不能超过30字")
private String subjectCode;
/** 科目名称 */
@Length(max = 30,message = "科目名称长度不能超过30字")
private String subjectName;
/** 成本中心类型 */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 20,message = "成本中心类型长度不能超过20字")
private String centerType;
/** 成本中心id */
@NotBlank(message = "成本中心id不能为空")
@Length(max = 32,message = "成本中心id长度不能超过32字")
private String centerId;
/** 成本中心编码 */
@NotBlank(message = "成本中心编码不能为空")
@Length(max = 30,message = "成本中心编码长度不能超过30字")
private String centerCode;
/** 成本中心名称 */
@NotBlank(message = "成本中心名称不能为空")
@Length(max = 30,message = "成本中心名称长度不能超过30字")
private String centerName;
/** 考核期id */
@NotNull(message = "考核期id不能为空")
private Long scheduleId;
/** 考核期编码 */
@NotBlank(message = "考核期编码不能为空")
@Length(max = 30,message = "考核期编码长度不能超过30字")
private String scheduleCode;
/** 考核期名称 */
@NotBlank(message = "考核期名称不能为空")
@Length(max = 30,message = "考核期名称长度不能超过30字")
private String scheduleName;
/** 提交审批时间 */
@Length(max = 0,message = "提交审批时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 备注 */
@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;
public static TbsBudgetChange toNewObject(TbsBudget source){
TbsBudgetChange budgetChange = new TbsBudgetChange();
budgetChange.setId(source.getId());
//budgetChange.setChangeCode(source.getChangeCode());
//budgetChange.setBudgetTitle(source.getBudgetTitle());
budgetChange.setBudgetNumber(source.getBudgetNumber());
budgetChange.setBudgetCheckState(source.getBudgetCheckState());
budgetChange.setSubjectId(source.getSubjectId());
budgetChange.setSubjectCode(source.getSubjectCode());
budgetChange.setSubjectName(source.getSubjectName());
budgetChange.setCenterType(source.getCenterType());
budgetChange.setCenterId(source.getCenterId());
budgetChange.setCenterCode(source.getCenterCode());
budgetChange.setCenterName(source.getCenterName());
budgetChange.setScheduleId(source.getScheduleId());
budgetChange.setScheduleCode(source.getScheduleCode());
budgetChange.setScheduleName(source.getScheduleName());
budgetChange.setSubmitTime(source.getSubmitTime());
budgetChange.setRemark(source.getRemark());
// budgetChange.setCreateTime(source.getCreateTime());
// budgetChange.setUpdateTime(source.getUpdateTime());
// budgetChange.setTenantId(source.getTenantId());
// budgetChange.setCreateBy(source.getCreateBy());
// budgetChange.setUpdateBy(source.getUpdateBy());
// budgetChange.setDelFlag(source.getDelFlag());
return budgetChange;
}
}

126
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeCondition.java

@ -0,0 +1,126 @@
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-08-09
*/
@Data
@TableName("tbs_budget_change_condition")
public class TbsBudgetChangeCondition implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 更变记录id */
@NotNull(message = "更变记录id不能为空")
private Long changeId;
/** 预算id */
@NotNull(message = "预算id不能为空")
private Long budgetId;
/** 目标类型(brand、category、series、spu、sku) */
@NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空")
@Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字")
private String targetType;
/** 目标id */
@NotNull(message = "目标id不能为空")
private Long targetId;
/** 目标编码 */
@NotBlank(message = "目标编码不能为空")
@Length(max = 100,message = "目标编码长度不能超过100字")
private String targetCode;
/** 目标名称 */
@NotBlank(message = "目标名称不能为空")
@Length(max = 500,message = "目标名称长度不能超过500字")
private String targetName;
/** 目标等级路径 */
@Length(max = 600,message = "目标等级路径长度不能超过600字")
private String targetLevelPathIds;
/** 目标等级路径 */
@Length(max = 1200,message = "目标等级路径长度不能超过1200字")
private String targetLevelPathNames;
/** 备注 */
@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;
public static TbsBudgetChangeCondition toNewObject(TbsBudgetCondition source){
TbsBudgetChangeCondition budgetChangeCondition = new TbsBudgetChangeCondition();
budgetChangeCondition.setId(source.getId());
//budgetChangeCondition.setChangeId(source.getChangeId());
budgetChangeCondition.setBudgetId(source.getBudgetId());
budgetChangeCondition.setTargetType(source.getTargetType());
budgetChangeCondition.setTargetId(source.getTargetId());
budgetChangeCondition.setTargetCode(source.getTargetCode());
budgetChangeCondition.setTargetName(source.getTargetName());
budgetChangeCondition.setTargetLevelPathIds(source.getTargetLevelPathIds());
budgetChangeCondition.setTargetLevelPathNames(source.getTargetLevelPathNames());
budgetChangeCondition.setRemark(source.getRemark());
// budgetChangeCondition.setCreateTime(source.getCreateTime());
// budgetChangeCondition.setUpdateTime(source.getUpdateTime());
// budgetChangeCondition.setTenantId(source.getTenantId());
// budgetChangeCondition.setCreateBy(source.getCreateBy());
// budgetChangeCondition.setUpdateBy(source.getUpdateBy());
// budgetChangeCondition.setDelFlag(source.getDelFlag());
return budgetChangeCondition;
}
}

141
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChangeScheduleItem.java

@ -0,0 +1,141 @@
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-08-09
*/
@Data
@TableName("tbs_budget_change_schedule_item")
public class TbsBudgetChangeScheduleItem implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 更变记录id */
private Long changeId;
/** 考核id */
@NotNull(message = "考核id不能为空")
private Long scheduleId;
/** 考核期项id */
@NotNull(message = "考核期项id不能为空")
private Long scheduleItemId;
/** 考核编码 */
@NotBlank(message = "考核编码不能为空")
@Length(max = 30,message = "考核编码长度不能超过30字")
private String itemName;
/** 开始时间 */
@NotNull(message = "开始时间不能为空")
@Length(max = 0,message = "开始时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime startDate;
/** 结束时间 */
@NotNull(message = "结束时间不能为空")
@Length(max = 0,message = "结束时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime endDate;
/** 预算id */
@NotNull(message = "预算id不能为空")
private Long budgetId;
/** 预算金额 */
@NotNull(message = "预算金额不能为空")
private BigDecimal budgetAmount;
/** 预估发货金额 */
private BigDecimal preDispatchAmount;
/** 新的预算金额 */
private BigDecimal newBudgetAmount;
/** 新的预估发货金额 */
private BigDecimal newPreDispatchAmount;
/** 备注 */
@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;
public static TbsBudgetChangeScheduleItem toNewObject(TbsBudgetChangeScheduleItem source){
TbsBudgetChangeScheduleItem budgetChangeScheduleItem = new TbsBudgetChangeScheduleItem();
budgetChangeScheduleItem.setId(source.getId());
budgetChangeScheduleItem.setChangeId(source.getChangeId());
budgetChangeScheduleItem.setScheduleId(source.getScheduleId());
budgetChangeScheduleItem.setScheduleItemId(source.getScheduleItemId());
budgetChangeScheduleItem.setItemName(source.getItemName());
budgetChangeScheduleItem.setStartDate(source.getStartDate());
budgetChangeScheduleItem.setEndDate(source.getEndDate());
budgetChangeScheduleItem.setBudgetId(source.getBudgetId());
budgetChangeScheduleItem.setBudgetAmount(source.getBudgetAmount());
budgetChangeScheduleItem.setPreDispatchAmount(source.getPreDispatchAmount());
budgetChangeScheduleItem.setNewBudgetAmount(source.getNewBudgetAmount());
budgetChangeScheduleItem.setNewPreDispatchAmount(source.getNewPreDispatchAmount());
budgetChangeScheduleItem.setRemark(source.getRemark());
budgetChangeScheduleItem.setCreateTime(source.getCreateTime());
budgetChangeScheduleItem.setUpdateTime(source.getUpdateTime());
budgetChangeScheduleItem.setTenantId(source.getTenantId());
budgetChangeScheduleItem.setCreateBy(source.getCreateBy());
budgetChangeScheduleItem.setUpdateBy(source.getUpdateBy());
budgetChangeScheduleItem.setDelFlag(source.getDelFlag());
return budgetChangeScheduleItem;
}
}

6
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetAmtBo.java

@ -9,10 +9,10 @@ import lombok.Data;
@Data @Data
public class TbsBudgetAmtBo { public class TbsBudgetAmtBo {
private Integer type;
private Long budgetScheduleItemId; private Long budgetScheduleItemId;
private Integer amount; private Integer preDispatchAmount;
private Integer budgetAmount;
} }

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeConditionMapper.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.TbsBudgetChangeCondition;
/**
* 预算更变记录条件 Mapper
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeConditionMapper extends BaseMapper<TbsBudgetChangeCondition> {
}

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeMapper.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.TbsBudgetChange;
/**
* 预算更变记录 Mapper
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeMapper extends BaseMapper<TbsBudgetChange> {
}

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetChangeScheduleItemMapper.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.TbsBudgetChangeScheduleItem;
/**
* 考核期更变记录 Mapper
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeScheduleItemMapper extends BaseMapper<TbsBudgetChangeScheduleItem> {
}

14
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeConditionService.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.TbsBudgetChangeCondition;
/**
* 预算更变记录条件 服务接口
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeConditionService extends IService<TbsBudgetChangeCondition> {
}

14
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeScheduleItemService.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.TbsBudgetChangeScheduleItem;
/**
* 考核期更变记录 服务接口
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeScheduleItemService extends IService<TbsBudgetChangeScheduleItem> {
}

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

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 预算更变记录 服务接口
* @author YenHex
* @date 2023-08-09
*/
public interface TbsBudgetChangeService extends IService<TbsBudgetChange> {
/**
* 提交修改
* @param param
*/
void commitApply(TbsBudgetUpdateAfterStartBo param);
}

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

@ -19,6 +19,12 @@ import java.util.List;
*/ */
public interface TbsBudgetService extends IService<TbsBudget> { public interface TbsBudgetService extends IService<TbsBudget> {
/**
* 提交申请
* @param id
*/
void commitApply(Long id);
/** /**
* 修改 * 修改
* @param budgetBo * @param budgetBo

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeConditionServiceImpl.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.TbsBudgetChangeCondition;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeConditionService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeConditionMapper;
/**
* 预算更变记录条件 服务实现类
* @author YenHex
* @since 2023-08-09
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetChangeConditionServiceImpl extends ServiceImpl<TbsBudgetChangeConditionMapper,TbsBudgetChangeCondition> implements TbsBudgetChangeConditionService {
}

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeScheduleItemServiceImpl.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.TbsBudgetChangeScheduleItem;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeScheduleItemService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeScheduleItemMapper;
/**
* 考核期更变记录 服务实现类
* @author YenHex
* @since 2023-08-09
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetChangeScheduleItemServiceImpl extends ServiceImpl<TbsBudgetChangeScheduleItemMapper,TbsBudgetChangeScheduleItem> implements TbsBudgetChangeScheduleItemService {
}

62
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java

@ -0,0 +1,62 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CodeGenUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetConditionUtil;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeCondition;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeConditionMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper;
import java.util.List;
import java.util.stream.Collectors;
/**
* 预算更变记录 服务实现类
* @author YenHex
* @since 2023-08-09
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMapper,TbsBudgetChange> implements TbsBudgetChangeService {
private final TbsBudgetMapper tbsBudgetMapper;
private final TbsBudgetChangeConditionMapper tbsBudgetChangeConditionMapper;
@Override
public void commitApply(TbsBudgetUpdateAfterStartBo param) {
TbsBudget budget = tbsBudgetMapper.selectById(param.getId());
TbsBudgetChange budgetChange = TbsBudgetChange.toNewObject(budget);
budgetChange.setChangeCode(CodeGenUtil.generate(CodeGenUtil.SourceKey.BudgetChange));
boolean notChangeTitle = param.getBudgetCode()!=null&&param.getBudgetCode().equals(budget.getBudgetCode());
if(!notChangeTitle){
budgetChange.setNewBudgetTitle(param.getBudgetCode());
}
this.save(budgetChange);
Long changeId = budgetChange.getId();
//设置条件
List<TbsBudgetCondition> budgetConditionList = TbsBudgetConditionUtil.buildCondition(
budget.getId(),param.getBrandIds(),param.getCategoryIds(),param.getSeriesIds(),param.getSpuIds(),param.getSkuIds());
List<TbsBudgetChangeCondition> changeConditionList = budgetConditionList.stream().map(cond->{
TbsBudgetChangeCondition changeCondition = TbsBudgetChangeCondition.toNewObject(cond);
changeCondition.setChangeId(changeId);
return changeCondition;
}).collect(Collectors.toList());
for (TbsBudgetChangeCondition changeCondition : changeConditionList) {
tbsBudgetChangeConditionMapper.insert(changeCondition);
}
//设置金额
}
}

57
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -3,8 +3,13 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.goods.entity.GoodsCategory; import com.qs.serve.modules.goods.entity.GoodsCategory;
@ -14,6 +19,8 @@ import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.goods.service.GoodsCategoryService; import com.qs.serve.modules.goods.service.GoodsCategoryService;
import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysAttach; import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService; import com.qs.serve.modules.sys.service.SysAttachService;
@ -21,6 +28,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; import com.qs.serve.modules.tbs.common.TbsBudgetCheckState;
import com.qs.serve.modules.tbs.common.TbsCenterType; import com.qs.serve.modules.tbs.common.TbsCenterType;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum; import com.qs.serve.modules.tbs.common.consts.ConditionMapEnum;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
@ -42,6 +50,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -76,8 +85,56 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
private final VtbFundFlowService vtbFundFlowService; private final VtbFundFlowService vtbFundFlowService;
private SysAttachService attachService; private SysAttachService attachService;
private SeeYonRequestService seeYonService;
private ProjectProperties projectProperties;
@Override
public void commitApply(Long id) {
seeYonService.testConnection();
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsBudget tbsBudget = this.getById(id);
Map<String,Object> data = new HashMap<>();
data.put("exsp5", tbsBudget.getBudgetCode());
data.put("orgId", tbsBudget.getId().toString());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("targetId", tbsBudget.getId()+"");
data.put("targetCode", tbsBudget.getBudgetNumber());
data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code());
//添加跳转地址业务
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),TbsSeeYonConst.CostApplyConf.Code(),id+"");
data.put("cmsLink",baseJumpUrl);
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03");
String templateCode = TbsSeeYonConst.BudgetApplyConf.Code();
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode);
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle(tbsBudget.getBudgetCode()+"【"+tbsBudget.getBudgetNumber()+"】");
createProcess.setTargetId(tbsBudget.getId()+"");
createProcess.setDataJson(JsonUtil.objectToJson(data));
R<String> flowIdResult = seeYonService.baseCreateProcess(createProcess);
if(flowIdResult.getStatus()!=200){
Assert.throwEx("远程服务调用失败");
}
String formId = null;
R<String> formIdResult = seeYonService.getFormId(templateCode,tbsBudget.getId());
if(formIdResult.getStatus()==200){
formId = formIdResult.getData();
}
tbsBudget.setSubmitTime(LocalDateTime.now());
tbsBudget.setBudgetCheckState(TbsBudgetCheckState.State_1_apply);
tbsBudget.setSyFormId(formId);
this.updateById(tbsBudget);
//请求校验是否成功
AsyncManager.me().execute(AsyncFactory.submitBudgetApply(tbsBudget.getId()+""));
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void modify(TbsBudgetBo budgetBo) { public void modify(TbsBudgetBo budgetBo) {

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

@ -577,8 +577,17 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(",")); String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(","));
String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(",")); String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(","));
List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id)); List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id));
String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(",")); List<Long> subjectIds = tbsActivitySubjects.stream().map(a->a.getSubjectId()).collect(Collectors.toList());
String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(",")); if(subjectIds.size()>0){
List<BmsSubject> subjectList = subjectService.listByIds(subjectIds);
String concatSubjectCodes = subjectList.stream().map(BmsSubject::getThirdCode).collect(Collectors.joining(","));
String concatSubjectNames = subjectList.stream().map(BmsSubject::getThirdName).collect(Collectors.joining(","));
data.put("financeAccountCode",concatSubjectCodes);
data.put("financeAccountName",concatSubjectNames);
data.put("accountCode",concatSubjectCodes);
data.put("accountName",concatSubjectNames);
}
TbsCostContract contract = contracts.get(0); TbsCostContract contract = contracts.get(0);
data.put("payee",contract.getPayee()); data.put("payee",contract.getPayee());
@ -589,12 +598,9 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("sealNum",contract.getSealNum()); data.put("sealNum",contract.getSealNum());
data.put("fileNum",contract.getFileNum()); data.put("fileNum",contract.getFileNum());
data.put("accountCode",concatSubjectCodes);
data.put("accountName",concatSubjectNames);
data.put("costCenterNo",concatCenterCodes); data.put("costCenterNo",concatCenterCodes);
data.put("costCenterName",concatCenterNames); data.put("costCenterName",concatCenterNames);
data.put("contractName",contract.getContractName()); data.put("contractName",contract.getContractName());
data.put("applyMoney",contract.getContractAmount()); data.put("applyMoney",contract.getContractAmount());
data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString()); data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString());

Loading…
Cancel
Save