Browse Source

添加费用申请复制

v1.0
Yen 2 years ago
parent
commit
45286dfbe0
  1. 12
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  2. 6
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  3. 7
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java
  4. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  5. 49
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

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

@ -74,6 +74,18 @@ public class TbsCostApplyController {
private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl;
private TbsBudgetMatchApplication tbsBudgetMatchApplication;
/**
* 复制
* @param id
* @return
*/
@PostMapping("/copyById/{id}")
public R<?> copyById(@PathVariable("id") Long id){
return R.ok(costApplyPart1Service.copyById(id));
}
/**
* 作废费用申请
* @param id

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

@ -177,6 +177,12 @@ public class TbsCostApply implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime changeActionTime;
/**
* 编辑金额标识
* 审批通过时恢复0
*/
private Integer editAmountFlag;
@TableField(exist = false)
private String affairId;

7
src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java

@ -9,6 +9,13 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply;
*/
public interface TbsCostApplyPart1Service {
/**
* 通过ID复制
* @param costId
* @return
*/
TbsCostApply copyById(Long costId);
/**
* 执行异动
* @param costId

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

@ -221,8 +221,11 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
TbsCostApply apply = new TbsCostApply();
// TODO 1.有修改金额为0的异常;2.需要调整预算占用
// BigDecimal totalApply = checkToChangeAmount(param, targetId);
// apply.setTotalActivityAmount(totalApply);
apply.setId(targetId);
// if(totalApply!=null){
// apply.setTotalActivityAmount(totalApply);
// apply.setEditAmountFlag(1);
// }
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
costApplyService.updateById(apply);
TbsCostApply costApply = costApplyService.getById(targetId);

49
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -6,6 +6,7 @@ import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CodeGenUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bir.service.BirCenterRateService;
import com.qs.serve.modules.bir.service.BirRoiRateService;
@ -57,6 +58,38 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
private VtbVerificationMapper verificationMapper;
private TbsBudgetLogMapper tbsBudgetLogMapper;
@Override
public TbsCostApply copyById(Long costId) {
final String newCostApplyCode = CodeGenUtil.generate(CodeGenUtil.SourceKey.CostApply);
TbsCostApply costApply = tbsCostApplyService.getById(costId);
costApply.setId(null);
costApply.setCode(newCostApplyCode);
costApply.setCreateBy(null);
costApply.setCreateTime(null);
costApply.setUpdateTime(null);
costApply.setUpdateBy(null);
costApply.setChangeSourceId(null);
costApply.setChangeExtendId(null);
costApply.setCancelFlag(null);
costApply.setEditAmountFlag(null);
costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode());
tbsCostApplyService.save(costApply);
final Long newCostApplyId = costApply.getId();
QueryWrapper qw_cost_apply = new QueryWrapper();
qw_cost_apply.eq("cost_apply_id",costId);
List<TbsCostContract> contracts = costContractMapper.selectList(qw_cost_apply);
contracts.forEach(con->{
con.setId(null);
con.setCostApplyId(newCostApplyId);
});
//活动相关复制
List<TbsActivity> activityList = tbsActivityMapper.selectList(qw_cost_apply);
//更新状态
this.copyAboutActivityData(newCostApplyId,newCostApplyCode, activityList);
return costApply;
}
@Override
@Transactional(rollbackFor = Exception.class)
public TbsCostApply toSetChanged(Long costId) {
@ -90,6 +123,7 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
costApply.setCreateTime(null);
costApply.setUpdateTime(null);
costApply.setUpdateBy(null);
costApply.setCancelFlag(null);
costApply.setChangeSourceId(orgCost.getId());
costApply.setChangeExtendId(null);
costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode());
@ -103,6 +137,11 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
con.setId(null);
con.setCostApplyId(newCostApplyId);
});
if(contracts.size()>0){
for (TbsCostContract contract : contracts) {
costContractMapper.insert(contract);
}
}
//活动相关复制
List<TbsActivity> activityList = tbsActivityMapper.selectList(qw_cost_apply);
//更新状态
@ -112,7 +151,7 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();
activityLqw.in(TbsActivity::getId,activityIds);
tbsActivityMapper.update(activity4Update,activityLqw);
this.copyAboutActivityData(newCostApplyId, activityList);
this.copyAboutActivityData(newCostApplyId,null, activityList);
//更变旧记录
orgCost.setChangeStateRecord(orgCost.getChargeState());
orgCost.setChargeState(TbsCostApplyState.State_7_changed.getCode());
@ -165,14 +204,20 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
/**
* 活动相关复制
* @param newCostApplyId
* @param newCostApplyCode
* @param activityList
*/
private void copyAboutActivityData(Long newCostApplyId, List<TbsActivity> activityList) {
private void copyAboutActivityData(Long newCostApplyId,String newCostApplyCode, List<TbsActivity> activityList) {
int idx = 1;
for (TbsActivity orgActivity : activityList) {
//原ActivityID
Long orgActivityId = orgActivity.getId();
//重新保存
orgActivity.setId(null);
if(newCostApplyCode!=null){
orgActivity.setActivityCode(newCostApplyCode+"_"+idx);
idx++;
}
orgActivity.setCostApplyId(newCostApplyId);
orgActivity.setActivityState(0);
orgActivity.setCreateBy(null);

Loading…
Cancel
Save