Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
3f4ae1555d
  1. 24
      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. 27
      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

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

@ -39,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -74,6 +75,29 @@ public class TbsCostApplyController {
private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl; private TbsCostApplyOperationServiceImpl tbsCostApplyOperationServiceImpl;
private TbsBudgetMatchApplication tbsBudgetMatchApplication; private TbsBudgetMatchApplication tbsBudgetMatchApplication;
/**
* 测试
* @param param
* @return
*/
//@PostMapping("/testChangeAmt")
public R<?> testChangeAmt(@RequestBody TbsAffairCommitBo param){
TbsCostApplyOperationServiceImpl impl = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class);
BigDecimal total = impl.checkToChangeAmount(param);
return R.ok(total);
}
/**
* 复制
* @param id
* @return
*/
@PostMapping("/copyById/{id}")
public R<?> copyById(@PathVariable("id") Long id){
return R.ok(costApplyPart1Service.copyById(id));
}
/** /**
* 作废费用申请 * 作废费用申请
* @param 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") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime changeActionTime; private LocalDateTime changeActionTime;
/**
* 编辑金额标识
* 审批通过时恢复0
*/
private Integer editAmountFlag;
@TableField(exist = false) @TableField(exist = false)
private String affairId; 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 { public interface TbsCostApplyPart1Service {
/**
* 通过ID复制
* @param costId
* @return
*/
TbsCostApply copyById(Long costId);
/** /**
* 执行异动 * 执行异动
* @param costId * @param costId

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

@ -220,9 +220,12 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
// 更新金额 // 更新金额
TbsCostApply apply = new TbsCostApply(); TbsCostApply apply = new TbsCostApply();
// TODO 1.有修改金额为0的异常;2.需要调整预算占用 // TODO 1.有修改金额为0的异常;2.需要调整预算占用
// BigDecimal totalApply = checkToChangeAmount(param, targetId); BigDecimal totalApply = checkToChangeAmount(param);
// apply.setTotalActivityAmount(totalApply);
apply.setId(targetId); apply.setId(targetId);
// if(totalApply!=null){
// apply.setTotalActivityAmount(totalApply);
// apply.setEditAmountFlag(1);
// }
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode()); apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
costApplyService.updateById(apply); costApplyService.updateById(apply);
TbsCostApply costApply = costApplyService.getById(targetId); TbsCostApply costApply = costApplyService.getById(targetId);
@ -241,7 +244,8 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
return null; return null;
} }
private BigDecimal checkToChangeAmount(TbsAffairCommitBo param, Long targetId) { public BigDecimal checkToChangeAmount(TbsAffairCommitBo param) {
Long targetId = Long.parseLong(this.getTargetId(param));
if(CollectionUtil.isNotEmpty(param.getAffairSubjectLines())){ if(CollectionUtil.isNotEmpty(param.getAffairSubjectLines())){
BigDecimal n100 = new BigDecimal("100"); BigDecimal n100 = new BigDecimal("100");
QueryWrapper comm_qw = new QueryWrapper(); QueryWrapper comm_qw = new QueryWrapper();
@ -256,6 +260,9 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
//先计算科目的费用 //先计算科目的费用
for (TbsActivitySubject subject : activitySubjectList) { for (TbsActivitySubject subject : activitySubjectList) {
for (TbsAffairCommitBo.AffairSubjectLine subjectLine : param.getAffairSubjectLines()) { for (TbsAffairCommitBo.AffairSubjectLine subjectLine : param.getAffairSubjectLines()) {
if(subjectLine.getAmount().compareTo(BigDecimal.ZERO)<=0){
continue;
}
if(subjectLine.getSubjectId().equals(subject.getId())){ if(subjectLine.getSubjectId().equals(subject.getId())){
BigDecimal subjectAmount = subjectLine.getAmount(); BigDecimal subjectAmount = subjectLine.getAmount();
//重新计算活动金额 //重新计算活动金额
@ -287,7 +294,9 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
activityCenter.setCenterAmount(centerAmt); activityCenter.setCenterAmount(centerAmt);
activityCenterMapper.updateById(activityCenter); activityCenterMapper.updateById(activityCenter);
//计算成本中心下的商品 //计算成本中心下的商品
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { BigDecimal tmpCenterAmt = centerAmt;
for (int i = 0; i < activityCenterGoodsList.size(); i++) {
TbsActivityCenterGoods centerGoods = activityCenterGoodsList.get(i);
boolean eqActivity4Goods = centerGoods.getActivityId().equals(activityCenter.getActivityId()); boolean eqActivity4Goods = centerGoods.getActivityId().equals(activityCenter.getActivityId());
boolean eqCenter4Goods = centerGoods.getCenterType().equals(activityCenter.getCenterType()) boolean eqCenter4Goods = centerGoods.getCenterType().equals(activityCenter.getCenterType())
&&centerGoods.getCenterId().equals(activityCenter.getCenterId()); &&centerGoods.getCenterId().equals(activityCenter.getCenterId());
@ -299,9 +308,15 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
centerGoods.setOrgCenterGoodsAmount(centerGoods.getCenterGoodsAmount()); centerGoods.setOrgCenterGoodsAmount(centerGoods.getCenterGoodsAmount());
} }
centerGoods.setCenterAmount(centerAmt); centerGoods.setCenterAmount(centerAmt);
centerGoods.setCenterGoodsAmount(centerAmt.multiply(centerGoods.getCenterGoodsRate()).divide(n100,2,RoundingMode.HALF_DOWN)); BigDecimal centerGoodAmt = null;
if(i+1==activityCenterGoodsList.size()){
centerGoodAmt = tmpCenterAmt;
}else {
centerGoodAmt = centerAmt.multiply(centerGoods.getCenterGoodsRate()).divide(n100,2,RoundingMode.HALF_DOWN);
tmpCenterAmt = tmpCenterAmt.subtract(centerGoodAmt);
}
centerGoods.setCenterGoodsAmount(centerGoodAmt);
} }
} }
} }
} }

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

Loading…
Cancel
Save