From 3a12d05af08d59b314c4128442c354127b8a4e03 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Fri, 11 Jul 2025 17:28:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=A5=A8bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=92=8C=E6=89=B9=E9=87=8F=E4=BA=BA=E5=91=98=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zhgd/xmgl/async/AsyncWorker.java | 33 ++++++++ .../java/com/zhgd/xmgl/call/Mcs8Call.java | 30 ++++++-- .../com/zhgd/xmgl/call/util/Mcs8Util.java | 38 ++++++---- .../service/impl/SystemUserServiceImpl.java | 1 + .../PoliceCameraItemController.java | 1 + .../controller/WorkTicketController.java | 1 + .../entity/ProjectPoliceCameraConfig.java | 6 ++ .../mapper/PoliceCameraItemMapper.java | 7 ++ .../mapper/xml/PoliceCameraItemMapper.xml | 7 ++ .../mapper/xml/WorkTicketMapper.xml | 5 ++ .../impl/PoliceCameraItemServiceImpl.java | 8 ++ .../controller/QualityRegionController.java | 8 ++ .../quality/mapper/QualityRegionMapper.java | 9 +++ .../mapper/xml/QualityRegionMapper.xml | 11 +++ .../service/IQualityRegionService.java | 8 ++ .../impl/QualityRegionServiceImpl.java | 7 ++ .../controller/WorkerInfoController.java | 29 +++++++ .../DangongWorkerFaceStatusServiceImpl.java | 4 +- .../service/impl/WorkerInfoServiceImpl.java | 75 +++++++++++-------- 19 files changed, 235 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncWorker.java b/src/main/java/com/zhgd/xmgl/async/AsyncWorker.java index ffc4d4272..c7a89ccbd 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncWorker.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncWorker.java @@ -257,4 +257,37 @@ public class AsyncWorker { log.error("error:", e); } } + + + /** + * 批量人员绑定设备 + * + * @param + */ + @Async("doubleCarbonExecutor") + public void batchBindDevForWorkers(List workerList, Long userId) { + try { + for (WorkerInfo info : workerList) { + try { + workerInfoService.editWorkerInfo(info); + } catch (Exception e) { + log.error("批量人员绑定设备异常,人员名称:{}", info.getWorkerName() + "," + e.getMessage()); + log.error("error:", e); + } + } + if (userId != null) { + java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Notice notice = new Notice(); + notice.setAccountId(userId); + notice.setMsg("已经完成批量人员绑定设备" + workerList.size() + "个人"); + notice.setTitle("批量人员绑定设备提醒"); + notice.setSendTime(format1.format(new Date())); + notice.setType("1"); + noticeService.addNotice(notice, true); + } + log.info("--------------------------------批量人员绑定设备执行完成-------------------------------"); + } catch (Exception e) { + log.error("error:", e); + } + } } diff --git a/src/main/java/com/zhgd/xmgl/call/Mcs8Call.java b/src/main/java/com/zhgd/xmgl/call/Mcs8Call.java index 5b5dc5d06..98abba399 100644 --- a/src/main/java/com/zhgd/xmgl/call/Mcs8Call.java +++ b/src/main/java/com/zhgd/xmgl/call/Mcs8Call.java @@ -61,10 +61,17 @@ public class Mcs8Call implements PoliceCameraManufacturer { if (CollUtil.isEmpty(ticket.getItemList())) { throw new OpenAlertException("请先绑定设备"); } - Mcs8Util.addTask(config, StrUtil.format("{}-{}-{}", ticket.getConstructionAreaNames(), ticket.getWorkTicketNumber(), "第" + no + "次作业"), workNo); - String taskId = Mcs8Util.getTaskIdByWorkNo(config, workNo); - Mcs8Util.updateTaskDest(config, ticket.getItemList(), taskId); - Mcs8Util.updateTaskStatus(config, 0, taskId); + try { + Mcs8Util.addTask(config, StrUtil.format("{}-{}-{}", ticket.getConstructionAreaNames(), ticket.getWorkTicketNumber(), "第" + no + "次作业"), workNo); + String taskId = Mcs8Util.getTaskIdByWorkNo(config, workNo); + Mcs8Util.updateTaskDest(config, ticket.getItemList(), taskId); + Mcs8Util.updateTaskStatus(config, 0, taskId); + } catch (OpenAlertException e) { + throw e; + } catch (Exception e) { + log.error("err", e); + throw new OpenAlertException("开启设备录像失败,请检查调度台服务器配置"); + } } @Override @@ -72,8 +79,15 @@ public class Mcs8Call implements PoliceCameraManufacturer { if (CollUtil.isEmpty(ticket.getItemList())) { throw new OpenAlertException("请先绑定设备"); } - String taskId = Mcs8Util.getTaskIdByWorkNo(config, workNo); - Mcs8Util.updateTaskStatus(config, 2, taskId); + try { + String taskId = Mcs8Util.getTaskIdByWorkNo(config, workNo); + Mcs8Util.updateTaskStatus(config, 2, taskId); + } catch (OpenAlertException e) { + throw e; + } catch (Exception e) { + log.error("err", e); + throw new OpenAlertException("关闭设备录像失败,请检查调度台服务器配置"); + } } @@ -105,7 +119,7 @@ public class Mcs8Call implements PoliceCameraManufacturer { WorkTicketHistory history = workTicketHistoryService.getById(bo.getWorkNo()); if (item != null) { HashMap headers = new HashMap<>(); - headers.put("token", Mcs8Util.getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())); + headers.put("token", Mcs8Util.getToken(Mcs8Util.getHost(config), config.getPort(), config.getAccount(), config.getPassword())); File downloadFile = HttpUtils.downloadFile(signedUrl.getPubUrl(), PathUtil.getBasePath(), headers); if (downloadFile != null) { PoliceCameraItemFile file = new PoliceCameraItemFile(); @@ -159,4 +173,6 @@ public class Mcs8Call implements PoliceCameraManufacturer { } } + + } diff --git a/src/main/java/com/zhgd/xmgl/call/util/Mcs8Util.java b/src/main/java/com/zhgd/xmgl/call/util/Mcs8Util.java index 9d684f1f3..e0f511ee0 100644 --- a/src/main/java/com/zhgd/xmgl/call/util/Mcs8Util.java +++ b/src/main/java/com/zhgd/xmgl/call/util/Mcs8Util.java @@ -67,13 +67,13 @@ public class Mcs8Util { */ public static void updateTaskDest(ProjectPoliceCameraConfig config, List itemList, String taskId) { for (PoliceCameraItem item : itemList) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/TaskUpdateDest"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/TaskUpdateDest"; JSONObject jo = new JSONObject(); jo.put("id", taskId); jo.put("destDevId", item.getDevSn()); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 更新工单执行设置(派发) url:{}", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 更新工单执行设置(派发) result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); @@ -85,6 +85,16 @@ public class Mcs8Util { } } + /** + * 拼接host + * + * @param config + * @return + */ + public static String getHost(ProjectPoliceCameraConfig config) { + return (Objects.equals(config.getHttpType(), 1) ? "http" : "https") + "://" + config.getIp(); + } + /** * 通过工单号获取工单id * @@ -92,14 +102,14 @@ public class Mcs8Util { * @param workNo */ public static String getTaskIdByWorkNo(ProjectPoliceCameraConfig config, String workNo) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/TaskList"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/TaskList"; JSONObject jo = new JSONObject(); jo.put("st", "2022-01-01"); jo.put("et", DateUtil.formatDateTime(DateUtil.offsetDay(new Date(), 1))); jo.put("workNo", workNo); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 获取工单列表 url:{}", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 获取工单列表 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); @@ -122,7 +132,7 @@ public class Mcs8Util { * @param workNo */ public static void addTask(ProjectPoliceCameraConfig config, String title, String workNo) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/TaskAdd"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/TaskAdd"; JSONObject bodyJo = new JSONObject(); bodyJo.put("workNo", workNo); bodyJo.put("title", title); @@ -131,7 +141,7 @@ public class Mcs8Util { bodyJo.put("custome", null); String body = bodyJo.toString(); log.info("mcs8 添加工单 url:{} , body:{}", url, body); - String result = HttpRequest.post(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).body(body).execute().body(); + String result = HttpRequest.post(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).body(body).execute().body(); log.info("mcs8 添加工单 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); if (Objects.equals(jsonObject.getInteger("result"), 200) || Objects.equals(jsonObject.getInteger("error"), 200)) { @@ -149,7 +159,7 @@ public class Mcs8Util { * @param taskId */ public static void updateTaskStatus(ProjectPoliceCameraConfig config, int status, String taskId) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/TaskUpdateStatus"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/TaskUpdateStatus"; JSONObject jo = new JSONObject(); if (StrUtil.isBlank(taskId) && status == 2) { return; @@ -158,7 +168,7 @@ public class Mcs8Util { jo.put("status", status); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 更新工单执行状态 url:{}", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 更新工单执行状态 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); @@ -180,7 +190,7 @@ public class Mcs8Util { * @return */ public static JSONObject getRecordFileList(ProjectPoliceCameraConfig config, Integer page, Integer pageSize, Date begin, Date end) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/RecordFileList"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/RecordFileList"; JSONObject jo = new JSONObject(); jo.put("st", DateUtil.formatDateTime(begin)); jo.put("et", DateUtil.formatDateTime(end)); @@ -191,7 +201,7 @@ public class Mcs8Util { jo.put("pagesize", pageSize); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 查询文件列表 url:{}", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 查询文件列表 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); @@ -210,13 +220,13 @@ public class Mcs8Util { * @return */ public static Mcs8FileSignedUrlBo getSignedUrl(ProjectPoliceCameraConfig config, String id) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/oss/SignedUrl"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/oss/SignedUrl"; JSONObject jo = new JSONObject(); jo.put("id", id); jo.put("expires", 7); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 获取文件网络访问地址 url:{}", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 获取文件网络访问地址 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); @@ -236,13 +246,13 @@ public class Mcs8Util { * @return */ public static JSONArray getDevList(ProjectPoliceCameraConfig config, int page, int pageSize) { - String url = config.getIp() + ":" + config.getPort() + "/api/v1/DevList"; + String url = getHost(config) + ":" + config.getPort() + "/api/v1/DevList"; JSONObject jo = new JSONObject(); jo.put("page", page); jo.put("pageSize", pageSize); url = HttpUtil.urlWithForm(url, jo, CharsetUtil.CHARSET_UTF_8, false); log.info("mcs8 获取设备列表 url:{} ", url); - String result = HttpRequest.get(url).header("token", getToken(config.getIp(), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); + String result = HttpRequest.get(url).header("token", getToken(getHost(config), config.getPort(), config.getAccount(), config.getPassword())).execute().body(); log.info("mcs8 获取设备列表 result:{}", result); JSONObject jsonObject = JSONObject.parseObject(result); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index eb7e6247b..66c00cee3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -495,6 +495,7 @@ public class SystemUserServiceImpl extends ServiceImpl> queryPageList(@ApiIgnore @RequestParam HashMap param) { diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/WorkTicketController.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/WorkTicketController.java index b5d016a3a..c976a984e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/WorkTicketController.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/controller/WorkTicketController.java @@ -52,6 +52,7 @@ public class WorkTicketController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "numberOrContent", value = "工作票编号或内容", paramType = "query", required = true, dataType = "Integer"), }) @GetMapping(value = "/page") public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/ProjectPoliceCameraConfig.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/ProjectPoliceCameraConfig.java index 1d595234b..14821ac6d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/ProjectPoliceCameraConfig.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/entity/ProjectPoliceCameraConfig.java @@ -87,4 +87,10 @@ public class ProjectPoliceCameraConfig implements Serializable { @Excel(name = "版本:1:v1;2:v2", width = 15) @ApiModelProperty(value = "版本:1:v1;2:v2") private Integer version; + + /** + * 1http2https(默认http) + */ + @ApiModelProperty(value = "1http2https(默认http)") + private java.lang.Integer httpType; } diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraItemMapper.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraItemMapper.java index b4e59cc4b..b218854bd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraItemMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/PoliceCameraItemMapper.java @@ -77,4 +77,11 @@ public interface PoliceCameraItemMapper extends BaseMapper { */ CountStatusVo countStatus(Map param); + /** + * 根据工单id查询执法记录仪设备列表idList + * + * @param ticketId + * @return + */ + List getCameraItemIdListByTicketId(String ticketId); } diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/PoliceCameraItemMapper.xml b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/PoliceCameraItemMapper.xml index f62fb0e64..08facf270 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/PoliceCameraItemMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/PoliceCameraItemMapper.xml @@ -79,4 +79,11 @@ where pvc.project_sn =#{projectSn} and pvc.is_enable=1) as t + + diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/WorkTicketMapper.xml b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/WorkTicketMapper.xml index 6a18b2c99..a0fb9f9a2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/WorkTicketMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/mapper/xml/WorkTicketMapper.xml @@ -7,6 +7,11 @@ ,wtt.type_name from work_ticket t left join work_ticket_type wtt on wtt.id=t.type_id + where 1=1 + + and (t.work_ticket_number like CONCAT('%',#{param.numberOrContent},'%') or t.work_content like + CONCAT('%',#{param.numberOrContent},'%' )) + )t ${ew.customSqlSegment} diff --git a/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/PoliceCameraItemServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/PoliceCameraItemServiceImpl.java index 521d9529d..70533b7ec 100644 --- a/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/PoliceCameraItemServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/policecamera/service/impl/PoliceCameraItemServiceImpl.java @@ -96,7 +96,15 @@ public class PoliceCameraItemServiceImpl extends ServiceImpl getQueryWrapper(HashMap param) { + String ticketId = MapUtils.getString(param, "ticketId"); QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(PoliceCameraItemVo.class, param, true); + if (StrUtil.isNotBlank(ticketId)) { + List cameraItemIds = baseMapper.getCameraItemIdListByTicketId(ticketId); + if (CollUtil.isEmpty(cameraItemIds)) { + cameraItemIds.add(-1L); + } + queryWrapper.lambda().in(PoliceCameraItemVo::getItemId, cameraItemIds); + } queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PoliceCameraItemVo::getItemId)); return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java index cca0d1163..26bc6efa1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/controller/QualityRegionController.java @@ -126,4 +126,12 @@ public class QualityRegionController { return Result.success(qualityRegionService.queryRegionWorker(qualityRegion.getId().toString()).size()); } + @OperLog(operModul = "区域管理", operType = "查询", operDesc = "查询项目子账号绑定的区域列表") + @ApiOperation(value = "查询项目子账号绑定的区域列表", notes = "查询项目子账号绑定的区域列表", httpMethod = "GET") + @GetMapping(value = "/queryBindRegions") + public Result> queryBindRegions() { + return Result.success(qualityRegionService.queryBindRegions()); + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java index 7c1f6d6fa..602f26b95 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/QualityRegionMapper.java @@ -6,6 +6,7 @@ import com.zhgd.xmgl.modules.quality.entity.QualityRegion; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -68,4 +69,12 @@ public interface QualityRegionMapper extends BaseMapper { * @return */ List queryBindRegion(Map map); + + /** + * 查询项目子账号绑定的区域List + * + * @param map + * @return + */ + List queryBindRegions(HashMap map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml index 5c915f95c..0e7facc9a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/quality/mapper/xml/QualityRegionMapper.xml @@ -119,4 +119,15 @@ join system_user su on qr.belong_user_id=su.user_id where su.user_id=#{userId} and su.account_type=6 + + diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java index 9278cdeda..616c785ac 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/IQualityRegionService.java @@ -74,4 +74,12 @@ public interface IQualityRegionService extends IService { * @return */ Map getQualityRegionMapByProjectSn(String projectSn); + + /** + * 查询项目子账号绑定的唯一区域 + * + * @return + */ + List queryBindRegions(); + } diff --git a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java index 69c9acddd..c64e7ff60 100644 --- a/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/quality/service/impl/QualityRegionServiceImpl.java @@ -363,6 +363,13 @@ public class QualityRegionServiceImpl extends ServiceImpl o1)); } + @Override + public List queryBindRegions() { + HashMap map = new HashMap<>(16); + map.put("userId", SecurityUtils.getUser().getUserId()); + return baseMapper.queryBindRegions(map); + } + private void deleteRegion(Long id) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.lambda().eq(QualityRegion::getParentRegion, id); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index a2060f812..2d5a30641 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -8,6 +8,7 @@ import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; @@ -15,6 +16,7 @@ import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.redis.annotation.ApiIdempotent; import com.zhgd.redis.lock.RedisRepository; +import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.vo.*; @@ -22,6 +24,7 @@ import com.zhgd.xmgl.modules.worker.service.IDepartmentInfoService; import com.zhgd.xmgl.modules.worker.service.ITeamInfoService; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; +import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -71,6 +74,9 @@ public class WorkerInfoController { @Lazy @Autowired private IWorkerAttendanceService workerAttendanceService; + @Lazy + @Autowired + private AsyncWorker asyncWorker; /** * 添加 @@ -884,5 +890,28 @@ public class WorkerInfoController { return Result.success(vo); } + @ApiOperation(value = "劳务管理", notes = "批量人员绑定设备", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "workerIdList", value = "人员idList", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "ufaceDevId", value = "门禁设备id(多个,分割)", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/batchBindDevForWorkers") + public Result batchBindDevForWorkers(@ApiIgnore @RequestBody Map paramMap) { + String projectSn = MapUtils.getString(paramMap, "projectSn"); + String ufaceDevId = MapUtils.getString(paramMap, "ufaceDevId"); + List workerIdList = (List) paramMap.get("workerIdList"); + List workerInfos = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getProjectSn, projectSn) + .in(WorkerInfo::getId, workerIdList) + ); + for (WorkerInfo workerInfo : workerInfos) { + workerInfo.setDevType(1); + workerInfo.setUfaceDevId(ufaceDevId); + } + Long userId = SecurityUtils.getUser().getUserId(); + asyncWorker.batchBindDevForWorkers(workerInfos, userId); + return Result.success(null); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DangongWorkerFaceStatusServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DangongWorkerFaceStatusServiceImpl.java index d0171393f..721b66936 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DangongWorkerFaceStatusServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DangongWorkerFaceStatusServiceImpl.java @@ -107,9 +107,9 @@ public class DangongWorkerFaceStatusServiceImpl extends ServiceImpl pair = projectUfaceConfigService.getSendAndDeleteDevSns(workerInfo); String devs = pair.getLeft(); + this.remove(new LambdaQueryWrapper() + .eq(DangongWorkerFaceStatus::getWorkerId, workerInfo.getId())); if (StrUtil.isNotEmpty(devs)) { - this.remove(new LambdaQueryWrapper() - .eq(DangongWorkerFaceStatus::getWorkerId, workerInfo.getId())); for (String sn : StrUtil.split(devs, ",")) { DangongWorkerFaceStatus st = new DangongWorkerFaceStatus(); st.setProjectSn(workerInfo.getProjectSn()); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index 92aac352a..aa848d1f6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -93,6 +93,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; @@ -291,6 +292,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl map) { - List ageList = workerInfoMapper.getDeclareAge(map); - Set>> ageSet = ageList.stream().collect(Collectors.groupingBy(birthDay -> { - try { - return DateUtil.ageOfNow(birthDay); - } catch (Exception e) { - log.error("error:", e); - } - return 0; - })).entrySet(); - DeclareAgeVO result = new DeclareAgeVO(); - for (Map.Entry> ageItem : ageSet) { - Integer age = ageItem.getKey(); - int size = ageItem.getValue().size(); - if (age == null) { - result.setNotRegistered(result.getNotRegistered() + size); - } else if (age >= 18 && age <= 24) { - result.setEighteenToTwentyFour(result.getEighteenToTwentyFour() + size); - } else if (age >= 25 && age <= 34) { - result.setTwentyFiveToThirtyFour(result.getTwentyFiveToThirtyFour() + size); - } else if (age >= 35 && age <= 49) { - result.setThirtyFiveToFortyNine(result.getThirtyFiveToFortyNine() + size); - } else if (age >= 50 && age <= 55) { - result.setFiftyToFiftyFive(result.getFiftyToFiftyFive() + size); - } - } - return result; - } - ///* //全量和增量更新 // */ @@ -2259,6 +2233,36 @@ public class WorkerInfoServiceImpl extends ServiceImpl map) { + List ageList = workerInfoMapper.getDeclareAge(map); + Set>> ageSet = ageList.stream().collect(Collectors.groupingBy(birthDay -> { + try { + return DateUtil.ageOfNow(birthDay); + } catch (Exception e) { + log.error("error:", e); + } + return 0; + })).entrySet(); + DeclareAgeVO result = new DeclareAgeVO(); + for (Map.Entry> ageItem : ageSet) { + Integer age = ageItem.getKey(); + int size = ageItem.getValue().size(); + if (age == null) { + result.setNotRegistered(result.getNotRegistered() + size); + } else if (age >= 18 && age <= 24) { + result.setEighteenToTwentyFour(result.getEighteenToTwentyFour() + size); + } else if (age >= 25 && age <= 34) { + result.setTwentyFiveToThirtyFour(result.getTwentyFiveToThirtyFour() + size); + } else if (age >= 35 && age <= 49) { + result.setThirtyFiveToFortyNine(result.getThirtyFiveToFortyNine() + size); + } else if (age >= 50 && age <= 55) { + result.setFiftyToFiftyFive(result.getFiftyToFiftyFive() + size); + } + } + return result; + } + @Override public Result> getWorkerInfoDetails(Integer pageNo, Integer pageSize, String projectSn) { if (pageNo == null) { @@ -2359,6 +2363,17 @@ public class WorkerInfoServiceImpl extends ServiceImpl { +// Integer devType = workerInfo.getDevType(); +// if (Objects.equals(devType, 1)) { +// if (workerInfo.getUfaceDevId() != null) { +// return workerInfo.getUfaceDevId().contains(dev.getId() + ""); +// } else { +// return false; +// } +// } +// return true; +// }).collect(Collectors.toList()); //添加人员 ArrayList datas = new ArrayList<>();