Browse Source

feat: 批量核销及费用申请触发冻结过期活动

muti_db
Yen 9 months ago
parent
commit
e0a71331d3
  1. 4
      src/main/java/com/qs/serve/common/framework/aop/RedisCacheAspect.java
  2. 13
      src/main/java/com/qs/serve/common/model/dto/SimpleKeyValue.java
  3. 2
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  4. 13
      src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java
  5. 15
      src/main/java/com/qs/serve/modules/biz/mapper/BizVisitMapper.java
  6. 9
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java
  7. 19
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  8. 6
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  9. 5
      src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderMapper.java
  10. 4
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderOptionsService.java
  11. 38
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java
  12. 4
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  13. 10
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java
  14. 41
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  15. 8
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  16. 2
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  17. 2
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java
  18. 11
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java
  19. 1
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java
  20. 11
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  21. 39
      src/main/java/com/qs/serve/task/TbsTask.java
  22. 1
      src/main/resources/mapper/wx/WxFormPushMapper.xml

4
src/main/java/com/qs/serve/common/framework/aop/RedisCacheAspect.java

@ -27,8 +27,8 @@ import java.util.concurrent.TimeUnit;
* @since 2024/10/18 * @since 2024/10/18
*/ */
@Slf4j @Slf4j
@Aspect //@Aspect
@Component //@Component
@AllArgsConstructor @AllArgsConstructor
public class RedisCacheAspect { public class RedisCacheAspect {

13
src/main/java/com/qs/serve/common/model/dto/SimpleKeyValue.java

@ -2,13 +2,17 @@ package com.qs.serve.common.model.dto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/** /**
* @author YenHex * @author YenHex
* @since 2022/3/7 * @since 2022/3/7
*/ */
@Data @Data
@AllArgsConstructor @NotNull
@NoArgsConstructor
public class SimpleKeyValue<T> { public class SimpleKeyValue<T> {
/** 键 */ /** 键 */
@ -17,9 +21,16 @@ public class SimpleKeyValue<T> {
/** 值 */ /** 值 */
private T value; private T value;
private String value2;
/** 说明 */ /** 说明 */
private String remark; private String remark;
public SimpleKeyValue(String label,T value,String remark){
this.label = label;
this.value = value;
this.remark = remark;
}
public SimpleKeyValue(String label,T value){ public SimpleKeyValue(String label,T value){
this.label = label; this.label = label;
this.value = value; this.value = value;

2
src/main/java/com/qs/serve/common/util/CodeGenUtil.java

@ -59,7 +59,7 @@ public class CodeGenUtil {
"X" , "Y" "X" , "Y"
}; };
public static Long getIdx(String key){ public static synchronized Long getIdx(String key){
RedisService redisService = SpringUtils.getBean(RedisService.class); RedisService redisService = SpringUtils.getBean(RedisService.class);
Long value = redisService.getLong(key); Long value = redisService.getLong(key);
if(value==null){ if(value==null){

13
src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java

@ -8,6 +8,7 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.biz.mapper.BizVisitMapper;
import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysPostUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -32,7 +33,19 @@ public class BizVisitController {
private BizVisitService bizVisitService; private BizVisitService bizVisitService;
private BizVisitMapper bizVisitMapper;
private SysPostUserService postUserService; private SysPostUserService postUserService;
/**
* 获取签到类型下拉框数据
* @return
*/
@GetMapping("/signTypeOptions")
public R<List<String>> getSignTypeOptions(){
return R.ok(bizVisitMapper.selectAllSignType());
}
/** /**
* 翻页我的下属拜访记录 * 翻页我的下属拜访记录
* @param param * @param param

15
src/main/java/com/qs/serve/modules/biz/mapper/BizVisitMapper.java

@ -1,7 +1,11 @@
package com.qs.serve.modules.biz.mapper; package com.qs.serve.modules.biz.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.biz.entity.BizVisit; import com.qs.serve.modules.biz.entity.BizVisit;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* 拜访日志 Mapper * 拜访日志 Mapper
@ -10,5 +14,16 @@ import com.qs.serve.modules.biz.entity.BizVisit;
*/ */
public interface BizVisitMapper extends BaseMapper<BizVisit> { public interface BizVisitMapper extends BaseMapper<BizVisit> {
@InterceptorIgnore(tenantLine = "1")
@Select("SELECT " +
" sign_type " +
"FROM " +
" biz_visit " +
"WHERE " +
" del_flag = '0' " +
" group BY sign_type " +
" order by sign_type")
List<String> selectAllSignType();
} }

9
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.oms.controller; package com.qs.serve.modules.oms.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
@ -195,5 +196,13 @@ public class OmsOrderController {
return R.ok(omsOrderService.getSpuAssess(param)); return R.ok(omsOrderService.getSpuAssess(param));
} }
@GetMapping("/reSync/{code}")
public R<?> getSpuAssess(@PathVariable("code") String code){
List<OmsOrder> omsOrders = omsOrderService.list(new LambdaQueryWrapper<OmsOrder>().eq(OmsOrder::getOrderSn,code));
if(CollUtil.isNotEmpty(omsOrders)){
omsOrderOptionsService.syncToErp11DB(omsOrders);
}
return R.ok();
}
} }

19
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.dto.SimpleKeyValue;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -27,6 +28,7 @@ import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.*; import com.qs.serve.modules.oms.entity.bo.*;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.mapper.OmsOrderMapper;
import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderOptionsService; import com.qs.serve.modules.oms.service.OmsOrderOptionsService;
import com.qs.serve.modules.oms.service.OmsOrderPart1Service; import com.qs.serve.modules.oms.service.OmsOrderPart1Service;
@ -59,6 +61,7 @@ public class OmsOrderApi {
private BmsSupplierMapper bmsSupplierMapper; private BmsSupplierMapper bmsSupplierMapper;
private OmsOrderService omsOrderService; private OmsOrderService omsOrderService;
private OmsOrderMapper omsOrderMapper;
private OmsOrderItemService omsOrderItemService; private OmsOrderItemService omsOrderItemService;
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService; private SysUserService sysUserService;
@ -249,9 +252,20 @@ public class OmsOrderApi {
lqw.in(OmsOrderItem::getOrderId,orderIds); lqw.in(OmsOrderItem::getOrderId,orderIds);
List<OmsOrderItem> allItems = omsOrderItemService.list(lqw); List<OmsOrderItem> allItems = omsOrderItemService.list(lqw);
List<SimpleKeyValue<String>> rates = omsOrderMapper.selectExpiredOrderRates();
Map<Long,List<OmsOrderItem>> itemsMap = allItems.stream().collect(Collectors.groupingBy(OmsOrderItem::getOrderId)); Map<Long,List<OmsOrderItem>> itemsMap = allItems.stream().collect(Collectors.groupingBy(OmsOrderItem::getOrderId));
for (OmsOrder order : list) { for (OmsOrder order : list) {
if(order.getOrderType().equals(3)&&StringUtils.hasText(order.getOaRateId())){
for (SimpleKeyValue<String> rate : rates) {
if (rate.getValue().equals(order.getOaRateId())){
order.setDiscountRateInfo(rate);
}
}
}
omsOrderService.checkMsOrderStatus(order); omsOrderService.checkMsOrderStatus(order);
for (BmsSupplierAddress address : supplierAddressList) { for (BmsSupplierAddress address : supplierAddressList) {
@ -320,6 +334,11 @@ public class OmsOrderApi {
omsOrderOptionsService.runCompensate(omsOrder.getId()+""); omsOrderOptionsService.runCompensate(omsOrder.getId()+"");
omsOrder = omsOrderService.getById(id); omsOrder = omsOrderService.getById(id);
} }
// 关联折扣信息
if(StringUtils.hasText(omsOrder.getOaRateId())){
SimpleKeyValue obj = omsOrderMapper.getExpiredRateInfo(omsOrder.getOaRateId());
omsOrder.setDiscountRateInfo(obj);
}
omsOrder.setBrandRuleInfo(goodsCategoryRuleService.getById(omsOrder.getBrandRuleId())); omsOrder.setBrandRuleInfo(goodsCategoryRuleService.getById(omsOrder.getBrandRuleId()));
omsOrder.setAddressInfo(bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId())); omsOrder.setAddressInfo(bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()));
omsOrder.setSupplierInfo(bmsSupplierMapper.selectById(omsOrder.getSupplierId())); omsOrder.setSupplierInfo(bmsSupplierMapper.selectById(omsOrder.getSupplierId()));

6
src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java

@ -212,6 +212,10 @@ public class OmsOrder implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate checkEndTime; private LocalDate checkEndTime;
/**
* 折扣信息
*/
@TableField(exist = false)
private Object discountRateInfo;
} }

5
src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderMapper.java

@ -18,8 +18,11 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder> {
@Select("SELECT rate FROM `ext_expire_order_rate` where oa_id = #{oaId} and del_flag = 0 ") @Select("SELECT rate FROM `ext_expire_order_rate` where oa_id = #{oaId} and del_flag = 0 ")
BigDecimal getExpiredOrderRates(String oaId); BigDecimal getExpiredOrderRates(String oaId);
@Select("SELECT oa_id as `value`,`name` as label FROM `ext_expire_order_rate` where del_flag = 0 order by rate") @Select("SELECT oa_id as `value`,`name` as label,rate as value2 FROM `ext_expire_order_rate` where del_flag = 0 order by rate")
List<SimpleKeyValue<String>> selectExpiredOrderRates(); List<SimpleKeyValue<String>> selectExpiredOrderRates();
@Select("SELECT oa_id as `value`,`name` as label,rate as value2 FROM `ext_expire_order_rate` where del_flag = 0 and oa_id = #{oaId} ")
SimpleKeyValue<String> getExpiredRateInfo(String oaId);
} }

4
src/main/java/com/qs/serve/modules/oms/service/OmsOrderOptionsService.java

@ -1,7 +1,10 @@
package com.qs.serve.modules.oms.service; package com.qs.serve.modules.oms.service;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import java.util.List;
/** /**
* @author YenHex * @author YenHex
* @since 2024/8/12 * @since 2024/8/12
@ -20,4 +23,5 @@ public interface OmsOrderOptionsService extends SeeYonOperationService {
*/ */
void syncToErp(); void syncToErp();
void syncToErp11DB(List<OmsOrder> omsOrders);
} }

38
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java

@ -265,6 +265,11 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
.eq(OmsOrder::getOrderCheckState,OmsOrderCheckState.Finished.getCode()) .eq(OmsOrder::getOrderCheckState,OmsOrderCheckState.Finished.getCode())
); );
log.warn("临期品同步到ERP,数量:{}",omsOrders.size()); log.warn("临期品同步到ERP,数量:{}",omsOrders.size());
syncToErp11DB(omsOrders);
}
@Override
public void syncToErp11DB(List<OmsOrder> omsOrders) {
for (OmsOrder omsOrder : omsOrders) { for (OmsOrder omsOrder : omsOrders) {
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId());
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(omsOrder.getId()); List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(omsOrder.getId());
@ -277,22 +282,25 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds); List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds);
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(",")); String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(","));
// 读取OA最新订单折扣 // 读取OA最新订单折扣
R codeRs = seeYonRequestBaseService.getBase( if(omsOrder.getOrderType().equals(3)){
TbsSeeYonConst.OA_DATA_EXPIRE_ORDER_DR + omsOrder.getOrderSn() R codeRs = seeYonRequestBaseService.getBase(
,"获取条款申请流水号"); TbsSeeYonConst.OA_DATA_EXPIRE_ORDER_DR + omsOrder.getOrderSn()
BigDecimal dr = null; ,"获取条款申请流水号");
if(codeRs.getStatus()==200 && codeRs.getMsg()!=null){ BigDecimal dr = null;
try { if(codeRs.getStatus()==200 && codeRs.getMsg()!=null){
String oaRateId = codeRs.getMsg().toString(); try {
dr = omsOrderMapper.getExpiredOrderRates(oaRateId); String oaRateId = codeRs.getMsg().toString();
omsOrder.setDiscountRate(dr); dr = omsOrderMapper.getExpiredOrderRates(oaRateId);
} catch (Exception e) { omsOrder.setDiscountRate(dr);
e.printStackTrace(); omsOrder.setOaRateId(oaRateId);
} catch (Exception e) {
e.printStackTrace();
}
}
if(dr==null){
log.error("临期品订单,获取最新的折扣率失败,单号:{}",omsOrder.getOrderSn());
continue;
} }
}
if(dr==null){
log.error("临期品订单,获取最新的折扣率失败,单号:{}",omsOrder.getOrderSn());
continue;
} }
// 写入到ERP中间表 // 写入到ERP中间表
omsOrderService.saveToErpOrder(omsOrder,orderItemList,bs,supplierAddress,bmsRegion); omsOrderService.saveToErpOrder(omsOrder,orderItemList,bs,supplierAddress,bmsRegion);

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

@ -101,9 +101,9 @@ public class TbsCostApplyController {
* @param id * @param id
* @return * @return
*/ */
//@PostMapping("/rebuildBudgetInit") //@PostMapping("/testBanding")
public R<?> bu(Long id){ public R<?> bu(Long id){
tbsCostApplyService.rebuildBudgetInit(id); //tbsCostApplyService.rebuildBudgetInit(id);
return R.ok(); return R.ok();
} }

10
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityService.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivity; import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo; import com.qs.serve.modules.tbs.entity.bo.TbsActivityBo;
import java.time.LocalDate;
import java.util.List; import java.util.List;
/** /**
@ -32,7 +33,16 @@ public interface TbsActivityService extends IService<TbsActivity> {
*/ */
void checkCenterGoods(boolean updateBudgetLog); void checkCenterGoods(boolean updateBudgetLog);
/**
* 将重新打开的过期修复回为未重新打开
*/
void initReopenState();
/**
* 更新费用申请的活动的冻结状态
* @param costApplyIds
*/
void flushBandingState(List<Long> costApplyIds);
} }

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

@ -80,6 +80,47 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
private final TbsActivityAmtCheckMapper activityAmtCheckMapper; private final TbsActivityAmtCheckMapper activityAmtCheckMapper;
@Override
public void initReopenState() {
LocalDate now = LocalDate.now();
// 拓展已解冻的费用限制在三天内可核销,逾期自动冻结
LocalDate closeDay = now.plusDays(-3);
// 将重新打开的,过期修复回为未重新打开
LambdaQueryWrapper<TbsActivity> updReopen = new LambdaQueryWrapper<>();
updReopen.eq(TbsActivity::getReopenFlag,1)
.lt(TbsActivity::getReopenTime, closeDay)
.eq(TbsActivity::getActivityState,0)
.eq(TbsActivity::getCostPassFlag,1);
TbsActivity updReopenParam = new TbsActivity();
updReopenParam.setReopenFlag(0);
super.update(updReopenParam,updReopen);
}
@Override
public void flushBandingState(List<Long> costApplyIds1) {
List<List<Long>> idsArray = CollUtil.split(costApplyIds1,1000);
for (List<Long> ids : idsArray) {
LocalDate now = LocalDate.now();
LocalDate yesterday = now.plusDays(-1);
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsActivity::getCostApplyId, ids);
lqw.and(qw->{
qw.and(
qw1->qw1.le(TbsActivity::getPreCheckDate, yesterday)
.isNull(TbsActivity::getPreEndDateBack)
).or().le(TbsActivity::getPreEndDateBack, yesterday);
});
// 排除重新打开的活动
lqw.ne(TbsActivity::getReopenFlag,1);
// 2-完成;4-已释放;5-已关闭 表流程已完结,冻结无意义
lqw.eq(TbsActivity::getActivityState,TbsActivityState.STATE_0_Todo);
//通过审批的
lqw.eq(TbsActivity::getCostPassFlag,1);
TbsActivity param = new TbsActivity();
param.setActivityState(TbsActivityState.STATE_1_Baning);
super.update(param,lqw);
}
}
@Override @Override
public void checkCenterGoods(boolean updateBudgetLog) { public void checkCenterGoods(boolean updateBudgetLog) {

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

@ -69,6 +69,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
private final TbsBudgetLogMapper tbsBudgetLogMapper; private final TbsBudgetLogMapper tbsBudgetLogMapper;
private final TbsBudgetMapper tbsBudgetMapper; private final TbsBudgetMapper tbsBudgetMapper;
private final TbsActivityService activityService;
private final TbsCostApplyPart1Service costApplyPart1Service; private final TbsCostApplyPart1Service costApplyPart1Service;
private final TbsActivitySubjectMapper activitySubjectMapper; private final TbsActivitySubjectMapper activitySubjectMapper;
private final TbsActivityCenterMapper activityCenterMapper; private final TbsActivityCenterMapper activityCenterMapper;
@ -352,7 +353,9 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
actLqw.eq(TbsActivity::getCostApplyId,targetId); actLqw.eq(TbsActivity::getCostApplyId,targetId);
tbsActivityMapper.update(tbsActivity,actLqw); tbsActivityMapper.update(tbsActivity,actLqw);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(targetId,1); activitySlottingFeeMapper.updatePassFlagByCostApplyId(targetId,1);
//更新活动状态为冻结
activityService.initReopenState();
activityService.flushBandingState(Arrays.asList(costApply.getId()));
return null; return null;
} }
@ -898,6 +901,9 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
this.doFinished(bo); this.doFinished(bo);
} }
BirActivityCenterGoodsUtil.buildBir(costApply.getId()); BirActivityCenterGoodsUtil.buildBir(costApply.getId());
//更新活动状态为冻结
activityService.initReopenState();
activityService.flushBandingState(Arrays.asList(costApply.getId()));
return null; return null;
} }

2
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -963,6 +963,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code()); data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code());
data.put("templateId",tbsCostApply.getTemplateId()); data.put("templateId",tbsCostApply.getTemplateId());
data.put("templateName",tbsCostApply.getTemplateTitle()); data.put("templateName",tbsCostApply.getTemplateTitle());
data.put("supplierArea",supplier.getComRegion());
//添加跳转地址业务 //添加跳转地址业务
String urlKey = "exsp5"; String urlKey = "exsp5";
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),TbsSeeYonConst.CostApplyConf.Code(),id); String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),TbsSeeYonConst.CostApplyConf.Code(),id);
@ -1309,6 +1310,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("money", tbsCostApply.getTotalActivityAmount()); data.put("money", tbsCostApply.getTotalActivityAmount());
data.put("templateId",tbsCostApply.getTemplateId()); data.put("templateId",tbsCostApply.getTemplateId());
data.put("templateName",tbsCostApply.getTemplateTitle()); data.put("templateName",tbsCostApply.getTemplateTitle());
data.put("supplierArea",supplier.getComRegion());
//记录主表费率参数 //记录主表费率参数
try { try {

2
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java

@ -91,7 +91,7 @@ public interface VtbVerificationService extends IService<VtbVerification> {
*/ */
Map<String, Object> buildSeeYonVerificationData(TbsActivity activity, SysUser sysUser, Map<String, Object> buildSeeYonVerificationData(TbsActivity activity, SysUser sysUser,
VtbVerification verification, String saleRegionNames, VtbVerification verification, String saleRegionNames,
String bizRegionNames); String bizRegionNames,BmsSupplier supplier);
/** /**
* 审核通过回调 * 审核通过回调

11
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchOperationServiceImpl.java

@ -17,6 +17,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivity;
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.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.entity.vo.VtbVerificationActReleaseVo; import com.qs.serve.modules.vtb.entity.vo.VtbVerificationActReleaseVo;
@ -28,6 +29,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,6 +54,7 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
private final VtbVerificationYardCenterItemService yardCenterItemService; private final VtbVerificationYardCenterItemService yardCenterItemService;
private final VtbVerificationSubjectService vtbVerificationSubjectService; private final VtbVerificationSubjectService vtbVerificationSubjectService;
private final TbsActivityMapper tbsActivityMapper; private final TbsActivityMapper tbsActivityMapper;
private final TbsActivityService activityService;
@Override @Override
public String getTemplateCode() { public String getTemplateCode() {
@ -84,6 +87,11 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
TbsActivity activity1 = new TbsActivity(); TbsActivity activity1 = new TbsActivity();
activity1.setId(activity.getId()); activity1.setId(activity.getId());
activity1.setActivityState(TbsActivityState.STATE_0_Todo); activity1.setActivityState(TbsActivityState.STATE_0_Todo);
// 延期3天
if(activity.getPreCheckDate().isBefore(LocalDate.now())){
activity1.setReopenFlag(1);
activity1.setPreEndDateBack(LocalDate.now().plusDays(3));
}
tbsActivityMapper.updateById(activity1); tbsActivityMapper.updateById(activity1);
} }
return null; return null;
@ -110,6 +118,9 @@ public class VtbVerificationBatchOperationServiceImpl implements VtbVerification
BigDecimal totalAmt = vtbVerificationMapper.totalVtbAmtByBatchId(batch.getId()); BigDecimal totalAmt = vtbVerificationMapper.totalVtbAmtByBatchId(batch.getId());
batch.setResultCheckAmount(totalAmt); batch.setResultCheckAmount(totalAmt);
vtbVerificationBatchService.updateById(batch); vtbVerificationBatchService.updateById(batch);
//更新活动状态为冻结
activityService.initReopenState();
activityService.flushBandingState(Arrays.asList(batch.getCostApplyId()));
return null; return null;
} }

1
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationBatchServiceImpl.java

@ -322,6 +322,7 @@ public class VtbVerificationBatchServiceImpl extends ServiceImpl<VtbVerification
data.put("templateId", costApply.getTemplateId()); data.put("templateId", costApply.getTemplateId());
data.put("templateName", costApply.getTemplateTitle()); data.put("templateName", costApply.getTemplateTitle());
data.put("supplierArea",supplier.getComRegion());
//添加客户标签 //添加客户标签
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode()); List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode());
data.put("tags",tags); data.put("tags",tags);

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

@ -907,7 +907,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
//保存 //保存
this.saveOrUpdate(verification); this.saveOrUpdate(verification);
this.commitSy(activity,sysUser,verification,saleBizNames,bizBizNames); this.commitSy(activity,sysUser,verification,saleBizNames,bizBizNames,supplier);
this.updateById(verification); this.updateById(verification);
if(!StringUtils.hasText(verification.getSyFormId())||!StringUtils.hasText(verification.getSyFlowId())){ if(!StringUtils.hasText(verification.getSyFormId())||!StringUtils.hasText(verification.getSyFlowId())){
Assert.throwEx("远程调用失败"); Assert.throwEx("远程调用失败");
@ -1085,8 +1085,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* @param saleRegionNames * @param saleRegionNames
* @param bizRegionNames * @param bizRegionNames
*/ */
private void commitSy(TbsActivity activity,SysUser sysUser,VtbVerification verification,String saleRegionNames,String bizRegionNames){ private void commitSy(TbsActivity activity,SysUser sysUser,VtbVerification verification,String saleRegionNames,String bizRegionNames,BmsSupplier supplier){
Map<String, Object> data = buildSeeYonVerificationData(activity, sysUser, verification, saleRegionNames, bizRegionNames); Map<String, Object> data = buildSeeYonVerificationData(activity, sysUser, verification, saleRegionNames, bizRegionNames,supplier);
String dataJson = JsonUtil.objectToJson(data); String dataJson = JsonUtil.objectToJson(data);
log.warn("核销请求JSON,核销号:{}:{}",verification.getVerificationCode(),dataJson); log.warn("核销请求JSON,核销号:{}:{}",verification.getVerificationCode(),dataJson);
BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
@ -1132,12 +1132,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
temp.setSupplierName(supplier.getSupplierName()); temp.setSupplierName(supplier.getSupplierName());
temp.setSupplierCode(supplier.getSupplierCode()); temp.setSupplierCode(supplier.getSupplierCode());
temp.setAmount(activity.getTotalAmount().subtract(activity.getUsedAmount())); temp.setAmount(activity.getTotalAmount().subtract(activity.getUsedAmount()));
return buildSeeYonVerificationData(activity,sysUser,temp,saleBizNames,bizBizNames); return buildSeeYonVerificationData(activity,sysUser,temp,saleBizNames,bizBizNames,supplier);
} }
@NotNull @NotNull
@Override @Override
public Map<String, Object> buildSeeYonVerificationData(TbsActivity activity, SysUser sysUser, VtbVerification verification, String saleRegionNames, String bizRegionNames) { public Map<String, Object> buildSeeYonVerificationData(TbsActivity activity, SysUser sysUser, VtbVerification verification, String saleRegionNames, String bizRegionNames,BmsSupplier supplier) {
Map<String, Object> data = new HashMap<>(20); Map<String, Object> data = new HashMap<>(20);
data.put("costApplyCode", verification.getVerificationCode()); data.put("costApplyCode", verification.getVerificationCode());
data.put("applyUserCode", sysUser.getCode()); data.put("applyUserCode", sysUser.getCode());
@ -1157,6 +1157,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
data.put("templateId", costApply.getTemplateId()); data.put("templateId", costApply.getTemplateId());
data.put("templateName", costApply.getTemplateTitle()); data.put("templateName", costApply.getTemplateTitle());
data.put("supplierArea",supplier.getComRegion());
//核销拓展时间信息 //核销拓展时间信息
//activityQuarter 活动期间所属季度 //activityQuarter 活动期间所属季度

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

@ -2,6 +2,8 @@ package com.qs.serve.task;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
@ -44,45 +46,18 @@ public class TbsTask {
@Scheduled(cron="0 0 1 * * ?") @Scheduled(cron="0 0 1 * * ?")
public void task1(){ public void task1(){
AuthContextUtils.setTenant("001"); AuthContextUtils.setTenant("001");
LocalDate now = LocalDate.now(); activityService.initReopenState();
//拓展已解冻的费用限制在三天内可核销,逾期自动冻结
LocalDate closeDay = now.plusDays(-3);
LambdaQueryWrapper<TbsActivity> updReopen = new LambdaQueryWrapper<>();
updReopen.eq(TbsActivity::getReopenFlag,1)
.lt(TbsActivity::getReopenTime, closeDay)
.eq(TbsActivity::getActivityState,0)
.eq(TbsActivity::getCostPassFlag,1);
TbsActivity updReopenParam = new TbsActivity();
updReopenParam.setReopenFlag(0);
activityService.update(updReopenParam,updReopen);
LambdaQueryWrapper<TbsCostApply> lqwApply = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsCostApply> lqwApply = new LambdaQueryWrapper<>();
lqwApply.select(TbsCostApply::getId); lqwApply.select(TbsCostApply::getId);
lqwApply.eq(TbsCostApply::getChargeState, TbsCostApplyState.State_2_actioning.getCode()); lqwApply.eq(TbsCostApply::getChargeState, TbsCostApplyState.State_2_actioning.getCode());
List<TbsCostApply> costApplyList = tbsCostApplyService.list(lqwApply); List<TbsCostApply> costApplyList = tbsCostApplyService.list(lqwApply);
List<Long> costApplyIds = costApplyList.stream().map(a->a.getId()).collect(Collectors.toList()); List<Long> costApplyIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList());
//只更新审批完成的申请活动状态 // 更新费用申请的活动的冻结状态
LocalDate lastDay = now.plusDays(-1); activityService.flushBandingState(costApplyIds);
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsActivity::getCostApplyId,costApplyIds);
lqw.and(qw->{
qw.and(
qw1->qw1.le(TbsActivity::getPreCheckDate, lastDay)
.isNull(TbsActivity::getPreEndDateBack)
).or()
.le(TbsActivity::getPreEndDateBack, lastDay);
});
lqw.eq(TbsActivity::getReopenFlag,0);
// 2-完成;4-已释放;5-已关闭 表流程已完结,冻结无意义
lqw.eq(TbsActivity::getActivityState,TbsActivityState.STATE_0_Todo);
//通过审批的
lqw.eq(TbsActivity::getCostPassFlag,1);
TbsActivity param = new TbsActivity();
param.setActivityState(TbsActivityState.STATE_1_Baning);
activityService.update(param,lqw);
} }
//启用和停用模板规则 //启用和停用模板规则
//@Scheduled(cron="0 0 1 * * ?") //@Scheduled(cron="0 0 1 * * ?")
public void task2(){ public void task2(){

1
src/main/resources/mapper/wx/WxFormPushMapper.xml

@ -43,6 +43,7 @@
wx_form_push.`update_by`, wx_form_push.`update_by`,
wx_form_push.`del_flag`, wx_form_push.`del_flag`,
wx_form_push.`status`, wx_form_push.`status`,
`wx_form_push`.`publish_time`,
wx_form_push.`pre_notify_status`, wx_form_push.`pre_notify_status`,
wx_form_push.`effective_start_time`, wx_form_push.`effective_start_time`,
wx_form_push.`effective_end_time`, wx_form_push.`effective_end_time`,

Loading…
Cancel
Save