|
|
@@ -19,15 +19,23 @@ package org.springblade.mocha.service.impl;
|
|
|
import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.client.entity.GoodsDesc;
|
|
|
+import org.springblade.client.entity.GoodsType;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.IGoodsDescClient;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
+import org.springblade.mocha.entity.PriceItem;
|
|
|
import org.springblade.mocha.entity.SalesPolicy;
|
|
|
import org.springblade.mocha.entity.SalesPolicyItem;
|
|
|
+import org.springblade.mocha.excel.PriceItemExcel;
|
|
|
+import org.springblade.mocha.excel.SalesItemExcel;
|
|
|
import org.springblade.mocha.mapper.SalesPolicyItemMapper;
|
|
|
import org.springblade.mocha.vo.SalesPolicyVO;
|
|
|
import org.springblade.mocha.mapper.SalesPolicyMapper;
|
|
|
@@ -37,6 +45,7 @@ import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
@@ -52,6 +61,7 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
|
|
|
private SalesPolicyItemMapper salesPolicyItemMapper;//销售政策明细表
|
|
|
private final IUserClient userClient;//用户
|
|
|
private final ICorpsDescClient corpsDescClient;//客户信息
|
|
|
+ private final IGoodsDescClient goodsDescClient;//商品信息
|
|
|
@Override
|
|
|
public IPage<SalesPolicy> selectSalesPolicyPage(IPage<SalesPolicy> page, SalesPolicy salesPolicy) {
|
|
|
return page.setRecords(baseMapper.selectSalesPolicyPage(page, salesPolicy));
|
|
|
@@ -172,6 +182,46 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
|
|
|
}
|
|
|
return baseMapper.lazyTree(salesPolicy);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R importSalesPolicy(List<SalesItemExcel> data, Boolean isCovered)
|
|
|
+ {
|
|
|
+ List<SalesPolicyItem> list=new ArrayList<>();
|
|
|
+ for(int i=0;i<data.size();i++)
|
|
|
+ {
|
|
|
+ SalesItemExcel goodsExcel = data.get(i);
|
|
|
+ SalesPolicyItem salesPolicyItem=new SalesPolicyItem();
|
|
|
+ BeanUtil.copyProperties(goodsExcel,salesPolicyItem);
|
|
|
+ if(StringUtils.isBlank(salesPolicyItem.getCode()))
|
|
|
+ {
|
|
|
+ throw new SecurityException("第"+i+"行商品未填写,");
|
|
|
+ }
|
|
|
+ R<GoodsDesc> goodsDescR = goodsDescClient.GoodsByCode(salesPolicyItem.getCode());
|
|
|
+ if(!goodsDescR.isSuccess()||goodsDescR.getData()==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("第"+i+"行,请填写真实正确的商品编码");
|
|
|
+ }
|
|
|
+ //查询itemId
|
|
|
+ GoodsDesc goodsDesc = goodsDescR.getData();
|
|
|
+ salesPolicyItem.setItemId(goodsDesc.getId());
|
|
|
+ salesPolicyItem.setBrand(goodsDesc.getBrand());
|
|
|
+ salesPolicyItem.setTypeno(goodsDesc.getTypeno());
|
|
|
+ salesPolicyItem.setCorpId(goodsDesc.getCorpId());
|
|
|
+ salesPolicyItem.setCorpName(goodsDesc.getCorpName());
|
|
|
+ salesPolicyItem.setSalesType("1");
|
|
|
+ //产品分类
|
|
|
+ GoodsType goodsType = goodsDescClient.goodTypeId(goodsDesc.getId());
|
|
|
+ if(goodsType==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("第"+i+"行,根据此编码获取分类失败");
|
|
|
+ }
|
|
|
+ salesPolicyItem.setProductCategory(goodsType.getCname());
|
|
|
+ list.add(salesPolicyItem);
|
|
|
+ }
|
|
|
+ return R.data(list);
|
|
|
+ }
|
|
|
+
|
|
|
private String getUserName(Long user){
|
|
|
String userName = null;
|
|
|
R<User> create = userClient.userInfoById(user);
|