Browse Source

核销记录推送到销路通中间表

mssql
Yen 3 years ago
parent
commit
c571508a2c
  1. 1
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java
  2. 19
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java
  3. 1
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  4. 12
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java
  5. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  6. 14
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java
  7. 3
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  8. 3
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java
  9. 34
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

1
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonService.java

@ -49,6 +49,7 @@ public interface SeeYonService {
*/
R<String> affairCommit(CtpAffairCommit affairCommit);
/**
* 取消流程
* @param affairCancel

19
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityTemplateController.java

@ -109,6 +109,25 @@ public class TbsActivityTemplateController {
return R.ok(template);
}
/**
* 更新状态
* @param param
* @return
*/
@PostMapping("/updateState")
@SysLog(module = SystemModule.Budget, title = "活动模板", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:activityTemplate:update')")
public R<?> updateState(@RequestBody TbsActivityTemplateBo param){
if(param.getId()==null){
return R.error("id is null");
}
TbsActivityTemplate template = new TbsActivityTemplate();
template.setId(param.getId());
template.setTemplateState(param.getTemplateState());
tbsActivityTemplateService.updateById(template);
return R.ok(template);
}
/**
* 新增
* @param param

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

@ -217,6 +217,7 @@ public class TbsCostApplyController {
public R<?> save(@RequestBody @Valid TbsCostApplyBo param){
TbsCostApply entity = CopierUtil.copy(param,new TbsCostApply());
BmsSupplier supplier = bmsSupplierService.getById(entity.getSupplierId());
entity.setCode("CA"+IdUtil.timeStampId());
entity.setSupplierCode(supplier.getCode());
entity.setSupplierName(supplier.getName());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());

12
src/main/java/com/qs/serve/modules/tbs/entity/TbsActivityTemplate.java

@ -58,6 +58,18 @@ public class TbsActivityTemplate implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime startTime;
/** 结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime endTime;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

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

@ -31,6 +31,8 @@ public class TbsCostApply implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
private String code;
/** 主题 */
@NotBlank(message = "主题不能为空")
@Length(max = 60,message = "主题长度不能超过60字")

14
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsActivityTemplateBo.java

@ -6,6 +6,8 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
@ -59,5 +61,17 @@ public class TbsActivityTemplateBo implements Serializable {
/** 销售区域id列表 */
private List<String> bizRegionIds;
/** 开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime startTime;
/** 结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime endTime;
}

3
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java

@ -35,6 +35,9 @@ public class VtbVerification implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
/** 核销编码 */
private String verificationCode;
/** 活动id */
private Long activityId;

3
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java

@ -31,6 +31,9 @@ public class VtbVerificationSubject implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
/** 科目核销编码 */
private String verificationSubCode;
/** 核算id */
@NotNull(message = "核算id不能为空")
private Long verificationId;

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

@ -15,14 +15,13 @@ import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonService;
import com.qs.serve.modules.seeyon.service.XiaoLuTonService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityChannelPointBo;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.common.VtbFundFlowType;
@ -32,6 +31,7 @@ import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelPointBo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectBo;
import com.qs.serve.modules.seeyon.entity.XltApticlaim;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor;
@ -73,6 +73,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
private final VtbFundFlowService fundFlowService;
private final SeeYonService seeYonService;
private final XiaoLuTonService xiaoLuTonService;
private final SysUserService sysUserService;
@ -161,6 +162,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
validActivity(activity,true,isCurrentCommit);
VtbVerification verification = new VtbVerification();
verification.setId(verificationBo.getId());
verification.setVerificationCode("HX"+IdUtil.timeStampId());
verification.setVerificationState(VtbVerificationState.Commiting.getCode());
verification.setActivityId(verificationBo.getActivityId());
verification.setAttachIds(verificationBo.getAttachIds());
@ -201,7 +203,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verificationChannelPointList.add(channelPoint1);
}
}
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verificationBo, activity, costApply, supplier);
List<VtbVerificationSubject> verificationSubjects = validCreateVeriSubject(verification.getVerificationCode(),verificationBo, activity, costApply, supplier);
//设置总金额
BigDecimal totalAmount = BigDecimal.ZERO;
for (VtbVerificationSubject verificationSubject : verificationSubjects) {
@ -317,13 +319,14 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* @param costApply
* @return
*/
private List<VtbVerificationSubject> validCreateVeriSubject(VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply,BmsSupplier supplier) {
private List<VtbVerificationSubject> validCreateVeriSubject(String verificationCode,VtbVerificationBo verificationBo, TbsActivity activity, TbsCostApply costApply,BmsSupplier supplier) {
List<VtbVerificationSubject> verificationSubjects = new ArrayList<>();
List<TbsActivitySubject> activitySubjects = activitySubjectService.listByActivityId(activity.getId());
List<VtbFundFlow> existFundFlowList = fundFlowService.listByActivity(activity.getId(), VtbFundFlowType.Verification);
//校验余额
Map<Long,List<VtbFundFlow>> funFlowListMap = existFundFlowList.stream().collect(Collectors.groupingBy(VtbFundFlow::getSubjectId));
List<VtbVerificationSubjectBo> subjectBoList = verificationBo.getSubjectList();
int countCode = 1;
for (VtbVerificationSubjectBo subjectBo : subjectBoList) {
//忽略金额为0的数据
if (subjectBo.getAmount() == null || subjectBo.getAmount().compareTo(BigDecimal.ZERO) < 1) {
@ -351,6 +354,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
//保存费用结果
VtbVerificationSubject verificationSubject = new VtbVerificationSubject();
verificationSubject.setVerificationSubCode(verificationCode+"_"+countCode);
countCode++;
verificationSubject.setCostApplyId(costApply.getId());
verificationSubject.setActivityId(activity.getId());
verificationSubject.setSubjectId(subject.getId());
@ -373,6 +378,8 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
public void successCommit(Long verificationId) {
log.info("活动核销提交成功。verificationId:{}",verificationId);
VtbVerification verification = this.getById(verificationId);
TbsActivity activity = activityService.getById(verification.getActivityId());
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
//移除历史数据
LambdaQueryWrapper<VtbFundFlow> lqw = new LambdaQueryWrapper<>();
lqw.eq(VtbFundFlow::getVerificationId,verificationId);
@ -386,6 +393,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
Map<Long,List<TbsActivityCenter>> centerMapBySubject = activityCenterList.stream()
.collect(Collectors.groupingBy(TbsActivityCenter::getSubjectId));
List<VtbFundFlow> addFundFlowList = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
for (VtbVerificationSubject verificationSubject : verificationSubjects) {
Long subjectId = verificationSubject.getSubjectId();
BigDecimal usedAmount = verificationSubject.getUsedAmount();
@ -412,6 +420,24 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
}
buildFundFlows(verificationId, addFundFlowList, activityGoodsListOfSubjectCenter,currentCenterAmount);
}
//发送请求到中间服务
XltApticlaim apticlaim = new XltApticlaim();
apticlaim.setVerificationCode(verificationSubject.getVerificationSubCode());
apticlaim.setCostCode(costApply.getCode());
apticlaim.setCostCode2(activity.getActivityCode());
apticlaim.setCusCode(verificationSubject.getSupplierCode());
apticlaim.setAmount(verificationSubject.getUsedAmount());
apticlaim.setSubjectCode(verificationSubject.getSubjectCode());
apticlaim.setSubjectName(verificationSubject.getSubjectName());
apticlaim.setExpType("TI");
apticlaim.setApplyType("01");
apticlaim.setEffDate(now);
apticlaim.setInvoiced("2");
apticlaim.setCreateTime(now);
apticlaim.setStatus("00");
apticlaim.setDealTime(now);
apticlaim.setTopic(costApply.getChargeTheme());
xiaoLuTonService.saveApticlaim(apticlaim);
}
fundFlowService.saveBatch(addFundFlowList);
//更新已用费用记录,并更新活动状态是否完成

Loading…
Cancel
Save