From 10eb940bab0e2e599f6c6c99effa00fa89764246 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Sat, 20 Jul 2024 22:28:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=B7=A5=E5=99=A8=E5=85=B7=E4=B8=AA?= =?UTF-8?q?=E4=BD=93=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ToolsManageController.java | 38 ++- .../bonus/aqgqj/basis/dao/ToolsManageDao.java | 19 ++ .../basis/entity/dto/ToolsManageDto.java | 101 ++----- .../basis/service/ToolsManageService.java | 16 + .../service/impl/ToolsManageServiceImpl.java | 33 ++- .../mappers/basis/ToolsManageMapper.xml | 86 +++--- .../static/js/tools/child/toolsForm.js | 280 ++++++++++++++++++ .../resources/static/js/tools/toolsMge.js | 166 +++-------- .../resources/static/pages/role/addRole.html | 5 +- .../pages/tools/child/certificateView.html | 37 +++ .../static/pages/tools/child/toolsForm.html | 52 ++++ .../static/pages/tools/toolsMge.html | 23 +- .../static/pages/user/child/userForm.html | 25 -- 13 files changed, 605 insertions(+), 276 deletions(-) create mode 100644 src/main/resources/static/js/tools/child/toolsForm.js create mode 100644 src/main/resources/static/pages/tools/child/certificateView.html create mode 100644 src/main/resources/static/pages/tools/child/toolsForm.html diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ToolsManageController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ToolsManageController.java index e7f3d91..5f4915a 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/ToolsManageController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ToolsManageController.java @@ -5,6 +5,7 @@ import com.bonus.aqgqj.annotation.LogAnnotation; import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto; import com.bonus.aqgqj.basis.service.ToolsManageService; import com.bonus.aqgqj.model.PasswordConfig; +import com.bonus.aqgqj.model.Role; import com.bonus.aqgqj.model.SysUser; import com.bonus.aqgqj.system.dao.UserDao; import com.bonus.aqgqj.system.service.UserService; @@ -33,9 +34,10 @@ import java.util.Objects; /** - * 工器具管理 + * 工器具个体管理 + * @author hay */ -@Api(tags = "工器具管理") +@Api(tags = "工器具个体管理") @RestController @RequestMapping("/tools/") public class ToolsManageController { @@ -47,7 +49,7 @@ public class ToolsManageController { @PostMapping(value = "getList") @DecryptAndVerify(decryptedClass = ToolsManageDto.class) - @LogAnnotation(operModul = "系统管理-用户管理", operation = "查询用列表", operDesc = "系统级事件",operType="查询") + @LogAnnotation(operModul = "工器具管理-工器具个体管理", operation = "查询用列表", operDesc = "系统级事件",operType="查询") @PreAuthorize("@pms.hasPermission('sys:tools:query')" ) public ServerResponse listUsers(EncryptedReq data) { PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); @@ -61,4 +63,34 @@ public class ToolsManageController { return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit()); } + @PostMapping(value = "getDetailsList") + @DecryptAndVerify(decryptedClass = ToolsManageDto.class) + @LogAnnotation(operModul = "工器具管理-工器具个体管理详情", operation = "查询用列表", operDesc = "系统级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:tools:query')" ) + public ServerResponse getDetailsList(EncryptedReq data) { + PageHelper.startPage(data.getData().getPage(), data.getData().getLimit()); + try { + List list = toolsManageService.getDetailsList(data.getData()); + PageInfo pageInfo = new PageInfo<>(list); + return ServerResponse.createSuccessPage(pageInfo,data.getData().getPage(),data.getData().getLimit()); + } catch (Exception e) { + log.error(e.toString(),e); + } + return ServerResponse.createErrorPage(data.getData().getPage(),data.getData().getLimit()); + } + + + @PostMapping(value = "all") + @LogAnnotation(operModul = "工器具管理", operation = "查询所有工器具", operDesc = "系统级事件",operType="查询") + @PreAuthorize("@pms.hasPermission('sys:tools:query')" ) + public ServerResponse getAll() { + try { + List list = toolsManageService.listTools(); + return ServerResponse.createSuccess(list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return ServerResponse.createErroe("操作失败"); + } + } diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/ToolsManageDao.java b/src/main/java/com/bonus/aqgqj/basis/dao/ToolsManageDao.java index f3964a7..db2081a 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/ToolsManageDao.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ToolsManageDao.java @@ -25,4 +25,23 @@ public interface ToolsManageDao { */ List list(ToolsManageDto bean); + /** + * 获取工器具 + * @param id + * @return + */ + String getSampleTools(Integer id); + + /** + * 获取详情列表 + * @param data + * @return + */ + List getDetailsList(ToolsManageDto data); + + /** + * 获取工器具 + * @return + */ + List listTools(); } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java index 9012e3f..15aca38 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java @@ -3,119 +3,76 @@ package com.bonus.aqgqj.basis.entity.dto; import com.bonus.aqgqj.base.entity.PageEntity; import lombok.Data; +/** + * 工器具个体管理 + * @author hay + */ @Data public class ToolsManageDto extends PageEntity { private static final long serialVersionUID = -6525908145032868837L; - private Long id; - + private Integer id; /** - * 登录名 + * 名称 */ - private String loginName; + private String name; /** - * 用户名 + * 送样单位 */ - private String username; + private String customName; /** - * 工号 + * 送样人 */ - private String userCode; + private String sampleUser; /** - * 单位部门 + * 送样时间 */ - private String orgName; + private String sampleTime; /** - * 角色名称 + * 送样设备 */ - private String roleName; - - private String password; - - private String oldPassword; + private String sampleTools; /** - * 手机号 + * 收样人 */ - private String phone; + private String collectSamplesUser; /** - * 用户类型 + * 收样时间 */ - private String userType; - - private String email; - - private Integer sex; - - private Integer state; - + private String collectSamplesTime; /** - * 角色id + * 班组 */ - private String roleId; + private String teamName; /** - * 组织机构id + * 设备编号 */ - private Integer orgId; + private String devTypeCode; /** - * 所属单位 + * 生产厂家 */ - private String unit; + private String factoryName; /** - * 所属部门 + * 生产日期 */ - private String dept; + private String produceDate; /** - * 登录权限 + * 设备规格 */ - private String loginType; + private String devModule; - private String headImgUrl; - - private String delFlag; - - /** - * 账号类型 - */ - private int type; - - /** - * 休眠时间 - */ - private String sleepTime; - - private String updatePasswordTime; - - /** - * 临时账号时间 - */ - private String lsTime; - - /** - * 登录时间 - */ - private String loginTimes; - - private String status; - - private String newUser; - - public interface Status { - int DISABLED = 0; - int VALID = 1; - int LOCKED = 2; - } } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/ToolsManageService.java b/src/main/java/com/bonus/aqgqj/basis/service/ToolsManageService.java index 3d95205..49a9def 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/ToolsManageService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/ToolsManageService.java @@ -10,6 +10,10 @@ import com.bonus.aqgqj.utils.ServerResponse; import java.util.List; import java.util.Map; +/** + * 工器具个体管理 + * @author hay + */ public interface ToolsManageService { /** * 查询列表 @@ -18,4 +22,16 @@ public interface ToolsManageService { */ List list(ToolsManageDto bean); + /** + * 详情列表 + * @param data + * @return + */ + List getDetailsList(ToolsManageDto data); + + /** + * 工器具列表 + * @return + */ + List listTools(); } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java index 41ac426..0d7c5fb 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java @@ -5,6 +5,7 @@ import com.bonus.aqgqj.basis.dao.ToolsManageDao; import com.bonus.aqgqj.basis.entity.dto.ToolsManageDto; import com.bonus.aqgqj.basis.service.ToolsManageService; import com.bonus.aqgqj.model.PasswordConfig; +import com.bonus.aqgqj.model.Role; import com.bonus.aqgqj.model.SysUser; import com.bonus.aqgqj.system.dao.UserDao; import com.bonus.aqgqj.system.service.UserService; @@ -23,6 +24,11 @@ import javax.annotation.Resource; import java.util.List; import java.util.Map; +/** +* @description 工器具个体管理 +* @author hay +* @date 2024/7/20 16:10 +*/ @Slf4j @Service public class ToolsManageServiceImpl implements ToolsManageService { @@ -32,11 +38,34 @@ public class ToolsManageServiceImpl implements ToolsManageService { private ToolsManageDao toolsManageDao; /** - * 查询用户列表 + * 查询列表 + * @param bean + * @return */ @Override public List list(ToolsManageDto bean) { - return toolsManageDao.list(bean); + List list = toolsManageDao.list(bean); + for (ToolsManageDto dto : list){ + String sampleTools = toolsManageDao.getSampleTools(dto.getId()); + dto.setSampleTools(sampleTools); + } + return list; + } + + /** + * 查询详情列表 + * @param data + * @return + */ + @Override + public List getDetailsList(ToolsManageDto data) { + return toolsManageDao.getDetailsList(data); + } + + @Override + public List listTools() { + List list = toolsManageDao.listTools(); + return list; } diff --git a/src/main/resources/mappers/basis/ToolsManageMapper.xml b/src/main/resources/mappers/basis/ToolsManageMapper.xml index 3f0d42e..7b4686f 100644 --- a/src/main/resources/mappers/basis/ToolsManageMapper.xml +++ b/src/main/resources/mappers/basis/ToolsManageMapper.xml @@ -3,44 +3,58 @@ + + + \ No newline at end of file diff --git a/src/main/resources/static/js/tools/child/toolsForm.js b/src/main/resources/static/js/tools/child/toolsForm.js new file mode 100644 index 0000000..9e6638f --- /dev/null +++ b/src/main/resources/static/js/tools/child/toolsForm.js @@ -0,0 +1,280 @@ +let form, layer, table, tableIns; +let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 +let orgData,selectOrgId; +let idParam; + +function setParams(params){ + idParam = JSON.parse(params).id; + layui.use(['form', 'layer', 'table', 'laydate'], function () { + form = layui.form; + layer = layui.layer; + table = layui.table; + layui.form.render(); + pages(1, 10, 1); + getToolsSelected(); + }) +} + +function pages(pageNum, pageSize, typeNum) { + let params = getReqParams(pageNum, pageSize, typeNum); + let url = dataUrl + "/tools/getDetailsList" + ajaxRequest(url, "POST", params, true, function () { + }, 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}) + } + }, function (xhr) { + error(xhr) + }); + +} + +function getToolsSelected() { + let url = dataUrl + '/tools/all'; + ajaxRequest(url, "POST", null, true, function () { + }, function (result) { + if (result.code === 200) { + setSelectValue(result.data, 'sampleTools'); + // return result.data + } else { + layer.alert(result.msg, {icon: 2}) + } + }, 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-130", + data: dataList, + limit: limit, + cols: [ + [ + //表头 + {title: "序号", width: 80, unresize: true, align: "center", + templet: function (d) { + return (page - 1) * limit + d.LAY_INDEX; + } + }, + {field: "sampleTools", title: "设备类型", unresize: true, align: "center"}, + {field: "devTypeCode", title: "设备编号", unresize: true, align: "center"}, + {field: "factoryName", title: "生产厂家", unresize: true, align: "center"}, + {field: "produceDate", title: "生产日期", unresize: true, align: "center"}, + {field: "devModule", title: "设备规格", unresize: true, align: "center"}, + { + field: "view1", title: "检测报告", unresize: true, align: "center", + templet: function (d) { + return '查看'; + } + }, + { + field: "view2", title: "合格证", unresize: true, align: "center", templet: function (d) { + return '查看'; + } + }, + { + field: "view3", title: "设备二维码", unresize: true, align: "center", templet: function (d) { + return '查看'; + } + }, + ], + ], + 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 handleClick1(view1) { + alert('Clicked on: ' + view1); +} + +function handleClick2(view1) { + alert('Clicked on: ' + view1); +} + +function handleClick3(view1) { + alert('Clicked on: ' + view1); +} + +// 获取参数 +function getReqParams(page, limit, type) { + var selectedValue =$('#sampleTools').val() + // 2. 查找对应的选项文本 + var selectedText = $('#sampleTools option[value="' + selectedValue + '"]').text(); + if (selectedText=='请选择'){ + selectedText='' + } + let obj = {}; + if (!type) { + obj = { + page: page + "", + limit: limit + "", + id: idParam, + sampleTools: selectedText, + collectSamplesUser:$('#collectSamplesUser').val() + }; + } else { + obj = { + page: '1', + limit: '10', + id: idParam, + sampleTools: selectedText, + collectSamplesUser: '' + }; + } + console.log(obj) + obj={ + encryptedData:encryptCBC(JSON.stringify(obj)) + } + return obj; +} + +// 查询/重置 +function query() { + let pattern = new RegExp("[%_<>]"); + if (pattern.test($("#loginName").val())) { + $("#loginName").val(''); + return layer.msg('用户名查询包含特殊字符,请重新输入', { + icon: 2, + time: 2000 //2秒关闭(如果不配置,默认是3秒) + }); + } + if (pattern.test($("#phone").val())) { + $("#phone").val(''); + return layer.msg('手机号查询包含特殊字符,请重新输入', { + icon: 2, + time: 2000 //2秒关闭(如果不配置,默认是3秒) + }); + } + pageNum = 1; + pages(1, limitSize); +} + + +//重置 +function reset() { + pages(1, limitSize, 1) +} + + +function reloadData() { + pages(pageNum, limitSize); +} + +// 新增/修改平台用户 +function addData(id) { + if (id) { + title = '详情'; + } + let param = { + 'id': id + } + openIframe2("addOrEditUser", title, "child/toolsFrom.html", '100%', '100%', param); +} + +/*删除用户*/ +function delData(id) { + layer.confirm("确定删除吗?", { + move: false + }, function () { + let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0}); + let url = dataUrl + "/users/delById"; + let params = { + 'id': id + } + params={ + encryptedData:encryptCBC(JSON.stringify(params)) + } + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + layer.close(loadingMsg); // 关闭提示层 + if (result.code === 200) { + parent.layer.msg(result.msg, {icon: 1}) + query() + } else if (result.code === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + layer.close(loadingMsg); // 关闭提示层 + error(xhr) + }); + }) +} + +// 启用/停用/解除锁定 +function editUserAccountStatus(id, status, type) { + let url = dataUrl + "/sys/user/editUserAccountStatus?token=" + token; + let params = { + 'id': id, + 'accountStatus': status, + 'type': type + } + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + if (result.code === 200) { + if(type){ + reloadData(); + } + parent.layer.msg(result.msg, {icon: 1}) + } else if (result.code === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + error(xhr) + }); +} + +// 管理员修改密码 +function resetPwd(id) { + let param = { + 'id': id, + 'type': '1' + } + openIframe2("addOrEditUnifyUser", '修改密码', "password.html", '770px', '400px', param); +} + +/*下拉选表单赋值*/ +function setSelectValue(list, selectName) { + console.log("list",list) + let html = ''; + $.each(list, function (index, item) { + html += ''; + }) + $('#' + selectName).empty().append(html); + layui.form.render(); +} diff --git a/src/main/resources/static/js/tools/toolsMge.js b/src/main/resources/static/js/tools/toolsMge.js index 9552058..dba7b86 100644 --- a/src/main/resources/static/js/tools/toolsMge.js +++ b/src/main/resources/static/js/tools/toolsMge.js @@ -1,46 +1,36 @@ -let form, layer, dtree, table, tableIns; +let form, layer, table, tableIns; let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 let orgData,selectOrgId; -layui.config({ - base: "../../js/layui-v2.6.8/dtree/", //此处路径请自行处理, 可以使用绝对路径 -}).extend({ - dtree: 'dtree' -}).use(['form', 'layer', 'table','dtree', 'laydate'], function () { +layui.use(['form', 'layer', 'table', 'laydate'], function () { form = layui.form; layer = layui.layer; table = layui.table; - dtree = layui.dtree; layui.form.render(); - orgData = getOrgTree(); pages(1, 10, 1); - form.on('switch(is-state)', function (obj) { - console.log(obj); - let url = dataUrl + "/users/updateEnableState"; - let params = { - 'id': this.value, - 'state': obj.elem.checked ? 1 : 0 - } - params={ - encryptedData:encryptCBC(JSON.stringify(params)) - } - ajaxRequest(url, "POST", params, true, function () {}, function (result) { - console.log(result) - reloadData(); - if (result.status === 200) { - parent.layer.msg(result.data, {icon: 1}) - } else if (result.status === 204) { - parent.layer.alert(result.msg, {icon: 2}) - } - }, function (xhr) { - error(xhr) - }); - }); + getToolsSelected(); }) + +function getToolsSelected() { + let url = dataUrl + '/tools/all'; + ajaxRequest(url, "POST", null, true, function () { + }, function (result) { + if (result.code === 200) { + setSelectValue(result.data, 'sampleTools'); + // return result.data + } else { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + error(xhr) + }); +} + + function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); - let url = dataUrl + "/users/getList" + let url = dataUrl + "/tools/getList" ajaxRequest(url, "POST", params, true, function () { }, function (result) { console.log(result); @@ -95,21 +85,21 @@ function initTable(dataList, limit, page) { return (page - 1) * limit + d.LAY_INDEX; } }, - {field: "loginName", title: "送样单位", unresize: true, align: "center"}, - {field: "username", title: "送样人", unresize: true, align: "center"}, - {field: "userCode", title: "送样时间", unresize: true, align: "center"}, - {field: "orgName", title: "送样设备", unresize: true, align: "center"}, - {field: "roleName", title: "收样人", unresize: true, align: "center"}, - {field: "phone", title: "收样时间", unresize: true, align: "center"}, - {field: "userType", title: "试验班组", unresize: true, align: "center"}, - {title: "操作", unresize: true, width: 300, align: "center", + {field: "customName", title: "送样单位", unresize: true, align: "center"}, + {field: "sampleUser", title: "送样人", unresize: true, align: "center"}, + {field: "sampleTime", title: "送样时间", unresize: true, align: "center"}, + {field: "sampleTools", title: "送样设备", unresize: true, align: "center"}, + {field: "collectSamplesUser", title: "收样人", unresize: true, align: "center"}, + {field: "collectSamplesTime", title: "收样时间", unresize: true, align: "center"}, + {field: "teamName", title: "试验班组", unresize: true, align: "center"}, + {title: "操作", unresize: true, width: 85, align: "center", templet: function (d) { let html = ''; // let updaetpwd=""; - let del="" - let edit=""; - html=edit+del; + // let del="" + let view=""; + html=view; if(d.delFlag==1){ return ''; } @@ -130,24 +120,25 @@ function initTable(dataList, limit, page) { // 获取参数 function getReqParams(page, limit, type) { + var selectedValue =$('#sampleTools').val() + // 2. 查找对应的选项文本 + var selectedText = $('#sampleTools option[value="' + selectedValue + '"]').text(); + if (selectedText=='请选择'){ + selectedText='' + } let obj = {}; if (!type) { obj = { page: page + "", limit: limit + "", - userName: $('#userName').val(), - phone: $('#phone').val(), - orgId: $('#orgId').val(), - userType: $('#userType').val(), + sampleTools: selectedText, + collectSamplesUser:$('#collectSamplesUser').val() }; } else { obj = { page: '1', limit: '10', - userName: '', - phone:'', - orgId:'', - userType: '', + collectSamplesUser: '' }; } console.log(obj) @@ -191,43 +182,13 @@ function reloadData() { // 新增/修改平台用户 function addData(id) { - let title = '新增用户' if (id) { - title = '修改用户'; + title = '工器具个体管理/详情'; } let param = { 'id': id } - openIframe2("addOrEditUser", title, "child/userForm.html", '1000px', '625px', param); -} - -/*删除用户*/ -function delData(id) { - layer.confirm("确定删除吗?", { - move: false - }, function () { - let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0}); - let url = dataUrl + "/users/delById"; - let params = { - 'id': id - } - params={ - encryptedData:encryptCBC(JSON.stringify(params)) - } - ajaxRequest(url, "POST", params, true, function () { - }, function (result) { - layer.close(loadingMsg); // 关闭提示层 - if (result.code === 200) { - parent.layer.msg(result.msg, {icon: 1}) - query() - } else if (result.code === 500) { - layer.alert(result.msg, {icon: 2}) - } - }, function (xhr) { - layer.close(loadingMsg); // 关闭提示层 - error(xhr) - }); - }) + openIframe2("addOrEditUser", title, "child/toolsForm.html", '100%', '100%', param); } // 启用/停用/解除锁定 @@ -262,47 +223,10 @@ function resetPwd(id) { openIframe2("addOrEditUnifyUser", '修改密码', "password.html", '770px', '400px', param); } -function getOrgTree() { - let data = []; - let url = dataUrl + '/users/getOrg'; - ajaxRequest(url, "POST", null, true, function () { - }, function (result) { - if (result.code === 200) { - console.log(result,"getOrgTree") - data = result.data; - setOrgTree(data) - } else { - layer.alert(result.msg, {icon: 2}) - } - }, function (xhr) { - error(xhr) - }); - return data; -} - -function setOrgTree(data){ - console.log("data",data) - orgTree = dtree.renderSelect({ - elem: "#orgId", - data: data, - dataFormat: "list", - skin: "laySimple", - line: true, // 显示树线 - checkbar: false, //开启复选框 - done: function (data, url, first) { - console.log($('#orgId').val()) - if (first) { - var params = dtree.dataInit("orgId", $('#orgId').val()); - var selectParam = dtree.selectVal("orgId"); - console.log(params) - } - } - }); -} - /*下拉选表单赋值*/ function setSelectValue(list, selectName) { - let html = ''; + console.log("list",list) + let html = ''; $.each(list, function (index, item) { html += ''; }) diff --git a/src/main/resources/static/pages/role/addRole.html b/src/main/resources/static/pages/role/addRole.html index c06cb82..ba1eefb 100644 --- a/src/main/resources/static/pages/role/addRole.html +++ b/src/main/resources/static/pages/role/addRole.html @@ -24,10 +24,9 @@
- +
- +
diff --git a/src/main/resources/static/pages/tools/child/certificateView.html b/src/main/resources/static/pages/tools/child/certificateView.html new file mode 100644 index 0000000..3fb94ef --- /dev/null +++ b/src/main/resources/static/pages/tools/child/certificateView.html @@ -0,0 +1,37 @@ + + + + + + Dynamic Table + + + + + + + + + + + + + + + + + +
序号名称规格型号唯一标识号检验日期下次检验日期试验人员送检单位
+ + + + \ No newline at end of file diff --git a/src/main/resources/static/pages/tools/child/toolsForm.html b/src/main/resources/static/pages/tools/child/toolsForm.html new file mode 100644 index 0000000..fce1b5e --- /dev/null +++ b/src/main/resources/static/pages/tools/child/toolsForm.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + 详情 + + +
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/static/pages/tools/toolsMge.html b/src/main/resources/static/pages/tools/toolsMge.html index a845bdb..3a21ece 100644 --- a/src/main/resources/static/pages/tools/toolsMge.html +++ b/src/main/resources/static/pages/tools/toolsMge.html @@ -9,6 +9,7 @@ + @@ -23,14 +24,14 @@
-
- +
@@ -38,12 +39,12 @@
- + + + + + +
@@ -60,11 +61,5 @@ } - - \ No newline at end of file diff --git a/src/main/resources/static/pages/user/child/userForm.html b/src/main/resources/static/pages/user/child/userForm.html index 1512a9e..0cef09c 100644 --- a/src/main/resources/static/pages/user/child/userForm.html +++ b/src/main/resources/static/pages/user/child/userForm.html @@ -107,31 +107,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - From 5f6d615699bf5377c739c0b9c4e657b7e8420d1c Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Mon, 22 Jul 2024 09:00:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=AF=95=E9=AA=8C=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ExperimentalController.java | 22 ++ .../aqgqj/basis/dao/ExperimentalMapper.java | 262 ++++++++++++++++- .../aqgqj/basis/entity/vo/ExperDevItemVo.java | 27 ++ .../basis/entity/vo/ExperDevItemsVo.java | 30 ++ .../aqgqj/basis/entity/vo/ExperDevVo.java | 59 ++++ .../aqgqj/basis/entity/vo/SampleDeviceVo.java | 25 ++ .../bonus/aqgqj/basis/entity/vo/TestVo.java | 13 +- .../basis/service/ExperimentalService.java | 30 ++ .../impl/ExperimentStandardServiceImpl.java | 3 + .../service/impl/ExperimentalServiceImpl.java | 250 +++++++++++++++- .../com/bonus/aqgqj/webResult/Constants.java | 1 + .../mappers/basis/ExperimentalMapper.xml | 276 +++++++++++++++++- 12 files changed, 975 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java create mode 100644 src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java index 38e6f01..3bfb3e2 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ExperimentalController.java @@ -78,4 +78,26 @@ public class ExperimentalController { public ServerResponse addTestData(EncryptedReq data) { return service.addTestData(data.getData()); } + + @PostMapping(value = "editTestData") + @DecryptAndVerify(decryptedClass = TestVo.class)//加解密统一管理 + @LogAnnotation(operModul = "试验详情管理", operation = "修改试验数据", operDesc = "系统级事件", operType = "修改") + // @PreAuthorize("@pms.hasPermission('sys:experimentalTest:edit')") + public ServerResponse editTestData(EncryptedReq data) { + return service.editTestData(data.getData()); + } + + @PostMapping(value = "delTestData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + @LogAnnotation(operModul = "试验详情管理", operation = "删除试验数据", operDesc = "系统级事件", operType = "删除") + // @PreAuthorize("@pms.hasPermission('sys:experimentalTest:del')") + public ServerResponse delTestData(EncryptedReq data) { + return service.delTestData(data.getData()); + } + + @PostMapping(value = "viewTestData") + @DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理 + public ServerResponse viewTestData(EncryptedReq data) { + return service.viewTestData(data.getData()); + } } diff --git a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java index 8e9b384..e05ba1d 100644 --- a/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java +++ b/src/main/java/com/bonus/aqgqj/basis/dao/ExperimentalMapper.java @@ -1,10 +1,7 @@ package com.bonus.aqgqj.basis.dao; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; -import com.bonus.aqgqj.basis.entity.vo.ExperBasisVo; -import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; -import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; -import com.bonus.aqgqj.basis.entity.vo.TestVo; +import com.bonus.aqgqj.basis.entity.vo.*; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -61,11 +58,264 @@ public interface ExperimentalMapper { /** * 添加试验依据信息数据 + * * @param basisVos - * @param id + * @param experId * @return void * @author cwchen * @date 2024/7/20 17:05 */ - void addConfigBasis(@Param("list") List basisVos, @Param("id") Long id); + void addConfigBasis(@Param("list") List basisVos, @Param("experId") Long experId); + + /** + * 查询收样设备-根据设备类型 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 17:01 + */ + List getSampleDeviceVos(ParamsDto dto); + + /** + * 添加试验项信息 + * + * @param configItemsVo + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 17:21 + */ + void addExperItems(@Param("params") ConfigItemsVo configItemsVo, @Param("experId") Long experId); + + /** + * 添加试验项内容 + * + * @param configItemVo + * @return void + * @author cwchen + * @date 2024/7/21 17:28 + */ + void addExperItem(@Param("params") ConfigItemVo configItemVo, @Param("experId") Long experId); + + /** + * 添加试验样品设备表 + * + * @param experDevVo + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 17:58 + */ + void addExperDev(@Param("params") ExperDevVo experDevVo, @Param("experId") Long experId); + + /** + * 添加设备试验项信息 + * + * @param experDevItemsVo + * @return void + * @author cwchen + * @date 2024/7/21 18:19 + */ + void addExperDevItems(ExperDevItemsVo experDevItemsVo); + + /** + * 添加设备试验项数据 + * + * @param experDevItemVos + * @return void + * @author cwchen + * @date 2024/7/21 19:48 + */ + void addExperDevItem(List experDevItemVos); + + /** + * 试验数据详情 + * + * @param dto + * @return TestVo + * @author cwchen + * @date 2024/7/21 22:53 + */ + TestVo viewTestData(ParamsDto dto); + + /** + * 添加试验设备数据 + * + * @param deviceVos + * @param experId + * @return void + * @author cwchen + * @date 2024/7/21 23:12 + */ + void addExperConfigDev(@Param("list") List deviceVos, @Param("experId") Long experId); + + /** + * 试验依据信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:19 + */ + List getConfigBasis(ParamsDto dto); + + /** + * 试验设备信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:22 + */ + List getExperConfigDevs(ParamsDto dto); + + /** + * 试验项信息 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:27 + */ + List getExperItems(ParamsDto dto); + + /** + * 试验项内容信息 + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/21 23:33 + */ + List getExperItem(Long id); + + /** + * 试验样品设备 + * + * @param dto + * @return List + * @author cwchen + * @date 2024/7/21 23:37 + */ + List getExperDev(ParamsDto dto); + + /** + * 修改试验信息数据 + * + * @param vo + * @return void + * @author cwchen + * @date 2024/7/22 0:02 + */ + void updateExper(TestVo vo); + + /** + * 获取试验样品设备ID + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/22 0:18 + */ + List getExperDevIds(Long id); + + /** + * 获取设备试验项信息ID + * + * @param list + * @return List + * @author cwchen + * @date 2024/7/22 0:18 + */ + List getExperDevItems(List list); + + /** + * 删除试验依据 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delConfigBasis(Long id); + + /** + * 删除试验设备 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperConfigDev(Long id); + + /** + * 删除试验样品设备 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDev(Long id); + + /** + * 删除设备试验项信息 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDevItems(List list); + + /** + * 删除设备试验项数据 + * + * @param list + * @return void + * @author cwchen + * @date 2024/7/22 0:24 + */ + void delExperDevItem(List list); + + /** + * 删除试验信息 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:32 + */ + void delExper(Long id); + + /** + * 查询试验项ID + * + * @param id + * @return List + * @author cwchen + * @date 2024/7/22 0:34 + */ + List getExperItemsIds(Long id); + + /** + * 删除试验项 + * + * @param id + * @return void + * @author cwchen + * @date 2024/7/22 0:36 + */ + void delExperItems(Long id); + + /** + * 删除试验项内容 + * @param experItemsIds + * @return void + * @author cwchen + * @date 2024/7/22 0:36 + */ + void delExperItem(List experItemsIds); } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java new file mode 100644 index 0000000..8d1027d --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemVo.java @@ -0,0 +1,27 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +/** + * @className:ExperDevItemVo + * @author:cwchen + * @date:2024-07-21-19:03 + * @version:1.0 + * @description:设备试验项内容数据-vo + */ +@Data +public class ExperDevItemVo { + + /**id*/ + private Long id; + /**试验项id*/ + private Long itemsId; + /**试验内容id*/ + private Long itemId; + /**实验设备id*/ + private Long devId; + /** 试验项目名称*/ + private String itemName; + /**试验项值*/ + private String itemVal; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java new file mode 100644 index 0000000..cc6ef4f --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevItemsVo.java @@ -0,0 +1,30 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @className:ExperDevItemsVo + * @author:cwchen + * @date:2024-07-21-18:12 + * @version:1.0 + * @description:设备试验项信息-vo + */ +@Data +public class ExperDevItemsVo { + + /**id*/ + private Long id; + /**试验设备id*/ + private Long devId; + /**实验项id*/ + private Long itemsId; + /**试验项名称*/ + private String itemsName; + /**排序*/ + private Integer valSort; + + /**设备试验项内容数据 list*/ + private List experDevItemVos; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java new file mode 100644 index 0000000..b12a1e1 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperDevVo.java @@ -0,0 +1,59 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @className:ExperDevVo + * @author:cwchen + * @date:2024-07-21-16:46 + * @version:1.0 + * @description:试验样品设备-vo + */ +@Data +public class ExperDevVo { + + /**id*/ + private Long id; + /**试验表id */ + private Long experId; + /**编号*/ + @NotBlank(message = "编号不能为空", groups = {Query.class}) + @Length(max = 32, message = "编号字符长度不能超过32", groups = {Query.class}) + private String devCode; + /**生产厂家*/ + @NotBlank(message = "生产厂家不能为空", groups = {Query.class}) + @Length(max = 32, message = "生产厂家字符长度不能超过32", groups = {Query.class}) + private String manufacturer; + /**生产日期*/ + @NotBlank(message = "生产日期不能为空", groups = {Query.class}) + @Length(max = 32, message = "生产日期字符长度不能超过32", groups = {Query.class}) + private String manufactureDate; + /**规格型号*/ + @NotBlank(message = "规格型号不能为空", groups = {Query.class}) + @Length(max = 32, message = "规格型号字符长度不能超过32", groups = {Query.class}) + private String devModule; + /**外观状态*/ + @NotBlank(message = "外观状态不能为空", groups = {Query.class}) + @Length(max = 32, message = "外观状态字符长度不能超过32", groups = {Query.class}) + private String devStatus; + /**设备试验项值*/ + @NotBlank(message = "设备试验项值不能为空", groups = {Query.class}) + @Length(max = 2000, message = "设备试验项值字符长度不能超过200", groups = {Query.class}) + private String devData; + /**额外超出的金额默认值0*/ + @NotBlank(message = "金额不能为空", groups = {Query.class}) + @Pattern(regexp = "(0|\\d{1,8}(?:\\.\\d{1,2})?|\\d{9}(?:\\.\\d{0,2})?)", message = "金额格式不正确(0-100000000)", groups = {Query.class}) + private String amount; + /**备注*/ + @NotBlank(message = "备注不能为空", groups = {Query.class}) + @Length(max = 256, message = "备注字符长度不能超过256", groups = {Query.class}) + private String remarks; + + public interface Query { + } + +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java new file mode 100644 index 0000000..2da7c3a --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/SampleDeviceVo.java @@ -0,0 +1,25 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import lombok.Data; + +/** + * @className:SampleDeviceVo + * @author:cwchen + * @date:2024-07-21-16:57 + * @version:1.0 + * @description:收样设备详情-vo + */ +@Data +public class SampleDeviceVo { + + /**id*/ + private Long id; + /**设备类型名称*/ + private String devTypeName; + /**设备类型编码*/ + private String devTypeCode; + /**规格型号*/ + private String devModule; + /**设备编号*/ + private String devCode; +} diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java index 057be91..d6471fe 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java @@ -32,7 +32,7 @@ public class TestVo { */ private Long configId; - @NotNull(message = "收样不能为空", groups = {Query.class}) + @NotNull(message = "收样id不能为空", groups = {Query.class}) private Long sampleId; /** @@ -191,6 +191,7 @@ public class TestVo { /** * 试验主要设备 */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private List mainDeviceVos; /** @@ -198,6 +199,16 @@ public class TestVo { */ private List configItemsVos; + /** + * 收样设备list + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private List sampleDeviceVos; + /** + * 试验样品设备list + */ + private List experDevVos; + /** * 查询条件限制 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java index 1c93cd1..6c96fa5 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/ExperimentalService.java @@ -48,10 +48,40 @@ public interface ExperimentalService { /** * 新增试验数据 + * * @param data * @return ServerResponse * @author cwchen * @date 2024/7/20 15:42 */ ServerResponse addTestData(TestVo data); + + /** + * 修改试验数据 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse editTestData(TestVo data); + + /** + * 删除试验数据 + * + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse delTestData(ParamsDto data); + + /** + * 试验数据详情 + * @param data + * @return ServerResponse + * @author cwchen + * @date 2024/7/21 20:06 + */ + ServerResponse viewTestData(ParamsDto data); } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java index 52ccb17..16bbd20 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java @@ -121,6 +121,9 @@ public class ExperimentStandardServiceImpl implements ExperimentStandardService @Transactional(rollbackFor = Exception.class) public ServerResponse editData(ExperConfigVo vo) { try { + if(vo.getId() == null){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); + } // 整体数据校验数据 String validResult = validatorsUtils.valid(vo, ExperConfigVo.Query.class); if (StringUtils.isNotBlank(validResult)) { diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java index d63dda1..a381d04 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java @@ -14,6 +14,7 @@ import com.bonus.aqgqj.webResult.Constants; import com.bonus.aqgqj.webResult.HttpStatus; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +22,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -79,7 +81,11 @@ public class ExperimentalServiceImpl implements ExperimentalService { try { // 查询收样基本信息 vo = mapper.getTestBasicInfo(dto); - // 查询试验配置依据、试验设备、试验主要设备、试验项信息 + if (vo.getConfigId() == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "未配置该设备类型的试验标准,请先配置"); + } + // 查询收样设备、试验配置依据、试验设备、试验主要设备、试验项信息 + List sampleDeviceVos = mapper.getSampleDeviceVos(dto); List basisVos = standardMapper.getExperBasis(vo.getConfigId()); List deviceVos = standardMapper.getConfigDev(vo.getConfigId()); List mainDevVos = standardMapper.getConfigMainDev(vo.getConfigId()); @@ -88,6 +94,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { List configItemVos = standardMapper.getConfiItem(configItemsVo.getId()); configItemsVo.setItemList(configItemVos); } + vo.setSampleDeviceVos(sampleDeviceVos); vo.setBasisVos(basisVos); vo.setDeviceVos(deviceVos); vo.setMainDeviceVos(mainDevVos); @@ -107,7 +114,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { if (StringUtils.isNotBlank(validResult)) { return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); } - if(validatorsDate(vo)){ + if (!validatorsDate(vo)) { return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "下次试验日期不能早于试验日期"); } String result = validatorsParams(vo.getParamsData()); @@ -125,21 +132,154 @@ public class ExperimentalServiceImpl implements ExperimentalService { } // 添加试验信息数据 mapper.addExper(vo); + // 添加试验设备数据 + mapper.addExperConfigDev(vo.getDeviceVos(), vo.getId()); // 添加试验依据信息数据 - mapper.addConfigBasis(vo.getBasisVos(),vo.getId()); - // 添加试验项数据 tb_exper_item - // 添加试验项内容数据 tb_exper_items - // 添加试验样品数据 tb_exper_dev - // 添加试验项信息数据 tb_exper_dev_items - // 添加试验项数据 tb_exper_dev_item + mapper.addConfigBasis(vo.getBasisVos(), vo.getId()); + for (int i = 0; i < vo.getExperDevVos().size(); i++) { + // 添加试验样品数据 + mapper.addExperDev(vo.getExperDevVos().get(i), vo.getId()); + if (i == 0) { + for (ConfigItemsVo configItemsVo : vo.getConfigItemsVos()) { + // 添加试验项数据 + mapper.addExperItems(configItemsVo, vo.getId()); + // 添加试验项内容数据 + for (ConfigItemVo configItemVo : configItemsVo.getItemList()) { + mapper.addExperItem(configItemVo, configItemsVo.getId()); + } + } + } + List experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo); + for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) { + // 添加设备试验项信息 + mapper.addExperDevItems(experDevItemsVo); + List experDevItemVos = setExperDevItemList(vo.getExperDevVos().get(i), vo, experDevItemsVo); + // 添加设备试验项数据 + mapper.addExperDevItem(experDevItemVos); + } + + } } catch (Exception e) { + log.error(e.toString(), e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "操作失败"); } return ServerResponse.createBySuccessMsg("操作成功"); } + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse editTestData(TestVo vo) { + try { + if(vo.getId() == null){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); + } + // 整体数据校验数据 + String validResult = validatorsUtils.valid(vo, TestVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); + } + if (!validatorsDate(vo)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "下次试验日期不能早于试验日期"); + } + String result = validatorsParams(vo.getParamsData()); + if (StringUtils.isNotBlank(result)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result); + } + TestVo testVo = handleConfigItem(vo); + if (testVo == null) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数异常"); + } + // 试验设备、试验主要设备、试验依据、试验项校验 + String result2 = singleValidators(testVo); + if (StringUtils.isNotBlank(result2)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, result2); + } + // 删除试验依据、试验设备、试验样品设备、设备试验项信息、设备试验项数据 + List experDevIds = mapper.getExperDevIds(vo.getId()); + List experDevItemsIds = mapper.getExperDevItems(experDevIds); + mapper.delConfigBasis(vo.getId()); + mapper.delExperConfigDev(vo.getId()); + mapper.delExperDev(vo.getId()); + mapper.delExperDevItems(experDevIds); + mapper.delExperDevItem(experDevItemsIds); + // 修改试验信息数据 + mapper.updateExper(vo); + // 添加试验设备数据 + mapper.addExperConfigDev(vo.getDeviceVos(), vo.getId()); + // 添加试验依据信息数据 + mapper.addConfigBasis(vo.getBasisVos(), vo.getId()); + for (int i = 0; i < vo.getExperDevVos().size(); i++) { + // 添加试验样品数据 + mapper.addExperDev(vo.getExperDevVos().get(i), vo.getId()); + List experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo); + for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) { + // 添加设备试验项信息 + mapper.addExperDevItems(experDevItemsVo); + List experDevItemVos = setExperDevItemList(vo.getExperDevVos().get(i), vo, experDevItemsVo); + // 添加设备试验项数据 + mapper.addExperDevItem(experDevItemVos); + } + } + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse delTestData(ParamsDto dto) { + try { + // 删除试验依据、试验设备、试验样品设备、设备试验项信息、设备试验项数据、试验项、试验项内容、试验信息 + List experDevIds = mapper.getExperDevIds(dto.getId()); + List experDevItemsIds = mapper.getExperDevItems(experDevIds); + List experItemsIds = mapper.getExperItemsIds(dto.getId()); + mapper.delConfigBasis(dto.getId()); + mapper.delExperConfigDev(dto.getId()); + mapper.delExperDev(dto.getId()); + mapper.delExperDevItems(experDevIds); + mapper.delExperDevItem(experDevItemsIds); + mapper.delExperItems(dto.getId()); + mapper.delExperItem(experItemsIds); + mapper.delExper(dto.getId()); + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } + + @Override + public ServerResponse viewTestData(ParamsDto dto) { + TestVo testVo = new TestVo(); + try { + // 试验数据详情 + testVo = mapper.viewTestData(dto); + //试验依据信息、试验设备、试验项、试验项目信息、试验样品设备 + List experBasisVos = mapper.getConfigBasis(dto); + List experConfigDevs = mapper.getExperConfigDevs(dto); + List configItemsVos = mapper.getExperItems(dto); + for (ConfigItemsVo configItemsVo : configItemsVos) { + List configItemVos = mapper.getExperItem(configItemsVo.getId()); + configItemsVo.setItemList(configItemVos); + } + List experDevVos = mapper.getExperDev(dto); + testVo.setBasisVos(experBasisVos); + testVo.setDeviceVos(experConfigDevs); + testVo.setConfigItemsVos(configItemsVos); + testVo.setExperDevVos(experDevVos); + return ServerResponse.createSuccess(testVo); + } catch (Exception e) { + log.error(e.toString(), e); + return ServerResponse.createSuccess(null); + } + } + /** * 验证参数是否为空 * @@ -150,12 +290,13 @@ public class ExperimentalServiceImpl implements ExperimentalService { */ public String validatorsParams(String value) { try { - // 试验配置项、试验依据、试验设备、主要试验设备验证数据是否为空 + // 试验配置项、试验依据、试验设备、主要试验设备、样品设备验证数据是否为空 JSONObject obj = JSONObject.parseObject(value); JSONArray itemsList = obj.getJSONArray("items"); JSONArray yjList = obj.getJSONArray("yjList"); JSONArray devList = obj.getJSONArray("devList"); JSONArray mainDevList = obj.getJSONArray("mainDevList"); + JSONArray experDevList = obj.getJSONArray("experDevList"); if (CollectionUtils.isEmpty(devList)) { return Constants.ERROR_1; } @@ -168,6 +309,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if (CollectionUtils.isEmpty(itemsList)) { return Constants.ERROR_4; } + if (CollectionUtils.isEmpty(experDevList)) { + return Constants.ERROR_6; + } } catch (Exception e) { log.error(e.toString(), e); return Constants.ERROR_5; @@ -176,7 +320,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { } /** - * 处理试验项、试验项内容、试验依据、试验设备、主要试验设备数据 + * 处理试验项、试验项内容、试验依据、试验设备、主要试验设备、样品设备试验数据 数据 * * @param vo * @return List @@ -190,10 +334,12 @@ public class ExperimentalServiceImpl implements ExperimentalService { JSONArray devList = obj.getJSONArray("devList"); JSONArray mainDevList = obj.getJSONArray("mainDevList"); JSONArray itemsList = obj.getJSONArray("items"); + JSONArray experDevList = obj.getJSONArray("experDevList"); List basisVos = yjList.toJavaList(ExperBasisVo.class); List deviceVos = devList.toJavaList(ConfigDevVo.class); List mainDeviceVos = mainDevList.toJavaList(ConfigMainDevVo.class); List configItemsVos = itemsList.toJavaList(ConfigItemsVo.class); + List experDevVos = experDevList.toJavaList(ExperDevVo.class); for (ConfigItemsVo configItemsVo : configItemsVos) { JSONArray itemArr = JSONObject.parseArray(configItemsVo.getItem()); List configItemVos = itemArr.toJavaList(ConfigItemVo.class); @@ -209,6 +355,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { vo.setDeviceVos(deviceVos); vo.setMainDeviceVos(mainDeviceVos); vo.setConfigItemsVos(configItemsVos); + vo.setExperDevVos(experDevVos); } catch (Exception e) { log.error(e.toString(), e); return null; @@ -229,6 +376,7 @@ public class ExperimentalServiceImpl implements ExperimentalService { List mainDeviceVos = vo.getMainDeviceVos(); List basisVos = vo.getBasisVos(); List configItemsVos = vo.getConfigItemsVos(); + List experDevVos = vo.getExperDevVos(); for (ConfigDevVo deviceVo : deviceVos) { String validResult = validatorsUtils.valid(deviceVo, ConfigDevVo.Query.class); if (StringUtils.isNotBlank(validResult)) { @@ -259,11 +407,18 @@ public class ExperimentalServiceImpl implements ExperimentalService { } } } + for (ExperDevVo experDevVo : experDevVos) { + String validResult = validatorsUtils.valid(experDevVo, ExperDevVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return validResult; + } + } return null; } /** * 校验试验时间和下次试验时间 + * * @param vo * @return boolean * @author cwchen @@ -277,4 +432,79 @@ public class ExperimentalServiceImpl implements ExperimentalService { } return true; } + + /** + * 处理设备试验项数据 + * + * @param experDevVo + * @param vo + * @return List + * @author cwchen + * @date 2024/7/21 19:17 + */ + public List setExperDevItemsList(ExperDevVo experDevVo, TestVo vo) { + List experDevItemsList = new ArrayList<>(); + for (int i = 0; i < vo.getConfigItemsVos().size(); i++) { + ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i); + ExperDevItemsVo experDevItems = new ExperDevItemsVo(); + experDevItems.setItemsId(configItemsVo.getId()); + experDevItems.setDevId(experDevVo.getId()); + experDevItems.setItemsName(configItemsVo.getExperTypeName()); + experDevItems.setValSort(configItemsVo.getItemsSort()); + experDevItemsList.add(experDevItems); + } + return experDevItemsList; + } + + /** + * 处理设备试验项内容数据 + * + * @param experDevVo + * @param vo + * @return List + * @author cwchen + * @date 2024/7/21 19:17 + */ + public List setExperDevItemList(ExperDevVo experDevVo, TestVo vo, ExperDevItemsVo experDevItemsVo) { + List experDevItemList = new ArrayList<>(); + int index = 0; + for (int i = 0; i < vo.getConfigItemsVos().size(); i++) { + ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i); + List experDevItemVos = new ArrayList<>(); + for (int j = 0; j < configItemsVo.getItemList().size(); j++) { + ConfigItemVo configItemVo = configItemsVo.getItemList().get(j); + ExperDevItemVo experDevItemVo = new ExperDevItemVo(); + experDevItemVo.setItemsId(configItemsVo.getId()); + experDevItemVo.setItemId(configItemVo.getId()); + experDevItemVo.setDevId(experDevItemsVo.getId()); + experDevItemVo.setItemName(configItemVo.getItemName()); + index = i * configItemsVo.getItemList().size() + j; + String val = getVal(experDevVo, index); + experDevItemVo.setItemVal(val); + experDevItemList.add(experDevItemVo); + } + } + return experDevItemList; + } + + /** + * 获取设备试验项内容数据 + * + * @param experDevVo + * @param index + * @return String + * @author cwchen + * @date 2024/7/21 19:30 + */ + public String getVal(ExperDevVo experDevVo, int index) { + try { + String devData = experDevVo.getDevData(); + JSONArray jsonArray = JSONObject.parseArray(devData); + String data = (String) jsonArray.get(index); + return data; + } catch (Exception e) { + log.error(e.toString(), e); + return null; + } + } } diff --git a/src/main/java/com/bonus/aqgqj/webResult/Constants.java b/src/main/java/com/bonus/aqgqj/webResult/Constants.java index aaeab81..ffdcdcd 100644 --- a/src/main/java/com/bonus/aqgqj/webResult/Constants.java +++ b/src/main/java/com/bonus/aqgqj/webResult/Constants.java @@ -137,6 +137,7 @@ public class Constants public static final String ERROR_3 = "试验依据不能为空"; public static final String ERROR_4 = "试验项不能为空"; public static final String ERROR_5 = "参数不能为空"; + public static final String ERROR_6 = "试验不能为空"; public static final String FORMAT_STR = "yyyy-MM-dd"; diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index dcb954a..459b929 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -50,13 +50,13 @@ #{experStand}, #{experConclu}, #{remarsk}, - #{auditStatus} + #{auditStatus}, #{createTime}, #{createUser}, #{updateTime}, #{updateUser}, - #{status}, 0, + #{status}, null @@ -65,10 +65,163 @@ INSERT INTO tb_config_basis(id,exper_id,exper_basis_name) VALUES ( - null,#{id},#{item.basisName} + null,#{experId},#{item.basisName} ) + + + INSERT INTO tb_exper_items + + exper_id, + exper_type_code, + exper_type_name, + exper_num, + items_sort, + amount, + id + + + #{experId}, + #{params.experTypeCode}, + #{params.experTypeName}, + #{params.experNum}, + #{params.itemsSort}, + #{params.amount}, + null + + + + + INSERT INTO tb_exper_item + + items_id, + item_sort, + item_name, + id + + + #{experId}, + #{params.itemNum}, + #{params.itemName}, + null + + + + + INSERT INTO tb_exper_dev + + exper_id, + dev_code, + manufacturer, + manufacture_date, + dev_module, + dev_status, + dev_data, + amount, + remarks, + id + + + #{experId}, + #{params.devCode}, + #{params.manufacturer}, + #{params.manufactureDate}, + #{params.devModule}, + #{params.devStatus}, + #{params.devData}, + #{params.amount}, + #{params.remarks}, + null + + + + + INSERT INTO tb_exper_dev_items + + dev_id, + items_id, + items_name, + val_sort, + id + + + #{devId}, + #{itemsId}, + #{itemsName}, + #{valSort}, + null + + + + + INSERT INTO tb_exper_dev_item (id,items_id,item_id,dev_id,item_name,item_val) VALUES + + ( + null,#{item.itemsId},#{item.itemId},#{item.devId},#{item.itemName},#{item.itemVal} + ) + + + + + INSERT INTO tb_exper_config_dev(id,dev_type_code,dev_type_name,exper_id,dev_name,dev_id) VALUES + + ( + null,#{item.devTypeCode},#{item.devTypeName},#{experId},#{item.devName},#{item.devId} + ) + + + + + UPDATE tb_exper SET dev_type_code = #{devTypeCode},dev_type_name = #{devTypeName},dev_num = #{sampleQuantity}, + dev_module = #{devModule},sample_date = #{sampleDate},exper_time = #{experTime},next_exper_time = #{nextExperTime}, + submit_unit = #{customId},submit_location = #{experLocal},exper_dev = #{experDev},exper_module = #{experModule}, + exper_code = #{experCode},check_time = #{checkTime},update_time = #{updateTime},update_user = #{updateUser}, + exper_conclu = #{experConclu},remarsk = #{remarsk} WHERE id = #{id} + + + + DELETE FROM tb_config_basis WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_config_dev WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_dev WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_dev_items + WHERE dev_id IN + + #{item} + + + + + DELETE FROM tb_exper_dev_item + WHERE dev_id IN + + #{item} + + + + + UPDATE tb_exper SET del_flag = 1 WHERE id = #{id} + + + + DELETE FROM tb_exper_items WHERE exper_id = #{id} + + + + DELETE FROM tb_exper_item WHERE items_id IN + + #{item} + + + + + + + + + + + + + + + + + + + + + + From d886a648467cd9a3cc8203e4021411c6256fe7b8 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Mon, 22 Jul 2024 09:12:12 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=B7=A5=E5=99=A8=E5=85=B7=E4=B8=AA?= =?UTF-8?q?=E4=BD=93=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basis/entity/dto/ToolsManageDto.java | 37 ++++++++- .../service/impl/ToolsManageServiceImpl.java | 8 +- .../mappers/basis/ToolsManageMapper.xml | 47 ++++++----- .../static/js/system/child/userForm.js | 2 +- src/main/resources/static/js/system/role.js | 2 +- .../resources/static/js/system/userMge.js | 2 +- .../resources/static/js/tools/toolsMge.js | 77 +++++++++++++------ .../pages/tools/child/certificateView.html | 70 ++++++++++++----- .../static/pages/tools/toolsMge.html | 4 +- .../static/pages/user/child/userForm.html | 18 ++--- 10 files changed, 189 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java index 15aca38..a02af06 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ToolsManageDto.java @@ -24,6 +24,11 @@ public class ToolsManageDto extends PageEntity { */ private String customName; + /** + * 送样部门 + */ + private String sampleDepartment; + /** * 送样人 */ @@ -57,6 +62,11 @@ public class ToolsManageDto extends PageEntity { /** * 设备编号 */ + private String devCode; + + /** + * 客户自编号 + */ private String devTypeCode; /** @@ -67,12 +77,37 @@ public class ToolsManageDto extends PageEntity { /** * 生产日期 */ - private String produceDate; + private String manufactureDate; /** * 设备规格 */ private String devModule; + /** + * 试验日期 + */ + private String experTime; + + /** + * 下次试验日期 + */ + private String nextExperTime; + + /** + * 试验人员 + */ + private String experUser; + + /** + * 试验结论 + */ + private String experConclu; + + /** + * 关键字 + */ + private String keyWord; + } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java index 0d7c5fb..d89944b 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ToolsManageServiceImpl.java @@ -45,10 +45,10 @@ public class ToolsManageServiceImpl implements ToolsManageService { @Override public List list(ToolsManageDto bean) { List list = toolsManageDao.list(bean); - for (ToolsManageDto dto : list){ - String sampleTools = toolsManageDao.getSampleTools(dto.getId()); - dto.setSampleTools(sampleTools); - } +// for (ToolsManageDto dto : list){ +// String sampleTools = toolsManageDao.getSampleTools(dto.getId()); +// dto.setSampleTools(sampleTools); +// } return list; } diff --git a/src/main/resources/mappers/basis/ToolsManageMapper.xml b/src/main/resources/mappers/basis/ToolsManageMapper.xml index 7b4686f..80f9a52 100644 --- a/src/main/resources/mappers/basis/ToolsManageMapper.xml +++ b/src/main/resources/mappers/basis/ToolsManageMapper.xml @@ -3,27 +3,38 @@ + diff --git a/src/main/resources/static/pages/user/child/userForm.html b/src/main/resources/static/pages/user/child/userForm.html index 0cef09c..e2934a2 100644 --- a/src/main/resources/static/pages/user/child/userForm.html +++ b/src/main/resources/static/pages/user/child/userForm.html @@ -24,7 +24,7 @@
+ lay-verify="required" maxlength="20">
@@ -32,19 +32,19 @@
+ lay-verify="required" maxlength="10">
-
- -
- -
-
+ + + + + + +