From 7261ee93908d61a2c714645f19501aee9a7aba7b Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期五, 24 十一月 2023 17:35:51 +0800 Subject: [PATCH] --部门物品分发 --- consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java | 198 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 167 insertions(+), 31 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java index a3f305f..edae61d 100644 --- a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java +++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java @@ -6,11 +6,18 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelDataConvertException; import com.consum.base.BaseController; +import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.FinSysTenantUserSearchParam; import com.consum.base.pojo.FinSysTenantUserUpdParam; +import com.consum.base.pojo.response.DepartmentVO; +import com.consum.base.pojo.response.FinSysTenantUserVO; +import com.consum.base.pojo.response.FinSysTenantVO; +import com.consum.base.pojo.response.UserVO; +import com.consum.base.service.FinSysTenantDepartmentServiceImpl; import com.consum.base.service.FinSysTenantServiceImpl; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.model.po.FinSysTenant; +import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.iplatform.base.ArgumentsConstants; import com.iplatform.base.service.DeptServiceImpl; @@ -23,21 +30,45 @@ import com.iplatform.model.po.S_role; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; -import com.walker.infrastructure.utils.*; +import com.walker.infrastructure.utils.CollectionUtils; +import com.walker.infrastructure.utils.DateUtils; +import com.walker.infrastructure.utils.NumberGenerator; +import com.walker.infrastructure.utils.PhoneNumberUtils; +import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.util.*; /** * @Description 绯荤粺鐢ㄦ埛 * @Author wh * @Date 2023/7/17 14:16 */ +@Api(value = "鏈烘瀯鐢ㄦ埛淇℃伅", tags = "鏈烘瀯鐢ㄦ埛淇℃伅") @RestController @RequestMapping("/pc/fin/sys/tenant/user") public class FinSysTenantUserController extends BaseController { @@ -54,6 +85,9 @@ private RoleServiceImpl roleService; + @Autowired + private FinSysTenantDepartmentServiceImpl finSysTenantDepartmentService; + @Autowired public void setUserService(UserServiceImpl userService) { @@ -63,7 +97,8 @@ private S_config sConfig; @Autowired - public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService, FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) { + public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService, FinSysTenantUserServiceImpl finSysTenantUserService, + RoleServiceImpl roleService) { this.finSysTenantUserService = finSysTenantUserService; this.finSysTenantService = finSysTenantService; this.roleService = roleService; @@ -87,9 +122,11 @@ } GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param); + List<FinSysTenantUserVO> resultList = Lists.newArrayList(); List<FinSysTenantUser> datas = pager.getDatas(); if (datas.size() > 0) { for (FinSysTenantUser finSysTenantUser : datas) { + FinSysTenantUserVO userVO = new FinSysTenantUserVO(); if (finSysTenantUser.getUserPhone() != null) { // 瑙e瘑骞惰劚鏁� String tel = null; @@ -125,9 +162,36 @@ } else { finSysTenantUser.setIsSupplier("鍚�"); } + BeanUtils.copyProperties(finSysTenantUser, userVO); + Long sysDeptId = finSysTenantUser.getSysDeptId(); + FinSysTenantDepartment department = finSysTenantDepartmentService.getById(sysDeptId); + if (Objects.nonNull(department)) { + userVO.setSysDeptName(department.getName()); + } + resultList.add(userVO); } } + + try { + Field fieldDatas = GenericPager.class.getDeclaredField("datas"); + fieldDatas.setAccessible(true); + fieldDatas.set(pager, resultList); + } catch (Exception e) { + e.printStackTrace(); + } return ResponseValue.success(pager); + } + + + @ApiOperation(value = "鏍规嵁鏈烘瀯id鏌ヨ鐢ㄦ埛", notes = "鏍规嵁鏈烘瀯id鏌ヨ鐢ㄦ埛") + @ApiImplicitParam(name = "tenantId", value = "鏈烘瀯id", required = true, dataType = "Long", paramType = "query") + @GetMapping("/query/user") + public ResponseValue queryUserByTenantId(Long tenantId) { + + FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); + finSysTenantUser.setTenantId(String.valueOf(tenantId)); + List<FinSysTenantUser> result = finSysTenantUserService.select(finSysTenantUser); + return ResponseValue.success(result); } @@ -159,7 +223,7 @@ user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); user.setUpdateBy(this.getCurrentUser().getUser_name()); //user.setStatus(1);// 0绂佺敤 1鍚敤 - user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚� + user.setIsDelete(0); user.setSysUserId(NumberGenerator.getLongSequenceNumber()); // 鍔犲瘑鎵嬫満鍙� String key = PlatformRSAUtils.AES_KEY; @@ -168,7 +232,6 @@ pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key); } user.setUserPhone(pwdPhone); - user.setIsDelete(1); //鎬庝箞鑾峰彇宸︿晶鏈烘瀯鏍戞暟鎹� user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id 榛樿涓哄钩鍙扮鐞� this.finSysTenantUserService.insert(user); @@ -229,8 +292,8 @@ } + public static class ImportUserParam { - public static class ImportUserParam{ @ExcelProperty("鐢ㄦ埛濮撳悕") private String userName; @ExcelProperty("鐢ㄦ埛缂栧彿") @@ -249,42 +312,55 @@ public String getUserName() { return userName; } + public void setUserName(String userName) { this.userName = userName; } + public String getUserCode() { return userCode; } + public void setUserCode(String userCode) { this.userCode = userCode; } + public String getUserPhone() { return userPhone; } + public void setUserPhone(String userPhone) { this.userPhone = userPhone; } + public Integer getSex() { return sex; } + public void setSex(Integer sex) { this.sex = sex; } + public String getEmail() { return email; } + public void setEmail(String email) { this.email = email; } + public Long getSeq() { return seq; } + public void setSeq(Long seq) { this.seq = seq; } + public String getRoleName() { return roleName; } + public void setRoleName(String roleName) { this.roleName = roleName; } @@ -296,35 +372,35 @@ * @Date 2023/10/12 15:56 */ @PostMapping("/import") - public ResponseValue importUser(@RequestParam String tenantId,@RequestParam String tenantCode,MultipartFile file) throws IOException { + public ResponseValue importUser(@RequestParam String tenantId, @RequestParam String tenantCode, MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); - if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))){ + if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); } S_user_core currentUser = this.getCurrentUser(); - if (currentUser==null){ + if (currentUser == null) { return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖"); } - if (StringUtils.isEmpty(tenantId)||StringUtils.isEmpty(tenantCode)){ + if (StringUtils.isEmpty(tenantId) || StringUtils.isEmpty(tenantCode)) { return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙"); } List<S_role> roles = this.roleService.select(new S_role()); ArrayList<FinSysTenantUser> finSysTenantUsers = new ArrayList<>(); - EasyExcel.read(file.getInputStream(), ImportUserParam.class, new AnalysisEventListener<ImportUserParam>(){ + EasyExcel.read(file.getInputStream(), ImportUserParam.class, new AnalysisEventListener<ImportUserParam>() { @Override public void invoke(ImportUserParam data, AnalysisContext context) { - if (StringUtils.isEmpty(data.getUserName()) || StringUtils.isEmpty(data.getUserCode()) || StringUtils.isEmpty(data.getUserPhone()) || null==data.getSex() - || StringUtils.isEmpty(data.getEmail()) || null==data.getSeq() || StringUtils.isEmpty(data.getRoleName())){ + if (StringUtils.isEmpty(data.getUserName()) || StringUtils.isEmpty(data.getUserCode()) || StringUtils.isEmpty(data.getUserPhone()) + || null == data.getSex() || StringUtils.isEmpty(data.getEmail()) || null == data.getSeq() || StringUtils.isEmpty(data.getRoleName())) { throw new ImportUserParamVerifyException("鍗曞厓鏍间笉鑳戒负绌�!"); } //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず - if ( finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) { + if (finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) { throw new ImportUserParamVerifyException("鍛樺伐缂栧彿涓虹┖鎴栧凡瀛樺湪!"); } - if (data.getSex()<1&&data.getSex()>0){ + if (data.getSex() < 1 && data.getSex() > 0) { throw new ImportUserParamVerifyException("鎬у埆鐮佸彧鑳戒负 0 鎴� 1"); } FinSysTenantUser user = new FinSysTenantUser(); @@ -359,22 +435,26 @@ user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id 榛樿涓哄钩鍙扮鐞� finSysTenantUsers.add(user); } + @Override public void doAfterAllAnalysed(AnalysisContext context) { } + @Override public void onException(Exception exception, AnalysisContext context) throws Exception { - if (exception!=null){ + if (exception != null) { // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 灏佽鏃跺紓甯� if (exception instanceof ExcelDataConvertException) { - ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; - logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}",excelDataConvertException.getRowIndex(), - excelDataConvertException.getColumnIndex()+1, excelDataConvertException.getCellData().getStringValue()); - throw new IllegalStateException("绗�"+(excelDataConvertException.getRowIndex()+1)+"琛岋紝绗�"+(excelDataConvertException.getColumnIndex()+1)+"鍒楄В鏋愬紓甯革紝寮傚父鏁版嵁涓�:[ "+excelDataConvertException.getCellData().getStringValue()+" ]"); + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception; + logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", excelDataConvertException.getRowIndex(), excelDataConvertException.getColumnIndex() + 1, + excelDataConvertException.getCellData().getStringValue()); + throw new IllegalStateException( + "绗�" + (excelDataConvertException.getRowIndex() + 1) + "琛岋紝绗�" + (excelDataConvertException.getColumnIndex() + 1) + "鍒楄В鏋愬紓甯革紝寮傚父鏁版嵁涓�:[ " + + excelDataConvertException.getCellData().getStringValue() + " ]"); } - if (exception instanceof ImportUserParamVerifyException){ - throw new IllegalStateException("绗�"+context.readSheetHolder().getRowIndex()+"琛�, 瑙f瀽閿欒:[ "+ exception.getMessage()+" ]"); + if (exception instanceof ImportUserParamVerifyException) { + throw new IllegalStateException("绗�" + context.readSheetHolder().getRowIndex() + "琛�, 瑙f瀽閿欒:[ " + exception.getMessage() + " ]"); } throw exception; } @@ -390,7 +470,7 @@ * 鎵归噺鎻掑叆鐢ㄦ埛琛ㄥ拰骞冲彴鐢ㄦ埛琛� */ @Transactional(rollbackFor = Exception.class) - public void insertUserAndUserCoreBatch(List<FinSysTenantUser> finSysTenantUsers){ + public void insertUserAndUserCoreBatch(List<FinSysTenantUser> finSysTenantUsers) { ArrayList<S_user_core> sUserCores = new ArrayList<>(); for (FinSysTenantUser user : finSysTenantUsers) { // 鎻掑叆骞冲彴鐢ㄦ埛 @@ -447,9 +527,15 @@ this.finSysTenantUserService.execInsertRoleUserList(finSysTenantUsers); } - public static class ImportUserParamVerifyException extends RuntimeException{ - public ImportUserParamVerifyException(){super();} - public ImportUserParamVerifyException(String message){super(message);} + public static class ImportUserParamVerifyException extends RuntimeException { + + public ImportUserParamVerifyException() { + super(); + } + + public ImportUserParamVerifyException(String message) { + super(message); + } } @@ -593,8 +679,7 @@ } /** - * 寰楀埌 褰撳墠鐧诲綍鐢ㄦ埛鐨勪俊鎭� - * 澧炲姞 鐖剁被鏈烘瀯鐨刢ode + * 寰楀埌 褰撳墠鐧诲綍鐢ㄦ埛鐨勪俊鎭� 澧炲姞 鐖剁被鏈烘瀯鐨刢ode * * @param * @return @@ -875,4 +960,55 @@ // 2. 淇敼骞冲彴鐢ㄦ埛锛堜笉鐢ㄤ慨鏀癸級 return ResponseValue.success(1); } + + @ApiOperation(value = "鏍规嵁鏈烘瀯id鏌ヨ閮ㄩ棬涓殑鐢ㄦ埛", notes = "鏍规嵁鏈烘瀯id鏌ヨ閮ㄩ棬涓殑鐢ㄦ埛") + @ApiImplicitParams({ + @ApiImplicitParam(name = "agencyId", value = "鏈烘瀯id", required = true, dataType = "Long", paramType = "query") + }) + @GetMapping("/select/department") + public ResponseValue selectDepartment(Long agencyId) { + FinSysTenantVO finSysTenantVO = new FinSysTenantVO(); + + FinSysTenant finSysTenant = new FinSysTenant(); + finSysTenant.setId(agencyId); + FinSysTenant sysTenant = finSysTenantService.select(finSysTenant).get(0); + finSysTenantVO.setId(sysTenant.getId()); + finSysTenantVO.setName(sysTenant.getName()); + finSysTenantVO.setType("tenant"); + // 閮ㄩ棬 + FinSysTenantDepartment finSysTenantDepartment = new FinSysTenantDepartment(); + finSysTenantDepartment.setTenantId(agencyId); + List<FinSysTenantDepartment> tenantDepartmentList = finSysTenantDepartmentService.select(finSysTenantDepartment); + List<DepartmentVO> departmentVOList = Lists.newArrayList(); + tenantDepartmentList.forEach(department -> { + DepartmentVO departmentVO = new DepartmentVO(); + //鐢ㄦ埛 + Long id = department.getId(); + departmentVO.setId(id); + departmentVO.setName(department.getName()); + departmentVO.setType("department"); + + String sql = "SELECT SYS_USER_ID,USER_NAME FROM " + + "fin_sys_tenant_user " + + "WHERE SYS_DEPT_ID =:deptId AND SYS_USER_ID NOT IN(SELECT MANAGER_ID FROM base_warehouse_manager)"; + Map<String, Object> param = new HashMap<>(); + param.put("deptId", id); + List<Map<String, Object>> select = finSysTenantUserService.select(sql, param, new MapperUtil()); + List<UserVO> userVOList = Lists.newArrayList(); + select.forEach(user -> { + UserVO userVO = new UserVO(); + userVO.setId((Long) user.get("sysUserId")); + userVO.setName(user.get("userName").toString()); + userVO.setType("user"); + userVOList.add(userVO); + }); + departmentVO.setChildren(userVOList); + departmentVOList.add(departmentVO); + }); + finSysTenantVO.setChildren(departmentVOList); + + return ResponseValue.success(finSysTenantVO); + } + + } -- Gitblit v1.9.1