Browse Source

客户帐余调整;完善协议类申请跑新流程

v1.0
Yen 2 years ago
parent
commit
3b2beec919
  1. 18
      doc/update.sql
  2. 1
      src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java
  3. 36
      src/main/java/com/qs/serve/common/model/oa/OaFormMainProcess.java
  4. 27
      src/main/java/com/qs/serve/common/model/oa/OaUploadFile.java
  5. 8
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java
  6. 24
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  7. 9
      src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java
  8. 10
      src/main/java/com/qs/serve/modules/erp/entity/dto/ErpCustomerAmountResult.java
  9. 3
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java
  10. 7
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
  11. 100
      src/main/java/com/qs/serve/modules/sys/entity/SysTableTemp.java
  12. 14
      src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java
  13. 2
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  14. 13
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  15. 95
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java
  16. 3
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java
  17. 125
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  18. 4
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java
  19. 14
      src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbSubjectDTO.java
  20. 11
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

18
doc/update.sql

@ -1,9 +1,25 @@
update tbs_budget_condition set brand_id = SUBSTRING_INDEX(target_level_path_ids,'_',1)
update tbs_budget set center_combo = concat(center_type,'_',center_id)
update vtb_verification v
left join tbs_activity act on act.id = v.activity_id
set v.activity_code = act.activity_code
where v.verification_main_code like 'DHX%'
select tbs_budget.id from tbs_budget
LEFT JOIN tbs_budget_condition
on tbs_budget_condition.budget_id = tbs_budget.id
where tbs_budget.del_flag = 0
and tbs_budget_condition.del_flag = 0
and tbs_budget.condition_flag = 0
and tbs_budget_condition.id is not null
GROUP BY tbs_budget.id
update tbs_budget set condition_flag = 1
where id in (
)

1
src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java

@ -24,4 +24,5 @@ public class ProjectApisProperties {
/** 嘉士利接口,spu转换sku */
private String spuToSku;
}

36
src/main/java/com/qs/serve/common/model/oa/OaFormMainProcess.java

@ -0,0 +1,36 @@
package com.qs.serve.common.model.oa;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2024/1/12
*/
@Data
public class OaFormMainProcess {
private String targetId;
/**
* 上次文件
*/
private List<OaUploadFile> uploadFiles;
/**
* data
*/
private Object data;
/**
* 员工号
*/
private String senderLoginName;
/**
* 模板编码
*/
private String templateCode;
}

27
src/main/java/com/qs/serve/common/model/oa/OaUploadFile.java

@ -0,0 +1,27 @@
package com.qs.serve.common.model.oa;
import lombok.Data;
/**
* @author YenHex
* @since 2024/1/12
*/
@Data
public class OaUploadFile {
/**
* 表单控件名称
*/
private String field;
/**
* 附件文件名
*/
private String name;
/**
* 附件url
*/
private String url;
}

8
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java

@ -5,6 +5,7 @@ import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import java.math.BigDecimal;
import java.util.List;
/**
@ -42,5 +43,12 @@ public interface BmsSupplierService extends IService<BmsSupplier> {
void updateBmsSuppliersOtherUserNullById(List<String> ids);
/**
* 根据客户编码获取报价单金额
* @param supplierCode
* @return
*/
BigDecimal getErpQuoAmount(String supplierCode);
}

24
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2;
@ -9,6 +10,7 @@ import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCenterType;
@ -21,8 +23,12 @@ import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_CUS_AMOUNT;
import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_CUS_AMOUNT_QUO;
/**
* 供应商 服务实现类
* @author YenHex
@ -37,6 +43,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
private BmsRegion2Service region2Service;
private SysUserService sysUserService;
private BmsSupplierApplicationService supplierApplicationService;
private SeeYonRequestBaseService seeYonRequestBaseService;
@Override
public List<BmsSupplier> selectSupplierList(BmsSupplier bmsSupplier) {
@ -302,5 +309,22 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
public void updateBmsSuppliersOtherUserNullById(List<String> ids){
this.baseMapper.updateBmsSuppliersOtherUserNullById(ids);
}
@Override
public BigDecimal getErpQuoAmount(String supplierCode) {
R<String> reqResult = seeYonRequestBaseService.getBase(ERP_CUS_AMOUNT_QUO+"?supplierCode="+supplierCode,"获取客户报价单累计["+supplierCode+"]金额");
if(reqResult==null || !reqResult.getStatus().equals(200)){
//有错误退出
log.warn("获取客户报价单累计金额,结果失败,cusCode:{}",supplierCode);
return null;
}
try {
return new BigDecimal(reqResult.getData());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

9
src/main/java/com/qs/serve/modules/erp/controller/ErpCustomerController.java

@ -65,7 +65,14 @@ public class ErpCustomerController {
public R<ErpCustomerAmountResult> getAmountSync(@PathVariable String code){
ErpCustomerAmountResult amountResult = new ErpCustomerAmountResult();
String amount = AsyncFactory.getCumSurplusPrice(AuthContextUtils.getSysUserId(),code);
amountResult.setAmount(new BigDecimal(amount));
BigDecimal quoAmount = supplierService.getErpQuoAmount(code);
amountResult.setQuoAmount(quoAmount);
amountResult.setPreAmount(new BigDecimal(amount));
if(amount.equals("-1")){
amountResult.setAmount(BigDecimal.ONE.negate());
}else {
amountResult.setAmount(amountResult.getPreAmount().subtract(quoAmount));
}
return R.ok(amountResult);
}

10
src/main/java/com/qs/serve/modules/erp/entity/dto/ErpCustomerAmountResult.java

@ -16,4 +16,14 @@ public class ErpCustomerAmountResult {
*/
BigDecimal amount;
/**
* 客户总帐
*/
BigDecimal preAmount;
/**
* 客户报价单金额累计
*/
BigDecimal quoAmount;
}

3
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.seeyon.service;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.modules.seeyon.entity.*;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeDTO;
import com.qs.serve.modules.seeyon.enums.SyAffairState;
@ -34,6 +35,8 @@ public interface SeeYonRequestService {
*/
R<String> baseCreateProcess(BaseCreateProcessBo createProcessBo);
R<String> newCreateProcess(OaFormMainProcess createProcessBo);
/**
* 创建流程后回调更新记录状态
* @param createCallbackBo

7
src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.seeyon.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.seeyon.entity.*;
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeDTO;
@ -84,6 +85,12 @@ public class SeeYonRequestServiceImpl implements SeeYonRequestService {
return seeYonRequestBaseService.postBase(TbsSeeYonConst.API_PROCESS_CREATE,createProcessBo,title);
}
@Override
public R<String> newCreateProcess(OaFormMainProcess createProcessBo) {
String title = "【创建流程2】";
return seeYonRequestBaseService.postBase(TbsSeeYonConst.API_PROCESS_CREATE_NEW,createProcessBo,title);
}
@Override
public R<String> createCallbackStatus(BaseCreateCallbackBo createCallbackBo) {
String title = "【创建流程后回调】";

100
src/main/java/com/qs/serve/modules/sys/entity/SysTableTemp.java

@ -0,0 +1,100 @@
package com.qs.serve.modules.sys.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 临时数据表 实体类
* @author YenHex
* @since 2024-01-15
*/
@Data
@TableName("sys_table_temp")
public class SysTableTemp implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 表 */
@Length(max = 255,message = "表长度不能超过255字")
private String tableName;
/** 数据id */
@Length(max = 255,message = "数据id长度不能超过255字")
private String tableId;
/** 业务名称 */
@Length(max = 255,message = "业务名称长度不能超过255字")
private String optionTitle;
/** 结果 */
@Length(max = 255,message = "结果长度不能超过255字")
private String resultMsg;
private Integer dealState;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
public static SysTableTemp toNewObject(SysTableTemp source){
SysTableTemp tableTemp = new SysTableTemp();
tableTemp.setId(source.getId());
tableTemp.setTableName(source.getTableName());
tableTemp.setTableId(source.getTableId());
tableTemp.setOptionTitle(source.getOptionTitle());
tableTemp.setResultMsg(source.getResultMsg());
tableTemp.setCreateTime(source.getCreateTime());
tableTemp.setCreateBy(source.getCreateBy());
tableTemp.setUpdateTime(source.getUpdateTime());
tableTemp.setUpdateBy(source.getUpdateBy());
tableTemp.setTenantId(source.getTenantId());
tableTemp.setDelFlag(source.getDelFlag());
return tableTemp;
}
}

14
src/main/java/com/qs/serve/modules/sys/mapper/SysTableTempMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.sys.entity.SysTableTemp;
/**
* 临时数据表 Mapper
* @author YenHex
* @date 2024-01-15
*/
public interface SysTableTempMapper extends BaseMapper<SysTableTemp> {
}

2
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -66,6 +66,7 @@ public interface TbsSeeYonConst {
String API_TEST = "/testConnection";
String API_PROCESS_CREATE = "/process/create";
String API_PROCESS_CREATE_NEW = "/process/newCreate";
String API_PROCESS_CREATE_CALLBACK = "/process/createCallback";
String API_PROCESS_COMMIT = "/process/commit";
String API_PROCESS_CANCEL = "/process/cancel";
@ -91,6 +92,7 @@ public interface TbsSeeYonConst {
/** 客户账单余额 */
String ERP_CUS_AMOUNT = "/erp/customer/amount";
String ERP_CUS_AMOUNT_QUO = "/erp/customer/quoAmount";
String ERP_CUS_INV_PRICE = "/erp/inventory/invPrices";
String ERP_CUS_INV_STAND = "/erp/inventory/standList";
String ERP_CUS_INV_SYNC_PRICE = "/erp/inventory/syncPrice";

13
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -38,6 +38,7 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.tbs.service.impl.TbsCostTodoOperationServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -64,6 +65,7 @@ public class TbsCostApplyController {
private TbsCostApplyPart1Service costApplyPart1Service;
private TbsCostContractService costContractService;
private TbsCostApplyService tbsCostApplyService;
private TbsCostTodoService costTodoService;
private TbsActivityService tbsActivityService;
private TbsActivityTemplateService tbsActivityTemplateService;
private TbsActivityCenterGoodsService tbsActivityCenterGoodsService;
@ -73,6 +75,7 @@ public class TbsCostApplyController {
private final TbsActivityCenterGoodsService activityCenterGoodsService;
private final TbsActivityChannelService activityChannelService;
private final TbsActivityChannelPointService activityChannelPointService;
private final TbsCostTodoOperationServiceImpl costTodoOperationService;
private BmsSupplierService bmsSupplierService;
private final TbsBudgetLogMapper tbsBudgetLogMapper;
private BmsRegion2Service region2Service;
@ -237,6 +240,16 @@ public class TbsCostApplyController {
}
TbsCostContract contract = costContractService.getByCostApplyId(tbsCostApply.getId());
tbsCostApply.setContractInfo(contract);
// if(tbsCostApply.getContractFlag().equals(1)){
// //协议类
// LambdaQueryWrapper<TbsCostTodo> lqw = new LambdaQueryWrapper<>();
// lqw.eq(TbsCostTodo::getCostApplyId,tbsCostApply.getId());
// lqw.eq(TbsCostTodo::getCheckStatus,1);
// List<TbsCostTodo> costTodoList = costTodoService.list(lqw);
// for (TbsCostTodo costTodo : costTodoList) {
// costTodoOperationService.runCompensate(costTodo.getId()+"");
// }
// }
return R.ok(tbsCostApply);
}

95
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyTestController.java

@ -15,7 +15,9 @@ import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.sys.entity.SysTableTemp;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysTableTempMapper;
import com.qs.serve.modules.sys.service.SysDeleteLogService;
import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService;
@ -83,15 +85,30 @@ public class TbsCostApplyTestController {
private TbsCostChangeInfoService tbsCostChangeInfoService;
private TbsBudgetCostItemService budgetCostItemService;
private TbsBudgetLogService budgetLogService;
private SysTableTempMapper tableTempMapper;
@GetMapping("/rebuildAll")
public R<?> ss(){
// for (Long id : ids) {
// this.rebuildCost(id);
// }
return R.ok();
}
/**
* 重写适配预算
* @param costApplyId
* @return
*/
@GetMapping("/rebuild")
public R<?> rebuildCost(Long costApplyId){
SysTableTemp sysTableTemp = new SysTableTemp();
sysTableTemp.setTableName("tbs_cost_apply");
sysTableTemp.setTableId(""+costApplyId);
sysTableTemp.setOptionTitle("rebuildCost");
TbsCostApply costApply = tbsCostApplyService.getById(costApplyId);
TbsBudgetTableResultVo resultVo = tbsBudgetMatchApplication.getMatchResult(costApplyId ,false);
@ -199,18 +216,86 @@ public class TbsCostApplyTestController {
costItem.setScheduleItemBudgetId(itemBudget.getId());
}
allBudgetItem.add(costItem);
}
//保存
if(costUnItems.size() > 0){
if(costUnItems.size() > 0 || budgetLogList.size() < 1){
sysTableTemp.setResultMsg("预算未匹配");
tableTempMapper.insert(sysTableTemp);
log.error("预算未匹配:{}",costApplyId);
return R.error();
}
budgetCostItemService.saveBatch(allBudgetItem);
//判断是否正常数据
LambdaQueryWrapper<TbsBudgetCostItem> citemLqw = new LambdaQueryWrapper<>();
citemLqw.eq(TbsBudgetCostItem::getCostApplyId,costApplyId);
List<TbsBudgetCostItem> itemList = budgetCostItemService.list(citemLqw);
if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList);
boolean isMatch = true;
for (TbsBudgetCostItem item1 : allBudgetItem) {
boolean isMatchItem = false;
for (TbsBudgetCostItem item2 : itemList) {
if(item1.getCenterGoodItemId().equals(item2.getCenterGoodItemId())&&item1.getScheduleItemBudgetId().equals(item2.getScheduleItemBudgetId())){
isMatchItem = true;
break;
}
}
if(!isMatchItem){
isMatch = false;
}
}
if(isMatch){
sysTableTemp.setResultMsg("预算正常");
tableTempMapper.insert(sysTableTemp);
return R.ok("预算正常");
}
sysTableTemp.setResultMsg("需重新生成但含释放");
tableTempMapper.insert(sysTableTemp);
return R.ok("预算正常");
// // 设置remark标记防止误删,移除旧的记录
// for (TbsBudgetCostItem costItem : itemList) {
// costItem.setRemark("toDel");
// }
// budgetCostItemService.updateBatchById(itemList);
// List<Long> itemIds = itemList.stream().map(TbsBudgetCostItem::getId).collect(Collectors.toList());
// budgetCostItemService.removeBatchByIds(itemIds);
// //重新保存
// budgetCostItemService.saveBatch(allBudgetItem);
//
// // 设置remark标记防止误删,移除旧的记录
// LambdaQueryWrapper<TbsBudgetLog> bLqw = new LambdaQueryWrapper<>();
// bLqw.eq(TbsBudgetLog::getCostApplyId,costApplyId);
// List<TbsBudgetLog> dbbudgetLogs = budgetLogService.list(bLqw);
// for (TbsBudgetLog budgetLog : dbbudgetLogs) {
// budgetLog.setRemark("toDel");
// }
// budgetLogService.updateBatchById(dbbudgetLogs);
// List<Long> budIds = dbbudgetLogs.stream().map(TbsBudgetLog::getId).collect(Collectors.toList());
// budgetLogService.removeBatchByIds(budIds);
// //重新保存
// if(CollectionUtil.isNotEmpty(budgetLogList)){
// budgetLogService.saveBatch(budgetLogList);
// }
//
// sysTableTemp.setResultMsg("重新生成");
// tableTempMapper.insert(sysTableTemp);
// //移除历史释放金额
//
// //根据释放记录,重新生成释放金额
//
//
// return R.ok();
}
/**
* 重新核销
* @return
*/
public R<?> reBuildCheck(){
return R.ok();
}

3
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoController.java

@ -71,6 +71,9 @@ public class TbsCostTodoController {
List list2 = attachService.listByIds(Arrays.asList(tbsCostTodo.getAttachIds2()));
tbsCostTodo.setAttachList2(list2);
}
if(tbsCostTodo.getCheckStatus().equals(1)){
costTodoOperationService.runCompensate(tbsCostTodo.getId()+"");
}
}
return R.ok(list);
}

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

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
@ -12,6 +13,8 @@ import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.MonthValues;
import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.common.model.oa.OaUploadFile;
import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.bir.entity.BirActivityCenterGoods;
@ -125,6 +128,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private TbsCostCheckStateMapper costCheckStateMapper;
private ProjectApisProperties projectApisProperties;
@Override
public BigDecimal totalCostUsed(Long id) {
return tbsActivityMapper.sumCostUsedAmount(id);
@ -249,8 +254,16 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
}
Map<String, Object> data = new HashMap<>(10);
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsCostContract::getCostApplyId, tbsCostApply.getId());
List<TbsCostContract> contracts = costContractMapper.selectList(lqw);
// 协议条款
LambdaQueryWrapper<TbsCostTodo> todoLqw = new LambdaQueryWrapper<>();
todoLqw.eq(TbsCostTodo::getCostApplyId, tbsCostApply.getId());
List<TbsCostTodo> costTodoList = tbsCostTodoMapper.selectList(todoLqw);
//创建协议的费用申请Data
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data);
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data,contracts,costTodoList,new HashMap<>());
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data);
@ -357,27 +370,85 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
//恢复绑定
this.releaseCost(tbsCostApply.getId(),0);
Map<String, Object> data = new HashMap<>(10);
List<Long> oaAttachmentsIdList = null;
List<String> oaAttachmentsIdList = new ArrayList<>();
List<String> oaContractAttachmentsIdList = new ArrayList<>();
//新方式保存接口
Map<String,Object> newWayData = new HashMap<>();
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsCostContract::getCostApplyId, tbsCostApply.getId());
List<TbsCostContract> contracts = costContractMapper.selectList(lqw);
for (TbsCostContract contract : contracts) {
if(contract.getAttachIds()==null||contract.getAttachIds().length<1){
continue;
}
oaContractAttachmentsIdList.addAll(Arrays.asList(contract.getAttachIds()));
}
// 协议条款
LambdaQueryWrapper<TbsCostTodo> todoLqw = new LambdaQueryWrapper<>();
todoLqw.eq(TbsCostTodo::getCostApplyId, tbsCostApply.getId());
List<TbsCostTodo> costTodoList = tbsCostTodoMapper.selectList(todoLqw);
for (TbsCostTodo costTodo : costTodoList) {
if(costTodo.getAttachIds()==null||costTodo.getAttachIds().length<1){
continue;
}
oaAttachmentsIdList.addAll(Arrays.asList(costTodo.getAttachIds()));
}
//创建协议的费用申请Data
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data);
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data,contracts,costTodoList,newWayData);
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data);
}
//修改申请编码
//协议类走新流程
String templateCode = tbsCostApply.getContractFlag().equals(1)
?TbsSeeYonConst.CostApplyContractConf.Code()
:TbsSeeYonConst.CostApplyConf.Code();
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode);
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle(TbsSeeYonConst.PRE_TITLE_COST_APPLY + tbsCostApply.getChargeTheme());
createProcess.setTargetId(tbsCostApply.getId()+"");
createProcess.setAttachments(oaAttachmentsIdList);
createProcess.setDataJson(JsonUtil.objectToJson(data));
R<String> flowIdResult = seeYonService.baseCreateProcess(createProcess);
if(flowIdResult.getStatus()!=200){
R<String> flowIdResult = null;
//TODO 启用新方法开关
boolean newWay = true;
if(newWay && tbsCostApply.getContractFlag().equals(1)){
List<OaUploadFile> uploadFileList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(oaAttachmentsIdList)){
List<SysAttach> attachList = sysAttachService.listByIds(oaAttachmentsIdList);
for (SysAttach sysAttach : attachList) {
OaUploadFile uploadFile = new OaUploadFile();
uploadFile.setField("file");
uploadFile.setName("协议附件"+sysAttach.getName());
uploadFile.setUrl("https://qsjslservice.oss-cn-guangzhou.aliyuncs.com/"+sysAttach.getRelativePath());
uploadFileList.add(uploadFile);
}
}
if(CollectionUtil.isNotEmpty(oaContractAttachmentsIdList)){
List<SysAttach> attachContractList = sysAttachService.listByIds(oaContractAttachmentsIdList);
for (SysAttach sysAttach : attachContractList) {
OaUploadFile uploadFile = new OaUploadFile();
uploadFile.setField("file");
uploadFile.setName("合同附件"+sysAttach.getName());
uploadFile.setUrl("https://qsjslservice.oss-cn-guangzhou.aliyuncs.com/"+sysAttach.getRelativePath());
uploadFileList.add(uploadFile);
}
}
OaFormMainProcess mainProcess = new OaFormMainProcess();
mainProcess.setTargetId(id);
mainProcess.setUploadFiles(uploadFileList);
newWayData.put("formmain_1987",data);
mainProcess.setData(newWayData);
mainProcess.setTemplateCode(TbsSeeYonConst.CostApplyContractConf.Code());
mainProcess.setSenderLoginName(sysUser.getAccount());
flowIdResult = seeYonService.newCreateProcess(mainProcess);
}else {
//修改申请编码
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode);
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle(TbsSeeYonConst.PRE_TITLE_COST_APPLY + tbsCostApply.getChargeTheme());
createProcess.setTargetId(tbsCostApply.getId()+"");
createProcess.setDataJson(JsonUtil.objectToJson(data));
flowIdResult = seeYonService.baseCreateProcess(createProcess);
}
if(flowIdResult==null||flowIdResult.getStatus()!=200){
Assert.throwEx("远程服务调用失败");
}
String flowId = flowIdResult.getData();
@ -578,7 +649,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
* @param sysUser
* @param data
*/
private void buildContractApplyData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, List<TbsActivityPayCondition> payConditions, BmsSupplier supplier, SysUser sysUser, Map<String, Object> data) {
private void buildContractApplyData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, List<TbsActivityPayCondition> payConditions, BmsSupplier supplier, SysUser sysUser, Map<String, Object> data,List<TbsCostContract> contracts,List<TbsCostTodo> costTodoList ,Map<String, Object> newWayData) {
data.put("title", tbsCostApply.getChargeTheme());
data.put("orgId", tbsCostApply.getId().toString());
data.put("costApplyCode", tbsCostApply.getCode());
@ -624,9 +695,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
}
data.put("remark", tbsCostApply.getRemark());
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsCostContract::getCostApplyId, tbsCostApply.getId());
List<TbsCostContract> contracts = costContractMapper.selectList(lqw);
if(contracts.size()>0){
//构建合同DATA
@ -639,8 +708,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
List<Object> subList = new ArrayList<>();
//活动明细
buildActivityCenterGoodsSeeyonData(id, tbsCostApply, activityList, subList);
buildActivityCenterGoodsSeeyonData(id, tbsCostApply, activityList, subList,newWayData);
// 付款条件
List<TbsContractCostSubItem.Payment> subPaymentList = new ArrayList<>();
for (TbsActivityPayCondition payCondition : payConditions) {
// TbsActivity currActivity = null;
// for (TbsActivity activity : activityList) {
@ -659,13 +730,14 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
subPayment.setPayCompleteState(stateMsg);
subPayment.setPayRemark(payCondition.getRemark());
subPayment.setPayCode(payCondition.getCode());
subPaymentList.add(subPayment);
subList.add(subPayment);
}
if(subPaymentList.size()>0){
newWayData.put("formson_1988",subPaymentList);
}
// 协议条款
LambdaQueryWrapper<TbsCostTodo> todoLqw = new LambdaQueryWrapper<>();
todoLqw.eq(TbsCostTodo::getCostApplyId, tbsCostApply.getId());
List<TbsCostTodo> costTodoList = tbsCostTodoMapper.selectList(todoLqw);
List<TbsContractCostSubItem.ToDoItem> toDoItemList = new ArrayList<>();
for (TbsCostTodo costTodo : costTodoList) {
TbsContractCostSubItem.ToDoItem toDoItem = new TbsContractCostSubItem.ToDoItem();
toDoItem.setServiceDescription(costTodo.getDescr());
@ -673,8 +745,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString());
toDoItem.setAgreeRemark(costTodo.getRemark());
toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成");
toDoItemList.add(toDoItem);
subList.add(toDoItem);
}
newWayData.put("formson_1989",toDoItemList);
//构造客户维度的 年度、季度合计
// try {
// List<TbsContractCostSubItem.CusCenterRate> cusCenterRateList = buildCusRateMain(supplier);
@ -686,10 +760,11 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("sub", subList);
}
private void buildActivityCenterGoodsSeeyonData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, List<Object> subList) {
private void buildActivityCenterGoodsSeeyonData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, List<Object> subList,Map<String,Object> newWayData) {
LambdaQueryWrapper<TbsActivityCenterGoods> actCgLqw = new LambdaQueryWrapper<>();
actCgLqw.eq(TbsActivityCenterGoods::getCostApplyId, id);
List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsMapper.selectList(actCgLqw);
List<TbsContractCostSubItem.Activity> resultList = new ArrayList<>();
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
@ -713,6 +788,10 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")");
dataActivity.setMoney(centerGoods.getCenterGoodsAmount());
subList.add(dataActivity);
resultList.add(dataActivity);
}
if(resultList.size()>0){
newWayData.put("formson_1990",resultList);
}
}

4
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java

@ -82,6 +82,7 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
List<TbsBudgetScheduleWithAmount> result = new ArrayList<>();
for (Long scheduleItemBudgetId : scheduleItemBudgetIds) {
if(scheduleItemBudgetId.equals(0L)){continue;}
TbsBudgetScheduleWithAmount withAmount = new TbsBudgetScheduleWithAmount();
withAmount.setScheduleItemBudgetId(scheduleItemBudgetId);
for (TbsBudgetLogWithAmount obj : finalList) {
@ -263,6 +264,9 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
List<TbsBudgetWithAmount> result = new ArrayList<>();
for (Long budgetId : budgetIds) {
if(budgetId.equals(0L)){
continue;
}
TbsBudgetWithAmount withAmount = new TbsBudgetWithAmount();
withAmount.setBudgetId(budgetId+"");

14
src/main/java/com/qs/serve/modules/vtb/entity/dto/VtbSubjectDTO.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.entity.dto;
import lombok.Data;
/**
* @author YenHex
* @since 2024/1/12
*/
@Data
public class VtbSubjectDTO {
private String keMuName;
}

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

@ -46,6 +46,7 @@ import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.bo.*;
import com.qs.serve.modules.seeyon.entity.XltApticlaim;
import com.qs.serve.modules.vtb.entity.dto.VtbSubjectDTO;
import com.qs.serve.modules.vtb.entity.dto.XltDelVerificationDto;
import com.qs.serve.modules.vtb.mapper.VtbFundFlowMapper;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
@ -1050,6 +1051,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("exsp5",urlKey);
data.put("cmsLink",baseJumpUrl);
List<TbsActivitySubject> subjectList = activitySubjectService.listByActivityId(activity.getId());
List<VtbSubjectDTO> subjectDTOList = new ArrayList<>();
for (TbsActivitySubject activitySubject : subjectList) {
VtbSubjectDTO subjectDTO = new VtbSubjectDTO();
subjectDTO.setKeMuName(activitySubject.getSubjectName());
}
List<Object> subList = new ArrayList<>();
try {
List<TbsActivityCenter> activityCenter = activityCenterService.listByActivity(verification.getActivityId());
@ -1057,6 +1065,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
TbsCostSubItem.CostCenterTranStr costCenter = centerRateService.buildCostCenter(center.getCenterType(),center.getCenterId(),center.getCenterName(),activity.getSupplierCode());
subList.add(costCenter);
}
for (VtbSubjectDTO subjectDTO : subjectDTOList) {
subList.add(subjectDTO);
}
} catch (Exception e) {
e.printStackTrace();
}

Loading…
Cancel
Save