Browse Source

预算费用占用

mssql
Yen 3 years ago
parent
commit
b3617a5543
  1. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java
  2. 19
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  3. 15
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  4. 14
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  5. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  6. 11
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  7. 42
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  8. 16
      src/main/java/com/qs/serve/task/TbsTask.java

2
src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java

@ -199,7 +199,7 @@ public class BmsCostCenterController {
@SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:costCenter:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
//TODO 未校验已用不能删,预算和费用申请
//未校验已用不能删,预算和费用申请
LambdaQueryWrapper<TbsActivityCenter> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityCenter::getCenterId,id);
lqw.eq(TbsActivityCenter::getCenterType, TbsCenterType.center.name());

19
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -72,7 +72,6 @@ public class TbsActivityController {
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>(entity);
List<TbsActivity> list = tbsActivityService.list(lqw);
for (TbsActivity activity : list) {
//todo 核销状态
QueryWrapper qw = new QueryWrapper<>();
qw.eq("activity_id",activity.getId());
List<TbsActivityGoods> goodsList = activityGoodsService.list(qw);
@ -196,28 +195,18 @@ public class TbsActivityController {
}
/**
* 重新打开核销
* 冻结活动
* @param param
* @return
*/
@PostMapping("/reopen")
@SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activity:update')")
public R<?> reopen(@RequestBody @Valid TbsActivityReopenBo param){
TbsActivity activity = new TbsActivity();
activity.setId(param.getActivityId());
activity.setReopenFlag(param.getState().equals(1)?1:0);
if(activity.getReopenFlag().equals(1)){
TbsActivity dbAct = tbsActivityService.getById(param.getActivityId());
if(dbAct.getPreEndDate().isBefore(LocalDate.now())){
//todo 每日执行更新是否过期,过期则进行冻结
//activity.setActivityState(TbsActivityState.STATE_1_Baning);
}
}
tbsActivityService.updateById(activity);
return R.ok();
public R<?> freeze(@RequestBody @Valid TbsActivityReopenBo param){
return verificationService.freeze(param);
}
/**
* 新增
* @param param

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

@ -10,11 +10,13 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsBudgetCondition;
import com.qs.serve.modules.tbs.entity.TbsBudgetCostItem;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetConditionService;
import com.qs.serve.modules.tbs.service.TbsBudgetCostItemService;
import com.qs.serve.modules.tbs.service.TbsScheduleItemBudgetService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -43,8 +45,8 @@ import java.util.stream.Collectors;
public class TbsBudgetController {
private TbsBudgetService tbsBudgetService;
private TbsBudgetConditionService tbsBudgetConditionService;
private TbsBudgetMapper tbsBudgetMapper;
private TbsBudgetCostItemService tbsBudgetCostItemService;
private TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
/**
@ -213,9 +215,18 @@ public class TbsBudgetController {
@SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:budget:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
//todo 预算记录则不允许删除
//预算记录则不允许删除
List<Long> idsLong = StringUtils.splitIdLong(ids);
LambdaQueryWrapper<TbsBudgetCostItem> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsBudgetCostItem::getBudgetId,idsLong);
if(tbsBudgetCostItemService.count(lqw)>0){
return R.error("预算已被使用");
}
boolean result = tbsBudgetService.removeByIds(idsLong);
//移除考核期预算
LambdaQueryWrapper<TbsScheduleItemBudget> rmItemBudget = new LambdaQueryWrapper<>();
rmItemBudget.in(TbsScheduleItemBudget::getBudgetId,idsLong);
tbsScheduleItemBudgetService.remove(rmItemBudget);
return R.isTrue(result);
}

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

@ -112,18 +112,13 @@ public class TbsCostApplyController {
List<String> userIds = new ArrayList<>();
if(param.getLoadChild()!=null&&param.getLoadChild().equals(1)){
userIds = sysUserSalesService.listByChildIds(userId);
}else {
userIds.add(userId);
}
userIds.add(userId);
TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply());
LambdaQueryWrapper<TbsCostApply> lqw = new LambdaQueryWrapper<>(entity);
lqw.in(TbsCostApply::getCreateBy,userIds);
PageUtil.startPage();
List<TbsCostApply> list = tbsCostApplyService.list(lqw);
for (TbsCostApply costApply : list) {
SysUser sysUser = sysUserService.getById(costApply.getCreateBy());
costApply.setUserInfo(sysUser.toSysUserVo());
}
return R.ok(list);
}
@ -139,18 +134,13 @@ public class TbsCostApplyController {
List<String> userIds = new ArrayList<>();
if(param.getLoadChild()!=null&&param.getLoadChild().equals(1)){
userIds = sysUserSalesService.listByChildIds(userId);
}else {
userIds.add(userId);
}
userIds.add(userId);
TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply());
LambdaQueryWrapper<TbsCostApply> lqw = new LambdaQueryWrapper<>(entity);
lqw.orderByDesc(TbsCostApply::getId);
PageUtil.startPage();
List<TbsCostApply> list = tbsCostApplyService.list(lqw);
for (TbsCostApply costApply : list) {
SysUser sysUser = sysUserService.getById(costApply.getCreateBy());
costApply.setUserInfo(sysUser.toSysUserVo());
}
return R.byPageHelperList(list);
}

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

@ -117,8 +117,5 @@ public class TbsCostApply implements Serializable {
@TableField(exist = false)
private String affairId;
@TableField(exist = false)
private Object userInfo;
}

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

@ -1,8 +1,13 @@
package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
/**
* 核销 服务接口
@ -18,6 +23,12 @@ public interface VtbVerificationService extends IService<VtbVerification> {
*/
void release(Long activityId);
/**
* 冻结
* @param param
* @return
*/
R<?> freeze(TbsActivityReopenBo param);
/**
* 提交审批

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

@ -11,8 +11,10 @@ import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
@ -94,6 +96,39 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
//todo 恢复预算
}
@Override
@Transactional(rollbackFor = Exception.class)
public R<?> freeze(TbsActivityReopenBo param) {
TbsActivity dbAct = activityService.getById(param.getActivityId());
TbsCostApply costApply = costApplyService.getById(dbAct.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
return R.error("因费用状态不支持编辑!!");
}
if(!dbAct.getActivityState().equals(TbsActivityState.STATE_0_Todo)
&&!dbAct.getActivityState().equals(TbsActivityState.STATE_1_Baning)){
return R.error("因活动状态不支持操作");
}
TbsActivity activity = new TbsActivity();
activity.setId(param.getActivityId());
if(param.getState().equals(1)){
//冻结
activity.setActivityState(TbsActivityState.STATE_1_Baning);
}else {
//解冻
if(dbAct.getPreEndDate().isBefore(LocalDate.now())){
activity.setReopenFlag(1);
}else {
activity.setReopenFlag(0);
}
if(this.checkCommitting(dbAct.getId())){
activity.setActivityState(TbsActivityState.STATE_1_Checking);
}else {
activity.setActivityState(TbsActivityState.STATE_0_Todo);
}
}
activityService.updateById(activity);
return R.ok();
}
@Override
@Transactional(rollbackFor = Exception.class)
@ -125,6 +160,10 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
//保存科目费用
verificationSubjects.forEach(obj->obj.setVerificationId(verification.getId()));
verificationSubjectService.saveBatch(verificationSubjects);
TbsActivity activityParam = new TbsActivity();
activityParam.setId(activity.getId());
activityParam.setActivityState(TbsActivityState.STATE_1_Checking);
activityService.updateById(activityParam);
}
@ -141,6 +180,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
&& nowDate.isAfter(activity.getActEndDate())){
Assert.throwEx("活动已结束");
}
if(activity.getActivityState().equals(TbsActivityState.STATE_1_Baning)){
Assert.throwEx("活动冻结中");
}
if(activity.getReleaseFlag().equals(1)){
Assert.throwEx("费用已释放");
}

16
src/main/java/com/qs/serve/task/TbsTask.java

@ -0,0 +1,16 @@
package com.qs.serve.task;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
/**
* @author YenHex
* @since 2022/12/9
*/
@Component
@AllArgsConstructor
public class TbsTask {
//todo 每日更新过期的活动,过期则进行冻结
}
Loading…
Cancel
Save