Browse Source

Merge remote-tracking branch 'origin/muti_db' into muti_db

checkBack
15989082884@163.com 1 year ago
parent
commit
9eb7b1ee8c
  1. 8
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  2. 2
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java
  3. 2
      src/main/java/com/qs/serve/modules/sys/controller/SysPostController.java
  4. 13
      src/main/java/com/qs/serve/modules/sys/mapper/SysPostMapper.java
  5. 3
      src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java
  6. 1
      src/main/java/com/qs/serve/modules/sys/service/impl/SysPostServiceImpl.java
  7. 14
      src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java
  8. 10
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  9. 6
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  10. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  11. 15
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java
  12. 35
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java
  13. 26
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  14. 5
      src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  15. 6
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  16. 75
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

8
src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java

@ -34,6 +34,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivityChannel;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.TbsCostBirLog; import com.qs.serve.modules.tbs.entity.TbsCostBirLog;
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostBirLogMapper; import com.qs.serve.modules.tbs.mapper.TbsCostBirLogMapper;
import com.qs.serve.modules.tbs.service.TbsActivityChannelService; import com.qs.serve.modules.tbs.service.TbsActivityChannelService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tbs.service.TbsCostApplyService;
@ -67,6 +68,7 @@ public class BirActivityCenterGoodsController {
private ProjectProperties projectProperties; private ProjectProperties projectProperties;
private TbsCostBirLogMapper tbsCostBirLogMapper; private TbsCostBirLogMapper tbsCostBirLogMapper;
private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper; private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper;
private TbsActivityMapper tbsActivityMapper;
@GetMapping("/toSyncBir") @GetMapping("/toSyncBir")
public R<?> syncBir(Long costId){ public R<?> syncBir(Long costId){
@ -89,10 +91,12 @@ public class BirActivityCenterGoodsController {
@GetMapping("/toSyncBirToday") @GetMapping("/toSyncBirToday")
public R<?> toSyncBirEcro2(){ public R<?> toSyncBirEcro2(){
//Long[] ids = new Long[]{301897L}; Long[] ids = new Long[]{0L};
Set<Long> ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds(); //List<Long> ids = tbsActivityMapper.selectReleaseCostIds();
//Set<Long> ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds();
List<Long> errIds = new ArrayList<>(); List<Long> errIds = new ArrayList<>();
for (Long id : ids) { for (Long id : ids) {
log.error("执行ID XXXX:{}",id);
try { try {
centerGoodsService.rebuildBir(Arrays.asList(id)); centerGoodsService.rebuildBir(Arrays.asList(id));
} catch (Exception e) { } catch (Exception e) {

2
src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java

@ -52,7 +52,7 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
List<Long> ids = activityList.stream().filter(a->a.getId()!=null) List<Long> ids = activityList.stream().filter(a->a.getId()!=null)
.map(TbsActivity::getId).collect(Collectors.toList()); .map(TbsActivity::getId).collect(Collectors.toList());
LambdaQueryWrapper<BirBaseActivity> birBaseActivityLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BirBaseActivity> birBaseActivityLqw = new LambdaQueryWrapper<>();
birBaseActivityLqw.in(BirBaseActivity::getActivityId,ids); birBaseActivityLqw.in(BirBaseActivity::getCostApplyId,costId);
super.baseMapper.delete(birBaseActivityLqw); super.baseMapper.delete(birBaseActivityLqw);
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();

2
src/main/java/com/qs/serve/modules/sys/controller/SysPostController.java

@ -112,6 +112,7 @@ public class SysPostController {
return R.error2(); return R.error2();
} }
sysPostService.modify(param); sysPostService.modify(param);
sysPostService.flushPathIds();
return R.ok(); return R.ok();
} }
@ -135,6 +136,7 @@ public class SysPostController {
public R<?> save(@RequestBody @Valid SysPost param){ public R<?> save(@RequestBody @Valid SysPost param){
param.setId(null); param.setId(null);
sysPostService.modify(param); sysPostService.modify(param);
sysPostService.flushPathIds();
return R.ok(param); return R.ok(param);
} }

13
src/main/java/com/qs/serve/modules/sys/mapper/SysPostMapper.java

@ -11,6 +11,19 @@ import org.apache.ibatis.annotations.Update;
*/ */
public interface SysPostMapper extends BaseMapper<SysPost> { public interface SysPostMapper extends BaseMapper<SysPost> {
/**
* 修改post表 更关联表post_user
* @return
*/
@Update("update sys_post_user " +
" left join sys_post " +
" on sys_post_user.post_id = sys_post.id" +
" set " +
" sys_post_user.post_code = sys_post.post_code, " +
" sys_post_user.post_name = sys_post.post_name " +
" where sys_post_user.del_flag = 0 and sys_post.del_flag = 0 ")
int updatePostUserInfo();
/** /**
* 根据岗位更新员工的路径绑定ID * 根据岗位更新员工的路径绑定ID
* @return * @return

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

@ -74,7 +74,8 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
costDeletion.setVerificationCode(costApply.getCode()); costDeletion.setVerificationCode(costApply.getCode());
String rs = HttpUtil.doPost(url, JsonUtil.objectToJson(costDeletion),null); String rs = HttpUtil.doPost(url, JsonUtil.objectToJson(costDeletion),null);
if(!rs.contains("200")){ log.warn("【请求删除ERP费用】{},返回结果:{}",costApplyId,rs);
if(!rs.contains("200")&&!rs.contains("核销档案不存在该编码")){
Assert.throwEx("远程删除失败:"+rs); Assert.throwEx("远程删除失败:"+rs);
} }

1
src/main/java/com/qs/serve/modules/sys/service/impl/SysPostServiceImpl.java

@ -100,6 +100,7 @@ public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> impl
toFlushPathIds(pid, null,null); toFlushPathIds(pid, null,null);
//更新绑定的用户路径 //更新绑定的用户路径
baseMapper.updatePostUserIdPaths(); baseMapper.updatePostUserIdPaths();
baseMapper.updatePostUserInfo();
} }
/** /**

14
src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.common.consts;
/**
* @author YenHex
* @since 2024/5/22
*/
public class ReleaseConst {
/**
* 默认开启true需要修复数据时打开false
*/
public static final boolean UseFilter = true;
}

10
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -443,6 +443,16 @@ public class TbsActivityController {
return R.ok(); return R.ok();
} }
/**
* 释放活动费用
* @return
*/
@PostMapping("/compenstateRelease")
@SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE)
public R<?> release(){
tbsActivityApplicationService.compenstateRelease();
return R.ok();
}
/** /**
* 释放活动费用 * 释放活动费用

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

@ -291,6 +291,12 @@ public class TbsActivity implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Long birActId; private Long birActId;
/**
* 核销ID
*/
@JsonIgnore
@TableField(exist = false)
private Long verificationId;
/** /**
* 处理预警时间 * 处理预警时间

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import lombok.Data; import lombok.Data;
import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -47,6 +48,7 @@ public class TbsAffairCommitBo {
/** /**
* 评论 * 评论
*/ */
@Length(max = 800,message = "备注长度限制800字")
@NotNull @NotNull
private String comment; private String comment;

15
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java

@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 费用活动 Mapper * 费用活动 Mapper
@ -15,6 +16,20 @@ import java.util.List;
*/ */
public interface TbsActivityMapper extends BaseMapper<TbsActivity> { public interface TbsActivityMapper extends BaseMapper<TbsActivity> {
@Select("SELECT cost_apply_id FROM `tbs_activity` where del_flag = 0 and release_flag = 1 and activity_code LIKE '24%' GROUP BY cost_apply_id order by cost_apply_id")
List<Long> selectReleaseCostIds();
@Select("select vtb.id as verification_id ,act.* from tbs_activity act left join vtb_verification vtb on act.id = vtb.activity_id " +
" where " +
" vtb.verification_state = 1 and " +
" reg_release_flag = 1 " +
" and act.release_flag = 0 " +
" and act.del_flag = 0 and vtb.del_flag = 0 " +
" and act.activity_code like '2%' " +
" and act.cancel_flag = 0 " +
" and act.used_amount != act.total_amount")
List<TbsActivity> selectUnRelease();
@Select("select sum(tbs_activity.used_amount) from tbs_activity where cost_apply_id = #{costId} and del_flag = 0") @Select("select sum(tbs_activity.used_amount) from tbs_activity where cost_apply_id = #{costId} and del_flag = 0")
BigDecimal sumCostUsedAmount(@Param("costId") Long costId); BigDecimal sumCostUsedAmount(@Param("costId") Long costId);

35
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java

@ -8,6 +8,8 @@ import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.data.entity.DataAffairCommit;
import com.qs.serve.modules.data.service.DataAffairCommitService;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.sys.service.SysConfigService; import com.qs.serve.modules.sys.service.SysConfigService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
@ -22,6 +24,9 @@ import com.qs.serve.modules.tbs.mapper.TbsActivityGoodsMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.impl.TbsActivityServiceImpl; import com.qs.serve.modules.tbs.service.impl.TbsActivityServiceImpl;
import com.qs.serve.modules.vtb.entity.VtbFundFlow;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
@ -48,7 +53,10 @@ public class TbsActivityApplicationService {
private TbsBudgetCostItemService tbsBudgetCostItemService; private TbsBudgetCostItemService tbsBudgetCostItemService;
private SysConfigService configService; private SysConfigService configService;
private TbsActivityServiceImpl activityService; private TbsActivityServiceImpl activityService;
private TbsActivityMapper activityMapper;
private final BmsSupplierService supplierService; private final BmsSupplierService supplierService;
private final VtbVerificationService verificationService;
private DataAffairCommitService dataAffairCommitService;
/** /**
* 对比预算 * 对比预算
@ -242,4 +250,31 @@ public class TbsActivityApplicationService {
budgetIds.addAll(budgetIdsSet); budgetIds.addAll(budgetIdsSet);
return budgetItemList; return budgetItemList;
} }
/**
* 补偿不执行释放的活动
*/
public void compenstateRelease(){
List<TbsActivity> activityList = activityMapper.selectUnRelease();
for (TbsActivity activity : activityList) {
Long[] ids = new Long[]{1676500L};
if(Arrays.stream(ids).anyMatch(a->a.equals(activity.getId()))){
continue;
}
List<DataAffairCommit> affairCommitList = dataAffairCommitService.list(new LambdaQueryWrapper<DataAffairCommit>()
.eq(DataAffairCommit::getTargetCode,"CheckCost")
.eq(DataAffairCommit::getTargetId,activity.getVerificationId())
);
// 判断特殊情况
// 1.是否有继续核销,有新则发送短信通知
// 2.判断是否已核销没更新字段
for (DataAffairCommit affairCommit : affairCommitList) {
if(affairCommit.getReleaseFlag().equals(1)){
verificationService.release(activity.getId(),affairCommit.getUserCode(),false);
break;
}
}
}
}
} }

26
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

@ -225,7 +225,9 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
List<TbsActivityCenterGoods> actCenterGoodsList = actCenterGoodsMap.get(subjectId); List<TbsActivityCenterGoods> actCenterGoodsList = actCenterGoodsMap.get(subjectId);
BigDecimal rate = BigDecimal.ZERO; BigDecimal rate = BigDecimal.ZERO;
for (TbsActivityCenterGoods centerGoods : actCenterGoodsList) { for (TbsActivityCenterGoods centerGoods : actCenterGoodsList) {
rate = rate.add(centerGoods.getCenterGoodsRate()); if(rate.compareTo(BigDecimal.ZERO)>=0){
rate = rate.add(centerGoods.getCenterGoodsRate());
}
} }
BigDecimal tmp = rate.divide(new BigDecimal(100)); BigDecimal tmp = rate.divide(new BigDecimal(100));
if(tmp.compareTo(new BigDecimal(tmp.longValue()))!=0){ if(tmp.compareTo(new BigDecimal(tmp.longValue()))!=0){
@ -254,6 +256,11 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityGoodsService.saveBatch(activityGoodsList); activityGoodsService.saveBatch(activityGoodsList);
activitySubjectService.saveBatch(activitySubjects); activitySubjectService.saveBatch(activitySubjects);
activityCenterService.saveBatch(activityCenterList); activityCenterService.saveBatch(activityCenterList);
for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) {
if(centerGoods.getCenterGoodsRate().compareTo(BigDecimal.ZERO)<0){
Assert.throwEx("成本中心与商品分配比例有误,请重新检测商品比例");
}
}
activityCenterGoodsService.saveBatch(activityCenterGoodsList); activityCenterGoodsService.saveBatch(activityCenterGoodsList);
} }
@ -360,7 +367,14 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
List<TbsActivityChannel> activityChannelList, List<TbsActivityChannel> activityChannelList,
List<TbsActivityChannelPoint> activityChannelPointList){ List<TbsActivityChannelPoint> activityChannelPointList){
if(CollectionUtil.isNotEmpty(activityBo.getActivityChannelList())){ if(CollectionUtil.isNotEmpty(activityBo.getActivityChannelList())){
Set<Long> channelIds = new HashSet<>();
for (TbsActivityChannelBo activityChannelBo : activityBo.getActivityChannelList()) { for (TbsActivityChannelBo activityChannelBo : activityBo.getActivityChannelList()) {
//排除重复
boolean existChannelIds = channelIds.stream().anyMatch(a->a.equals(activityChannelBo.getChannelId()));
if(existChannelIds){
continue;
}
channelIds.add(activityChannelBo.getChannelId());
BmsChannel channel = channelService.getById(activityChannelBo.getChannelId()); BmsChannel channel = channelService.getById(activityChannelBo.getChannelId());
TbsActivityChannel activityChannel = new TbsActivityChannel(); TbsActivityChannel activityChannel = new TbsActivityChannel();
activityChannel.setActivityId(activity.getId()); activityChannel.setActivityId(activity.getId());
@ -375,6 +389,7 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityChannelList.add(activityChannel); activityChannelList.add(activityChannel);
} }
}else if(CollectionUtil.isNotEmpty(activityBo.getActivityPointList())){ }else if(CollectionUtil.isNotEmpty(activityBo.getActivityPointList())){
Set<Long> channelPointIds = new HashSet<>();
for (TbsActivityChannelPointBo activityChannelPointBo : activityBo.getActivityPointList()) { for (TbsActivityChannelPointBo activityChannelPointBo : activityBo.getActivityPointList()) {
BmsChannelPoint channelPoint = channelPointService.getById(activityChannelPointBo.getPointId()); BmsChannelPoint channelPoint = channelPointService.getById(activityChannelPointBo.getPointId());
if(channelPoint==null){ if(channelPoint==null){
@ -388,6 +403,12 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
if(channel.getId().equals(activity.getSupplierId())){ if(channel.getId().equals(activity.getSupplierId())){
Assert.throwEx("请检查活动网点数据"); Assert.throwEx("请检查活动网点数据");
} }
//排除重复
boolean existChannelPointIds = channelPointIds.stream().anyMatch(a->a.equals(activityChannelPointBo.getPointId()));
if(existChannelPointIds){
continue;
}
channelPointIds.add(activityChannelPointBo.getPointId());
TbsActivityChannelPoint activityChannelPoint = new TbsActivityChannelPoint(); TbsActivityChannelPoint activityChannelPoint = new TbsActivityChannelPoint();
activityChannelPoint.setCostApplyId(costApply.getId()); activityChannelPoint.setCostApplyId(costApply.getId());
@ -550,6 +571,9 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activityCenter.setOrgCenterAmount(centerBo.getCenterAmount()); activityCenter.setOrgCenterAmount(centerBo.getCenterAmount());
activityCenter.setCenterType(centerBo.getCenterType()); activityCenter.setCenterType(centerBo.getCenterType());
totalAmount = totalAmount.add(centerBo.getCenterAmount()); totalAmount = totalAmount.add(centerBo.getCenterAmount());
if(centerBo.getCenterRate().compareTo(BigDecimal.ZERO)<0){
Assert.throwEx("成本中心费用配比有误");
}
totalRate = totalRate.add(centerBo.getCenterRate()); totalRate = totalRate.add(centerBo.getCenterRate());
activityCenter.setCenterId(centerBo.getCenterId()); activityCenter.setCenterId(centerBo.getCenterId());
String centerType = centerBo.getCenterType(); String centerType = centerBo.getCenterType();

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

@ -1153,9 +1153,8 @@ public class PortalOfCostApplication {
if(subjectSurplus.compareTo(BigDecimal.ZERO)>0){ if(subjectSurplus.compareTo(BigDecimal.ZERO)>0){
Assert.throwEx("余额不足"); Assert.throwEx("余额不足");
} }
//判断金额是否用完,用完直接更新状态 // 修复没有vtbFundFlow异常,并修复活动状态
//根据ActivitySubject更新活动金额 verificationService.successCommit(verification.getId(),false);
this.updateCostUsedAmount(costApply.getId());
} }

6
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -320,7 +320,9 @@ public class VtbVerificationController {
yard.setYardItemList(yardItemList); yard.setYardItemList(yardItemList);
SysUser sysUser = sysUserService.getById(yard.getCreateBy()); SysUser sysUser = sysUserService.getById(yard.getCreateBy());
yard.setUserInfo(sysUser.toSysUserVo()); if(sysUser!=null){
yard.setUserInfo(sysUser.toSysUserVo());
}
} }
Map<String,Object> result = new HashMap<>(2); Map<String,Object> result = new HashMap<>(2);
result.put("verification",verification); result.put("verification",verification);
@ -552,7 +554,7 @@ public class VtbVerificationController {
// } // }
/** /**
* 成功提交回调 * 用于根据核销id修复活动数据
* @param verificationId * @param verificationId
* @return * @return
*/ */

75
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -35,6 +35,7 @@ import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.consts.ReleaseConst;
import com.qs.serve.modules.tbs.common.util.QuarterUtil; import com.qs.serve.modules.tbs.common.util.QuarterUtil;
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.*; import com.qs.serve.modules.tbs.entity.*;
@ -478,18 +479,23 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
Assert.throwEx("用户编码不存在:"+userCode); Assert.throwEx("用户编码不存在:"+userCode);
} }
TbsActivity activity = activityService.getById(activityId); TbsActivity activity = activityService.getById(activityId);
if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){ BirActivityCenterGoodsUtil.buildBir(activity.getCostApplyId());
if(!throwEx){ if(ReleaseConst.UseFilter){
return; if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){
if(!throwEx){
return;
}
Assert.throwEx("活动状态非待核销状态,操作失败");
} }
Assert.throwEx("活动状态非待核销状态,操作失败");
} }
if(activity.getCancelFlag().equals(1)){ if(activity.getCancelFlag().equals(1)){
Assert.throwEx("异动的活动,无法操作"); Assert.throwEx("异动的活动,无法操作");
} }
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){ if(ReleaseConst.UseFilter){
Assert.throwEx("状态不支持释放活动费用"); if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("状态不支持释放活动费用");
}
} }
BigDecimal releaseAmount = this.validActivity(costApply.getContractFlag()!=null BigDecimal releaseAmount = this.validActivity(costApply.getContractFlag()!=null
&&costApply.getContractFlag().equals(1),activity,false,false); &&costApply.getContractFlag().equals(1),activity,false,false);
@ -504,6 +510,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
param.setFinishedFlag(1); param.setFinishedFlag(1);
activityService.updateById(param); activityService.updateById(param);
//移除历史记录
fundFlowService.remove(
new LambdaQueryWrapper<VtbFundFlow>()
.eq(VtbFundFlow::getFundType,VtbFundFlowType.Release)
.eq(VtbFundFlow::getCostApplyId,activity.getCostApplyId())
.eq(VtbFundFlow::getActivityId,activity.getId())
);
VtbFundFlow fundFlow = new VtbFundFlow(); VtbFundFlow fundFlow = new VtbFundFlow();
fundFlow.setFundType(VtbFundFlowType.Release); fundFlow.setFundType(VtbFundFlowType.Release);
fundFlow.setVerificationId(0L); fundFlow.setVerificationId(0L);
@ -545,6 +558,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_4,sysUser,costApply,currCostItem,currentBudget,amount,activity); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_4,sysUser,costApply,currCostItem,currentBudget,amount,activity);
budgetLogList.add(budgetLog); budgetLogList.add(budgetLog);
} }
//移除历史记录
budgetLogService.remove(new LambdaQueryWrapper<TbsBudgetLog>()
.eq(TbsBudgetLog::getCostApplyId,activity.getCostApplyId())
.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_4.getCode())
.eq(TbsBudgetLog::getActivityId,activity.getId())
);
//重新保存
if(CollectionUtil.isNotEmpty(budgetLogList)){ if(CollectionUtil.isNotEmpty(budgetLogList)){
budgetLogService.saveBatch(budgetLogList); budgetLogService.saveBatch(budgetLogList);
} }
@ -1160,24 +1180,26 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
boolean isOverTime = boolean isOverTime =
(activity.getPreCheckDate()!=null&&nowDate.isAfter(activity.getPreCheckDate())&&activity.getPreEndDateBack()==null) (activity.getPreCheckDate()!=null&&nowDate.isAfter(activity.getPreCheckDate())&&activity.getPreEndDateBack()==null)
||(activity.getPreEndDateBack()!=null&&nowDate.isAfter(activity.getPreEndDateBack())); ||(activity.getPreEndDateBack()!=null&&nowDate.isAfter(activity.getPreEndDateBack()));
if(!cotractFlag && activity.getReopenFlag().equals(0) if(ReleaseConst.UseFilter){
&& filterActTime if(!cotractFlag && activity.getReopenFlag().equals(0)
&& isOverTime){ && filterActTime
Assert.throwEx("活动已结束"); && isOverTime){
} Assert.throwEx("活动已结束");
if(activity.getActivityState().equals(TbsActivityState.STATE_1_Baning)){ }
Assert.throwEx("活动冻结中"); if(activity.getActivityState().equals(TbsActivityState.STATE_1_Baning)){
} Assert.throwEx("活动冻结中");
if((activity.getReleaseFlag()!=null&&activity.getReleaseFlag().equals(1))||activity.getActivityState().equals(TbsActivityState.STATE_4_Release)){ }
Assert.throwEx("费用已释放"); if((activity.getReleaseFlag()!=null&&activity.getReleaseFlag().equals(1))||activity.getActivityState().equals(TbsActivityState.STATE_4_Release)){
} Assert.throwEx("费用已释放");
if(activity.getFinishedFlag().equals(1)){ }
Assert.throwEx("活动已完成"); if(activity.getFinishedFlag().equals(1)){
} Assert.throwEx("活动已完成");
if(!isCurrentCommit){ }
boolean isCommitting = this.checkCommitting(activity.getId()); if(!isCurrentCommit){
if(isCommitting){ boolean isCommitting = this.checkCommitting(activity.getId());
Assert.throwEx("该活动核销中,操作失败"); if(isCommitting){
Assert.throwEx("该活动核销中,操作失败");
}
} }
} }
List<VtbFundFlow> fundFlowList = fundFlowService.listByActivity(activity.getId(),VtbFundFlowType.Verification); List<VtbFundFlow> fundFlowList = fundFlowService.listByActivity(activity.getId(),VtbFundFlowType.Verification);
@ -1187,6 +1209,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
BigDecimal allowAmount = activity.getTotalAmount().subtract(totalFunFlow); BigDecimal allowAmount = activity.getTotalAmount().subtract(totalFunFlow);
if(allowAmount.compareTo(BigDecimal.ZERO)<0){ if(allowAmount.compareTo(BigDecimal.ZERO)<0){
log.error("无可用费用 activity id:{} code:{}",activity.getId(),activity.getActivityCode());
Assert.throwEx("无可用费用"); Assert.throwEx("无可用费用");
} }
return allowAmount; return allowAmount;
@ -1269,6 +1292,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
log.info("活动核销提交成功。verificationId:{}",verificationId); log.info("活动核销提交成功。verificationId:{}",verificationId);
VtbVerification verification = this.getById(verificationId); VtbVerification verification = this.getById(verificationId);
if(verification.getVerificationState()>1){ if(verification.getVerificationState()>1){
log.warn("活动核销已提交成功,请勿重复提交。verificationId:{}",verificationId);
return; return;
} }
boolean checkZero = verification.getAmount().compareTo(BigDecimal.ZERO)==0; boolean checkZero = verification.getAmount().compareTo(BigDecimal.ZERO)==0;
@ -1301,7 +1325,6 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
Map<Long,List<TbsActivityCenter>> centerMapBySubject = activityCenterList.stream() Map<Long,List<TbsActivityCenter>> centerMapBySubject = activityCenterList.stream()
.collect(Collectors.groupingBy(TbsActivityCenter::getSubjectId)); .collect(Collectors.groupingBy(TbsActivityCenter::getSubjectId));
List<VtbFundFlow> addFundFlowList = new ArrayList<>(); List<VtbFundFlow> addFundFlowList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
for (VtbVerificationSubject verificationSubject : verificationSubjects) { for (VtbVerificationSubject verificationSubject : verificationSubjects) {
Long subjectId = verificationSubject.getSubjectId(); Long subjectId = verificationSubject.getSubjectId();
@ -1364,8 +1387,6 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
fundFlowService.saveBatch(addFundFlowList); fundFlowService.saveBatch(addFundFlowList);
//fundFlow绑定考核期项,用于合计预算使用情况 //fundFlow绑定考核期项,用于合计预算使用情况
LambdaQueryWrapper<VtbVerificationSubject> subjectLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<VtbVerificationSubject> subjectLqw = new LambdaQueryWrapper<>();

Loading…
Cancel
Save