|  |  |  | 
|---|
|  |  |  | import com.core.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.core.common.BaseRes; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.DateUtils; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.domain.KeyValueVo; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.zy.crm.manager.entity.Cstmr; | 
|---|
|  |  |  | import com.zy.crm.manager.entity.CstmrFoll; | 
|---|
|  |  |  | import com.zy.crm.manager.entity.CstmrType; | 
|---|
|  |  |  | import com.zy.crm.manager.entity.Order; | 
|---|
|  |  |  | import com.zy.crm.manager.service.CstmrFollService; | 
|---|
|  |  |  | import com.zy.crm.manager.service.CstmrService; | 
|---|
|  |  |  | import com.zy.crm.manager.service.CstmrTypeService; | 
|---|
|  |  |  | import com.zy.crm.manager.service.OrderService; | 
|---|
|  |  |  | import com.zy.crm.manager.utils.CompanySearchUtils; | 
|---|
|  |  |  | import com.zy.crm.system.entity.Dept; | 
|---|
|  |  |  | import com.zy.crm.system.entity.Dic; | 
|---|
|  |  |  | import com.zy.crm.system.entity.Role; | 
|---|
|  |  |  | import com.zy.crm.system.entity.User; | 
|---|
|  |  |  | import com.zy.crm.system.service.DeptService; | 
|---|
|  |  |  | import com.zy.crm.system.service.DicService; | 
|---|
|  |  |  | import com.zy.crm.system.service.UserService; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | 
|---|
|  |  |  | private CstmrTypeService cstmrTypeService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DicService dicService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DeptService deptService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderService orderService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/{id}/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok(cstmrService.selectById(String.valueOf(id))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/name/check/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R getName(String name) { | 
|---|
|  |  |  | Cstmr cstmr = cstmrService.selectByName(getHostId(), name); | 
|---|
|  |  |  | if (Cools.isEmpty(cstmr) || cstmr==null){ | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return R.error(name+"已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R page(@RequestParam(defaultValue = "1") Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10") Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false) String followerName, | 
|---|
|  |  |  | @RequestParam(required = false) String conditionName, | 
|---|
|  |  |  | @RequestParam(required = false) String condition, | 
|---|
|  |  |  | @RequestParam(required = false, value = "dept_id") Long deptId, | 
|---|
|  |  |  | @RequestParam(required = false, value = "user_id") Long userId){ | 
|---|
|  |  |  | return R.ok(cstmrService.getPage(new Page<>(curr, limit) | 
|---|
|  |  |  | if (getUser().getRoleId()!=1){ | 
|---|
|  |  |  | if (!getUser().getNickname().equals("陈燕")){ | 
|---|
|  |  |  | return R.ok(new Page<Cstmr>()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Integer> ids = new ArrayList<>(); | 
|---|
|  |  |  | if (!Cools.isEmpty(followerName)){ | 
|---|
|  |  |  | User username = userService.selectOne(new EntityWrapper<User>().eq("username", followerName)); | 
|---|
|  |  |  | if (!Cools.isEmpty(username)){ | 
|---|
|  |  |  | List<CstmrFoll> cstmrIds = cstmrFollService.selectCstmrIdUserId(username.getId().intValue()); | 
|---|
|  |  |  | for (CstmrFoll id : cstmrIds){ | 
|---|
|  |  |  | ids.add(id.getCstmrId().intValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return R.error("未查询到跟进人信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(conditionName)){ | 
|---|
|  |  |  | switch (conditionName){ | 
|---|
|  |  |  | case "director": | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | condition=userService.selectOne(new EntityWrapper<User>().eq("username", condition)).getId().toString(); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | conditionName = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long director = null; | 
|---|
|  |  |  | if (deptId==null && userId == null){ | 
|---|
|  |  |  | if (getRole().getId()==3){ | 
|---|
|  |  |  | userId = getUserId(); | 
|---|
|  |  |  | }else if (getRole().getId()==2){ | 
|---|
|  |  |  | deptId = getDeptId(); | 
|---|
|  |  |  | userId = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | director = getUserId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(cstmrService.getPage3(new Page<>(curr, limit) | 
|---|
|  |  |  | , getHostId() | 
|---|
|  |  |  | , deptId == null ? null : String.valueOf(deptId) | 
|---|
|  |  |  | , userId == null ? getUserId() : userId | 
|---|
|  |  |  | , userId | 
|---|
|  |  |  | , director | 
|---|
|  |  |  | , Cools.isEmpty(followerName) ? null : ids | 
|---|
|  |  |  | , conditionName | 
|---|
|  |  |  | , condition) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr2/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R page2(@RequestParam(defaultValue = "1") Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10") Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false) String followerName, | 
|---|
|  |  |  | @RequestParam(required = false) String conditionName, | 
|---|
|  |  |  | @RequestParam(required = false) String condition, | 
|---|
|  |  |  | @RequestParam(required = false, value = "dept_id") Long deptId, | 
|---|
|  |  |  | @RequestParam(required = false, value = "user_id") Long userId){ | 
|---|
|  |  |  | List<Integer> ids = new ArrayList<>(); | 
|---|
|  |  |  | if (!Cools.isEmpty(followerName)){ | 
|---|
|  |  |  | User username = userService.selectOne(new EntityWrapper<User>().eq("username", followerName)); | 
|---|
|  |  |  | if (!Cools.isEmpty(username)){ | 
|---|
|  |  |  | List<CstmrFoll> cstmrIds = cstmrFollService.selectCstmrIdUserId(username.getId().intValue()); | 
|---|
|  |  |  | for (CstmrFoll id : cstmrIds){ | 
|---|
|  |  |  | ids.add(id.getCstmrId().intValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return R.error("未查询到跟进人信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(conditionName)){ | 
|---|
|  |  |  | switch (conditionName){ | 
|---|
|  |  |  | case "director": | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | condition=userService.selectOne(new EntityWrapper<User>().eq("username", condition)).getId().toString(); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | conditionName = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long director = null; | 
|---|
|  |  |  | if (deptId==null && userId == null){ | 
|---|
|  |  |  | if (getRole().getId()==3){ | 
|---|
|  |  |  | userId = getUserId(); | 
|---|
|  |  |  | }else if (getRole().getId()==2){ | 
|---|
|  |  |  | deptId = getDeptId(); | 
|---|
|  |  |  | userId = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | director = getUserId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(cstmrService.getPage33(new Page<>(curr, limit) | 
|---|
|  |  |  | , getHostId() | 
|---|
|  |  |  | , deptId == null ? null : String.valueOf(deptId) | 
|---|
|  |  |  | , userId | 
|---|
|  |  |  | , director | 
|---|
|  |  |  | , Cools.isEmpty(followerName) ? null : ids | 
|---|
|  |  |  | , conditionName | 
|---|
|  |  |  | , condition) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/add/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | @ManagerAuth(memo = "添加甲方单位信息公海") | 
|---|
|  |  |  | public R add(Cstmr cstmr) { | 
|---|
|  |  |  | if (getUser().getRoleId()!=1){ | 
|---|
|  |  |  | if (!getUser().getNickname().equals("陈燕")){ | 
|---|
|  |  |  | return R.error("您没有添加权限"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long hostId = getHostId(); | 
|---|
|  |  |  | if (cstmrService.selectByUuid(hostId, cstmr.getUuid()) != null) { | 
|---|
|  |  |  | throw new CoolException("客户已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (cstmrService.selectByName(hostId, cstmr.getName()) != null) { | 
|---|
|  |  |  | throw new CoolException("客户已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Cstmr cstmr1 = cstmrService.selectByName(hostId, cstmr.getName()); | 
|---|
|  |  |  | if (cstmr1!=null){ | 
|---|
|  |  |  | throw new CoolException("该客户信息已存在,业务员是:"+cstmr1.getDirector$()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cstmr.setHostId(hostId); | 
|---|
|  |  |  | cstmr.setUuid(cstmrService.getUuid(hostId));  // 客户代号 | 
|---|
|  |  |  | 
|---|
|  |  |  | cstmr.setCreateTime(new Date()); | 
|---|
|  |  |  | cstmr.setUpdateBy(getUserId()); | 
|---|
|  |  |  | cstmr.setUpdateTime(new Date()); | 
|---|
|  |  |  | //        cstmr.setDirector(getUserId()); | 
|---|
|  |  |  | cstmr.setStatus(1); | 
|---|
|  |  |  | cstmrService.insert(cstmr); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/add2/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "添加甲方单位信息公海") | 
|---|
|  |  |  | public R add22(Cstmr cstmr) { | 
|---|
|  |  |  | Long hostId = getHostId(); | 
|---|
|  |  |  | if (cstmrService.selectByUuid(hostId, cstmr.getUuid()) != null) { | 
|---|
|  |  |  | throw new CoolException("客户已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (cstmrService.selectByName(hostId, cstmr.getName()) != null) { | 
|---|
|  |  |  | throw new CoolException("客户已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Cstmr cstmr1 = cstmrService.selectByName(hostId, cstmr.getName()); | 
|---|
|  |  |  | if (cstmr1!=null){ | 
|---|
|  |  |  | throw new CoolException("该客户信息已存在,业务员是:"+cstmr1.getDirector$()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cstmr.setHostId(hostId); | 
|---|
|  |  |  | cstmr.setUuid(cstmrService.getUuid(hostId));  // 客户代号 | 
|---|
|  |  |  | cstmr.setDeptId(getDeptId());               // 所属部门 | 
|---|
|  |  |  | cstmr.setUserId(getUserId());               // 所属人员 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | cstmr.setCreateBy(getUserId()); | 
|---|
|  |  |  | cstmr.setCreateTime(new Date()); | 
|---|
|  |  |  | cstmr.setUpdateBy(getUserId()); | 
|---|
|  |  |  | cstmr.setUpdateTime(new Date()); | 
|---|
|  |  |  | cstmr.setDirector(getUserId()); | 
|---|
|  |  |  | cstmr.setStatus(1); | 
|---|
|  |  |  | cstmrService.insert(cstmr); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr2/add/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "接取甲方单位") | 
|---|
|  |  |  | public R add2(Cstmr cstmr) { | 
|---|
|  |  |  | Cstmr cstmr1 = cstmrService.selectByName(getHostId(),cstmr.getName()); | 
|---|
|  |  |  | if (Cools.isEmpty(cstmr1) || cstmr1.getDirector()!=null){ | 
|---|
|  |  |  | return R.error("你无法接取此甲方单位!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cstmr1.setDirector(getUserId()); | 
|---|
|  |  |  | cstmrService.updateById(cstmr1); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/update/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | @ManagerAuth(memo = "更新甲方单位") | 
|---|
|  |  |  | public R update(Cstmr cstmr){ | 
|---|
|  |  |  | if (Cools.isEmpty(cstmr) || null==cstmr.getId()){ | 
|---|
|  |  |  | return R.error(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/delete/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | @ManagerAuth(memo = "删除甲方单位") | 
|---|
|  |  |  | public R delete(@RequestParam(value="ids[]") Long[] ids){ | 
|---|
|  |  |  | for (Long id : ids){ | 
|---|
|  |  |  | for (Long id : ids){ | 
|---|
|  |  |  | int order = orderService.selectCount(new EntityWrapper<Order>().eq("cstmr_id", id)); | 
|---|
|  |  |  | if (order!=0){ | 
|---|
|  |  |  | return R.error("存在关联的跟踪项目,禁止删除!!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cstmrService.deleteById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/delete/one/{id}") | 
|---|
|  |  |  | @ManagerAuth(memo = "删除甲方单位") | 
|---|
|  |  |  | public R deleteOne(@PathVariable Long id) { | 
|---|
|  |  |  | int cstmr_id = orderService.selectCount(new EntityWrapper<Order>().eq("cstmr_id", id)); | 
|---|
|  |  |  | if (cstmr_id!=0){ | 
|---|
|  |  |  | return R.error("存在关联跟踪项目,禁止删除!!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cstmrService.deleteById(id); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmrQuery/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | result.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(result); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmrSearch/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R cstmrSearch(String condition) { | 
|---|
|  |  |  | List<Map<String, Object>> search = CompanySearchUtils.search(condition, 1); | 
|---|
|  |  |  | return R.ok(search); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/cstmr/check/column/auth") | 
|---|
|  |  |  | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R cstmrFollowersAddJson(@RequestBody() Map map) { | 
|---|
|  |  |  | Object cstmrId = map.get("cstmrId"); | 
|---|
|  |  |  | Object followerIds = map.get("followerIds"); | 
|---|
|  |  |  | long cstmrId1 = Long.valueOf(String.valueOf(cstmrId)); | 
|---|
|  |  |  | long followerIds1 = Long.valueOf(String.valueOf(followerIds)); | 
|---|
|  |  |  | long cstmrId = Long.valueOf(String.valueOf(map.get("cstmrId"))); | 
|---|
|  |  |  | long followerIds = Long.valueOf(String.valueOf(map.get("followerIds"))); | 
|---|
|  |  |  | if (Cools.isEmpty(cstmrId, followerIds)) { | 
|---|
|  |  |  | return R.parse(BaseRes.PARAM); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | CstmrFoll cstmrFoll = new CstmrFoll(); | 
|---|
|  |  |  | cstmrFoll.setCstmrId(cstmrId1); | 
|---|
|  |  |  | cstmrFoll.setUserId(followerIds1); | 
|---|
|  |  |  | cstmrFoll.setCstmrId(cstmrId); | 
|---|
|  |  |  | cstmrFoll.setUserId(followerIds); | 
|---|
|  |  |  | if (!cstmrFollService.insert(cstmrFoll)) { | 
|---|
|  |  |  | throw new CoolException("添加失败,请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok().add(vos); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/cstmr2/all/get/kv") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R getDataKV2(@RequestParam(required = false) String condition) { | 
|---|
|  |  |  | User user = getUser(); assert user != null; | 
|---|
|  |  |  | Role role = getRole(); assert role != null; | 
|---|
|  |  |  | Page<Cstmr> page = cstmrService.getPageCstmr2(new Page<>(1, 30) | 
|---|
|  |  |  | , getHostId() | 
|---|
|  |  |  | , role.judgeLeader() ? String.valueOf(user.getDeptId()) : null | 
|---|
|  |  |  | , user.getId() | 
|---|
|  |  |  | , condition); | 
|---|
|  |  |  | List<KeyValueVo> vos = new ArrayList<>(); | 
|---|
|  |  |  | page.getRecords().forEach(item -> vos.add(new KeyValueVo(item.getName(), item.getId()))); | 
|---|
|  |  |  | return R.ok().add(vos); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/cstmr/file/import") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R fileImport() throws IOException { | 
|---|