Browse Source

政策添加申请时间

contract
Yen 2 years ago
parent
commit
6544955781
  1. 144
      src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java
  2. 8
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java
  3. 5
      src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java
  4. 8
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  5. 10
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java

144
src/main/java/com/qs/serve/modules/excel/service/impl/DateCheckApplyServiceImpl.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.excel.service.impl; package com.qs.serve.modules.excel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierContacts; import com.qs.serve.modules.bms.entity.BmsSupplierContacts;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
@ -75,75 +76,91 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService {
//暂未定义时间区间 //暂未定义时间区间
List<TbsActivity> activityList = activityMapper.selectList(actLqw); List<TbsActivity> activityList = activityMapper.selectList(actLqw);
List<DataCheckApplyDetailItem> detailItemList = new ArrayList<>(); List<DataCheckApplyDetailItem> detailItemList = new ArrayList<>();
for (TbsActivity activity : activityList) { if(CollectionUtil.isNotEmpty(activityList)){
TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId()); for (TbsActivity activity : activityList) {
DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem(); TbsCostApply costApply = costApplyMapper.selectById(activity.getCostApplyId());
detailItem.setActivityCode(activity.getActivityCode()); DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem();
detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString()); detailItem.setActivityCode(activity.getActivityCode());
detailItem.setActivityTheme(activity.getActTitle()); detailItem.setActivityDate(costApply.getSubmitTime().toLocalDate().toString());
detailItem.setCostApplyAmt(activity.getTotalAmount()); detailItem.setActivityTheme(activity.getActTitle());
detailItem.setCostApplyAmt(activity.getTotalAmount());
LambdaQueryWrapper<VtbVerification> veriLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<VtbVerification> veriLqw = new LambdaQueryWrapper<>();
veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount); veriLqw.select(VtbVerification::getVerificationState,VtbVerification::getAmount);
veriLqw.eq(VtbVerification::getActivityId,activity.getId()); veriLqw.eq(VtbVerification::getActivityId,activity.getId());
veriLqw.in(VtbVerification::getVerificationState, veriLqw.in(VtbVerification::getVerificationState,
VtbVerificationState.Finished.getCode(), VtbVerificationState.Finished.getCode(),
VtbVerificationState.Rollback.getCode(), VtbVerificationState.Rollback.getCode(),
VtbVerificationState.Commiting.getCode()); VtbVerificationState.Commiting.getCode());
List<VtbVerification> vtbVerificationList = verificationMapper.selectList(veriLqw); List<VtbVerification> vtbVerificationList = verificationMapper.selectList(veriLqw);
List<VtbVerification> finishedVeriList= vtbVerificationList.stream() List<VtbVerification> finishedVeriList= vtbVerificationList.stream()
.filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); .filter(a->a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList());
List<VtbVerification> unFinishVeriList= vtbVerificationList.stream() List<VtbVerification> unFinishVeriList= vtbVerificationList.stream()
.filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList()); .filter(a->!a.getVerificationState().equals(VtbVerificationState.Finished.getCode())).collect(Collectors.toList());
BigDecimal checkedAmt = BigDecimal.ZERO; BigDecimal checkedAmt = BigDecimal.ZERO;
for (VtbVerification verification : finishedVeriList) { for (VtbVerification verification : finishedVeriList) {
checkedAmt = checkedAmt.add(verification.getAmount()); checkedAmt = checkedAmt.add(verification.getAmount());
}
BigDecimal notCheckAmt = BigDecimal.ZERO;
for (VtbVerification verification : unFinishVeriList) {
notCheckAmt = notCheckAmt.add(verification.getAmount());
}
BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount();
detailItem.setCheckedAmt(checkedAmt);
detailItem.setCheckingAmt(notCheckAmt);
detailItem.setDontCheckAmt(releaseAmt);
BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt())
.subtract(detailItem.getCheckingAmt())
.subtract(detailItem.getDontCheckAmt());
detailItem.setNotCheckAmt(notCheckedAmt);
if(checkedAmt.compareTo(BigDecimal.ZERO)==0){
detailItem.setPayAmt(BigDecimal.ZERO);
detailItem.setUnPayAmt(BigDecimal.ZERO);
detailItem.setNotPayAmt(BigDecimal.ZERO);
}else {
//已支付
PayPaymentItem payItemQuery = new PayPaymentItem();
payItemQuery.setCancelFlag(0);
payItemQuery.setActivityId(activity.getId());
List<PayPaymentItem> allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery);
List<PayPaymentItem> payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList());
List<PayPaymentItem> unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList());
//不再支付
BigDecimal notPayAmt = BigDecimal.ZERO;
for (PayPaymentItem paymentItem : unPayList) {
notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount());
} }
BigDecimal payAmt = BigDecimal.ZERO; BigDecimal notCheckAmt = BigDecimal.ZERO;
for (PayPaymentItem paymentItem : payList) { for (VtbVerification verification : unFinishVeriList) {
payAmt = payAmt.add(paymentItem.getItemPayAmount()); notCheckAmt = notCheckAmt.add(verification.getAmount());
} }
//未支付 BigDecimal releaseAmt = activity.getReleaseAmount()==null?BigDecimal.ZERO:activity.getReleaseAmount();
BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt); detailItem.setCheckedAmt(checkedAmt);
detailItem.setCheckingAmt(notCheckAmt);
detailItem.setDontCheckAmt(releaseAmt);
BigDecimal notCheckedAmt = activity.getTotalAmount().subtract(detailItem.getCheckedAmt())
.subtract(detailItem.getCheckingAmt())
.subtract(detailItem.getDontCheckAmt());
detailItem.setNotCheckAmt(notCheckedAmt);
if(checkedAmt.compareTo(BigDecimal.ZERO)==0){
detailItem.setPayAmt(BigDecimal.ZERO);
detailItem.setUnPayAmt(BigDecimal.ZERO);
detailItem.setNotPayAmt(BigDecimal.ZERO);
}else {
//已支付
PayPaymentItem payItemQuery = new PayPaymentItem();
payItemQuery.setCancelFlag(0);
payItemQuery.setActivityId(activity.getId());
List<PayPaymentItem> allPayList = payPaymentItemMapper.selectPayPaymentItemList(payItemQuery);
List<PayPaymentItem> payList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.PAYMENT)).collect(Collectors.toList());
List<PayPaymentItem> unPayList = allPayList.stream().filter(a->a.getPayType().equals(PaymentType.UN_PAYMENT)).collect(Collectors.toList());
//不再支付
BigDecimal notPayAmt = BigDecimal.ZERO;
for (PayPaymentItem paymentItem : unPayList) {
notPayAmt = notPayAmt.add(paymentItem.getItemPayAmount());
}
detailItem.setPayAmt(payAmt); BigDecimal payAmt = BigDecimal.ZERO;
detailItem.setUnPayAmt(unPayAmt); for (PayPaymentItem paymentItem : payList) {
detailItem.setNotPayAmt(notPayAmt); payAmt = payAmt.add(paymentItem.getItemPayAmount());
}
//未支付
BigDecimal unPayAmt = checkedAmt.subtract(payAmt).subtract(notPayAmt);
detailItem.setPayAmt(payAmt);
detailItem.setUnPayAmt(unPayAmt);
detailItem.setNotPayAmt(notPayAmt);
}
detailItemList.add(detailItem);
} }
}else {
DataCheckApplyDetailItem detailItem = new DataCheckApplyDetailItem();
detailItem.setActivityCode("");
detailItem.setActivityDate("");
detailItem.setActivityTheme("");
detailItem.setCostApplyAmt(BigDecimal.ZERO);
detailItem.setCheckedAmt(BigDecimal.ZERO);
detailItem.setCheckingAmt(BigDecimal.ZERO);
detailItem.setNotCheckAmt(BigDecimal.ZERO);
detailItem.setDontCheckAmt(BigDecimal.ZERO);
detailItem.setPayAmt(BigDecimal.ZERO);
detailItem.setUnPayAmt(BigDecimal.ZERO);
detailItem.setNotPayAmt(BigDecimal.ZERO);
detailItemList.add(detailItem); detailItemList.add(detailItem);
} }
detailInfo.setDetailList(detailItemList); detailInfo.setDetailList(detailItemList);
@ -170,6 +187,9 @@ public class DateCheckApplyServiceImpl implements DateCheckApplyService {
//申请总金额 //申请总金额
BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId); BigDecimal totalAmount = activityMapper.sumSupplierActivityCost(supplierId);
if(totalAmount==null){
totalAmount = BigDecimal.ZERO;
}
mainInfo.setCostApplyAmt(totalAmount); mainInfo.setCostApplyAmt(totalAmount);
if(totalAmount.compareTo(BigDecimal.ZERO)==0){ if(totalAmount.compareTo(BigDecimal.ZERO)==0){
mainInfo.setCostApplyAmt(totalAmount); mainInfo.setCostApplyAmt(totalAmount);

8
src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java

@ -15,7 +15,7 @@ import java.math.BigDecimal;
public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemBudget> { public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemBudget> {
/** /**
* 统计费用申请占用的预算金额 * 统计费用申请占用的预算金额
* @param scheduleItemBudgetId 预算考核期id * @param scheduleItemBudgetId 预算考核期id
* @param applyId 费用申请id(防止驳回后提交重复扣除) * @param applyId 费用申请id(防止驳回后提交重复扣除)
* @return * @return
@ -28,7 +28,7 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
BigDecimal totalApplyAmount(@Param("scheduleItemBudgetId") Long scheduleItemBudgetId,@Param("applyId") Long applyId); BigDecimal totalApplyAmount(@Param("scheduleItemBudgetId") Long scheduleItemBudgetId,@Param("applyId") Long applyId);
/** /**
* 统计政策申请已占用的预算金额 * 统计政策申请已占用的预算金额
* @param scheduleItemBudgetId * @param scheduleItemBudgetId
* @param policyId * @param policyId
* @return * @return
@ -77,11 +77,11 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
@Select("SELECT sum( amount ) FROM `tbs_budget_log` " + @Select("SELECT sum( amount ) FROM `tbs_budget_log` " +
" LEFT JOIN `tzc_policy` " + " LEFT JOIN `tzc_policy` " +
" ON `tbs_budget_log`.policy_id = tzc_policy.id " + " ON `tbs_budget_log`.policy_id = tzc_policy.id " +
" AND `tbs_budget_log`.rollback_flag = '0' " + //" AND `tbs_budget_log`.rollback_flag = '0' " +
"WHERE `tbs_budget_log`.budget_id = #{budgetId} " + "WHERE `tbs_budget_log`.budget_id = #{budgetId} " +
" AND `tbs_budget_log`.schedule_item_id = #{scheduleItemId} " + " AND `tbs_budget_log`.schedule_item_id = #{scheduleItemId} " +
" AND `tzc_policy`.id != #{policyId} " + " AND `tzc_policy`.id != #{policyId} " +
" AND `tzc_policy`.policy_status in (1,2,4) ") " AND `opt_type` in (11,12,13,14,15) ")
BigDecimal totalCostAmountByPolicyId(@Param("budgetId") Long budgetId, BigDecimal totalCostAmountByPolicyId(@Param("budgetId") Long budgetId,
@Param("scheduleItemId") Long scheduleItemId, @Param("scheduleItemId") Long scheduleItemId,
@Param("policyId") Long policyId); @Param("policyId") Long policyId);

5
src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicy.java

@ -96,6 +96,11 @@ public class TzcPolicy implements Serializable {
private String syFlowId; private String syFlowId;
/** 提交时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

8
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -190,6 +190,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
updPolicy.setId(policyId); updPolicy.setId(policyId);
updPolicy.setSyFlowId(flowId); updPolicy.setSyFlowId(flowId);
updPolicy.setSyFormId(formId); updPolicy.setSyFormId(formId);
updPolicy.setSubmitTime(LocalDateTime.now());
updPolicy.setPolicyStatus(TzcPolicyStatus.Status_1_Checking); updPolicy.setPolicyStatus(TzcPolicyStatus.Status_1_Checking);
tzcPolicyService.updateById(updPolicy); tzcPolicyService.updateById(updPolicy);
tzcPolicy = tzcPolicyService.getById(policyId); tzcPolicy = tzcPolicyService.getById(policyId);
@ -211,9 +212,8 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
//保存预算使用日志 //保存预算使用日志
List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList()); List<TbsBudgetLog> budgetLogList = saveBudgetLog(result, sysUser, tzcPolicy, result.getPolicyBudgetMatchList(),result.getPolicyItemList());
if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){ if(tzcPolicy.getPolicyStatus().equals(TzcPolicyStatus.Status_0_UnCommit)){
if(CollectionUtil.isNotEmpty(budgetLogList)){ //todo 待测试,没能触发到
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
}
}else { }else {
//排除历史记录 //排除历史记录
LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsBudgetLog> logLqw = new LambdaQueryWrapper<>();
@ -608,7 +608,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
lastAmount = BigDecimal.ZERO; lastAmount = BigDecimal.ZERO;
} }
//判断是否够用 //判断是否够用
if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>0){ if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>=0){
budgetItemCostResult.setBudgetId(itemBudget.getBudgetId()); budgetItemCostResult.setBudgetId(itemBudget.getBudgetId());
budgetItemCostResult.setScheduleId(itemBudget.getScheduleId()); budgetItemCostResult.setScheduleId(itemBudget.getScheduleId());
budgetItemCostResult.setScheduleItemId(itemBudget.getScheduleItemId()); budgetItemCostResult.setScheduleItemId(itemBudget.getScheduleItemId());

10
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java

@ -9,6 +9,7 @@ import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
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.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService; import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
@ -44,6 +45,15 @@ public class TzcPolicyOperationServiceImpl implements SeeYonOperationService {
return affairCommit.getPolicyId()+""; return affairCommit.getPolicyId()+"";
} }
@Override
public boolean checkSyFormIdIsNotNull(String targetId) {
TzcPolicy policy = tzcPolicyService.getById(targetId);
if(policy!=null&&policy.getSyFormId()!=null){
return true;
}
return false;
}
@Override @Override
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) {
TzcPolicy tzcPolicy = tzcPolicyService.getById(affairCommit.getPolicyId()); TzcPolicy tzcPolicy = tzcPolicyService.getById(affairCommit.getPolicyId());

Loading…
Cancel
Save