Browse Source

政策同步到销路通

contract
Yen 2 years ago
parent
commit
1405848e98
  1. 9
      src/main/java/com/qs/serve/common/util/DateUtils.java
  2. 5
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java
  3. 2
      src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java
  4. 6
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java
  5. 10
      src/main/java/com/qs/serve/modules/seeyon/service/XiaoLuTonService.java
  6. 7
      src/main/java/com/qs/serve/modules/seeyon/service/impl/XiaoLuTonServiceImpl.java
  7. 1
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  8. 4
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  9. 20
      src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java
  10. 1
      src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyGoods.java
  11. 3
      src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyItem.java
  12. 38
      src/main/java/com/qs/serve/modules/tzc/entity/dto/PolicyItemDto.java
  13. 63
      src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java
  14. 70
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  15. 38
      src/main/java/com/qs/serve/task/TzcPolicyTask.java
  16. 23
      src/main/resources/mapper/goods/GoodsSkuMapper.xml

9
src/main/java/com/qs/serve/common/util/DateUtils.java

@ -5,6 +5,7 @@ import lombok.experimental.UtilityClass;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
@ -19,6 +20,14 @@ import java.util.Date;
@UtilityClass @UtilityClass
public class DateUtils { public class DateUtils {
public static Date localDateToDate(LocalDate date){
//LocalDate date = LocalDate.of(2006,07,26);
ZoneId zone = ZoneId.systemDefault();
Instant instant = date.atStartOfDay().atZone(zone).toInstant();
java.util.Date da = Date.from(instant);
return da;
}
public static String getString(DateFormatString format){ public static String getString(DateFormatString format){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format.getValue()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format.getValue());
return LocalDateTime.now().format(formatter); return LocalDateTime.now().format(formatter);

5
src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.goods.mapper; package com.qs.serve.modules.goods.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.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo;
@ -21,5 +22,9 @@ public interface GoodsSkuMapper extends BaseMapper<GoodsSku> {
*/ */
List<GoodSkuVo> selectSkuVo(@Param("query") GoodsSku goodsSku); List<GoodSkuVo> selectSkuVo(@Param("query") GoodsSku goodsSku);
@InterceptorIgnore(tenantLine = "1")
List<GoodsSku> selectByCategoryIds(@Param("categoryIds")List<Long> categoryIds,@Param("tenantId")String tenantId);
} }

2
src/main/java/com/qs/serve/modules/goods/service/GoodsSkuService.java

@ -23,6 +23,8 @@ public interface GoodsSkuService extends IService<GoodsSku> {
List<GoodSkuVo> selectSkuVo(GoodsSku goodsSku); List<GoodSkuVo> selectSkuVo(GoodsSku goodsSku);
List<GoodsSku> selectSkuByCategoryIds(List<Long> categoryIds);
void editSku(GoodsSkuBo goodSkuVo); void editSku(GoodsSkuBo goodSkuVo);
} }

6
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.goods.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.goods.common.GoodsConst; import com.qs.serve.modules.goods.common.GoodsConst;
@ -66,6 +67,11 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
return baseMapper.selectSkuVo(goodsSku); return baseMapper.selectSkuVo(goodsSku);
} }
@Override
public List<GoodsSku> selectSkuByCategoryIds(List<Long> categoryIds) {
return baseMapper.selectByCategoryIds(categoryIds, AuthContextUtils.getTenant());
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void editSku(GoodsSkuBo goodSkuVo) { public void editSku(GoodsSkuBo goodSkuVo) {

10
src/main/java/com/qs/serve/modules/seeyon/service/XiaoLuTonService.java

@ -3,6 +3,8 @@ package com.qs.serve.modules.seeyon.service;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.seeyon.entity.XltApticlaim; import com.qs.serve.modules.seeyon.entity.XltApticlaim;
import com.qs.serve.modules.seeyon.entity.XltPaymentRecord; import com.qs.serve.modules.seeyon.entity.XltPaymentRecord;
import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto;
import org.springframework.web.bind.annotation.RequestBody;
/** /**
* @author YenHex * @author YenHex
@ -25,4 +27,12 @@ public interface XiaoLuTonService {
*/ */
R<String> savePaymentRecord(XltPaymentRecord paymentRecord); R<String> savePaymentRecord(XltPaymentRecord paymentRecord);
/**
* 保存政策项
* @param policyItemDto
* @return
*/
R<String> savePolicyItem(PolicyItemDto policyItemDto);
} }

7
src/main/java/com/qs/serve/modules/seeyon/service/impl/XiaoLuTonServiceImpl.java

@ -5,6 +5,7 @@ import com.qs.serve.modules.seeyon.entity.XltApticlaim;
import com.qs.serve.modules.seeyon.entity.XltPaymentRecord; import com.qs.serve.modules.seeyon.entity.XltPaymentRecord;
import com.qs.serve.modules.seeyon.service.XiaoLuTonService; import com.qs.serve.modules.seeyon.service.XiaoLuTonService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -32,4 +33,10 @@ public class XiaoLuTonServiceImpl implements XiaoLuTonService {
return syBaseService.postBase(TbsSeeYonConst.XLT_SAVE_PAYMENT,paymentRecord,title); return syBaseService.postBase(TbsSeeYonConst.XLT_SAVE_PAYMENT,paymentRecord,title);
} }
@Override
public R<String> savePolicyItem(PolicyItemDto policyItemDto) {
String title = "保存政策记录";
return syBaseService.postBase(TbsSeeYonConst.XLT_SAVE_POLICY,policyItemDto,title);
}
} }

1
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -45,5 +45,6 @@ public interface TbsSeeYonConst {
String XLT_SAVE_CHECK = "/xlt/saveCheck"; String XLT_SAVE_CHECK = "/xlt/saveCheck";
String XLT_SAVE_PAYMENT = "/xlt/savePayment"; String XLT_SAVE_PAYMENT = "/xlt/savePayment";
String XLT_SAVE_POLICY = "/xlt/savePolicyItem";
} }

4
src/main/java/com/qs/serve/modules/third/PortalOfCostController.java

@ -36,7 +36,6 @@ public class PortalOfCostController {
private PortalOfCostApplication portalOfCostApplication; private PortalOfCostApplication portalOfCostApplication;
/** /**
* 一站式创建费用(政策) * 一站式创建费用(政策)
* @param createBo * @param createBo
@ -50,13 +49,12 @@ public class PortalOfCostController {
} }
/** /**
* 一站式创建费用(费用申请) * 一站式创建费用(费用申请)
* @param createBo * @param createBo
* @return * @return
*/ */
//@PostMapping("createByCostApply") @PostMapping("createByCostApply")
public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){ public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){
checkToken(request); checkToken(request);
portalOfCostApplication.createCostProcess(createBo); portalOfCostApplication.createCostProcess(createBo);

20
src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java

@ -10,18 +10,14 @@ 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.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.seeyon.entity.CtpAffair; import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; import com.qs.serve.modules.seeyon.entity.CtpAffairQo;
import com.qs.serve.modules.seeyon.service.SeeYonService; import com.qs.serve.modules.seeyon.service.SeeYonService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
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.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog; import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
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.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
@ -30,7 +26,7 @@ import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.common.TzcPolicyStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.service.TzcPolicyApplication; import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -60,11 +56,17 @@ public class TzcPolicyController {
private TzcPolicyService tzcPolicyService; private TzcPolicyService tzcPolicyService;
private TzcPolicyItemService tzcPolicyItemService; private TzcPolicyItemService tzcPolicyItemService;
private TzcPolicyApplication policyApplication; private TzcPolicyApplicationService policyApplicationService;
private TbsBudgetLogService tbsBudgetLogService; private TbsBudgetLogService tbsBudgetLogService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SeeYonService seeYonService; private SeeYonService seeYonService;
@GetMapping("succ")
public R<?> succ(Long id){
policyApplicationService.syncPolicyItem(id);
return R.ok();
}
/** /**
* 预览 * 预览
* @param id * @param id
@ -72,7 +74,7 @@ public class TzcPolicyController {
*/ */
@GetMapping("preview") @GetMapping("preview")
public R<TbsBudgetTableVo> preview(Long id){ public R<TbsBudgetTableVo> preview(Long id){
TbsBudgetCostResult result = policyApplication.buildBudgetCostResult(id,false,true); TbsBudgetCostResult result = policyApplicationService.buildBudgetCostResult(id,false,true);
return R.ok(result.getTableData()); return R.ok(result.getTableData());
} }
@ -83,7 +85,7 @@ public class TzcPolicyController {
*/ */
@GetMapping("preview2") @GetMapping("preview2")
public R<TbsBudgetTableVo> preview2(Long id){ public R<TbsBudgetTableVo> preview2(Long id){
TbsBudgetTableVo result = policyApplication.buildResultTable(id); TbsBudgetTableVo result = policyApplicationService.buildResultTable(id);
return R.ok(result); return R.ok(result);
} }
@ -94,7 +96,7 @@ public class TzcPolicyController {
*/ */
@PostMapping("/commitPolicy/{policyId}") @PostMapping("/commitPolicy/{policyId}")
public R<?> commitPolicy(@PathVariable("policyId")Long policyId){ public R<?> commitPolicy(@PathVariable("policyId")Long policyId){
policyApplication.commitPolicy(policyId); policyApplicationService.commitPolicy(policyId);
return R.ok(); return R.ok();
} }

1
src/main/java/com/qs/serve/modules/tzc/entity/TzcPolicyGoods.java

@ -90,6 +90,7 @@ public class TzcPolicyGoods implements Serializable {
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime; private LocalDateTime updateTime;
/** 所属租户 */ /** 所属租户 */
@JsonIgnore @JsonIgnore
@JsonProperty @JsonProperty

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

@ -141,6 +141,9 @@ public class TzcPolicyItem implements Serializable {
@Length(max = 50,message = "科目名称长度不能超过50字") @Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName; private String subjectName;
/** 同步状态 */
private Integer syncStatus;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

38
src/main/java/com/qs/serve/modules/tzc/entity/dto/PolicyItemDto.java

@ -0,0 +1,38 @@
package com.qs.serve.modules.tzc.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author YenHex
* @since 2023/3/10
*/
@Data
public class PolicyItemDto {
/** 主题 */
private String title;
String policyItemCode;
String cusCode;
Date startDate;
Date endDate;
/** 满减金额 */
private BigDecimal discountAmount;
/** 返点百分比 */
private BigDecimal discountRate;
/** 优惠上限 */
private BigDecimal discountMax;
List<String> invCodeList;
}

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

@ -0,0 +1,63 @@
package com.qs.serve.modules.tzc.service;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author YenHex
* @since 2023/3/10
*/
public interface TzcPolicyApplicationService {
/**
* 政策项ID
* @param policyItemId
*/
void syncPolicyItem(Long policyItemId);
/**
* 创建费用占用结果
* @param policyId
* @param throwEx
* @param buildTableFlag
* @return
*/
TbsBudgetCostResult buildBudgetCostResult(Long policyId,
Boolean throwEx,
Boolean buildTableFlag);
/**
* 创建费用占用结果
* @param policyId 用于加载历史预算时排除当前费用占比
* @param policyItemList 政策项列表
* @param overspend 是否支持超出预算
* @param throwEx 是否需要抛出异常
* @param buildTableFlag 创建表VO
* @return
*/
TbsBudgetCostResult buildBudgetCostResult(Long policyId,
List<TzcPolicyItem> policyItemList,
Boolean overspend,
Boolean throwEx,
Boolean buildTableFlag);
/**
* 提交申请
* @param policyId
*/
void commitPolicy(Long policyId);
/**
* 构建预览2接口
* @param policyId
* @return
*/
TbsBudgetTableVo buildResultTable(Long policyId);
}

70
src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplication.java → src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.tzc.service; package com.qs.serve.modules.tzc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.consts.BudgetLogOptFlag; import com.qs.serve.common.model.consts.BudgetLogOptFlag;
@ -8,9 +8,12 @@ import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString; import com.qs.serve.common.util.model.DateFormatString;
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.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonService; 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.entity.SysUser;
import com.qs.serve.modules.sys.service.SysConfigService; import com.qs.serve.modules.sys.service.SysConfigService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
@ -25,10 +28,16 @@ import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.common.TzcPolicyStatus; import com.qs.serve.modules.tzc.common.TzcPolicyStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoods; import com.qs.serve.modules.tzc.entity.TzcPolicyGoods;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.entity.dto.PolicyItemDto;
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyGoodsService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -47,7 +56,7 @@ import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
public class TzcPolicyApplication { public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationService {
private TzcPolicyService tzcPolicyService; private TzcPolicyService tzcPolicyService;
private TzcPolicyItemService tzcPolicyItemService; private TzcPolicyItemService tzcPolicyItemService;
@ -65,13 +74,65 @@ public class TzcPolicyApplication {
private SysUserService sysUserService; private SysUserService sysUserService;
private SeeYonService seeYonService; private SeeYonService seeYonService;
private BmsSupplierService bmsSupplierService; private BmsSupplierService bmsSupplierService;
private GoodsSkuService goodsSkuService;
private XiaoLuTonService xiaoLuTonService;
@Override
public void syncPolicyItem(Long policyItemId) {
TzcPolicyItem policyItem = tzcPolicyItemService.getById(policyItemId);
PolicyItemDto policyItemDto = new PolicyItemDto();
policyItemDto.setTitle(policyItem.getTitle());
policyItemDto.setCusCode(policyItem.getSupplierCode());
policyItemDto.setPolicyItemCode(policyItem.getPolicyItemCode());
policyItemDto.setStartDate(DateUtils.localDateToDate(policyItem.getPolicyStartDate()));
policyItemDto.setEndDate(DateUtils.localDateToDate(policyItem.getPolicyEndDate()));
policyItemDto.setDiscountAmount(policyItem.getDiscountAmount());
policyItemDto.setDiscountRate(policyItem.getDiscountRate());
policyItemDto.setDiscountMax(policyItem.getDiscountMax());
//加载InvCode
List<TzcPolicyGoods> policyGoods = tzcPolicyGoodsService.listByItemId(policyItemId);
Map<String,List<TzcPolicyGoods>> policyGoodsMap = policyGoods.stream().collect(Collectors.groupingBy(TzcPolicyGoods::getTargetType));
List<String> invCodes = new ArrayList<>();
for (String goodType : policyGoodsMap.keySet()) {
List<TzcPolicyGoods> policyGoodsList = policyGoodsMap.get(goodType);
List<Long> targetIds = policyGoodsList.stream().map(TzcPolicyGoods::getTargetId).collect(Collectors.toList());
if(CollectionUtil.isEmpty(policyGoodsList)){
continue;
}
if(goodType.equals(TbsGoodsType.sku.name())){
List<GoodsSku> goodsSkus = goodsSkuService.listByIds(targetIds);
List<String> skuCodes = goodsSkus.stream().map(GoodsSku::getSkuCode).collect(Collectors.toList());
invCodes.addAll(skuCodes);
}else if(goodType.equals(TbsGoodsType.spu.name())){
LambdaQueryWrapper<GoodsSku> lqw = new LambdaQueryWrapper<>();
lqw.in(GoodsSku::getSpuId,targetIds);
lqw.select(GoodsSku::getId);
List<GoodsSku> goodsSkus = goodsSkuService.list(lqw);
List<String> skuCodes = goodsSkus.stream().map(GoodsSku::getSkuCode).collect(Collectors.toList());
invCodes.addAll(skuCodes);
}else {
List<GoodsSku> goodsSkus = goodsSkuService.selectSkuByCategoryIds(targetIds);
List<String> invCodeList = goodsSkus.stream()
.map(GoodsSku::getSkuCode).distinct().collect(Collectors.toList());
invCodes.addAll(invCodeList);
}
}
policyItemDto.setInvCodeList(invCodes);
//保存异步处理的
R<String> result = xiaoLuTonService.savePolicyItem(policyItemDto);
if(result.getStatus()==200){
TzcPolicyItem updParam = new TzcPolicyItem();
updParam.setId(policyItemId);
updParam.setPolicyItemStatus(TzPolicyItemStatus.Status_2_SyncSuccess);
tzcPolicyItemService.updateById(updParam);
}
}
/** /**
* 提交申请 * 提交申请
* @param policyId * @param policyId
*/ */
@Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void commitPolicy(Long policyId){ public void commitPolicy(Long policyId){
seeYonService.testConnection(); seeYonService.testConnection();
@ -173,6 +234,7 @@ public class TzcPolicyApplication {
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
} }
@Override
public TbsBudgetTableVo buildResultTable(Long policyId){ public TbsBudgetTableVo buildResultTable(Long policyId){
LambdaQueryWrapper<TzcPolicyItem> policyItemLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TzcPolicyItem> policyItemLqw = new LambdaQueryWrapper<>();
policyItemLqw.eq(TzcPolicyItem::getPolicyId,policyId); policyItemLqw.eq(TzcPolicyItem::getPolicyId,policyId);
@ -256,6 +318,7 @@ public class TzcPolicyApplication {
return tableVo; return tableVo;
} }
@Override
public TbsBudgetCostResult buildBudgetCostResult(Long policyId, public TbsBudgetCostResult buildBudgetCostResult(Long policyId,
Boolean throwEx, Boolean throwEx,
Boolean buildTableFlag){ Boolean buildTableFlag){
@ -273,6 +336,7 @@ public class TzcPolicyApplication {
* @param buildTableFlag 创建表VO * @param buildTableFlag 创建表VO
* @return * @return
*/ */
@Override
public TbsBudgetCostResult buildBudgetCostResult(Long policyId, public TbsBudgetCostResult buildBudgetCostResult(Long policyId,
List<TzcPolicyItem> policyItemList, List<TzcPolicyItem> policyItemList,
Boolean overspend, Boolean overspend,

38
src/main/java/com/qs/serve/task/TzcPolicyTask.java

@ -0,0 +1,38 @@
package com.qs.serve.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService;
import com.qs.serve.modules.tzc.service.TzcPolicyItemService;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 政策同步方法
* @author YenHex
* @since 2023/3/11
*/
@Component
@AllArgsConstructor
public class TzcPolicyTask {
private TzcPolicyService policyService;
private TzcPolicyItemService policyItemService;
private TzcPolicyApplicationService policyApplicationService;
/**
* 同步数据到销路通
*/
public void syncPolicyToXlt(){
LambdaQueryWrapper<TzcPolicyItem> itemLqw = new LambdaQueryWrapper<>();
itemLqw.select(TzcPolicyItem::getId);
itemLqw.eq(TzcPolicyItem::getPolicyItemStatus,TzPolicyItemStatus.Status_1_PassSuccess);
List<TzcPolicyItem> policyItemList = policyItemService.list(itemLqw);
for (TzcPolicyItem policyItem : policyItemList) {
policyApplicationService.syncPolicyItem(policyItem.getId());
}
}
}

23
src/main/resources/mapper/goods/GoodsSkuMapper.xml

@ -130,4 +130,27 @@
</where> </where>
</select> </select>
<select id="selectByCategoryIds" resultType="com.qs.serve.modules.goods.entity.GoodsSku">
SELECT goods_sku.* FROM `goods_sku`
LEFT JOIN `goods_spu`
ON goods_sku.spu_id = goods_spu.id
WHERE
goods_sku.tenant_id = #{tenantId}
and goods_sku.del_flag = 0
and goods_spu.category_third in
<foreach collection="categoryIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
or
goods_spu.category_second in
<foreach collection="categoryIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
or
goods_spu.category_first in
<foreach collection="categoryIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</select>
</mapper> </mapper>

Loading…
Cancel
Save