Browse Source

预算费用占用

mssql
Yen 3 years ago
parent
commit
ba29c4d83c
  1. 10
      src/main/java/com/qs/serve/common/model/dto/PageVo.java
  2. 10
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java
  3. 16
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java
  4. 12
      src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java
  5. 20
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  6. 24
      src/main/java/com/qs/serve/modules/tbs/entity/vo/CtpAffairVo.java
  7. 5
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java
  8. 8
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

10
src/main/java/com/qs/serve/common/model/dto/PageVo.java

@ -43,4 +43,14 @@ public class PageVo<T>{
this.totalPage = total%pageSize==0?total/pageSize:(total/pageSize+1); this.totalPage = total%pageSize==0?total/pageSize:(total/pageSize+1);
} }
public static <TYPE,R_TYPE> PageVo<R_TYPE> initNewList(PageVo<TYPE> oldVo,List<R_TYPE> list){
PageVo<R_TYPE> newVo = new PageVo<>();
newVo.setPageNum(oldVo.getPageNum());
newVo.setPageSize(oldVo.getPageSize());
newVo.setTotal(oldVo.getTotal());
newVo.setTotalPage(oldVo.getTotalPage());
newVo.setList(list);
return newVo;
}
} }

10
src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffair.java

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* @author YenHex * @author YenHex
* @since 2022/11/22 * @since 2022/11/22
@ -12,10 +14,12 @@ import lombok.Data;
@Data @Data
public class CtpAffair { public class CtpAffair {
/** 审批节点id */
private String affairId; private String affairId;
private String memberId; private String memberId;
/** 1.代发;2已发;3待办;4已办;5取消;6回退;7取回;8竞争执行;15中止 */
private Integer state; private Integer state;
private String templateId; private String templateId;
@ -24,4 +28,10 @@ public class CtpAffair {
private String costApplyId; private String costApplyId;
/** 评论内容 */
private String comment;
/** 评论时间 */
private Date commentTime;
} }

16
src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonServiceImpl.java

@ -14,9 +14,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author YenHex * @author YenHex
@ -58,7 +58,19 @@ public class SeeYonServiceImpl implements SeeYonService {
public R<PageVo<CtpAffair>> pageMemberAffair(CtpAffairQo ctpAffairQo) { public R<PageVo<CtpAffair>> pageMemberAffair(CtpAffairQo ctpAffairQo) {
String title = "用户审批流程"; String title = "用户审批流程";
R<String> result = postBase(TbsSeeYonConst.API_PAGE_AFFAIR,ctpAffairQo,title); R<String> result = postBase(TbsSeeYonConst.API_PAGE_AFFAIR,ctpAffairQo,title);
if(result.getStatus()==200){
PageVo<?> pageVo = JsonUtil.jsonToPojo(result.getData(),PageVo.class);
List<CtpAffair> affairList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(pageVo.getList())){
for (Object o : pageVo.getList()) {
String json = JsonUtil.objectToJson(o);
CtpAffair obj = JsonUtil.jsonToPojo(json,CtpAffair.class);
affairList.add(obj);
}
}
PageVo<CtpAffair> resultVo = PageVo.initNewList(pageVo,affairList);
return R.ok(resultVo);
}
return null; return null;
} }

12
src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java

@ -260,6 +260,12 @@ public class SysUserController {
if(param.getMobile()!=null){ if(param.getMobile()!=null){
param.setAccount(param.getMobile()); param.setAccount(param.getMobile());
} }
if(param.getSyUserId()==null){
param.setSyUserId("");
}
if(param.getSyAccount()==null){
param.setSyAccount("");
}
boolean result = sysUserService.save(param); boolean result = sysUserService.save(param);
if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){ if(param.getId()!=null&& com.qs.serve.common.util.CollectionUtil.isNotEmpty(userBo.getRoleIds())){
sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId()); sysRoleService.saveUserRole4Edit(userBo.getRoleIds(),param.getId());
@ -284,6 +290,12 @@ public class SysUserController {
if(param.getLoginEnable()!=null){ if(param.getLoginEnable()!=null){
param.setServingState(param.getLoginEnable()==1?1:0); param.setServingState(param.getLoginEnable()==1?1:0);
} }
if(param.getSyUserId()==null){
param.setSyUserId("");
}
if(param.getSyAccount()==null){
param.setSyAccount("");
}
param.setSuperFlag(null); param.setSuperFlag(null);
param.setPassword(null); param.setPassword(null);
param.setUpdateTime(LocalDateTime.now()); param.setUpdateTime(LocalDateTime.now());

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

@ -26,6 +26,7 @@ import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyBo; import com.qs.serve.modules.tbs.entity.bo.TbsCostApplyBo;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
import com.qs.serve.modules.tbs.entity.vo.TbsCostApplyVo; import com.qs.serve.modules.tbs.entity.vo.TbsCostApplyVo;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
@ -197,7 +198,7 @@ public class TbsCostApplyController {
*/ */
@GetMapping("/pageMemberAffair") @GetMapping("/pageMemberAffair")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE) @SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE)
public R<?> pageMemberAffair(Integer state,Integer pageNum,Integer pageSize){ public R<PageVo<CtpAffairVo>> pageMemberAffair(Integer state,Integer pageNum,Integer pageSize){
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){ if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){
return R.error("当前账号未绑定致远用户信息"); return R.error("当前账号未绑定致远用户信息");
@ -214,20 +215,19 @@ public class TbsCostApplyController {
if(ctpAffairs.size()>0){ if(ctpAffairs.size()>0){
List<String> costApplyIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList()); List<String> costApplyIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<TbsCostApply> costApplyList = tbsCostApplyService.listByIds(costApplyIds); List<TbsCostApply> costApplyList = tbsCostApplyService.listByIds(costApplyIds);
for (TbsCostApply costApply : costApplyList) { List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) { for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (TbsCostApply costApply : costApplyList) {
if(costApply.getId().toString().equals(ctpAffair.getCostApplyId())){ if(costApply.getId().toString().equals(ctpAffair.getCostApplyId())){
costApply.setAffairId(ctpAffair.getAffairId()); ctpAffairVo.setCostApply(costApply);
break; break;
} }
} }
ctpAffairVo.setAffairInfo(ctpAffair);
result.add(ctpAffairVo);
} }
PageVo<TbsCostApply> costApplyPageVo = new PageVo<>(); PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result);
costApplyPageVo.setPageNum(pageVo.getPageNum());
costApplyPageVo.setPageSize(pageVo.getPageSize());
costApplyPageVo.setTotal(pageVo.getTotal());
costApplyPageVo.setTotalPage(pageVo.getTotalPage());
costApplyPageVo.setList(costApplyList);
return R.ok(costApplyPageVo); return R.ok(costApplyPageVo);
} }
return R.byEmptyList(); return R.byEmptyList();

24
src/main/java/com/qs/serve/modules/tbs/entity/vo/CtpAffairVo.java

@ -0,0 +1,24 @@
package com.qs.serve.modules.tbs.entity.vo;
import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import lombok.Data;
/**
* @author YenHex
* @since 2022/12/7
*/
@Data
public class CtpAffairVo {
/**
* 审批信息
*/
private CtpAffair affairInfo;
/**
* 费用申请信息
*/
private TbsCostApply costApply;
}

5
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -130,6 +130,7 @@ public class TbsBudgetApplicationService {
List<TbsBudgetTableVo.TopTheadHeader> topTheadHeaders = new ArrayList<>(); List<TbsBudgetTableVo.TopTheadHeader> topTheadHeaders = new ArrayList<>();
Map<Long,List<TbsBudgetCostItem>> tmpMap = allBudgetItem.stream().collect(Collectors.groupingBy(TbsBudgetCostItem::getScheduleItemBudgetId)); Map<Long,List<TbsBudgetCostItem>> tmpMap = allBudgetItem.stream().collect(Collectors.groupingBy(TbsBudgetCostItem::getScheduleItemBudgetId));
for (Long scheduleItemBudgetId : tmpMap.keySet()) { for (Long scheduleItemBudgetId : tmpMap.keySet()) {
if(scheduleItemBudgetId.equals(0L)){continue;}
TbsBudgetCostItem itemBudget = tmpMap.get(scheduleItemBudgetId).get(0); TbsBudgetCostItem itemBudget = tmpMap.get(scheduleItemBudgetId).get(0);
String budgetCode = null; String budgetCode = null;
for (TbsBudget budget : budgetList) { for (TbsBudget budget : budgetList) {
@ -291,6 +292,10 @@ public class TbsBudgetApplicationService {
Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]预算不足"); Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]预算不足");
} }
} }
activityCostItem.setBudgetId(0L);
activityCostItem.setScheduleId(0L);
activityCostItem.setScheduleItemId(0L);
activityCostItem.setScheduleItemBudgetId(0L);
actMatchList.add(activityCostItem); actMatchList.add(activityCostItem);
}else { }else {
if(throwEx){ if(throwEx){

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

@ -2,6 +2,7 @@ package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
@ -10,6 +11,7 @@ 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.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.common.VtbFundFlowType; import com.qs.serve.modules.vtb.common.VtbFundFlowType;
@ -65,6 +67,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
public void release(Long activityId) { public void release(Long activityId) {
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsActivity activity = activityService.getById(activityId); TbsActivity activity = activityService.getById(activityId);
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("状态不支持释放活动费用");
}
BigDecimal releaseAmount = validActivity(activity,false); BigDecimal releaseAmount = validActivity(activity,false);
TbsActivity param = new TbsActivity(); TbsActivity param = new TbsActivity();
param.setId(activityId); param.setId(activityId);
@ -79,7 +85,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
VtbFundFlow fundFlow = new VtbFundFlow(); VtbFundFlow fundFlow = new VtbFundFlow();
fundFlow.setFundType(VtbFundFlowType.Release); fundFlow.setFundType(VtbFundFlowType.Release);
fundFlow.setVerificationId(0L); fundFlow.setVerificationId(0L);
fundFlow.setCenterGoodsCode(activity.getActivityCode()+"_0"); fundFlow.setCenterGoodsCode(activity.getActivityCode()+"_00");
fundFlow.setCostApplyId(activity.getCostApplyId()); fundFlow.setCostApplyId(activity.getCostApplyId());
fundFlow.setActivityId(activity.getId()); fundFlow.setActivityId(activity.getId());
fundFlow.setUsedAmount(releaseAmount); fundFlow.setUsedAmount(releaseAmount);

Loading…
Cancel
Save