From 80f2a2b901ed88715a4785c2cfd21fb56313829c Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 24 Jul 2024 14:24:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OriginalRecordController.java | 57 ++++++ .../aqgqj/basis/dao/OriginalRecordMapper.java | 51 +++++ .../basis/service/OriginalRecordService.java | 36 ++++ .../impl/OriginalRecordServiceImpl.java | 70 +++++++ .../mappers/basis/OriginalRecordMapper.xml | 142 +++++++++++++ .../static/js/basis/originalRecord.js | 191 ++++++++++++++++++ .../static/pages/basis/originalRecord.html | 67 ++++++ 7 files changed, 614 insertions(+) create mode 100644 src/main/java/com/bonus/aqgqj/basis/controller/OriginalRecordController.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/dao/OriginalRecordMapper.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/service/OriginalRecordService.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/service/impl/OriginalRecordServiceImpl.java create mode 100644 src/main/resources/mappers/basis/OriginalRecordMapper.xml create mode 100644 src/main/resources/static/js/basis/originalRecord.js create mode 100644 src/main/resources/static/pages/basis/originalRecord.html diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/OriginalRecordController.java b/src/main/java/com/bonus/aqgqj/basis/controller/OriginalRecordController.java new file mode 100644 index 0000000..3427237 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/controller/OriginalRecordController.java @@ -0,0 +1,57 @@ +package com.bonus.aqgqj.basis.controller; + +import com.bonus.aqgqj.annotation.DecryptAndVerify; +import com.bonus.aqgqj.annotation.LogAnnotation; +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import com.bonus.aqgqj.basis.service.OriginalRecordService; +import com.bonus.aqgqj.system.vo.EncryptedReq; +import com.bonus.aqgqj.utils.ServerResponse; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @className:OriginalRecordController + * @author:cwchen + * @date:2024-07-24-14:11 + * @version:1.0 + * @description:原始记录管理-controller + */ +@RestController +@RequestMapping("/originalRecord/") +@Slf4j +public class OriginalRecordController { + + @Resource(name = "OriginalRecordService") + private OriginalRecordService service; + + @PostMapping(value = "getList") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "原始记录管理", operation = "查询列表", operDesc = "系统级事件", operType = "查询") +// @PreAuthorize("@pms.hasPermission('sys:originalRecord:query')" ) + public ServerResponse getList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + List list = service.getList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit()); + } + + @PostMapping(value = "getDetailList") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "原始记录管理", operation = "查询审查详情列表", operDesc = "系统级事件", operType = "查询") +// @PreAuthorize("@pms.hasPermission('sys:originalRecord:detailQuery')") + public ServerResponse getDetailList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + List list = service.getDetailList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit()); + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/OriginalRecordMapper.java b/src/main/java/com/bonus/aqgqj/basis/dao/OriginalRecordMapper.java new file mode 100644 index 0000000..7384c6e --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/dao/OriginalRecordMapper.java @@ -0,0 +1,51 @@ +package com.bonus.aqgqj.basis.dao; + +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import org.apache.ibatis.annotations.MapKey; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @className:OriginalRecordMapper + * @author:cwchen + * @date:2024-07-24-14:12 + * @version:1.0 + * @description:原始记录-mapper + */ +@Repository("OriginalRecordMapper") +public interface OriginalRecordMapper { + + /** + * 原始记录列表 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/23 10:15 + */ + List getList(ParamsDto dto); + + /** + * 原始记录审查详情列表 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/23 17:58 + */ + List getDetailList(ParamsDto dto); + + /** + * 查询试验设备数量 + * @param experId + * @return List> + * @author cwchen + * @date 2024/7/23 18:16 + */ + @MapKey("id") + List> getExperDevItemsNum(Long experId); +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/OriginalRecordService.java b/src/main/java/com/bonus/aqgqj/basis/service/OriginalRecordService.java new file mode 100644 index 0000000..9a52d6c --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/OriginalRecordService.java @@ -0,0 +1,36 @@ +package com.bonus.aqgqj.basis.service; + +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; + +import java.util.List; + +/** + * @className:OriginalRecordService + * @author:cwchen + * @date:2024-07-24-14:12 + * @version:1.0 + * @description:原始记录-service + */ +public interface OriginalRecordService { + + /** + * 原始记录列表 + * + * @param data + * @return List + * @author cwchen + * @date 2024/7/23 10:14 + */ + List getList(ParamsDto data); + + /** + * 原始记录审查详情列表 + * @param data + * @return List + * @author cwchen + * @date 2024/7/23 17:57 + */ + List getDetailList(ParamsDto data); +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/OriginalRecordServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/OriginalRecordServiceImpl.java new file mode 100644 index 0000000..6521d79 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/OriginalRecordServiceImpl.java @@ -0,0 +1,70 @@ +package com.bonus.aqgqj.basis.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.bonus.aqgqj.basis.dao.OriginalRecordMapper; +import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; +import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import com.bonus.aqgqj.basis.service.OriginalRecordService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @className:OriginalRecordServiceImpl + * @author:cwchen + * @date:2024-07-24-14:12 + * @version:1.0 + * @description:原始记录-impl + */ +@Service(value = "OriginalRecordService") +@Slf4j +public class OriginalRecordServiceImpl implements OriginalRecordService { + + @Resource(name = "OriginalRecordMapper") + private OriginalRecordMapper mapper; + + @Override + public List getList(ParamsDto dto) { + List list = new ArrayList<>(); + try { + list = mapper.getList(dto); + for (ExperimentalVo vo : list) { + + } + } catch (Exception e) { + log.error(e.toString(), e); + } + return list; + } + + @Override + public List getDetailList(ParamsDto dto) { + List list = new ArrayList<>(); + try { + list = mapper.getDetailList(dto); + if (CollectionUtils.isNotEmpty(list)) { + for (ExperimentalDetailVo detailVo : list) { + // 样品试验结果、样品数量、送样总数 + List sampleList = new ArrayList<>(); + if (detailVo.getExperId() != null) { + List> mapList = mapper.getExperDevItemsNum(detailVo.getExperId()); + JSONArray jsonArray = new JSONArray(); + jsonArray.addAll(mapList); + sampleList = jsonArray.toJavaList(ExperimentalDetailVo.Sample.class); + } + detailVo.setSampleList(sampleList); + detailVo.setSampleQuantity(sampleList.size()); + } + } + } catch (Exception e) { + log.error(e.toString(), e); + } + return list; + } +} diff --git a/src/main/resources/mappers/basis/OriginalRecordMapper.xml b/src/main/resources/mappers/basis/OriginalRecordMapper.xml new file mode 100644 index 0000000..2323cee --- /dev/null +++ b/src/main/resources/mappers/basis/OriginalRecordMapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + diff --git a/src/main/resources/static/js/basis/originalRecord.js b/src/main/resources/static/js/basis/originalRecord.js new file mode 100644 index 0000000..035bfd8 --- /dev/null +++ b/src/main/resources/static/js/basis/originalRecord.js @@ -0,0 +1,191 @@ +let form, layer, table, tableIns, laydate; +let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 +let deviceTypeList = []; +layui.use(['form', 'layer', 'table', 'laydate'], function () { + form = layui.form; + layer = layui.layer; + table = layui.table; + laydate = layui.laydate; + layui.form.render(); + deviceTypeList = getDictsSelect("dev_code"); + setDictSelectValue(deviceTypeList, 'devTypeCode'); + laydate.render({ + elem: '#ID-laydate-rangeLinked', + range: ['#startTime', '#endTime'], + rangeLinked: true // 开启日期范围选择时的区间联动标注模式 --- 2.8+ 新增 + }); + pages(1, 10, 1); +}) + +function pages(pageNum, pageSize, typeNum) { + let params = getReqParams(pageNum, pageSize, typeNum); + $.ajax({ + url: dataUrl + "/examine/getList", + headers: { + "token": tokens + }, + data: params, + type: 'POST', + async: false, + success: function (result) { + console.log(result); + if (result.code === 200) { + if (result.data) { + initTable(result.data, result.limit, result.curr) + laypages(result.count, result.curr, result.limit) + } + } else if (result.code === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, error: function (xhr) { + error(xhr); + } + }); +} + +function laypages(total, page, limit) { + layui.use(['laypage'], function () { + let laypage = layui.laypage; + laypage.render({ + elem: 'voi-page', + count: total, + curr: page, + limit: limit, + limits: [10, 20, 50, 100, 200, 500], + layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], + groups: 5, + jump: function (obj, first) { + if (!first) { + pageNum = obj.curr, limitSize = obj.limit; + pages(obj.curr, obj.limit, null); + } + } + }); + }) +} + +/*初始化表格*/ +function initTable(dataList, limit, page) { + let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + tableIns = table.render({ + elem: "#table_data", + height: "full-140", + data: dataList, + limit: limit, + cols: [ + [ + //表头 + { + title: "序号", width: 80, unresize: true, align: "center", + templet: function (d) { + return (page - 1) * limit + d.LAY_NUM; + } + }, + {field: "customName", title: "送样单位", unresize: true, align: "center"}, + {field: "sampleTime", title: "送样时间", unresize: true, align: "center"}, + {field: "sampleDev", title: "送样设备", unresize: true, align: "center"}, + {field: "customNum", title: "送样数量", unresize: true, align: "center"}, + {field: "sampleUserName", title: "收样人", unresize: true, align: "center"}, + {field: "sampleDate", title: "收样时间", unresize: true, align: "center"}, + {field: "teamName", title: "试验班组", unresize: true, align: "center"}, + {field: "audtiStatus", title: "状态", unresize: true, align: "center"}, + { + title: "审查", unresize: true, width: 180, align: "center", + templet: function (d) { + let html = ''; + // html += ""; + html += setButtonName(d.id, d.roleCode, d.status); + return html; + } + }, + ], + ], + done: function (res, curr, count) { + layer.close(loadingMsg); + table.resize("table_data"); + count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); + count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); + }, + }); +} + + +// 获取参数 +function getReqParams(page, limit, type) { + let obj = {}; + if (!type) { + obj = { + page: page + "", + limit: limit + "", + keyWord: $('#keyWord').val(), + startTime: $('#startTime').val(), + endTime: $('#endTime').val(), + devTypeCode: $('#devTypeCode').val(), + }; + } else { + obj = { + page: '1', + limit: '10', + keyWord: '', + accessType: '', + startTime: '', + endTime: '', + devTypeCode: '' + }; + } + obj = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + return obj; +} + +// 查询/重置 +function query() { + let pattern = new RegExp("[%_<>]"); + if (pattern.test($("#ip").val())) { + $("#ip").val(''); + return layer.msg('ip查询包含特殊字符,请重新输入', { + icon: 2, + time: 2000 //2秒关闭(如果不配置,默认是3秒) + }); + } + pageNum = 1; + pages(1, limitSize); +} + +function reloadData() { + pages(pageNum, limitSize); +} + +// 审核数据 +function auditData(id, status, btnName) { + let title = btnName + let param = { + 'id': id, + 'status':status + } + openIframe3("auditData", title, "child/auditData.html", '1500px', '800px', param); +} + +const data = { + administrators1: '审阅', + administrators2: '审核', + administrators3: '审批', + experimentalTeamLeader1: '审阅', + technicalDirector2: '审核', + centerManager3: '审批' +}; + +function getValueByKey(obj, key) { + return obj[key]; +} + +/**设置审核类型*/ +function setButtonName(id, value, status) { + let cent = ""; + const btnName = getValueByKey(data, value + status) + if (btnName) { + cent += "" + btnName + ""; + } + return cent; +} \ No newline at end of file diff --git a/src/main/resources/static/pages/basis/originalRecord.html b/src/main/resources/static/pages/basis/originalRecord.html new file mode 100644 index 0000000..d838303 --- /dev/null +++ b/src/main/resources/static/pages/basis/originalRecord.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + 试验数据-审查 + + +
+ +
+
+
+
+
+ + + + + \ No newline at end of file