Browse Source

条款调整;活动关联支付数据

v1.0
Yen 2 years ago
parent
commit
ddb1d7f739
  1. 2
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  2. 1
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  3. 1
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  4. 3
      src/main/java/com/qs/serve/modules/pay/entity/PayPayment.java
  5. 1
      src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java
  6. 18
      src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java
  7. 108
      src/main/java/com/qs/serve/modules/pay/service/impl/PayApplicationService.java
  8. 6
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoCheckController.java
  9. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  10. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenter.java
  11. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityCenterGoods.java
  12. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java
  13. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java
  14. 5
      src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java
  15. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java
  16. 10
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterServiceImpl.java
  17. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java
  18. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java
  19. 28
      src/main/java/com/qs/serve/task/controller/TaskPayController.java
  20. 21
      src/main/resources/mapper/pay/PayPaymentItemMapper.xml

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

@ -66,7 +66,6 @@ public class BirActivityCenterGoodsController {
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bms:channel:query')")
public R<PageVo<BirActivityCenterGoods>> getPage(BirActivityCenterGoods param){
PageUtil.startPage();
LambdaQueryWrapper<BirActivityCenterGoods> channelWrapper = new LambdaQueryWrapper<>(param);
@ -88,7 +87,6 @@ public class BirActivityCenterGoodsController {
* @return
*/
@GetMapping("/export")
@PreAuthorize("hasRole('bms:channel:query')")
public R<?> export(BirActivityCenterGoods param){
LambdaQueryWrapper<BirActivityCenterGoods> channelWrapper = new LambdaQueryWrapper<>(param);
if(param.getKeyNumStart()!=null){

1
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -268,6 +268,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
String response = HttpUtil.doPost(apiUrl, JsonUtil.objectToJson(params),null);
return JsonUtil.jsonToList(response,OmsSpuToSkuKey.class);
}
/**
* 关联上下级
* @param spu

1
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -345,6 +345,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
if(createOrderParam !=null){
order.setBillType(createOrderParam.getBillType());
order.setUrgentFlag(createOrderParam.getUrgentFlag());
order.setRemark(createOrderParam.getRemark());
}
this.save(order);
List<OmsOrderItem> orderItems = new ArrayList<>();

3
src/main/java/com/qs/serve/modules/pay/entity/PayPayment.java

@ -154,5 +154,8 @@ public class PayPayment implements Serializable {
@JsonProperty
private String delFlag;
/** 同步标识 */
private Integer syncActFlag;
}

1
src/main/java/com/qs/serve/modules/pay/entity/PayPaymentItem.java

@ -150,6 +150,7 @@ public class PayPaymentItem implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime payDate;
/**
* 后端参数请忽略
* 支付主表的取消标识

18
src/main/java/com/qs/serve/modules/pay/mapper/PayPaymentItemMapper.java

@ -1,8 +1,10 @@
package com.qs.serve.modules.pay.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.common.model.AmountDTO;
import com.qs.serve.modules.pay.entity.PayPaymentItem;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
@ -14,5 +16,21 @@ public interface PayPaymentItemMapper extends BaseMapper<PayPaymentItem> {
List<PayPaymentItem> selectPayPaymentItemList(@Param("query") PayPaymentItem payment);
/**
* 查找新增未同步的activityId一次最多5000条活动
* @return
*/
@Select("SELECT activity_id FROM `pay_payment_item` where sync_act_flag=0 and del_flag = 0 and activity_id is not null GROUP BY activity_id limit 5000")
List<String> selectNoSyncActivityIds();
List<AmountDTO> selectActivityTotal(@Param("activityIds") List<String> activityIds);
/**
* 更新同步标记
* @param activityIds
* @return
*/
int updateSyncFlag(@Param("activityIds") List<String> activityIds);
}

108
src/main/java/com/qs/serve/modules/pay/service/impl/PayApplicationService.java

@ -0,0 +1,108 @@
package com.qs.serve.modules.pay.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.AmountDTO;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.pay.entity.PayPaymentItem;
import com.qs.serve.modules.pay.mapper.PayPaymentItemMapper;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import com.qs.serve.modules.tbs.service.TbsActivityCenterGoodsService;
import com.qs.serve.modules.tbs.service.TbsActivityCenterService;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsActivitySubjectService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author YenHex
* @since 2023/11/2
*/
@Slf4j
@Service
@AllArgsConstructor
public class PayApplicationService {
private final PayPaymentItemMapper payPaymentItemMapper;
private final TbsActivityService tbsActivityService;
private final TbsActivityCenterService tbsActivityCenterService;
private final TbsActivityCenterGoodsService tbsActivityCenterGoodsService;
/**
* 先把统计金额更新到活动字段
*/
public void syncTotalPayToActivity(){
AuthContextUtils.setTenant("001");
final BigDecimal N100 = new BigDecimal("100");
final BigDecimal N10000 = new BigDecimal("10000");
//查找新增未同步的activityId
List<String> activityStringIds = payPaymentItemMapper.selectNoSyncActivityIds();
if(CollectionUtil.isEmpty(activityStringIds)){
log.warn("syncTotalPayToActivity() --- activityIds长度为0 ");
return;
}
List<Long> activityIds = activityStringIds.stream().map(Long::parseLong).collect(Collectors.toList());
//获取activity统计支付金额
List<AmountDTO> amountDTOList = payPaymentItemMapper.selectActivityTotal(activityStringIds);
//更新到activity
List<TbsActivity> activityList = amountDTOList.stream().map(a->{
TbsActivity activity = new TbsActivity();
activity.setId(Long.parseLong(a.getId()));
activity.setPayAmount(a.getAmount());
return activity;
}).collect(Collectors.toList());
tbsActivityService.updateBatchById(activityList);
Map<Long,List<TbsActivityCenter>> activityCenterMap = tbsActivityCenterService.listByActivityMap(activityIds);
//更新到tbs_activity_subject
//Map<Long,List<TbsActivitySubject>> activitySubjectMap = tbsActivitySubjectService.listByActivityMap(activityIds);
Map<Long,List<TbsActivityCenterGoods>> activityCenterGoodsMap = tbsActivityCenterGoodsService.listByActivityMap(activityIds);
for (AmountDTO amountDTO : amountDTOList) {
Long activityId = Long.parseLong(amountDTO.getId());
BigDecimal totalAmount = amountDTO.getAmount();
//更新到tbs_activity_center
List<TbsActivityCenter> activityCenterList = activityCenterMap.get(activityId);
List<TbsActivityCenter> activityCenterUpdateList = activityCenterList.stream().map(param->{
BigDecimal payAmount = param.getCenterRate().multiply(totalAmount).divide(N100, RoundingMode.DOWN);
TbsActivityCenter obj = new TbsActivityCenter();
obj.setId(param.getId());
obj.setPayAmount(payAmount);
return obj;
}).collect(Collectors.toList());
tbsActivityCenterService.updateBatchById(activityCenterUpdateList);
//更新到tbs_activity_center_goods
List<TbsActivityCenterGoods> activityCenterGoodsList = activityCenterGoodsMap.get(activityId);
List<TbsActivityCenterGoods> activityCenterGoodsUpdateList = activityCenterGoodsList.stream().map(param->{
BigDecimal payAmount = param.getCenterRate()
.multiply(param.getCenterGoodsRate())
.multiply(totalAmount)
.divide(N10000, RoundingMode.DOWN);
TbsActivityCenterGoods obj = new TbsActivityCenterGoods();
obj.setId(param.getId());
obj.setPayAmount(payAmount);
return obj;
}).collect(Collectors.toList());
tbsActivityCenterGoodsService.updateBatchById(activityCenterGoodsUpdateList);
}
payPaymentItemMapper.updateSyncFlag(activityStringIds);
}
}

6
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostTodoCheckController.java

@ -54,12 +54,12 @@ public class TbsCostTodoCheckController {
/**
* 审批列表(用于详情页)
* @param costApplyId
* @param targetId
* @return
*/
@GetMapping("/ListAffairs")
public R<List<CtpAffairVo>> pageAffair(String costApplyId){
return costTodoOperationService.pageAffair(costApplyId);
public R<List<CtpAffairVo>> pageAffair(String targetId){
return costTodoOperationService.pageAffair(targetId);
}
/**

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

@ -173,6 +173,9 @@ public class TbsActivity implements Serializable {
/** 使用金额 */
private BigDecimal usedAmount;
/** 支付金额 */
private BigDecimal payAmount;
/** 释放人员id */
private String releaseUserId;

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

@ -57,6 +57,8 @@ public class TbsActivityCenter implements Serializable {
private BigDecimal usedAmount;
private BigDecimal payAmount;
/** 成本中心类型
center,
customer,

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

@ -79,6 +79,8 @@ public class TbsActivityCenterGoods implements Serializable {
/** 费用已用额度 */
private BigDecimal usedAmount;
private BigDecimal payAmount;
/** 成本中心类型 */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 50,message = "成本中心类型长度不能超过50字")

6
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterGoodsService.java

@ -2,7 +2,11 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import java.util.List;
import java.util.Map;
/**
* 活动成本中心配比项 服务接口
* @author YenHex
@ -15,5 +19,7 @@ public interface TbsActivityCenterGoodsService extends IService<TbsActivityCente
List<TbsActivityCenterGoods> listByCostApplyId(Long costApplyId);
Map<Long,List<TbsActivityCenterGoods>> listByActivityMap(List<Long> activityIds);
}

3
src/main/java/com/qs/serve/modules/tbs/service/TbsActivityCenterService.java

@ -5,6 +5,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import java.util.List;
import java.util.Map;
/**
* 活动成本中心项 服务接口
@ -15,6 +16,8 @@ public interface TbsActivityCenterService extends IService<TbsActivityCenter> {
List<TbsActivityCenter> listByActivity(Long activityId);
Map<Long,List<TbsActivityCenter>> listByActivityMap(List<Long> activityIds);
List<TbsActivityCenter> listByCostApplyId(Long costApplyId);
}

5
src/main/java/com/qs/serve/modules/tbs/service/TbsActivitySubjectService.java

@ -1,9 +1,11 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import java.util.List;
import java.util.Map;
/**
* 活动科目项 服务接口
@ -19,6 +21,9 @@ public interface TbsActivitySubjectService extends IService<TbsActivitySubject>
*/
List<TbsActivitySubject> listByActivityId(Long activityId);
Map<Long,List<TbsActivitySubject>> listByActivityMap(List<Long> activityIds);
/**
* 通过活动申请获取列表
* @param costApplyId

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityCenterGoodsServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.tbs.entity.TbsActivitySubject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -10,6 +11,8 @@ import com.qs.serve.modules.tbs.service.TbsActivityCenterGoodsService;
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 活动成本中心配比项 服务实现类
@ -35,5 +38,13 @@ public class TbsActivityCenterGoodsServiceImpl extends ServiceImpl<TbsActivityCe
return this.list(lqw);
}
@Override
public Map<Long, List<TbsActivityCenterGoods>> listByActivityMap(List<Long> activityIds) {
LambdaQueryWrapper<TbsActivityCenterGoods> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsActivityCenterGoods::getActivityId,activityIds);
List<TbsActivityCenterGoods> activityCenterList = this.list(lqw);
return activityCenterList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getActivityId));
}
}

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

@ -10,6 +10,8 @@ import com.qs.serve.modules.tbs.service.TbsActivityCenterService;
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterMapper;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 活动成本中心项 服务实现类
@ -28,6 +30,14 @@ public class TbsActivityCenterServiceImpl extends ServiceImpl<TbsActivityCenterM
return this.list(lqw);
}
@Override
public Map<Long, List<TbsActivityCenter>> listByActivityMap(List<Long> activityIds) {
LambdaQueryWrapper<TbsActivityCenter> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsActivityCenter::getActivityId,activityIds);
List<TbsActivityCenter> activityCenterList = this.list(lqw);
return activityCenterList.stream().collect(Collectors.groupingBy(TbsActivityCenter::getActivityId));
}
@Override
public List<TbsActivityCenter> listByCostApplyId(Long costApplyId) {
LambdaQueryWrapper<TbsActivityCenter> lqw = new LambdaQueryWrapper<>();

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivitySubjectServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.tbs.entity.TbsActivityCenter;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -10,6 +11,8 @@ import com.qs.serve.modules.tbs.service.TbsActivitySubjectService;
import com.qs.serve.modules.tbs.mapper.TbsActivitySubjectMapper;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 活动科目项 服务实现类
@ -28,6 +31,14 @@ public class TbsActivitySubjectServiceImpl extends ServiceImpl<TbsActivitySubjec
return this.list(lqw);
}
@Override
public Map<Long, List<TbsActivitySubject>> listByActivityMap(List<Long> activityIds) {
LambdaQueryWrapper<TbsActivitySubject> lqw = new LambdaQueryWrapper<>();
lqw.in(TbsActivitySubject::getActivityId,activityIds);
List<TbsActivitySubject> activityCenterList = this.list(lqw);
return activityCenterList.stream().collect(Collectors.groupingBy(TbsActivitySubject::getActivityId));
}
@Override
public List<TbsActivitySubject> listByCostApplyId(Long activityId) {
LambdaQueryWrapper<TbsActivitySubject> lqw = new LambdaQueryWrapper<>();

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java

@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.data.service.DataAffairCommitService;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
@ -72,7 +73,7 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode);
createProcess.setMemberLoginName(sysUser.getSyAccount());
createProcess.setSubjectTitle("[协议条款]"+costTodo.getDescr().substring(0,30));
createProcess.setSubjectTitle("[协议条款]"+costTodo.getDescr());
createProcess.setTargetId(todoId+"");
createProcess.setDataJson(JsonUtil.objectToJson(data));
R<String> flowIdResult = seeYonService.baseCreateProcess(createProcess);
@ -84,6 +85,12 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
if(formIdResult.getStatus()==200){
formId = formIdResult.getData();
}
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CheckCostAgreeConf.Code(),param.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
costTodo.setCheckStatus(TbsCommonCheckState.State_1_apply);
costTodo.setSubmitTime(LocalDateTime.now());
costTodo.setSyFormId(formId);
costTodo.setAttachIds2(param.getAttachIds2());
@ -157,7 +164,7 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
if (state == 1){
this.doFinished(doParam);
}else if (state==2){
this.doCommitBacked(targetId);
this.doBacked(doParam);
}else if (state==0){
this.doRefuse(doParam);
}

28
src/main/java/com/qs/serve/task/controller/TaskPayController.java

@ -0,0 +1,28 @@
package com.qs.serve.task.controller;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.pay.service.impl.PayApplicationService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author YenHex
* @since 2023/11/2
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/task/pay")
public class TaskPayController {
PayApplicationService applicationService;
@RequestMapping("test")
public R<?> task(){
applicationService.syncTotalPayToActivity();
return R.ok();
}
}

21
src/main/resources/mapper/pay/PayPaymentItemMapper.xml

@ -53,6 +53,7 @@
pay_payment_item.`policy_item_id`,
pay_payment_item.`policy_item_code` </sql>
<select id="selectPayPaymentItemList" parameterType="com.qs.serve.modules.pay.entity.PayPaymentItem" resultMap="payPaymentItemMap">
SELECT <include refid="payPaymentItemSql"/> FROM `pay_payment_item` `pay_payment_item`
left join pay_payment on pay_payment_item.payment_id = pay_payment.id
@ -88,4 +89,24 @@
</where>
</select>
<select id="selectActivityTotal" resultType="com.qs.serve.common.model.AmountDTO">
SELECT activity_id as id,sum(item_pay_amount) as amount FROM `pay_payment_item`
where sync_act_flag=0 and del_flag = 0
and activity_id in
<foreach collection="activityIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
GROUP BY activity_id;
</select>
<update id="updateSyncFlag">
update pay_payment_item set sync_act_flag = 1
where activity_id in
<foreach collection="activityIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</update>
</mapper>

Loading…
Cancel
Save