Browse Source

政策释放接口

v1.0
Yen 1 year ago
parent
commit
09f65eacd7
  1. 6
      src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java
  2. 2
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  3. 2
      src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java
  4. 12
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  5. 1
      src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java
  6. 11
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  7. 13
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java
  8. 2
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java
  9. 74
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  10. 6
      src/main/java/com/qs/serve/modules/vtb/entity/VtbFundFlow.java
  11. 2
      src/main/java/com/qs/serve/task/BirTask.java
  12. 2
      src/main/java/com/qs/serve/task/BitTask.java
  13. 2
      src/main/java/com/qs/serve/task/ErpDipatchTask.java
  14. 4
      src/main/java/com/qs/serve/task/GoodsTask.java
  15. 1
      src/main/java/com/qs/serve/task/PayTask.java
  16. 2
      src/main/java/com/qs/serve/task/TbsTask.java
  17. 2
      src/main/java/com/qs/serve/task/WxUserTask.java

6
src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java

@ -57,12 +57,14 @@ public enum BudgetLogOptFlag {
/** 13-政策因费用申请调增(政策申请,预算转移) */
State_13(13,true),
/** 14-政策释放(被拒绝后,政策释放) */
/** 14-政策申请释放(被拒绝后,政策释放) */
State_14(14,true),
/** 15-费用申请释放(被拒绝后,预算增加) */
State_15(15,true);
State_15(15,true),
/** 16-政策释放(释放操作,预算增加) */
State_16(16,true);
/**
* 编码

2
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -183,6 +183,8 @@ public class BmsSupplier implements Serializable {
private String comRegionCode;
private String bookCode;
/** 初始化当前欠费 */
@NotNull(message = "初始化当前欠费不能为空")
private BigDecimal initCurAmount;

2
src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java

@ -128,6 +128,8 @@ public class ThirtyVerification {
@NotNull(message = "客户名称不能为空")
private String cusName;
private String bookCode;
/**
* 对应 apticlaim_recid
*/

12
src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -324,6 +324,15 @@ public class PortalOfCostApplication {
if(oriPolicyBudgetLog==null){
Assert.throwEx("政策预算数据异常:"+policyItem.getPolicyItemCode());
}
BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId());
BigDecimal resultItemAmt = usedAmt.add(totalAmount);
if(policyItem.getDiscountMax().compareTo(resultItemAmt)<0){
BigDecimal surplusAmt = policyItem.getDiscountMax().subtract(usedAmt);
Assert.throwEx("政策预算不足,可用余额:"+surplusAmt);
}
//构建费用申请
TbsCostApply costApply = new TbsCostApply();
//2024年1月23日,添加
@ -516,10 +525,9 @@ public class PortalOfCostApplication {
TzcPolicyItemLog policyItemLog = TzcPolicyItemLog.toNewObject(policyItem,totalAmount);
policyItemLogService.save(policyItemLog);
BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId());
TzcPolicyItem policyItemParam = new TzcPolicyItem();
policyItemParam.setId(policyItem.getId());
policyItemParam.setUsedAmount(usedAmt.add(totalAmount));
policyItemParam.setUsedAmount(resultItemAmt);
policyItemServiceService.updateById(policyItemParam);
//保存核销申请

1
src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java

@ -91,6 +91,7 @@ public class ThirtyVerificationUtil {
tv.setCheckTime(timeString);
tv.setCusCode(supplier.getCode());
tv.setCusName(supplier.getName());
tv.setBookCode(supplier.getBookCode());
tv.setRecId(verification.getVerificationCode());
return JsonUtil.objectToJson(tv);
}

11
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -478,17 +478,6 @@ public class TzcPolicyController {
}
/**
* 释放政策
* @param policyId
* @return
*/
@GetMapping("/releasePolicy")
public R<?> releasePolicy(Long policyId){
policyApplicationService.releasePolicy(policyId);
return R.ok();
}
private List<String> getCateIds(String province,String city,String area){
LambdaQueryWrapper<BmsRegion2> region2Lqw = new LambdaQueryWrapper<>();
boolean search = false;

13
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java

@ -14,6 +14,7 @@ import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper;
import com.qs.serve.modules.tzc.common.TzcPolicyStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoods;
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor;
@ -46,6 +47,18 @@ public class TzcPolicyItemController {
private TzcPolicyGoodsService tzcPolicyGoodsService;
private TzcPolicyService tzcPolicyService;
private SysAttachService attachService;
private TzcPolicyApplicationService policyApplicationService;
/**
* 释放政策
* @param policyItemId
* @return
*/
@GetMapping("/releasePolicyByItemId")
public R<?> releasePolicy(Long policyItemId){
policyApplicationService.releasePolicyItem(policyItemId);
return R.ok();
}
/**
* 列表

2
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java

@ -21,7 +21,7 @@ public interface TzcPolicyApplicationService {
void syncPolicy(Long policyId);
void releasePolicy(Long policyId);
void releasePolicyItem(Long policyId);
/**
* 创建费用占用结果

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

@ -52,10 +52,14 @@ import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoods;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto;
import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper;
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import com.qs.serve.modules.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.entity.VtbFundFlow;
import com.qs.serve.modules.vtb.service.VtbFundFlowService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
@ -80,6 +84,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
private TzcPolicyService tzcPolicyService;
private TzcPolicyItemService tzcPolicyItemService;
private TzcPolicyItemMapper tzcPolicyItemMapper;
private TzcPolicyGoodsService tzcPolicyGoodsService;
private TbsCostUnItemPolicyService tbsCostUnItemPolicyService;
private TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService;
@ -100,6 +105,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
private final BmsRegionMapper regionMapper;
private final BmsRegion2Mapper region2Mapper;
private ProjectApisProperties projectApisProperties;
private final VtbFundFlowService vtbFundFlowService;
@Override
public void syncPolicy(Long policyId) {
@ -113,8 +119,74 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
}
@Override
public void releasePolicy(Long policyId) {
public void releasePolicyItem(Long policyItemId) {
TzcPolicyItem policyItem = tzcPolicyItemService.getById(policyItemId);
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){
Assert.throwEx("政策项的状态不支持");
}
Long policyId = policyItem.getPolicyId();
TzcPolicy policy = tzcPolicyService.getById(policyId);
if(!policy.getPolicyStatus().equals(TzcPolicyStatus.Status_2_PassSuccess)){
Assert.throwEx("政策的状态不支持");
}
BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId());
BigDecimal surplusAmt = policyItem.getDiscountMax().subtract(usedAmt);
if(surplusAmt.compareTo(BigDecimal.ZERO)>0){
LambdaQueryWrapper<TbsBudgetLog> tbsLogLqw = new LambdaQueryWrapper<>();
tbsLogLqw.eq(TbsBudgetLog::getPolicyItemId,policyItem.getId());
tbsLogLqw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_11.getCode());
TbsBudgetLog budgetLog = budgetLogService.getOne(tbsLogLqw,false);
if(budgetLog==null){
Assert.throwEx("政策预算数据异常:"+policyItem.getPolicyItemCode());
}
//余额大于0则释放
VtbFundFlow fundFlow = new VtbFundFlow();
fundFlow.setFundType(VtbFundFlowType.Release);
fundFlow.setVerificationId(0L);
fundFlow.setCenterGoodsCode("0");
fundFlow.setCostApplyId(0L);
fundFlow.setActivityId(0L);
fundFlow.setSupplierId(0L);
fundFlow.setSupplierCode("");
fundFlow.setSupplierName("");
fundFlow.setPolicyId(policyId);
fundFlow.setPolicyItemId(policyItem.getId());
fundFlow.setUsedAmount(surplusAmt);
vtbFundFlowService.save(fundFlow);
budgetLog.setCreateBy(null);
budgetLog.setCreateTime(null);
budgetLog.setUpdateBy(null);
budgetLog.setUpdateTime(null);
budgetLog.setId(null);
BudgetLogOptFlag optFlag = BudgetLogOptFlag.State_16;
//正数
budgetLog.setAmount(surplusAmt);
budgetLog.setOptType(optFlag.getCode());
budgetLogService.save(budgetLog);
policyItem.setUsedAmount(policyItem.getDiscountMax());
policyItem.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished);
tzcPolicyItemService.updateById(policyItem);
}
//标记政策已完成
List<TzcPolicyItem> listByPolicyId = tzcPolicyItemService.listByPolicyId(policyId);
boolean allFinished = true;
for (TzcPolicyItem item : listByPolicyId) {
if(!item.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){
if (item.getDiscountMax().compareTo(item.getUsedAmount())==0){
item.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished);
tzcPolicyItemService.updateById(item);
continue;
}
allFinished = false;
}
}
if(allFinished){
policy.setPolicyStatus(TzcPolicyStatus.Status_3_Success);
tzcPolicyService.updateById(policy);
}
}

6
src/main/java/com/qs/serve/modules/vtb/entity/VtbFundFlow.java

@ -54,6 +54,12 @@ public class VtbFundFlow implements Serializable {
/** 科目id */
private Long subjectId;
/** 政策id */
private Long policyId;
/** 政策项id */
private Long policyItemId;
/** 科目编码 */
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;

2
src/main/java/com/qs/serve/task/BirTask.java

@ -1,5 +1,6 @@
package com.qs.serve.task;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.bir.service.BirActivityCenterGoodsService;
import com.qs.serve.task.controller.TaskActivityController;
import lombok.AllArgsConstructor;
@ -24,6 +25,7 @@ public class BirTask {
@Scheduled(cron="0 0 1 * * ?")
public void buildTempTable(){
AuthContextUtils.setTenant("001");
int year = LocalDate.now().getYear();
for (int i = 1;i < 13; i++) {
birActivityCenterGoodsService.buildReport(year,i);

2
src/main/java/com/qs/serve/task/BitTask.java

@ -2,6 +2,7 @@ package com.qs.serve.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.bir.service.BirBaseActivityService;
import com.qs.serve.modules.bir.service.BirRoiRateService;
@ -25,6 +26,7 @@ public class BitTask {
@Scheduled(cron="0 0 1 * * ?")
public void buildTempTable(){
AuthContextUtils.setTenant("001");
//移除当年所有
int year = 2023;
//重新生成记录

2
src/main/java/com/qs/serve/task/ErpDipatchTask.java

@ -1,5 +1,6 @@
package com.qs.serve.task;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper;
import com.qs.serve.modules.bir.service.BirActivityCenterGoodsService;
import lombok.AllArgsConstructor;
@ -24,6 +25,7 @@ public class ErpDipatchTask {
@Scheduled(cron="0 0 1 * * ?")
public void buildTempTable(){
AuthContextUtils.setTenant("001");
birReportAccountBookMapper.buildAllDispatch();
birReportAccountBookMapper.buildRegionDispatch();
birReportAccountBookMapper.buildBizRegionDispatch();

4
src/main/java/com/qs/serve/task/GoodsTask.java

@ -1,5 +1,6 @@
package com.qs.serve.task;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.goods.service.GoodsApplicationService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import lombok.AllArgsConstructor;
@ -23,6 +24,7 @@ public class GoodsTask {
@Scheduled(cron="0 0 1 * * ?")
public void buildTempTable(){
AuthContextUtils.setTenant("001");
goodsSpuService.initSkuNum();
}
@ -31,6 +33,7 @@ public class GoodsTask {
*/
@Scheduled(cron="0 0/2 0 * * ?")
public void syncStandGoods(){
AuthContextUtils.setTenant("001");
goodsApplicationService.syncStandGoods(false);
}
@ -39,6 +42,7 @@ public class GoodsTask {
*/
@Scheduled(cron="0 0 1 * * ?")
public void syncInvPrice(){
AuthContextUtils.setTenant("001");
goodsApplicationService.syncSkuPrice();
}

1
src/main/java/com/qs/serve/task/PayTask.java

@ -46,6 +46,7 @@ public class PayTask {
*/
@Scheduled(cron="0 0 2 * * ?")
public void checkToPay(){
AuthContextUtils.setTenant("001");
//预先调用伟成同步状态接口,减少查询记录数
String url = projectApisProperties.getCheckPayStatus();
HttpUtil.doGet(url,null);

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

@ -115,6 +115,7 @@ public class TbsTask {
*/
@Scheduled(cron="0 0/30 * * * ?")
public void updateCheckState(){
AuthContextUtils.setTenant("001");
tbsCostApplyService.updateCheckState();
}
@ -124,6 +125,7 @@ public class TbsTask {
*/
@Scheduled(cron="0 0/30 * * * ?")
public void syncPayToErp(){
AuthContextUtils.setTenant("001");
vtbVerificationService.toPayRequest();
}

2
src/main/java/com/qs/serve/task/WxUserTask.java

@ -1,5 +1,6 @@
package com.qs.serve.task;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
@ -17,6 +18,7 @@ public class WxUserTask {
//@Scheduled(cron = "0 0/30 * * * ?")
public void syncSubscribe(){
AuthContextUtils.setTenant("001");
wxUserService.syncSubscribe();
}

Loading…
Cancel
Save