From 6066e7d89bd14e5259ddb5192e3a57c1fb3830d3 Mon Sep 17 00:00:00 2001 From: yechenhao Date: Wed, 27 May 2020 17:09:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=B7=BB=E5=8A=A0=E6=8E=A8?= =?UTF-8?q?=E5=B9=BF=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kiisoo/ic/customer/CustomerService.java | 2 +- .../job/behavior/StorePromotionDataJob.java | 2 +- .../controller/StoreEmployeeController.java | 15 +++ .../store/service/PoiStoreStaffService.java | 27 ++++ .../store/service/StoreEmployeeService.java | 119 ++++++++++++++++++ 5 files changed, 163 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/kiisoo/ic/customer/CustomerService.java b/src/main/java/com/kiisoo/ic/customer/CustomerService.java index 3410024..124f981 100644 --- a/src/main/java/com/kiisoo/ic/customer/CustomerService.java +++ b/src/main/java/com/kiisoo/ic/customer/CustomerService.java @@ -213,7 +213,7 @@ public class CustomerService { } if (TurnBackDTO.OP_TYPE_DEL.equals(turnBackDTOS.getOpType())) { - handleDelCustomer(turnBackDTOS); +// handleDelCustomer(turnBackDTOS); } else { handleAddCustomer(turnBackDTOS); } diff --git a/src/main/java/com/kiisoo/ic/job/behavior/StorePromotionDataJob.java b/src/main/java/com/kiisoo/ic/job/behavior/StorePromotionDataJob.java index 95e56cc..0adcfdc 100644 --- a/src/main/java/com/kiisoo/ic/job/behavior/StorePromotionDataJob.java +++ b/src/main/java/com/kiisoo/ic/job/behavior/StorePromotionDataJob.java @@ -46,7 +46,7 @@ public class StorePromotionDataJob { sysTaskDO = new SysTaskDO(TASK_NAME_USER_BEHAVIOR,TASK_STATUS_RUNNING,TASK_TYPE_USER_BEHAVIOR,new Date()); sysTaskDOMapper.insert(sysTaskDO); log.info("<--获取联系客户统计数据定时任务执行-->"); - customerBehaviorJob.handle(DateUtils.addDay(new Date(),-3),new Date(),sysTaskDO); + customerBehaviorJob.handle(DateUtils.addDay(new Date(),-3),DateUtils.addDay(new Date(),-1),sysTaskDO); log.info("<--获取联系客户统计数据定时任务结束-->"); } } catch (Exception e) { diff --git a/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java index 078dce3..951837a 100644 --- a/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java +++ b/src/main/java/com/kiisoo/ic/store/controller/StoreEmployeeController.java @@ -64,6 +64,21 @@ public class StoreEmployeeController extends BaseController { return fail(); } } + /** + * 批量上传文件 + * @return + */ + @RequestMapping(value = "staff/import",method = RequestMethod.POST) + @ResponseBody + public Map importShopStaffByExcel(@RequestParam("file") MultipartFile file) { + try { + List importErrorDTOS = storeEmployeeService.importShopStaffByExcel(file); + return data(importErrorDTOS); + } catch (Exception e) { + log.error("添加用户失败", e); + return fail(); + } + } /** * 批量下载店铺二维码 diff --git a/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java index 34117b7..c608083 100644 --- a/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java +++ b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java @@ -7,12 +7,15 @@ import com.kiisoo.ic.constants.Constants; import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation; import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper; import com.kiisoo.ic.domain.service.PrivilageDomainService; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; import com.kiisoo.ic.employee.entity.QrCodeDO; import com.kiisoo.ic.employee.entity.QrCodeVO; +import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.employee.service.QrCodeService; import com.kiisoo.ic.store.entity.PoiStore; import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.entity.PoiStoreStaffVO; +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; @@ -73,6 +76,8 @@ public class PoiStoreStaffService { @Autowired private PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper; @Autowired + private PrivilageCpUserDOMapper privilageCpUserDOMapper; + @Autowired private PrivilageAccountService privilageAccountService; @Autowired private PrivilageUserService privilageUserService; @@ -310,6 +315,28 @@ public class PoiStoreStaffService { poiStoreStaff.setUserId(userId); if (privilageRoleDO.getCode().equals("DZ-DIANZHANG")){ poiStoreStaff.setType(1L); + QueryWrapper cpUserQw = new QueryWrapper<>(); + cpUserQw.eq("cp_user_id",poiStoreStaffVO.getStaffCode()).last("limit 1"); + PrivilageCpUserDO privilageCpUserDO = privilageCpUserDOMapper.selectOne(cpUserQw); + if (privilageCpUserDO == null){ + privilageCpUserDO = new PrivilageCpUserDO(); + privilageCpUserDO.setCpUserId(poiStoreStaffVO.getStaffCode()); + privilageCpUserDO.setMobile(poiStoreStaffVO.getStaffCode()); + privilageCpUserDO.setPosition("店长"); + privilageCpUserDO.setName(poiStoreStaffVO.getName()); + privilageCpUserDO.setAlias(poiStoreStaffVO.getName()); + privilageCpUserDO.setStatus(1); + privilageCpUserDOMapper.insert(privilageCpUserDO); + } + QueryWrapper relationQw = new QueryWrapper<>(); + relationQw.eq("cp_user_id",privilageCpUserDO.getId()).eq("store_id",poiStoreStaffVO.getStoreId()).last("limit 1"); + PrivilageCpUserStoreDO privilageCpUserStoreDO = privilageCpUserStoreDOMapper.selectOne(relationQw); + if (privilageCpUserStoreDO == null){ + privilageCpUserStoreDO = new PrivilageCpUserStoreDO(); + privilageCpUserStoreDO.setCpUserId(privilageCpUserDO.getId()); + privilageCpUserStoreDO.setStoreId(poiStoreStaffVO.getStoreId()); + privilageCpUserStoreDOMapper.insert(privilageCpUserStoreDO); + } }else if(privilageRoleDO.getCode().equals("DG-DAOGOU")){ poiStoreStaff.setType(4L); } diff --git a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java index eb0c80d..8a27d0f 100644 --- a/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java +++ b/src/main/java/com/kiisoo/ic/store/service/StoreEmployeeService.java @@ -112,6 +112,9 @@ public class StoreEmployeeService { @Autowired private PoiStoreStaffDOMapper poiStoreStaffDOMapper; + @Autowired + private PoiStoreStaffService poiStoreStaffService; + @Autowired private PrivilageDepartmentDOMapper departmentDOMapper; @@ -813,6 +816,46 @@ public class StoreEmployeeService { return results; } + /** + * 导入excel门店员工 + * + * @param file excel文件 + * @return + * @throws Exception + */ + public List importShopStaffByExcel(MultipartFile file) throws Exception { + List results = new ArrayList<>(); + if (file != null) { + if (!file.isEmpty()) { + //获取文件名 + String fileName = file.getOriginalFilename(); + InputStream fileInput = file.getInputStream(); + // 根据后缀创建EXCEL对象 + Workbook book; + if (ExcelUtils.isExcel2007(fileName)) { + book = new XSSFWorkbook(fileInput); + } else { + book = new HSSFWorkbook(fileInput); + } + + // 得到第一个sheet + Sheet sheet = book.getSheetAt(0); + // 得到Excel的行数 + int totalRows = sheet.getPhysicalNumberOfRows(); + + // 循环Excel行数,获取数据 + for (int r = 1; r < totalRows; r++) { + Row dataRow = sheet.getRow(r); + if (dataRow == null) { + continue; + } + addRowStaffInfo(dataRow, results, r); + } + } + } + return results; + } + /** * Excel导入门店号-添加行信息 * @@ -888,6 +931,82 @@ public class StoreEmployeeService { } } + /** + * Excel导入门店员工-添加行信息 + * + * @param dataRow 行对象 + * @param results 错误信息集合 + * @param row 行数 + * @throws Exception + */ + private void addRowStaffInfo(Row dataRow, List results, Integer row) throws Exception { + //初始化导购对象 + com.kiisoo.ic.store.entity.PoiStoreStaffVO poiStoreStaffVO = new com.kiisoo.ic.store.entity.PoiStoreStaffVO(); + //店铺code + String shopCode = dataRow.getCell(0).getStringCellValue(); + if (StringUtils.isBlank(shopCode)) { + getReason(row, "未填写店铺Code", results); + return; + } + //查询店铺信息 + QueryWrapper storeParams = new QueryWrapper<>(); + storeParams.eq(DATABASE_CODE_KEY, shopCode).last("limit 1"); + PoiStore poiStore = poiStoreDOMapper.selectOne(storeParams); + if (poiStore == null) { + getReason(row, "未找到店铺", results); + return; + } + poiStoreStaffVO.setStoreId(poiStore.getId()); + + //获取员工名 + String name = dataRow.getCell(1).getStringCellValue(); + if (StringUtils.isBlank(name)) { + getReason(row, "未填写推广人员名称", results); + return; + } + poiStoreStaffVO.setName(name); + + + String mobile = dataRow.getCell(2).getStringCellValue(); + if (StringUtils.isBlank(mobile)) { + getReason(row, "未填写手机号", results); + return; + } + poiStoreStaffVO.setMobil(mobile); + + String staffCode = dataRow.getCell(3).getStringCellValue(); + if (StringUtils.isBlank(staffCode)) { + getReason(row, "未填写工号", results); + return; + } + poiStoreStaffVO.setStaffCode(staffCode); + + String roleCode = dataRow.getCell(4).getStringCellValue(); + if (StringUtils.isBlank(roleCode)) { + getReason(row, "未填写角色", results); + return; + } + poiStoreStaffVO.setRole(roleCode); + + String returnCode = poiStoreStaffService.addStaff(poiStoreStaffVO); + switch (returnCode){ + case "0001": + getReason(row, "新增失败,请联系管理员", results); + return; + case "0002": + getReason(row, "该员工已存在", results); + return; + case "0003": + getReason(row, "该手机号已存在", results); + return; + case "0004": + getReason(row, "该账号已存在", results); + return; + default: + return; + } + } + /** * 添加错误原因 *