Browse Source

协议类申请DATA调整

v1.0
Yen 2 years ago
parent
commit
ce2814c1da
  1. 5
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java
  2. 319
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

5
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java

@ -40,11 +40,6 @@ public class TbsContractCostSubItem {
private String payCompleteState;
private String payRemark;
private String payCode;// 唯一
private String accountCode;// 拼科目编号
private String accountName;// 拼科目名称
private String costCenterNo;// 拼成本中心编号
private String costCenterName;// 拼成本中心名称
}
@Data

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

@ -259,157 +259,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
this.releaseCost(tbsCostApply.getId(),0);
Map<String, Object> data = new HashMap<>(10);
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){
data.put("title",tbsCostApply.getChargeTheme());
data.put("orgId",tbsCostApply.getId().toString());
data.put("costApplyCode", tbsCostApply.getCode());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("supplierName", tbsCostApply.getSupplierName());
data.put("supplierCode", tbsCostApply.getSupplierCode());
data.put("targetId", tbsCostApply.getId()+"");
data.put("targetCode", tbsCostApply.getCode());
data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code());
//添加跳转地址业务
String urlKey = "exsp5"+IdUtil.simpleUUID();
String baseJumpUrl = JumpToUtil.getUrl(projectProperties.getHostUrl(),TbsSeeYonConst.CostApplyConf.Code(),urlKey);
data.put("exsp5",urlKey);
data.put("cmsLink",baseJumpUrl);
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03");
//拓展添加审批关联区域
String saleRegionId = supplier.handleSaleRegionId();
String bizRegionId = supplier.handleBizRegionId();
BmsRegion saleRegion = regionMapper.selectById(saleRegionId);
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId);
String saleRegionNames = saleRegion!=null?saleRegion.getPathNames():"null_申请时未录入";
String bizRegionNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入";
//拓展添加审批关联
data.put("biz_region",bizRegionNames);
data.put("exsp2",saleRegionNames);
data.put("dataState",TbsCostApplyState.State_1_apply.getCode()+"");
//创建协议类data数据
data.put("serialNumber",tbsCostApply.getCode());
data.put("applySubject",tbsCostApply.getChargeTheme());
data.put("supplierCode",tbsCostApply.getSupplierCode());
data.put("supplierName",tbsCostApply.getSupplierName());
data.put("totalSalesMoney",tbsCostApply.getTotalActivityPreAmount());
data.put("totalExpenseRate",tbsCostApply.getTotalActivityAmount().divide(tbsCostApply.getTotalActivityPreAmount(),2,RoundingMode.DOWN));
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){
TbsCostContract contract = contracts.get(0);
data.put("payee",contract.getPayee());
data.put("bankName",contract.getBankName());
data.put("bankAccount",contract.getBankAccount());
data.put("sealID",contract.getSealId());
data.put("sealName",contract.getSealName());
data.put("sealNum",contract.getSealNum());
data.put("fileNum",contract.getFileNum());
data.put("contractName",contract.getContractName());
data.put("contractTotalMoney",contract.getContractAmount());
data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString());
data.put("expireDate",contract.getExpireTime()==null?null:contract.getExpireTime().toString());
data.put("contractContent",contract.getContractCondition());
String urls = "";
if (CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = sysAttachService.listByIds(attachIds);
urls = attachList.stream().map(SysAttach::getPath).collect(Collectors.joining(" , "));
}
data.put("contractFile",urls);
}else {
Assert.throwEx("请补充合同信息");
}
//创建子表数据
List<Object> subList = new ArrayList<>();
//活动明细
LambdaQueryWrapper<TbsActivityCenterGoods> actCgLqw = new LambdaQueryWrapper<>();
actCgLqw.eq(TbsActivityCenterGoods::getCostApplyId,id);
List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsMapper.selectList(actCgLqw);
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(centerGoods.getActivityId().equals(activity.getId())){
currActivity = activity;
break;
}
}
TbsContractCostSubItem.Activity dataActivity = new TbsContractCostSubItem.Activity();
dataActivity.setActivityCode(currActivity.getActivityCode());
dataActivity.setActivityPurpose(currActivity.getActTitle());
dataActivity.setCostCode(tbsCostApply.getCode());
dataActivity.setStartDate(currActivity.getActStartDate()==null?null:currActivity.getActStartDate().toString());
dataActivity.setEndDate(currActivity.getActEndDate()==null?null:currActivity.getActEndDate().toString());
dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString());
dataActivity.setProductType(centerGoods.getTargetType());
dataActivity.setProduct(centerGoods.getTargetName());
dataActivity.setActivityAccountCode(centerGoods.getSubjectCode());
dataActivity.setActivityAccountName(centerGoods.getSubjectName());
dataActivity.setActivityCostCenterNo(centerGoods.getCenterCode());
dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")");
dataActivity.setMoney(centerGoods.getCenterGoodsAmount());
subList.add(dataActivity);
}
//活动的科目和成本中心
List<TbsActivityCenter> tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id));
String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(","));
String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(","));
List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id));
String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(","));
String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(","));
// 付款条件
for (TbsActivityPayCondition payCondition : payConditions) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(payCondition.getActivityId().equals(activity.getId())){
currActivity = activity;
break;
}
}
TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment();
subPayment.setPayItem(payCondition.getTitle());
subPayment.setPayCondition(payCondition.getConditionMsg());
subPayment.setApplyMoney(currActivity.getTotalAmount());
subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null);
subPayment.setActualPayDate(null);
String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理";
subPayment.setPayCompleteState(stateMsg);
subPayment.setPayRemark(payCondition.getRemark());
subPayment.setPayCode(payCondition.getCode());
subPayment.setAccountCode(concatSubjectCodes);
subPayment.setAccountName(concatSubjectNames);
subPayment.setCostCenterNo(concatCenterCodes);
subPayment.setCostCenterName(concatCenterNames);
subList.add(subPayment);
}
// 协议条款
LambdaQueryWrapper<TbsCostTodo> todoLqw = new LambdaQueryWrapper<>();
todoLqw.eq(TbsCostTodo::getCostApplyId,tbsCostApply.getId());
List<TbsCostTodo> costTodoList = tbsCostTodoMapper.selectList(todoLqw);
for (TbsCostTodo costTodo : costTodoList) {
TbsContractCostSubItem.ToDoItem toDoItem = new TbsContractCostSubItem.ToDoItem();
toDoItem.setServiceDescription(costTodo.getDescr());
toDoItem.setDeliveryStandard(costTodo.getPayMsg());
toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString());
toDoItem.setAgreeRemark(costTodo.getRemark());
toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成");
subList.add(toDoItem);
}
//关联
data.put("sub", subList);
//创建协议的费用申请Data
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data);
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier, result, sysUser, data);
@ -504,6 +355,172 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
}
/**
* 创建协议类的申请DATA
* @param id
* @param tbsCostApply
* @param activityList
* @param payConditions
* @param supplier
* @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) {
data.put("title", tbsCostApply.getChargeTheme());
data.put("orgId", tbsCostApply.getId().toString());
data.put("costApplyCode", tbsCostApply.getCode());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("supplierName", tbsCostApply.getSupplierName());
data.put("supplierCode", tbsCostApply.getSupplierCode());
data.put("targetId", tbsCostApply.getId()+"");
data.put("targetCode", tbsCostApply.getCode());
data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code());
//添加跳转地址业务
String urlKey = "exsp5"+IdUtil.simpleUUID();
String baseJumpUrl = JumpToUtil.getUrl(projectProperties.getHostUrl(),TbsSeeYonConst.CostApplyConf.Code(),urlKey);
data.put("exsp5",urlKey);
data.put("cmsLink",baseJumpUrl);
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03");
//拓展添加审批关联区域
String saleRegionId = supplier.handleSaleRegionId();
String bizRegionId = supplier.handleBizRegionId();
BmsRegion saleRegion = regionMapper.selectById(saleRegionId);
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId);
String saleRegionNames = saleRegion!=null?saleRegion.getPathNames():"null_申请时未录入";
String bizRegionNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入";
//拓展添加审批关联
data.put("biz_region",bizRegionNames);
data.put("exsp2",saleRegionNames);
data.put("dataState",TbsCostApplyState.State_1_apply.getCode()+"");
//创建协议类data数据
data.put("serialNumber", tbsCostApply.getCode());
data.put("applySubject", tbsCostApply.getChargeTheme());
data.put("supplierCode", tbsCostApply.getSupplierCode());
data.put("supplierName", tbsCostApply.getSupplierName());
data.put("totalSalesMoney", tbsCostApply.getTotalActivityPreAmount());
data.put("totalExpenseRate", tbsCostApply.getTotalActivityAmount().divide(tbsCostApply.getTotalActivityPreAmount(),2,RoundingMode.DOWN));
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){
//活动的科目和成本中心
List<TbsActivityCenter> tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id));
String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(","));
String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(","));
List<TbsActivitySubject> tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id));
String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(","));
String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(","));
TbsCostContract contract = contracts.get(0);
data.put("payee",contract.getPayee());
data.put("bankName",contract.getBankName());
data.put("bankAccount",contract.getBankAccount());
data.put("sealID",contract.getSealId());
data.put("sealName",contract.getSealName());
data.put("sealNum",contract.getSealNum());
data.put("fileNum",contract.getFileNum());
data.put("accountCode",concatSubjectCodes);
data.put("accountName",concatSubjectNames);
data.put("costCenterNo",concatCenterCodes);
data.put("costCenterName",concatCenterNames);
data.put("contractName",contract.getContractName());
data.put("contractTotalMoney",contract.getContractAmount());
data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString());
data.put("expireDate",contract.getExpireTime()==null?null:contract.getExpireTime().toString());
data.put("contractContent",contract.getContractCondition());
String urls = "";
if (CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = sysAttachService.listByIds(attachIds);
urls = attachList.stream().map(SysAttach::getPath).collect(Collectors.joining(" , "));
}
data.put("contractFile",urls);
}else {
Assert.throwEx("请补充合同信息");
}
//创建子表数据
List<Object> subList = new ArrayList<>();
//活动明细
LambdaQueryWrapper<TbsActivityCenterGoods> actCgLqw = new LambdaQueryWrapper<>();
actCgLqw.eq(TbsActivityCenterGoods::getCostApplyId, id);
List<TbsActivityCenterGoods> activityCenterGoodsList = tbsActivityCenterGoodsMapper.selectList(actCgLqw);
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(centerGoods.getActivityId().equals(activity.getId())){
currActivity = activity;
break;
}
}
TbsContractCostSubItem.Activity dataActivity = new TbsContractCostSubItem.Activity();
dataActivity.setActivityCode(currActivity.getActivityCode());
dataActivity.setActivityPurpose(currActivity.getActTitle());
dataActivity.setCostCode(tbsCostApply.getCode());
dataActivity.setStartDate(currActivity.getActStartDate()==null?null:currActivity.getActStartDate().toString());
dataActivity.setEndDate(currActivity.getActEndDate()==null?null:currActivity.getActEndDate().toString());
dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString());
dataActivity.setProductType(centerGoods.getTargetType());
dataActivity.setProduct(centerGoods.getTargetName());
dataActivity.setActivityAccountCode(centerGoods.getSubjectCode());
dataActivity.setActivityAccountName(centerGoods.getSubjectName());
dataActivity.setActivityCostCenterNo(centerGoods.getCenterCode());
dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")");
dataActivity.setMoney(centerGoods.getCenterGoodsAmount());
subList.add(dataActivity);
}
// 付款条件
for (TbsActivityPayCondition payCondition : payConditions) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(payCondition.getActivityId().equals(activity.getId())){
currActivity = activity;
break;
}
}
TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment();
subPayment.setPayItem(payCondition.getTitle());
subPayment.setPayCondition(payCondition.getConditionMsg());
subPayment.setApplyMoney(currActivity.getTotalAmount());
subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null);
subPayment.setActualPayDate(null);
String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理";
subPayment.setPayCompleteState(stateMsg);
subPayment.setPayRemark(payCondition.getRemark());
subPayment.setPayCode(payCondition.getCode());
subList.add(subPayment);
}
// 协议条款
LambdaQueryWrapper<TbsCostTodo> todoLqw = new LambdaQueryWrapper<>();
todoLqw.eq(TbsCostTodo::getCostApplyId, tbsCostApply.getId());
List<TbsCostTodo> costTodoList = tbsCostTodoMapper.selectList(todoLqw);
for (TbsCostTodo costTodo : costTodoList) {
TbsContractCostSubItem.ToDoItem toDoItem = new TbsContractCostSubItem.ToDoItem();
toDoItem.setServiceDescription(costTodo.getDescr());
toDoItem.setDeliveryStandard(costTodo.getPayMsg());
toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString());
toDoItem.setAgreeRemark(costTodo.getRemark());
toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成");
subList.add(toDoItem);
}
//关联
data.put("sub", subList);
}
private void buildCommonApplyData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, BmsSupplier supplier, TbsBudgetCostResult result, SysUser sysUser, Map<String, Object> data) {
String actTitles = activityList.stream().map(TbsActivity::getActTitle).collect(Collectors.joining("; "));
data.put("costApplyCode", tbsCostApply.getCode());

Loading…
Cancel
Save