diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index cb83bbd9..05b78ab6 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -755,6 +755,9 @@ public class DepositoryRecordController { // 出库申请 @PostMapping("/applicationOut") public RestResponse insertApplicationOutRecord(@RequestBody Map map, HttpServletRequest request) { + + + String usertoken = request.getHeader("user-token"); String userkey = request.getHeader("user-key"); if (usertoken == null) { @@ -766,6 +769,58 @@ public class DepositoryRecordController { String crypt = Md5.crypt(header); map.put("applicantId", userToken.getId()); map.put("createUid", userToken.getId()); + + /** version3 start + *多个物料且物料中有非用户所在部门备品备件库中的物料时,返回失败信息"其它部门备品备件库中的物料需单独走流程申请." + */ + //遍历map的key,当所有key中含mid的多于一个时,则申请了多个物料 + + //获取申请者部门 + UserByPort userByPort_version3 = userService.findUserByIdForNoPack(userToken.getId()); + String applicantAdminorg_version3 = userByPort_version3.getAdminorg().toString(); + //获取各物料所属仓库和所属部门 + int materialCount_version3 = 0;//本次要出库的物料数量 + HashSet set_version3 = new HashSet<>(); + List midList_version3 = new ArrayList<>(); + List didList_version3 = new ArrayList<>(); + for (Map.Entry entry : map.entrySet()) { + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + if(entry.getKey().contains("mid")){ + materialCount_version3++; + midList_version3.add(entry.getValue().toString()); + Inventory inventoryById = materialService.findInventoryById(Long.valueOf(entry.getValue().toString())); + Depository depositoryById = depositoryService.findDepositoryById(inventoryById.getDepositoryId()); + + String entryAdminorg = depositoryById.getAdminorg();//当前物料的仓库所属部门 + if(!entryAdminorg.equals(applicantAdminorg_version3) && inventoryById.getDepositoryName().contains("备品备件库")){//是备品备件库,且不是当前用户所属部门的备品备件库 + set_version3.add(depositoryById.getId().toString());//把所有非当前用户所属部门的其它备品备件库的仓库id放入Hashset完成去重 + didList_version3.add(depositoryById.getId().toString());//把所有非当前用户所属部门的其它备品备件库的仓库id放入List + } + } + } + if(set_version3.size()>1){// + return new RestResponse("", 666, new StatusInfo("提交失败,不能一起出库,当出库其它部门备品备件库中的物料时,各部门备品备件库中的物料都需单独走流程申请", "当出库其它部门备品备件库中的物料时,各部门备品备件库中的物料都需单独走流程申请")); + }else{ + if(set_version3.size()==1 && materialCount_version3>1){//有一个非当前用户所属部门的备品备件库中的物料,且当前要出库的物料数量>1 + int count= 0;//list和set中不同的仓库id的个数 + for(String item:didList_version3){ + Iterator it = set_version3.iterator(); + while (it.hasNext()) { + if(it.next().equals(item)){ + }else{ + count++; + } + } + } + if(count>0){ + return new RestResponse("", 666, new StatusInfo("提交失败,不能一起出库,其它部门备品备件库中的物料需单独走流程申请", "其它部门备品备件库中的物料需单独走流程申请")); + } + + } + } + + //version3 end + // 获取当前部门负责人 List departmentHeadByUsers = userService.getDepartmentHeaderByIdForNoPack(userToken.getMaindeparment()); StringBuilder departmentHeadId = new StringBuilder(); @@ -1740,6 +1795,25 @@ public class DepositoryRecordController { } // 仓储中心负责人 String manager = recordPById.getDepositoryManager(); + + //version3 start目前,物料所属仓库的所属部门负责人是depository_manager字段. + + //通过判断该条记录的仓储中心负责人是不是综合办的负责人,来判断是不是这种流程(申请人申请出库其它部门备品备件库中的物料的流程). + // 获取综合办负责人 + List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(268L, userKey, token); + int flag = 0;//如果flag=0则说明当前记录是(申请人申请出库其它部门备品备件库中的物料的流程) + for (UserByPort userByPort : departmentHeadByUser) { + if(userByPort.getId().toString().equals(manager)){ + flag++; + } + } + if(flag == 0){ + recordPById.setMaterialNotUserOrg("notFromUserOrg"); + }else{ + recordPById.setMaterialNotUserOrg("isFromUserOrg"); + } + //version3 end + String depositoryManagerPass = recordPById.getDepositoryManagerPass(); if (!"4".equals(depositoryManagerPass)) { String[] depositoryManagerId = new String[0]; diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index 610761c8..64f6241c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -55,6 +55,9 @@ public class MaterialController { @Autowired MaterialTypeService materialTypeService; + @Autowired + UserService userService; + /** * 根据物料进行查询 @@ -501,7 +504,16 @@ public class MaterialController { List materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByBarcode); if (inventoryPS.size() > 0) { List depositoryIdList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken); + //version3 内勤人员有企管部办公用品库权限 start + Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId()); + if(neiqinFlag){ + depositoryIdList.add(56L); + } + //version3 end List depositoryIdList1 = roleService.findDepositoryIdForUserHas(userToken); + if(neiqinFlag){ + depositoryIdList1.add(56L); + } List tempDepositoryID = new ArrayList<>(); List tempDepositoryID1 = new ArrayList<>(); List tempDepositoryID2 = new ArrayList<>(); @@ -684,6 +696,15 @@ public class MaterialController { List depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); List depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken); + + //version3 内勤人员有企管部办公用品库权限 start + Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId()); + if(neiqinFlag){ + depositoryIdList.add(56L); + depositoryIdList1.add(56L); + } + //version3 end + // 用于存储存在库存的仓库id List showDepository = new ArrayList<>(); List showDepository1 = new ArrayList<>(); @@ -951,7 +972,12 @@ public class MaterialController { List inventoryPList = new ArrayList<>(); List depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); - + //version3 内勤人员有企管部办公用品库权限 start + Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId()); + if(neiqinFlag){ + depositoryIdList.add(56L); + } + //version3 end map.remove("depositoryId"); map.put("depositoryIds", depositoryIdList); inventoryPList = materialService.findInventory(map); @@ -1685,8 +1711,18 @@ public class MaterialController { } } else { depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort); + //version3 内勤人员有企管部办公用品库权限 start + Boolean neiqinFlag = userService.isUserNeiQin(userByPort.getId()); + if(neiqinFlag){ + depositoryIdList.add(56L); + } + //version3 end List depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userByPort); - + //version3 内勤人员有企管部办公用品库权限 start + if(neiqinFlag){ + depositoryIdList1.add(56L); + } + //version3 end //version2 start 20230926 diff --git a/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java b/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java index c06f6400..511c0dc8 100644 --- a/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java @@ -72,4 +72,11 @@ public interface UserMapper { * @return */ List findUserByName(String name); + + /** + * 查询所有内勤 + * @return + */ + + List findAllNeiqinUser(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml b/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml index 6fcb81b0..64ae89c5 100644 --- a/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml @@ -71,6 +71,13 @@ where id = #{id} + +