From 1f277b80fecf6094fea63bd00f3b1218acba0027 Mon Sep 17 00:00:00 2001 From: wangweijia <495720349@qq.com> Date: Sun, 26 Apr 2020 18:58:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/PrivilageOrganizational.java | 5 + src/test/java/init/OrganizationInit.java | 171 ++++++++++++++---- .../java/init/OrganizationInitCompany.java | 1 + .../java/init/OrganizationInitCustomer.java | 5 +- .../java/init/OrganizationInitRegion.java | 2 +- src/test/java/init/OrganizationInitShop.java | 30 ++- src/test/java/init/RegionInitDO.java | 28 +++ src/test/java/init/UserInitDO.java | 23 ++- 8 files changed, 213 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/generalize/entity/PrivilageOrganizational.java b/src/main/java/com/kiisoo/ic/generalize/entity/PrivilageOrganizational.java index 3a14f08..4da3568 100644 --- a/src/main/java/com/kiisoo/ic/generalize/entity/PrivilageOrganizational.java +++ b/src/main/java/com/kiisoo/ic/generalize/entity/PrivilageOrganizational.java @@ -21,6 +21,11 @@ public class PrivilageOrganizational { @TableId(type = IdType.AUTO) private Long id; + /** + * 组织编码 + */ + private String code; + /** * 部门名称 */ diff --git a/src/test/java/init/OrganizationInit.java b/src/test/java/init/OrganizationInit.java index 1e74fcd..7e0e897 100644 --- a/src/test/java/init/OrganizationInit.java +++ b/src/test/java/init/OrganizationInit.java @@ -10,13 +10,28 @@ 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.common.utils.MD5FileUtil; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; +import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizationalMember; +import com.kiisoo.ic.generalize.mapper.OrganizationalMemberMapper; +import com.kiisoo.ic.generalize.mapper.RetailCompanyMapper; import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.entity.PoiStoreStaff; +import com.kiisoo.ic.store.entity.PrivilageCpUserStoreDO; import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; +import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; import com.kiisoo.ic.store.service.PoiStoreStaffService; +import com.kiisoo.ic.system.entity.PrivilageAccountDO; import com.kiisoo.ic.system.entity.PrivilageUserDO; +import com.kiisoo.ic.system.entity.PrivilageUserRoleDO; +import com.kiisoo.ic.system.mapper.PrivilageAccountDOMapper; +import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper; import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper; +import com.kiisoo.ic.system.mapper.PrivilageUserRoleDOMapper; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; @@ -38,8 +53,9 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = IcApplication.class) public class OrganizationInit { - static String sellerPath = "D:\\Backup\\桌面\\各种客户端\\bsd\\智慧导购\\初始人员数据20200422.xlsx"; - static String[] sellerColumns= {"店铺","店铺编码","userid","姓名","账号","别名","职务","性别","手机","座机","个人邮箱","地址"}; + static String sellerPath = "D:\\Backup\\桌面\\各种客户端\\bsd\\智慧导购\\初始人员数据20200424(1).xlsx"; + //有组织编码为零售公司,角色为总部运营人员, 有别名店长,其他的为导购, + static String[] sellerColumns= {"pos店铺编码","组织编码","店铺名","姓名","账号","别名","角色"}; static String filePath = null; static String columns[] = null; @@ -66,6 +82,24 @@ public class OrganizationInit { @Autowired private PrivilageUserDOMapper privilageUserDOMapper; + + @Autowired + private PrivilageCpUserDOMapper privilageCpUserDOMapper; + + @Autowired + private PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper; + + @Autowired + private OrganizationalMemberMapper organizationalMemberMapper; + + @Autowired + private RetailCompanyMapper retailCompanyMapper; + + @Autowired + private PrivilageUserRoleDOMapper privilageUserRoleDOMapper; + + @Autowired + private PrivilageAccountDOMapper privilageAccountDOMapper; /** * 入库 */ @@ -134,45 +168,116 @@ public class OrganizationInit { } //增加导购 - 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()); - if(v.getCustomerUserId() != null && !v.getCustomerUserId().equals("mal")){ - p.setCustomerUserId(Long.parseLong(v.getCustomerUserId())); + long statffType = getStaffType(v); + if (statffType == 1 || statffType == 4) { + //店涨,导购需要加staff + PoiStoreStaff p = new PoiStoreStaff(); + p.setStoreId(shopId); + p.setUserId(us.getId()); + p.setStoreCode(v.getShopCode()); + p.setStaffCode(sellerCode); + p.setType(statffType); + p.setStatus(1l); + p.setCreateTime(new Date()); + p.setUpdateTime(new Date()); + if(v.getCustomerUserId() != null && !v.getCustomerUserId().equals("mal")){ + p.setCustomerUserId(Long.parseLong(v.getCustomerUserId())); + } + poiStoreStaffDOMapper.insert(p); + + //如果是店长,需要绑定店铺cp + if (statffType == 1) { + //排重---根据企业微信账号查询是否存在用户 + PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO(); + privilageCpUserDO.setCpUserId(v.getCustomerUserId()); + int insert = privilageCpUserDOMapper.insert(privilageCpUserDO); + PrivilageCpUserStoreDO cpUserStore = new PrivilageCpUserStoreDO(); + cpUserStore.setStoreId(shopId); + cpUserStore.setCpUserId(privilageCpUserDO.getId()); + privilageCpUserStoreDOMapper.insert(cpUserStore); + } + }else if(statffType == 9){ + //零售公司 + //绑定用户和零售公司 + QueryWrapper q = new QueryWrapper<>(); + q.eq("code",v.getCompanyCode().replace(".0","")); + PrivilageOrganizational comp = retailCompanyMapper.selectOne(q); + if (comp!=null) { + PrivilageOrganizationalMember mem = new PrivilageOrganizationalMember(); + mem.setOrgId(comp.getId()); + mem.setUserId(us.getId()); + mem.setCreateTime(new Date()); + mem.setUpdateTime(new Date()); + organizationalMemberMapper.insert(mem); + } } - poiStoreStaffDOMapper.insert(p); + + //不管什么类型都要绑定角色 + PrivilageUserRoleDO privilageUserRoleDO = new PrivilageUserRoleDO(); + privilageUserRoleDO.setUserId(us.getId()); + privilageUserRoleDO.setRoleId(getRoleType(v)); + privilageUserRoleDO.setCreateTime(new Date()); + privilageUserRoleDO.setUpdateTime(new Date()); + privilageUserRoleDOMapper.insert(privilageUserRoleDO); + //创建账号,密码为账号加123 + PrivilageAccountDO acc = new PrivilageAccountDO(); + acc.setLogin(v.getAccount()); + acc.setPassword(MD5FileUtil.getMD5String(v.getAccount()+"123")); + acc.setUserId(us.getId()); + acc.setType(1); + acc.setStatus(1); + acc.setCreateTime(new Date()); + acc.setUpdateTime(new Date()); + privilageAccountDOMapper.insert(acc); }); } - public long getType(String position){ + public long getStaffType(UserInitDO u){ //零售经理, 店长, 信息主管, 零售主管, 店助, 导购, 店员, 已离职, 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("零售主管")){ + String al = u.getAlias(); + String role = u.getRole(); + String compnayCode = u.getCompanyCode(); + if(StringUtils.isNotBlank(compnayCode)){ + //零售公司 type = 9; - }else if(position.equals("店助")){ - type = 3; - }else if(position.equals("导购")){ + }else if(role.equals("总部运营人员")) { + //总部运营 + + }else if(al != null){ + //店长 + type = 1; + }else{ + //导购 type = 4; - }else if(position.equals("店员")){ - type = 7; - }else if(position.equals("已离职")){ - type = 10; - }else if(position.contains("PO")){ - type = 8; + } + return type; + } + + public long getRoleType(UserInitDO u){ + //零售经理, 店长, 信息主管, 零售主管, 店助, 导购, 店员, 已离职, PO + //1 店长 2 副店长 3 店长助理 4 导购 5零售经理 6信息主管 7店员 8PO 9零售主管 10已离职 11未定义 +// 1 GLY-ADMIN 系统管理员 +// 2 GL-YUNYING 总部运营人员 +// 3 DG-YUNYING 运营人员 +// 5 DZ-DIANZHANG 店长 +// 6 DG-DAOGOU 导购 + long type = 0; + String al = u.getAlias(); + String role = u.getRole(); + String compnayCode = u.getCompanyCode(); + if(StringUtils.isNotBlank(compnayCode)){ + //零售公司 + type = 3; + }else if(role.equals("总部运营人员")) { + //总部运营 + type = 2; + }else if(al != null){ + //店长 + type = 5; + }else{ + //导购 + type = 6; } return type; } diff --git a/src/test/java/init/OrganizationInitCompany.java b/src/test/java/init/OrganizationInitCompany.java index 6a090da..db7c759 100644 --- a/src/test/java/init/OrganizationInitCompany.java +++ b/src/test/java/init/OrganizationInitCompany.java @@ -95,6 +95,7 @@ public class OrganizationInitCompany { if(null == parent){ System.out.println("父区域异常"); } + parentId = parent.getId(); } diff --git a/src/test/java/init/OrganizationInitCustomer.java b/src/test/java/init/OrganizationInitCustomer.java index 98c2bec..083740f 100644 --- a/src/test/java/init/OrganizationInitCustomer.java +++ b/src/test/java/init/OrganizationInitCustomer.java @@ -53,7 +53,7 @@ public class OrganizationInitCustomer { maxRow = 0; dataType = "customer"; sheetNum = "客户"; - regionLevel = 1; + regionLevel = 3; } @Autowired @@ -101,6 +101,9 @@ public class OrganizationInitCustomer { PrivilageOrganizational parent = retailCompanyMapper.selectOne(new QueryWrapper<>(p)); if(null == parent){ System.out.println("父区域异常"); + }else if(parent.getCode() == null){ + parent.setCode(v.getParentCode().replace(".0","")); + retailCompanyMapper.updateById(parent); } parentId = parent.getId(); } diff --git a/src/test/java/init/OrganizationInitRegion.java b/src/test/java/init/OrganizationInitRegion.java index 0d94238..2e3c1bd 100644 --- a/src/test/java/init/OrganizationInitRegion.java +++ b/src/test/java/init/OrganizationInitRegion.java @@ -56,7 +56,7 @@ public class OrganizationInitRegion { maxRow = 0; dataType = "region"; sheetNum = 0; - regionLevel = 3; + regionLevel = 1; } @Autowired diff --git a/src/test/java/init/OrganizationInitShop.java b/src/test/java/init/OrganizationInitShop.java index a4db395..dba9271 100644 --- a/src/test/java/init/OrganizationInitShop.java +++ b/src/test/java/init/OrganizationInitShop.java @@ -34,7 +34,7 @@ import java.util.Map.Entry; @RunWith(SpringRunner.class) @SpringBootTest(classes = IcApplication.class) public class OrganizationInitShop { - static String shopPath = "D:\\Backup\\桌面\\各种客户端\\bsd\\智慧导购\\组织数据20200422.xlsx"; + static String shopPath = "D:\\Backup\\桌面\\各种客户端\\bsd\\智慧导购\\组织数据20200422 - 副本.xlsx"; static String[] shopColumns= {"上级组织","店铺编码","店铺名称","店铺简称","网点地址","网点经营性质","店铺级别"}; static String filePath = null; @@ -93,7 +93,15 @@ public class OrganizationInitShop { //区域入库 public void inDBRegion(){ - shopMap.forEach((k,v) -> { + System.out.println(shopMap.size()); + int i = 0; + + for(String k : shopMap.keySet()){ + i ++; + if(k.equals("石家庄市长安区建华百货大楼四楼波司登专厅石家庄终端")){ + System.out.println(""); + } + ShopInitDO v = shopMap.get(k); //查看是否有此店铺 QueryWrapper qw = new QueryWrapper<>(); qw.eq("code", v.getShopCode()); @@ -127,17 +135,23 @@ public class OrganizationInitShop { //找到区域域 PrivilageDomainDO domain = privilageDomainDOMapper.selectDomain(parentId, 1,1); - //对接域店铺关系 + + //找到区域店铺关系 PrivilageDomainEntityDO ent = new PrivilageDomainEntityDO(); ent.setDomainId(domain.getId()); ent.setEntityId(poiStore.getId()); - ent.setType(3); - ent.setCreateTime(new Date()); - ent.setUpdateTime(new Date()); - privilageDomainEntityDOMapper.insert(ent); + if(privilageDomainEntityDOMapper.selectOne(new QueryWrapper<>(ent)) == null){ + //对接域店铺关系 + ent.setType(3); + ent.setCreateTime(new Date()); + ent.setUpdateTime(new Date()); + privilageDomainEntityDOMapper.insert(ent); + }else{ + System.out.println("s"); + } } + } - }); } public long getType(String shopType){ //零售经理, 店长, 信息主管, 零售主管, 店助, 导购, 店员, 已离职, PO diff --git a/src/test/java/init/RegionInitDO.java b/src/test/java/init/RegionInitDO.java index 2058db5..4d26902 100644 --- a/src/test/java/init/RegionInitDO.java +++ b/src/test/java/init/RegionInitDO.java @@ -41,6 +41,24 @@ public class RegionInitDO { @JSONField(name = "上级组织") private String parentName; + /** + * 上级编码 + */ + @JSONField(name = "上级组织编码") + private String upCode; + + /** + * 上级编码 + */ + @JSONField(name = "零售公司编码") + private String companyCode; + + + /** + * 上级编码 + */ + private String parentCode; + /** * 组织结构层级 */ @@ -70,4 +88,14 @@ public class RegionInitDO { this.customerName = customerName; this.name = customerName; } + + public void setUpCode(String upCode) { + this.upCode = upCode; + this.parentCode = upCode; + } + + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + this.parentCode = companyCode; + } } diff --git a/src/test/java/init/UserInitDO.java b/src/test/java/init/UserInitDO.java index b25d61e..39accba 100644 --- a/src/test/java/init/UserInitDO.java +++ b/src/test/java/init/UserInitDO.java @@ -6,10 +6,10 @@ import lombok.Data; @Data public class UserInitDO { - @JSONField(name = "店铺编码") + @JSONField(name = "pos店铺编码") private String shopCode ; - @JSONField(name = "店铺名称") + @JSONField(name = "店铺名") private String shopName ; @JSONField(name = "姓名") @@ -21,12 +21,6 @@ public class UserInitDO { @JSONField(name = "别名") private String alias ; - @JSONField(name = "职务") - private String position ; - - @JSONField(name = "性别") - private String sex ; - @JSONField(name = "手机") private String phone ; @@ -36,6 +30,17 @@ public class UserInitDO { @JSONField(name = "地址") private String adress ; - @JSONField(name = "userid") + @JSONField(name = "角色") + private String role ; + + @JSONField(name = "组织编码") + private String companyCode ; + private String customerUserId; + + public void setAccount(String account) { + this.account = account; + this.customerUserId = account; + + } }