From 20986f1a1fb3773ff2991842d8c3c2e3ca3b12fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Thu, 6 Mar 2025 22:36:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A2=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yanzhu/common/core/utils/StringUtils.java | 22 + .../controller/ProProjectInfoController.java | 3 - ...ProProjectInfoSubdeptsUsersController.java | 413 +++++++++++++++++- .../yanzhu/manage/service/IUniService.java | 2 +- .../manage/service/impl/UniServiceImpl.java | 38 +- yanzhu-ui-app/miniprogram/api/project.js | 7 +- .../components/select-group-person/index.js | 18 +- .../components/select-group-person/index.wxml | 7 +- .../components/select-group-person/index.wxss | 14 +- .../pages/project_problemmodify/add/index.js | 98 +---- .../project_problemmodify/add/index.json | 2 +- .../project_problemmodify/add/index.wxml | 14 +- .../pages/project_problemmodify/list/index.js | 4 +- 13 files changed, 506 insertions(+), 136 deletions(-) diff --git a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/utils/StringUtils.java b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/utils/StringUtils.java index 4bfca7da..c52f314b 100644 --- a/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/utils/StringUtils.java +++ b/yanzhu-common/yanzhu-common-core/src/main/java/com/yanzhu/common/core/utils/StringUtils.java @@ -34,6 +34,28 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils return value != null ? value : defaultValue; } + /** + * 参数忽略类型比较 + * + * @param obj1 对象1 + * @param obj2 对象2 + * @return value 返回值 + */ + public static boolean eqObj(Object obj1, Object obj2) + { + if(obj1==null && obj2==null){ + return true; + }else{ + if(obj1==null){ + return false; + } + if(obj2==null){ + return false; + } + return obj1.toString().equals(obj2.toString()); + } + } + /** * * 判断一个Collection是否为空, 包含List,Set,Queue * diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java index 632177bd..deb1da4f 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java @@ -8,7 +8,6 @@ import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.page.TableDataInfo; import com.yanzhu.common.log.annotation.Log; import com.yanzhu.common.log.enums.BusinessType; -import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.common.security.utils.SecurityUtils; @@ -32,8 +31,6 @@ import java.util.Map; @RequestMapping("/proProjectInfo") public class ProProjectInfoController extends BaseController { - @Autowired - private RedisService redisService; @Autowired private IProProjectInfoService proProjectInfoService; diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java index 6a8c5903..d6576040 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java @@ -1,28 +1,35 @@ package com.yanzhu.manage.controller; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.yanzhu.common.core.constant.CacheConstants; import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.enums.UseStateEnums; import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.core.utils.poi.ExcelUtil; import com.yanzhu.common.core.web.controller.BaseController; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.page.TableDataInfo; import com.yanzhu.common.log.annotation.Log; import com.yanzhu.common.log.enums.BusinessType; +import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers; +import com.yanzhu.manage.enums.SubDeptsEnums; +import com.yanzhu.manage.enums.UserPostEnums; import com.yanzhu.manage.service.IProProjectInfoSubdeptsUsersService; import com.yanzhu.manage.service.IUniService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * 分包单位工人Controller @@ -34,12 +41,16 @@ import java.util.Objects; @RequestMapping("/proProjectInfoSubdeptsUsers") public class ProProjectInfoSubdeptsUsersController extends BaseController { - @Autowired - private IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService; @Autowired private IUniService uniService; + @Autowired + private RedisService redisService; + + @Autowired + private IProProjectInfoSubdeptsUsersService proProjectInfoSubdeptsUsersService; + /** * 查询分包单位工人列表 */ @@ -309,14 +320,394 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController /** * 查询分包单位工人列表 */ - @GetMapping("/findAll") - public AjaxResult findAll(ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers) + @GetMapping("/findAllSendUsers/{proId}") + public AjaxResult findAllSendUsers(@PathVariable("proId") Long proId) { - proProjectInfoSubdeptsUsers.setUseStatus(UseStateEnums.IN.getCode()); - proProjectInfoSubdeptsUsers.setActiveTags("finished"); - proProjectInfoSubdeptsUsers.setSearchValue("sedUsers"); - List list = proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersList(proProjectInfoSubdeptsUsers); - return success(list); + String key = "findAllSendUsers::"+proId; + Object cache = redisService.getCacheObject(key); + if(cache!=null){ + return success(cache); + } + ProProjectInfoSubdeptsUsers query = new ProProjectInfoSubdeptsUsers(); + query.setProjectId(proId); + query.setUseStatus(UseStateEnums.IN.getCode()); + query.setActiveTags("finished"); + query.setSearchValue("sedUsers"); + List list = proProjectInfoSubdeptsUsersService.selectProProjectInfoSubdeptsUsersList(query); + Map datas = new HashMap<>(); + if(list.size()>0){ + List> lordSentList = new ArrayList<>(); + List> copySendList = new ArrayList<>(); + List> checkUserList = new ArrayList<>(); + for(ProProjectInfoSubdeptsUsers user:list){ + // 组装整改单位信息 + if(!Objects.equals(user.getSubDeptType(), SubDeptsEnums.JSDW.getCode())){ + List> _lordSentList = lordSentList.stream().filter(map -> StringUtils.eqObj(map.get("subDeptId"),user.getSubDeptId())).collect(Collectors.toList()); + if(_lordSentList.size()==0){ + Map data = new HashMap<>(); + data.put("subDeptId",user.getSubDeptId()); + data.put("subDeptName",user.getSubDeptName()); + data.put("subDeptTypeName",user.getSubDeptTypeName()); + lordSentList.add(data); + } + } + // 组装抄送单位信息 + List> _copySendList = copySendList.stream().filter(map -> StringUtils.eqObj(map.get("subDeptId"),user.getSubDeptId())).collect(Collectors.toList()); + if(_copySendList.size()==0){ + if(Objects.equals(user.getSubDeptType(), SubDeptsEnums.JSDW.getCode())){ + Map data = new HashMap<>(); + data.put("subDeptId",user.getSubDeptId()); + data.put("subDeptName","项目总包单位"); + data.put("subDeptType",user.getSubDeptType()); + copySendList.add(data); + }else{ + Map data = new HashMap<>(); + data.put("subDeptId",user.getSubDeptId()); + data.put("subDeptName",user.getSubDeptName()); + data.put("subDeptType",user.getSubDeptType()); + data.put("subDeptTypeName",user.getSubDeptTypeName()); + copySendList.add(data); + } + } + // 组装复检单位信息 + if(Objects.equals(user.getSubDeptType(), SubDeptsEnums.JSDW.getCode())){ + List> _checkUserList = checkUserList.stream().filter(map -> StringUtils.eqObj(map.get("subDeptId"),user.getSubDeptId())).collect(Collectors.toList()); + if(_checkUserList.size()==0){ + Map data = new HashMap<>(); + data.put("subDeptId",user.getSubDeptId()); + data.put("subDeptName","项目总包单位"); + checkUserList.add(data); + } + } + } + if(lordSentList.size()>0){ + for(Map data:lordSentList){ + List> userList = new ArrayList<>(); + for(ProProjectInfoSubdeptsUsers user:list){ + if(!Objects.equals(user.getSubDeptType(),SubDeptsEnums.JSDW.getCode()) && StringUtils.eqObj(data.get("subDeptId"),user.getSubDeptId())){ + Map userMap = new HashMap<>(); + userMap.put("userId",user.getUserId()); + userMap.put("userName",user.getUserName()); + userMap.put("userPhone",user.getUserPhone()); + userMap.put("userPostName",StringUtils.eqObj(user.getUserPost(), UserPostEnums.BZZ.getCode())?user.getCraftPostName()+UserPostEnums.BZZ.getInfo():user.getCraftPostName()); + userMap.put("state",false); + userList.add(userMap); + } + } + data.put("userList",userList); + } + } + if(copySendList.size()>0){ + // 抄送单位信息排序 + copySendList = copySendList.stream() + .sorted(Comparator.comparing(map -> Convert.toLong(map.get("subDeptType")))) + .collect(Collectors.toList()); + for(Map data:copySendList){ + List> userList = new ArrayList<>(); + for(ProProjectInfoSubdeptsUsers user:list){ + if(StringUtils.eqObj(data.get("subDeptId"),user.getSubDeptId())){ + if(Objects.equals(user.getSubDeptType(),SubDeptsEnums.JSDW.getCode())){ + Map userMap = new HashMap<>(); + userMap.put("userId",user.getUserId()); + userMap.put("userName",user.getUserName()); + userMap.put("userPhone",user.getUserPhone()); + userMap.put("state",false); + userList.add(userMap); + }else{ + Map userMap = new HashMap<>(); + userMap.put("userId",user.getUserId()); + userMap.put("userName",user.getUserName()); + userMap.put("userPhone",user.getUserPhone()); + userMap.put("userPostName",StringUtils.eqObj(user.getUserPost(), UserPostEnums.BZZ.getCode())?user.getCraftPostName()+UserPostEnums.BZZ.getInfo():user.getCraftPostName()); + userMap.put("state",false); + userList.add(userMap); + } + } + } + data.put("userList",userList); + } + } + if(checkUserList.size()>0){ + for(Map data:checkUserList){ + List> userList = new ArrayList<>(); + for(ProProjectInfoSubdeptsUsers user:list){ + if(Objects.equals(user.getSubDeptType(),SubDeptsEnums.JSDW.getCode()) && StringUtils.eqObj(data.get("subDeptId"),user.getSubDeptId())){ + Map userMap = new HashMap<>(); + userMap.put("userId",user.getUserId()); + userMap.put("userName",user.getUserName()); + userMap.put("userPhone",user.getUserPhone()); + userMap.put("state",false); + userList.add(userMap); + } + } + data.put("userList",userList); + } + } + datas.put("lordSentList",lordSentList); + datas.put("copySendList",copySendList); + datas.put("checkUserList",checkUserList); + } + redisService.setCacheObject(key,datas,5L, TimeUnit.MINUTES); + return success(datas); + } + + /** + * 组装的测试数据... + * JiangYuQi + * @return userList + */ + private static List packageDatas(){ + List userList = new ArrayList<>(); + // 组装第一条数据 + ProProjectInfoSubdeptsUsers us1 = new ProProjectInfoSubdeptsUsers(); + us1.setId(95L); + us1.setParId(null); + us1.setComId(101L); + us1.setProjectId(133L); + us1.setProjectName("lxm测试项目2"); + us1.setSubDeptId(133L); + us1.setSubDeptType("1"); + us1.setSubDeptTypeName("建设单位"); + us1.setSubDeptName("lxm测试项目2"); + us1.setSubDeptPowerPath(null); + us1.setUserId(144L); + us1.setUserPost("66"); + us1.setSubDeptGroup(39L); + us1.setSubDeptGroupName("管理班组"); + us1.setUserName("蒲峻峰"); + us1.setCardType("1"); + us1.setCardCode("510781198105058616"); + us1.setUserSex("0"); + us1.setUserPicture("/statics/2025/02/23/9c1bb579ccfb1c74edbe793f61257515_20250223173526A167.jpg"); + us1.setUserPhone("13244554455"); + us1.setDegreeGrade(null); + us1.setUserInfos("{\"cardImgPos\":\"/statics/2025/02/23/df1597450932c311c914ac859f5be898_20250223173504A165.jpg\",\"cardImgInv\":\"/statics/2025/02/23/54810ca35f07eff59ef67acd44879e48_20250223173517A166.jpg\"}"); + us1.setCraftType(null); + us1.setCraftPost(null); + us1.setEduStatus(null); + us1.setEduFilePath(null); + us1.setEduDate(null); + us1.setApproveStatus(101L); + us1.setUseDate(null); + us1.setUseStatus("0"); + us1.setAdmitGuid(null); + us1.setQrCode(null); + us1.setSubStep(2L); + us1.setIllnessStatus(null); + us1.setSupIllnessStatus(null); + us1.setIsDel(0L); + us1.setCreateBy("admin"); + + // 将第一条数据添加到列表 + userList.add(us1); + + // 组装第二条数据 + ProProjectInfoSubdeptsUsers us2 = new ProProjectInfoSubdeptsUsers(); + us2.setId(96L); + us2.setParId(null); + us2.setComId(101L); + us2.setProjectId(133L); + us2.setProjectName("lxm测试项目2"); + us2.setSubDeptId(133L); + us2.setSubDeptType("1"); + us2.setSubDeptTypeName("建设单位"); + us2.setSubDeptName("lxm测试项目2"); + us2.setSubDeptPowerPath(null); + us2.setUserId(145L); + us2.setUserPost("66"); + us2.setSubDeptGroup(39L); + us2.setSubDeptGroupName("管理班组"); + us2.setUserName("蒋林波"); + us2.setCardType("1"); + us2.setCardCode("510781197606254012"); + us2.setUserSex("0"); + us2.setUserPicture("/statics/2025/02/23/1004af18b5ab75d461eb1560eb77b58f_20250223173701A168.jpg"); + us2.setUserPhone("13244554456"); + us2.setDegreeGrade(null); + us2.setUserInfos("{\"cardImgPos\":\"/statics/2025/02/23/1004af18b5ab75d461eb1560eb77b58f_20250223173707A169.jpg\",\"cardImgInv\":\"/statics/2025/02/23/9c1bb579ccfb1c74edbe793f61257515_20250223173715A170.jpg\"}"); + us2.setCraftType(null); + us2.setCraftPost(null); + us2.setEduStatus(null); + us2.setEduFilePath(null); + us2.setEduDate(null); + us2.setApproveStatus(101L); + us2.setUseDate(null); + us2.setUseStatus("0"); + us2.setAdmitGuid(null); + us2.setQrCode(null); + us2.setSubStep(2L); + us2.setIllnessStatus(null); + us2.setSupIllnessStatus(null); + us2.setIsDel(0L); + us2.setCreateBy("admin"); + + // 将第二条数据添加到列表 + userList.add(us2); + + // 组装第三条数据 + ProProjectInfoSubdeptsUsers us3 = new ProProjectInfoSubdeptsUsers(); + us3.setId(104L); + us3.setParId(null); + us3.setComId(101L); + us3.setProjectId(133L); + us3.setProjectName("lxm测试项目2"); + us3.setSubDeptId(133L); + us3.setSubDeptType("1"); + us3.setSubDeptTypeName("建设单位"); + us3.setSubDeptName("lxm测试项目2"); + us3.setSubDeptPowerPath(null); + us3.setUserId(155L); + us3.setUserPost("66"); + us3.setSubDeptGroup(49L); + us3.setSubDeptGroupName("管理班组"); + us3.setUserName("蒲峻峰"); + us3.setCardType("1"); + us3.setCardCode("510781198105058616"); + us3.setUserSex("0"); + us3.setUserPicture("/statics/2025/03/02/1004af18b5ab75d461eb1560eb77b58f_20250302172602A019.jpg"); + us3.setUserPhone("13488998899"); + us3.setDegreeGrade(null); + us3.setUserInfos("{\"cardImgPos\":\"/statics/2025/03/02/df1597450932c311c914ac859f5be898_20250302172553A017.jpg\",\"cardImgInv\":\"/statics/2025/03/02/da69c21341c10c40fce19bdb9a796208_20250302172559A018.jpg\"}"); + us3.setCraftType(null); + us3.setCraftPost(null); + us3.setEduStatus(null); + us3.setEduFilePath(null); + us3.setEduDate(null); + us3.setApproveStatus(101L); + us3.setUseDate(null); + us3.setUseStatus("0"); + us3.setAdmitGuid(null); + us3.setQrCode(null); + us3.setSubStep(2L); + us3.setIllnessStatus(null); + us3.setSupIllnessStatus(null); + us3.setIsDel(0L); + us3.setCreateBy("admin"); + + // 将第三条数据添加到列表 + userList.add(us3); + + // 组装第四条数据 + ProProjectInfoSubdeptsUsers us4 = new ProProjectInfoSubdeptsUsers(); + us4.setId(106L); + us4.setParId(null); + us4.setComId(101L); + us4.setProjectId(133L); + us4.setProjectName("lxm测试项目2"); + us4.setSubDeptId(133L); + us4.setSubDeptType("1"); + us4.setSubDeptTypeName("建设单位"); + us4.setSubDeptName("lxm测试项目2"); + us4.setSubDeptPowerPath(null); + us4.setUserId(157L); + us4.setUserPost("66"); + us4.setSubDeptGroup(50L); + us4.setSubDeptGroupName("管理班组"); + us4.setUserName("王胡建"); + us4.setCardType("1"); + us4.setCardCode("510727197611054711"); + us4.setUserSex("0"); + us4.setUserPicture("/statics/2025/03/03/52f9d8668029387317eaa2faae079c38_20250303164124A031.jpg"); + us4.setUserPhone("13488998890"); + us4.setDegreeGrade(null); + us4.setUserInfos("{\"cardImgPos\":\"/statics/2025/03/03/ec722c0876abced32dc6db3f344be502_20250303164108A029.jpg\",\"cardImgInv\":\"/statics/2025/03/03/9c1bb579ccfb1c74edbe793f61257515_20250303164121A030.jpg\"}"); + us4.setCraftType(null); + us4.setCraftPost(null); + us4.setEduStatus(null); + us4.setEduFilePath(null); + us4.setEduDate(null); + us4.setApproveStatus(101L); + us4.setUseDate(null); + us4.setUseStatus("0"); + us4.setAdmitGuid(null); + us4.setQrCode(null); + us4.setSubStep(2L); + us4.setIllnessStatus(null); + us4.setSupIllnessStatus(null); + us4.setIsDel(0L); + us4.setCreateBy("admin"); + + // 将第四条数据添加到列表 + userList.add(us4); + + // 组装第五条数据 + ProProjectInfoSubdeptsUsers us5 = new ProProjectInfoSubdeptsUsers(); + us5.setId(114L); + us5.setParId(null); + us5.setComId(101L); + us5.setProjectId(133L); + us5.setProjectName("lxm测试项目2"); + us5.setSubDeptId(35L); + us5.setSubDeptType("4"); + us5.setSubDeptTypeName("劳务分包"); + us5.setSubDeptName("北京电信劳务队"); + us5.setSubDeptPowerPath("/statics/2025/03/06/c94c927978df13c7275e1fae79dc2e55_20250306003001A090.jpg"); + us5.setUserId(163L); + us5.setUserPost("1"); + us5.setSubDeptGroup(55L); + us5.setSubDeptGroupName("管理班组"); + us5.setUserName("张金徐"); + us5.setCardType("1"); + us5.setCardCode("510781197309158614"); + us5.setUserSex("男"); + us5.setUserPicture("/statics/2025/03/06/6b6ae6af110d59013a1d62f28f1e0385_20250306002959A084.jpg"); + us5.setUserPhone("18629401436"); + us5.setDegreeGrade("1"); + us5.setUserInfos("{\"nation\":\"汉\",\"nativePlace\":\"四川省\",\"address\":\"四川省江油市重兴乡龙山村三组\",\"emergencyContact\":\"龙景\",\"contactPhone\":\"15522425525\",\"cardImgPos\":\"/statics/2025/03/06/c7a258a694b596a910bb6d714c8912f7_20250306002959A087.jpg\",\"cardImgInv\":\"/statics/2025/03/06/9f8eb389a16a254cd3b9217c2e5c633b_20250306002959A088.jpg\",\"uniFaceInfo\":\"{\\\"projectGuid\\\":\\\"B35603337E2D46B590EC0DE5A24A6091\\\",\\\"admitGuid\\\":\\\"7E6A1448B175428C95B25E693F9F9F95\\\",\\\"faceGuid\\\":\\\"0C8DDFE1E9274948AF4706995881AFDD\\\",\\\"imageType\\\":3,\\\"faceUrl\\\":\\\"https://uniubi-aiot.oss-cn-hangzhou.aliyuncs.com/detect/20250306/003159-42BE5AB5F77B4B458D56EF5A55B209A8\\\",\\\"createTime\\\":\\\"2025-03-05T16:31:59+0000\\\"}\"}"); + us5.setCraftType("3"); + us5.setCraftPost("管理人员"); + us5.setEduStatus("0"); + us5.setEduFilePath("/statics/2025/03/06/9d8aeb76-bb05-4a31-9464-64e3647db509-c-p.pdf"); + us5.setApproveStatus(100L); + us5.setUseStatus("0"); + us5.setAdmitGuid("7E6A1448B175428C95B25E693F9F9F95"); + us5.setQrCode("/statics/2025/03/06/1741192319054.png"); + us5.setSubStep(100L); + us5.setIsDel(0L); + us5.setCreateBy("小程序数据"); + + // 将第五条数据添加到列表 + userList.add(us5); + + // 组装第六条数据 + ProProjectInfoSubdeptsUsers us6 = new ProProjectInfoSubdeptsUsers(); + us6.setId(115L); + us6.setParId(null); + us6.setComId(101L); + us6.setProjectId(133L); + us6.setProjectName("lxm测试项目2"); + us6.setSubDeptId(35L); + us6.setSubDeptType("4"); + us6.setSubDeptTypeName("劳务分包"); + us6.setSubDeptName("北京电信劳务队"); + us6.setSubDeptPowerPath("/statics/2025/03/06/c94c927978df13c7275e1fae79dc2e55_20250306003001A090.jpg"); + us6.setUserId(164L); + us6.setUserPost("2"); + us6.setSubDeptGroup(55L); + us6.setSubDeptGroupName("管理班组"); + us6.setUserName("-姜玉琦测试-"); + us6.setCardType("1"); + us6.setCardCode("510781197309158614"); + us6.setUserSex("男"); + us6.setUserPicture("/statics/2025/03/06/6b6ae6af110d59013a1d62f28f1e0385_20250306002959A084.jpg"); + us6.setUserPhone("18189138535"); + us6.setDegreeGrade("1"); + us6.setUserInfos("{\"nation\":\"汉\",\"nativePlace\":\"四川省\",\"address\":\"四川省江油市重兴乡龙山村三组\",\"emergencyContact\":\"龙景\",\"contactPhone\":\"15522425525\",\"cardImgPos\":\"/statics/2025/03/06/c7a258a694b596a910bb6d714c8912f7_20250306002959A087.jpg\",\"cardImgInv\":\"/statics/2025/03/06/9f8eb389a16a254cd3b9217c2e5c633b_20250306002959A088.jpg\",\"uniFaceInfo\":\"{\\\"projectGuid\\\":\\\"B35603337E2D46B590EC0DE5A24A6091\\\",\\\"admitGuid\\\":\\\"7E6A1448B175428C95B25E693F9F9F95\\\",\\\"faceGuid\\\":\\\"0C8DDFE1E9274948AF4706995881AFDD\\\",\\\"imageType\\\":3,\\\"faceUrl\\\":\\\"https://uniubi-aiot.oss-cn-hangzhou.aliyuncs.com/detect/20250306/003159-42BE5AB5F77B4B458D56EF5A55B209A8\\\",\\\"createTime\\\":\\\"2025-03-05T16:31:59+0000\\\"}\"}"); + us6.setCraftType("3"); + us6.setCraftPost("管理人员"); + us6.setEduStatus("0"); + us6.setEduFilePath("/statics/2025/03/06/9d8aeb76-bb05-4a31-9464-64e3647db509-c-p.pdf"); + us6.setApproveStatus(100L); + us6.setUseStatus("0"); + us6.setAdmitGuid(null); + us6.setQrCode(null); + us6.setSubStep(100L); + us6.setIsDel(0L); + us6.setCreateBy("小程序数据"); + + // 将第六条数据添加到列表 + userList.add(us6); + return userList; } } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java index dab50c4d..8ece2029 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IUniService.java @@ -126,7 +126,7 @@ public interface IUniService { /** * 同步宇泛的人员和头像 */ - public Long syncUniUser(ProProjectInfoSubdeptsUsers puser); + public void syncUniUser(ProProjectInfoSubdeptsUsers puser); /** * 同步宇泛的设备信息 diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java index bdd45a7d..6a3b50fc 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java @@ -166,12 +166,14 @@ public class UniServiceImpl implements IUniService{ public JSONObject faceRegister(JSONObject data) { long projectId=data.getLong("projectId"); data.remove("projectId"); + //System.out.println("faceRegister==REQ>"+JSON.toJSONString(data)); Request request=new Request.Builder() .url(UniUtils.FACEREGISTER) .post(UniUtils.toJsonBody(data)) .headers(UniUtils.setHeaderParams(auth(projectId))) .build(); String res=UniUtils.getResult(request); + //System.out.println("faceRegister==RES>"+res); JSONObject jo=JSON.parseObject(res); if(jo.getLong("result").intValue()==1){ return jo.getJSONObject("data"); @@ -187,12 +189,14 @@ public class UniServiceImpl implements IUniService{ public boolean faceDelete(JSONObject data) { long projectId=data.getLong("projectId"); data.remove("projectId"); + //System.out.println("faceDelete==REQ>"+JSON.toJSONString(data)); Request request=new Request.Builder() .url(UniUtils.FACEDELETE) .post(UniUtils.toJsonBody(data)) .headers(UniUtils.setHeaderParams(auth(projectId))) .build(); String res=UniUtils.getResult(request); + //System.out.println("faceDelete==RES>"+res); JSONObject jo=JSON.parseObject(res); if("token is illegal".equals(jo.getString("msg"))){ clearAuthCache(projectId); @@ -403,6 +407,23 @@ public class UniServiceImpl implements IUniService{ } } + /** + * 私有入场 + * @param user + */ + private void syncUserAuthDeviceByInfo(ProProjectInfoSubdeptsUsers user) { + AttendanceUbiDevice where=new AttendanceUbiDevice(); + where.setProjectId(user.getProjectId()); + List devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where); + for(AttendanceUbiDevice device :devList) { + JSONObject jo=new JSONObject(); + jo.put("projectId",user.getProjectId()); + jo.put("deviceNo",device.getDeviceNo()); + jo.put("admitGuids",user.getAdmitGuid()); + authDevice(jo); + } + } + private Long deleteDevice(Long id) { AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(id); if(device==null){ @@ -470,9 +491,7 @@ public class UniServiceImpl implements IUniService{ } @Override - //public Long syncUniUser(Long userId, Long projectId) { - public Long syncUniUser(ProProjectInfoSubdeptsUsers puser) { - //SysUser user=remoteUserService.getSysUserInfo(userId, SecurityConstants.INNER).getData(); + public void syncUniUser(ProProjectInfoSubdeptsUsers puser) { JSONObject jo; if(StringUtils.isNotEmpty(puser.getUserInfos())){ jo = JSON.parseObject(puser.getUserInfos()); @@ -480,8 +499,8 @@ public class UniServiceImpl implements IUniService{ jo = new JSONObject(); } Long projectId=puser.getProjectId(); - String admitGuid=puser.getAdmitGuid(); //jo.getString("admitGuid"); - String faceGuid=puser.getFaceGuid(); //jo.getString("faceGuid"); + String admitGuid=puser.getAdmitGuid(); + String faceGuid=puser.getFaceGuid(); JSONObject userJo=new JSONObject(); userJo.put("projectId",projectId); userJo.put("name",puser.getUserName()); @@ -519,10 +538,8 @@ public class UniServiceImpl implements IUniService{ url="http://62.234.3.186"+url; } faceJo.put("url",url); - //faceJo.put("url","https://uniubi-aiot.oss-cn-hangzhou.aliyuncs.com/detect/20241007/211204-71D9BCBE526C4F57B8D31ECAE03AEBFB"); faceJo.put("faceTag",""); HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); - //String url= request.getRemoteAddr(); if(StringUtils.isNotEmpty(faceGuid)){ JSONObject faceDel=new JSONObject(); faceDel.put("projectId",projectId); @@ -541,10 +558,11 @@ public class UniServiceImpl implements IUniService{ puser.setUserInfos(jo.toJSONString()); if(hasUpdate){ - int ret=proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(puser); - return ret*1l; + proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(puser); } - return 0l; + + // 人员入场 + syncUserAuthDeviceByInfo(puser); } } diff --git a/yanzhu-ui-app/miniprogram/api/project.js b/yanzhu-ui-app/miniprogram/api/project.js index 74df64c2..974ed7d2 100644 --- a/yanzhu-ui-app/miniprogram/api/project.js +++ b/yanzhu-ui-app/miniprogram/api/project.js @@ -101,10 +101,9 @@ export function findProjectDepts(proId) { } // 查询项目参建单位 -export function findProjectDeptUsers(query) { +export function findProjectDeptUsers(proId) { return request({ - url: '/manage/proProjectInfoDepts/findAllDepts/' + proId, - method: 'get', - params: query + url: '/manage/proProjectInfoSubdeptsUsers/findAllSendUsers/' + proId, + method: 'get' }) } \ No newline at end of file diff --git a/yanzhu-ui-app/miniprogram/components/select-group-person/index.js b/yanzhu-ui-app/miniprogram/components/select-group-person/index.js index cdf70fd9..e600ede7 100644 --- a/yanzhu-ui-app/miniprogram/components/select-group-person/index.js +++ b/yanzhu-ui-app/miniprogram/components/select-group-person/index.js @@ -67,7 +67,7 @@ Component({ var data = this.data.rectifierData; let ei = e.currentTarget.dataset.index; let index = ei.split('_'); - let userdata = data[index[0]].userinfoList[index[1]]; + let userdata = data[index[0]].userList[index[1]]; let of = this.data.selectedIndex.indexOf(ei); if(of>-1){ this.data.selectedIndex.splice(of, 1); @@ -80,13 +80,17 @@ Component({ if(this.data.selectedIndex.length>1){ this.data.selectedIndex.forEach((item) =>{ let _indexs = item.split('_'); - data[_indexs[0]].userinfoList[_indexs[1]].state = false; + data[_indexs[0]].userList[_indexs[1]].state = false; }); userdata.state = true; this.data.selectedIndex=[]; this.data.selectedIndex.push(ei); } - let _gridData=[{userName:userdata.nickName+" ["+userdata.jobTypeName+"]",phoneNumber:userdata.phonenumber}]; + let _post=""; + if(userdata.userPostName){ + _post = " ["+userdata.userPostName+"]"; + } + let _gridData=[{'userId':userdata.userId,'userName':userdata.userName+_post,'userPhone':userdata.userPhone}]; this.triggerEvent('selected',_gridData) this.setData({ choose:_gridData[0].userName, @@ -106,8 +110,12 @@ Component({ if(this.data.selectedIndex.length>0){ this.data.selectedIndex.forEach((item) =>{ let _indexs = item.split('_'); - let name = data[_indexs[0]].userinfoList[_indexs[1]].nickName+" ["+data[_indexs[0]].userinfoList[_indexs[1]].jobTypeName+"]"; - _gridData.push({userName:name,phoneNumber:data[_indexs[0]].userinfoList[_indexs[1]].phonenumber}); + let _post=""; + if(data[_indexs[0]].userList[_indexs[1]].userPostName){ + _post = " ["+data[_indexs[0]].userList[_indexs[1]].userPostName+"]"; + } + let name = data[_indexs[0]].userList[_indexs[1]].userName+_post; + _gridData.push({'userId':data[_indexs[0]].userList[_indexs[1]].userId,'userName':name,'userPhone':data[_indexs[0]].userList[_indexs[1]].userPhone}); chooses+=","+name; }); } diff --git a/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxml b/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxml index ae6e349a..8e54497a 100644 --- a/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxml +++ b/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxml @@ -17,15 +17,14 @@ - [{{item.unitTypeName}}] {{item.unitName}} - + {{item.subDeptName}} [{{item.subDeptTypeName}}] + - {{items.phonenumber}} - {{items.nickName}} [{{items.jobTypeName}}] + {{items.userName}} {{items.userPhone}} [{{items.userPostName}}] diff --git a/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxss b/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxss index 3c4d8af0..1fa8581c 100644 --- a/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxss +++ b/yanzhu-ui-app/miniprogram/components/select-group-person/index.wxss @@ -47,7 +47,7 @@ page{ .rectifier_list_for{ display: flex; align-items: center; - padding: 18rpx 15rpx; + padding: 16rpx 15rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -91,18 +91,28 @@ page{ } .rectifier_list-group_for{ height: 65rpx; - background-color: #879ff97d; + background-color: #9898987d; line-height: 65rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + border-radius: 5px; + font-weight: 500; } +.rectifier_list-group_for:not(:first-child){ + margin-top: 15px; +} + .inspect_input_fill_in { height: 90rpx; background: #212737; border-radius: 10rpx; padding: 0 30rpx; } +.modify_eharts_title_1 { + padding-left: 45rpx; + background: url("http://fileimg.makalu.cc/CORE_52887EE6A33042408E11C2174974ABA1.png") no-repeat left/40rpx; +} diff --git a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.js b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.js index 365c796a..b3e331b1 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.js +++ b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.js @@ -1,4 +1,3 @@ -import config from '../../../config' import { getToken, getUserInfo @@ -35,30 +34,11 @@ Page({ }, active: 0, flowNodes:[{text:'开始'},{text:'提交隐患'},{text:'隐患整改'},{text:'隐患复检'},{text:'结束'}], - loginName: "", - userName: "", - rectifierData: [], - rectifierData2: [], - rectifierData3: [], - //验收时间 - nickedTime: '', + lordSentList: [], + copySendList: [], + checkUserList: [], loadShow: false, - lordSent: "", - lordSentUser: "", - copySend: "", - copySendUser: "", - recheckSend: "", - recheckSendUser: "", - workParts: "", - changeInfo: "", - dangerType: "1", - dangerTypeList: [], - selectValue: "", - selectIndex: "", - problemType: "1", showHis: false, - - }, /** @@ -127,70 +107,16 @@ Page({ * 获取项目所有人员,在页面组装数据... */ getProjectUsers() { - let params = "projectId="+app.globalData.useProjectId; - findProjectDeptUsers(params).then(res =>{ - let _lordSentList = []; - let _copySendList = []; - let _checkUserList = []; - res.data.forEach(item =>{ - //if(item.subDeptType!='1' && _lordSentList) - }); + findProjectDeptUsers(app.globalData.useProjectId).then(res =>{ + if(res.code==200){ + this.setData({ + lordSentList: res.data.lordSentList, + copySendList: res.data.copySendList, + checkUserList: res.data.checkUserList, + }); + } }); - let that = this - wx.request({ - url: app.globalData.reqUrl + '/wechat/projectuserinfo/queryAllProjectUserByParams', - method: "get", - data: { - projectId: that.data.projectId, - loginName: that.data.loginName - }, - header: { - 'content-type': 'application/x-www-form-urlencoded' - }, - success(res) { - res = res.data - if (res.code == 200) { - that.setData({ - rectifierData: res.data, - rectifierData3: res.data, - }) - } - } - }) - - wx.request({ - url: app.globalData.reqUrl + '/wechat/projectuserinfo/queryAllProjectUserByParams', - method: "get", - data: { - projectId: that.data.projectId, - loginName: that.data.loginName, - selectMy: 'Y' - }, - header: { - 'content-type': 'application/x-www-form-urlencoded' - }, - success(res) { - res = res.data; - if (res.code == 200) { - let findMy = false; - res.data.forEach(it => { - if (it.userinfoList.length > 0) { - it.userinfoList.forEach(u => { - if (that.data.loginName == u.phonenumber) { - findMy = true; - } - }); - } - }); - if(!findMy){ - res.data[0].userinfoList.push({state:false,nickName:that.data.userName,jobTypeName:'集团公司',phonenumber:that.data.loginName}); - } - that.setData({ - rectifierData2: res.data, - }) - } - } - }) + }, /** diff --git a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.json b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.json index 8ee905ec..70315869 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.json +++ b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.json @@ -1,7 +1,7 @@ { "usingComponents": { "van-steps": "@vant/weapp/steps/index", - "van-overlay": "@vant/weapp/overlay/index" + "van-overlay": "@vant/weapp/overlay/index" }, "navigationStyle":"custom" } \ No newline at end of file diff --git a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.wxml b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.wxml index 7b814a28..b0cb2c62 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.wxml +++ b/yanzhu-ui-app/miniprogram/pages/project_problemmodify/add/index.wxml @@ -5,7 +5,7 @@ - 新增质量隐患 + 新增{{typeName}}隐患 @@ -38,14 +38,14 @@ 隐患描述