Browse Source

feat: 政策释放拓展记录字段

checkBack
Yen 1 year ago
parent
commit
643d11a952
  1. 11
      src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java
  2. 3
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java
  3. 5
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  4. 17
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyItemController.java
  5. 15
      src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java
  6. 6
      src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyMapper.java
  7. 8
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java
  8. 39
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  9. 15
      src/main/resources/mapper/tzc/TzcPolicyMapper.xml

11
src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java

@ -3,10 +3,7 @@ import java.time.LocalDateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.HttpUtil;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bir.consts.BirActivityCenterGoodsUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
@ -52,6 +49,10 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
@Transactional(rollbackFor = Exception.class)
public void deleteCostApply(Long costApplyId,String remark) {
if(!StringUtils.hasText(remark)||remark.length()<6){
Assert.throwEx("请详细注明删除备注");
}
TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId);
BmsSupplier supplier = supplierMapper.selectById(costApply.getSupplierId());
@ -117,6 +118,8 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
tbsCostApplyRemoveMapper.pay_payment(costApplyId);
tbsCostApplyRemoveMapper.pay_payment_item(costApplyId);
tbsCostApplyRemoveMapper.tbs_budget_log(costApplyId);
//移除CA订单
tbsCostApplyRemoveMapper.tbs_budget_log_policy(costApplyId);
tbsCostApplyRemoveMapper.tbs_budget_cost_item(costApplyId);
tbsCostApplyRemoveMapper.tbs_budget_cost_item_split(costApplyId);
tbsCostApplyRemoveMapper.vtb_fund_flow(costApplyId);

3
src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyRemoveMapper.java

@ -56,6 +56,9 @@ public interface TbsCostApplyRemoveMapper {
@Update("update tbs_budget_log set del_flag = 1 where cost_apply_id = #{costApplyId}")
int tbs_budget_log(@Param("costApplyId") Long costId);
@Update("update tbs_budget_log set del_flag = 1 where create_cost_id = #{costApplyId}")
int tbs_budget_log_policy(@Param("costApplyId") Long costId);
@Update("update tbs_budget_cost_item set del_flag = 1 where cost_apply_id = #{costApplyId}")
int tbs_budget_cost_item(@Param("costApplyId") Long costId);

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

@ -188,6 +188,7 @@ public class PortalOfCostApplication {
*/
@Transactional(rollbackFor = Exception.class)
public void createCostProcessByPolicy(ProcessCreatePolicyCostBo createBo){
LocalDateTime nowTime = LocalDateTime.now();
SysUser user = userService.getByAccount(createBo.getUserCode());
if(user==null){Assert.throwEx("用户不存在,请重新编辑");}
TzcPolicyItem policyItem = policyItemServiceService.getByPolicyItemCode(createBo.getPolicyItemCode());
@ -195,6 +196,9 @@ public class PortalOfCostApplication {
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_2_SyncSuccess)){
Assert.throwEx("政策项状态异常或未完成同步");
}
if(nowTime.isBefore(policyItem.getPolicyEndDate().atStartOfDay())){
Assert.throwEx("政策活动已截止于"+policyItem.getPolicyEndDate());
}
if(CollectionUtil.isEmpty(createBo.getGoodsList()) || createBo.getGoodsList().size()==0){
Assert.throwEx("商品数据不能为空");
}
@ -216,7 +220,6 @@ public class PortalOfCostApplication {
//常用参数
final String GOODS_TYPE = "sku";
final BigDecimal OneHundred = new BigDecimal("100");
LocalDateTime nowTime = LocalDateTime.now();
LocalDate nowDate = LocalDate.now();
Long supplierId = Long.parseLong(supplier.getId());
BigDecimal totalAmount = createBo.getTotalAmount();

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

@ -8,7 +8,9 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper;
import com.qs.serve.modules.tzc.common.TzcPolicyStatus;
@ -42,6 +44,7 @@ import java.util.stream.Collectors;
@RequestMapping("tzc/policyItem")
public class TzcPolicyItemController {
private SysUserService sysUserService;
private TbsScheduleItemBudgetMapper tbsScheduleItemBudgetMapper;
private TzcPolicyItemService tzcPolicyItemService;
private TzcPolicyGoodsService tzcPolicyGoodsService;
@ -49,6 +52,17 @@ public class TzcPolicyItemController {
private SysAttachService attachService;
private TzcPolicyApplicationService policyApplicationService;
/**
* 释放政策
* @param policyItemId
* @return
*/
@GetMapping("/releaseDev")
public R<?> releasePcy(Long policyItemId){
policyApplicationService.syncExpireRelease();
return R.ok();
}
/**
* 释放政策
* @param policyItemId
@ -56,7 +70,8 @@ public class TzcPolicyItemController {
*/
@GetMapping("/releasePolicyByItemId")
public R<?> releasePolicy(Long policyItemId){
policyApplicationService.releasePolicyItem(policyItemId);
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
policyApplicationService.releasePolicyItem(policyItemId, sysUser);
return R.ok();
}

15
src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java

@ -81,6 +81,21 @@ public class TzcPolicyItem implements Serializable {
@NotNull(message = "已用金额不能为空")
private BigDecimal usedAmount;
/** 是否释放 */
private Integer releaseFlag;
/** 释放时间 */
private LocalDateTime releaseTime;
private String releaseUserId;
private String releaseUserCode;
private String releaseUserName;
/** 释放金额 */
private BigDecimal releaseAmount;
/** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId;

6
src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyMapper.java

@ -39,6 +39,12 @@ public interface TzcPolicyMapper extends BaseMapper<TzcPolicy> {
*/
int cancelCostExtUserByPolicyIds(@Param("policyIds") List<String> policyIds);
/**
* 获取需要释放的Item
* @return
*/
List<Long> listExpireItemIds();
/**
* 替换继承人
* @param userId

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

@ -1,5 +1,6 @@
package com.qs.serve.modules.tzc.service;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
@ -21,7 +22,12 @@ public interface TzcPolicyApplicationService {
void syncPolicy(Long policyId);
void releasePolicyItem(Long policyId);
/**
* 同步过期的政策释放
*/
void syncExpireRelease();
void releasePolicyItem(Long policyId, SysUser user);
/**
* 创建费用占用结果

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

@ -53,6 +53,7 @@ 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.mapper.TzcPolicyMapper;
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
@ -82,6 +83,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationService {
private TzcPolicyMapper tzcPolicyMapper;
private TzcPolicyService tzcPolicyService;
private TzcPolicyItemService tzcPolicyItemService;
private TzcPolicyItemMapper tzcPolicyItemMapper;
@ -107,6 +109,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
private ProjectApisProperties projectApisProperties;
private final VtbFundFlowService vtbFundFlowService;
@Override
public void syncPolicy(Long policyId) {
LambdaQueryWrapper<TzcPolicyItem> wrapper = new LambdaQueryWrapper<>();
@ -119,9 +122,27 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
}
@Override
public void releasePolicyItem(Long policyItemId) {
public void syncExpireRelease() {
SysUser sysUser = new SysUser();
sysUser.setId("0");
sysUser.setName("系统执行");
sysUser.setCode("");
List<Long> ids = tzcPolicyMapper.listExpireItemIds();
for (Long id : ids) {
try {
releasePolicyItem(id,sysUser);
} catch (Exception e) {
log.error("释放过期费用失败,itemId:{} 原因:{}",id,e.getMessage());
}
return;
}
}
@Override
@Transactional
public void releasePolicyItem(Long policyItemId, SysUser user) {
TzcPolicyItem policyItem = tzcPolicyItemService.getById(policyItemId);
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){
if(!policyItem.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_2_SyncSuccess)){
Assert.throwEx("政策项的状态不支持");
}
Long policyId = policyItem.getPolicyId();
@ -129,7 +150,11 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
if(!policy.getPolicyStatus().equals(TzcPolicyStatus.Status_2_PassSuccess)){
Assert.throwEx("政策的状态不支持");
}
//查询已转移金额,金额为正数
BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId());
if(policyItem.getUsedAmount().compareTo(usedAmt)!=0){
Assert.throwEx("政策的已用金额异常");
}
BigDecimal surplusAmt = policyItem.getDiscountMax().subtract(usedAmt);
if(surplusAmt.compareTo(BigDecimal.ZERO)>0){
LambdaQueryWrapper<TbsBudgetLog> tbsLogLqw = new LambdaQueryWrapper<>();
@ -165,7 +190,13 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
budgetLog.setOptType(optFlag.getCode());
budgetLogService.save(budgetLog);
policyItem.setUsedAmount(policyItem.getDiscountMax());
//policyItem.setUsedAmount(policyItem.getDiscountMax());
policyItem.setReleaseAmount(surplusAmt);
policyItem.setReleaseFlag(1);
policyItem.setReleaseTime(LocalDateTime.now());
policyItem.setReleaseUserId(user.getId());
policyItem.setReleaseUserCode(user.getCode());
policyItem.setReleaseUserName(user.getName());
policyItem.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished);
tzcPolicyItemService.updateById(policyItem);
@ -175,7 +206,7 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
boolean allFinished = true;
for (TzcPolicyItem item : listByPolicyId) {
if(!item.getPolicyItemStatus().equals(TzPolicyItemStatus.Status_3_Finished)){
if (item.getDiscountMax().compareTo(item.getUsedAmount())==0){
if (item.getDiscountMax().compareTo(item.getUsedAmount())==0||item.getReleaseFlag().equals(1)){
item.setPolicyItemStatus(TzPolicyItemStatus.Status_3_Finished);
tzcPolicyItemService.updateById(item);
continue;

15
src/main/resources/mapper/tzc/TzcPolicyMapper.xml

@ -107,6 +107,21 @@
order by create_time desc
</select>
<select id="listExpireItemIds" resultType="java.lang.Long">
SELECT
tzc_policy_item.id
FROM
tzc_policy_item
left join tzc_policy
on tzc_policy.id = tzc_policy_item.policy_id
WHERE
policy_end_date &lt; now()
and tzc_policy_item.del_flag = 0
and tzc_policy.del_flag = 0
and policy_item_status = 2
and policy_status = 2
</select>
<update id="updateCostExtUserByPolicyIds">
update tzc_policy
set ext_user_id = #{obj.id},ext_user_code=#{obj.code},ext_user_name=#{obj.name}

Loading…
Cancel
Save