diff --git a/pom.xml b/pom.xml
index fdccf5b..f3051d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -233,6 +233,17 @@
xxl-job-core
1.9.0
+
+
+ org.apache.poi
+ poi
+ 3.17
+
+
+ org.apache.poi
+ poi-ooxml
+ 3.17
+
diff --git a/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java b/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java
index 81ba447..30fcdb3 100644
--- a/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java
+++ b/src/main/java/com/kiisoo/ic/customer/service/CustomerViewService.java
@@ -342,7 +342,8 @@ public class CustomerViewService {
//找到最小公司
Set param = new HashSet<>();
param.add(companyId);
- Set minCompany = retailCompanyService.getMinCompany(param);
+ Set minCompany = new HashSet<>();
+ retailCompanyService.getMinCompany(param,minCompany);
//找到公司店铺
List shops = new ArrayList<>();
diff --git a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java
index 8356109..233d7c9 100644
--- a/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java
+++ b/src/main/java/com/kiisoo/ic/generalize/service/RetailCompanyService.java
@@ -412,16 +412,25 @@ public class RetailCompanyService {
/**
* 找到最小公司集合
*/
- public Set getMinCompany(Set companys){
- Set minest = new HashSet<>();
- Set listOfOrg = retailCompanyMapper.selectChildList(companys);
- //增加最小公司
- if(listOfOrg.size() > 0){
- companys.removeAll(listOfOrg);
- minest.addAll(getMinCompany(companys));
+ public void getMinCompany(Set companys,Set needs){
+ companys.forEach(item -> {
+ getMinCompany(item, needs);
+ });
+ }
+
+ /**
+ * 找到最小公司集合
+ */
+ public void getMinCompany(Long company,Set needs){
+ QueryWrapper q = new QueryWrapper();
+ q.eq("parent_id", company);
+ List listOfOrg = retailCompanyMapper.selectList(q);
+ Set companys = listOfOrg.stream().map(item -> item.getId()).collect(Collectors.toSet());
+ if(companys.size() > 0) {
+ getMinCompany(companys, needs);
}else{
- minest.addAll(companys);
+ needs.add(company);
}
- return minest;
}
+
}
diff --git a/src/test/java/init/OrganizationInit.java b/src/test/java/init/OrganizationInit.java
index 577b026..8e7e242 100644
--- a/src/test/java/init/OrganizationInit.java
+++ b/src/test/java/init/OrganizationInit.java
@@ -1,15 +1,291 @@
package init;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.Map.Entry;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.kiisoo.ic.app.IcApplication;
+import com.kiisoo.ic.store.entity.PoiStore;
+import com.kiisoo.ic.store.entity.PoiStoreStaff;
+import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
+import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
+import com.kiisoo.ic.store.service.PoiStoreStaffService;
+import com.kiisoo.ic.system.entity.PrivilageUserDO;
+import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.stereotype.Service;
+import org.springframework.test.context.junit4.SpringRunner;
+
/**
* 组织数据初始化
* Created by hc on 2020/4/21
*/
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = IcApplication.class)
public class OrganizationInit {
+ static String sellerPath = "D:\\Backup\\桌面\\各种客户端\\bsd\\智慧导购\\初始人员数据.xlsx";
+ static String[] sellerColumns= {"店铺编码","店铺名称","姓名","账号","别名","职务","性别","手机","座机","个人邮箱","地址"};
+
+ static String filePath = null;
+ static String columns[] = null;
+ static Integer col = null;
+ static Integer maxRow = null;
+ //seller
+ static String dataType = null;
+ //初始化行列数据
+ static {
+ //文件路径
+ filePath = sellerPath;
+ //对应文件所取列名
+ columns = sellerColumns;
+ //需要取的行数,若全部则置零
+ maxRow = 0;
+ dataType = "seller";
+ }
+
+ @Autowired
+ private PoiStoreStaffDOMapper poiStoreStaffDOMapper;
+
+ @Autowired
+ private PoiStoreDOMapper poiStoreDOMapper;
- public static void main(String[] args) {
+ @Autowired
+ private PrivilageUserDOMapper privilageUserDOMapper;
+ /**
+ * 入库
+ */
+ private void inDB() {
+ if(dataType.equals("seller")){
+ inDBSeller();
+ }
+ }
+
+ //获取字符串转换实体
+ public void getEntity(String json){
+ //字符串转实体
+ UserInitDO u = JSON.parseObject(json, UserInitDO.class);
+ duplicateRemovalSeller(u);
+ }
+ //导购去重map
+ private Map sellerMap = new HashMap<>();
+ //去重导购
+ public void duplicateRemovalSeller(UserInitDO u){
+ sellerMap.put(u.getShopCode()+u.getAccount(), u);
+ }
+ //导购入库
+ public void inDBSeller(){
+ sellerMap.forEach((k,v) -> {
+ String sellerCode = v.getAccount() == null ? v.getPhone() : v.getAccount();
+ String phone = v.getPhone() == null ? v.getAccount() : v.getPhone();
+ String shopCode = v.getShopCode();
+ long shopId = 0;
+ if(sellerCode == null || phone == null){
+ System.out.println("无法找到唯一标示异常");
+ }
+ //查看店铺
+ if(shopCode != null){
+ PoiStore p = new PoiStore();
+ p.setCode(shopCode);
+ PoiStore shop = poiStoreDOMapper.selectOne(new QueryWrapper<>(p));
+ if(null != shop){
+ shopId = shop.getId();
+ }
+ }
+ //查看用户
+ PrivilageUserDO userdo = new PrivilageUserDO();
+ userdo.setMobil(phone);
+ PrivilageUserDO us = privilageUserDOMapper.selectOne(new QueryWrapper<>(userdo));
+ if (null == us) {
+ //如果没有用户就增加
+ us = new PrivilageUserDO();
+ us.setName(v.getName());
+ us.setMobil(phone);
+ us.setEmail(v.getEmail());
+ us.setAddress(v.getAdress());
+ us.setStatus(1);
+ us.setCreateTime(new Date());
+ us.setUpdateTime(new Date());
+ privilageUserDOMapper.insert(us);
+ }
+ //增加导购
+ PoiStoreStaff p = new PoiStoreStaff();
+ p.setStoreId(shopId);
+ p.setUserId(us.getId());
+ p.setStoreCode(v.getShopCode());
+ p.setStaffCode(sellerCode);
+ p.setType(getType(v.getPosition()));
+ p.setStatus(1l);
+ p.setCreateTime(new Date());
+ p.setUpdateTime(new Date());
+ poiStoreStaffDOMapper.insert(p);
+ });
+ }
+ public long getType(String position){
+ //零售经理, 店长, 信息主管, 零售主管, 店助, 导购, 店员, 已离职, PO
+ //1 店长 2 副店长 3 店长助理 4 导购 5零售经理 6信息主管 7店员 8PO 9零售主管 10已离职 11未定义
+ long type = 0;
+ if(position == null){
+ type = 11;
+ }else if(position.equals("零售经理")) {
+ type = 5;
+ }else if(position.equals("店长")){
+ type = 1;
+ }else if(position.equals("信息主管")){
+ type = 6;
+ }else if(position.equals("零售主管")){
+ type = 9;
+ }else if(position.equals("店助")){
+ type = 3;
+ }else if(position.equals("导购")){
+ type = 4;
+ }else if(position.equals("店员")){
+ type = 7;
+ }else if(position.equals("已离职")){
+ type = 10;
+ }else if(position.contains("PO")){
+ type = 8;
+ }
+ return type;
}
+ static {
+ col = columns.length;
+ }
+
+ @Test
+ public void initData() {
+ Workbook wb =null;
+ Sheet sheet = null;
+ Row row = null;
+ List