diff --git a/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java b/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java index 6f2723a..d3934d2 100644 --- a/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java +++ b/src/main/java/com/bonus/aqgqj/basis/controller/ExamineController.java @@ -3,6 +3,7 @@ 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.AuditHistoryVo; import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; import com.bonus.aqgqj.basis.service.ExamineService; @@ -53,4 +54,12 @@ public class ExamineController { PageInfo pageInfo = new PageInfo<>(list); return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit()); } + + @PostMapping(value = "checkData") + @DecryptAndVerify(decryptedClass = AuditHistoryVo.class)//加解密统一管理 + // @PreAuthorize("@pms.hasPermission('sys:examine:checkData')" ) + @LogAnnotation(operModul = "审查管理", operation = "试验审查", operDesc = "系统级事件", operType = "审查") + public ServerResponse checkData(EncryptedReq dto) { + return service.checkData(dto.getData()); + } } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java index a58ce39..06b4db9 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java @@ -20,6 +20,11 @@ public class ParamsDto extends PageEntity { */ private Long id; + /** + * 收样ID + */ + private Long sampleId; + /** * 设备类型 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/AuditHistoryVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/AuditHistoryVo.java new file mode 100644 index 0000000..a7582f5 --- /dev/null +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/AuditHistoryVo.java @@ -0,0 +1,46 @@ +package com.bonus.aqgqj.basis.entity.vo; + +import com.bonus.aqgqj.utils.UserUtil; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * @className:AuditHistoryVo + * @author:cwchen + * @date:2024-07-24-19:58 + * @version:1.0 + * @description:审核-vo + */ +@Data +public class AuditHistoryVo { + + /**审核ID*/ + private Long id; + /**收样ID*/ + @NotNull(message = "收样ID不能为空", groups = {Query.class}) + private Long sampleId; + /**试验信息表id*/ + private Long[] experId; + /**审核时间*/ + private Date auditTime = new Date(); + /**审核人*/ + private Long auditUserId = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -10L; + /**审核人名称*/ + private String auditUserName = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getUsername() : null; + /**审核结果 2 不通过 1通过*/ + @NotNull(message = "审核结果不能为空", groups = {Query.class}) + private Integer auditStatus; + /**审核备注*/ + @Length(max = 256, message = "备注字符长度不能超过256", groups = {Query.class}) + private String auditRemark; + /**审核类型 1 审阅 2 审核 3 审批*/ + @NotNull(message = "审批类型不能为空", groups = {Query.class}) + private Integer auditType; + + public interface Query { + } +} diff --git a/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java b/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java index 19f2c27..de73651 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/ExamineService.java @@ -1,8 +1,10 @@ package com.bonus.aqgqj.basis.service; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.AuditHistoryVo; import com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo; import com.bonus.aqgqj.basis.entity.vo.ExperimentalVo; +import com.bonus.aqgqj.utils.ServerResponse; import java.util.List; @@ -26,10 +28,20 @@ public interface ExamineService { /** * 审查详情列表 + * * @param data * @return List * @author cwchen * @date 2024/7/23 17:57 */ List getDetailList(ParamsDto data); + + /** + * 试验-审查 + * @param vo + * @return ServerResponse + * @author cwchen + * @date 2024/7/24 19:39 + */ + ServerResponse checkData(AuditHistoryVo vo); } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java index 2c2af5f..c250fff 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExamineServiceImpl.java @@ -1,17 +1,27 @@ package com.bonus.aqgqj.basis.service.impl; import com.alibaba.fastjson.JSONArray; +import com.bonus.aqgqj.advice.ValidatorsUtils; import com.bonus.aqgqj.basis.dao.ExamineMapper; import com.bonus.aqgqj.basis.entity.dto.ParamsDto; +import com.bonus.aqgqj.basis.entity.vo.AuditHistoryVo; 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.service.ExamineService; +import com.bonus.aqgqj.utils.ServerResponse; +import com.bonus.aqgqj.utils.SystemUtils; +import com.bonus.aqgqj.webResult.HttpStatus; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -28,6 +38,9 @@ public class ExamineServiceImpl implements ExamineService { @Resource(name = "ExamineMapper") private ExamineMapper mapper; + @Resource(name = "ValidatorsUtils") + private ValidatorsUtils validatorsUtils; + @Override public List getList(ParamsDto dto) { @@ -67,4 +80,20 @@ public class ExamineServiceImpl implements ExamineService { } return list; } + + @Override + @Transactional(rollbackFor = Exception.class) + public ServerResponse checkData(AuditHistoryVo vo) { + try { + String validResult = validatorsUtils.valid(vo, AuditHistoryVo.Query.class); + if (StringUtils.isNotBlank(validResult)) { + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, validResult); + } + } catch (Exception e) { + log.error(e.toString(), e); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "操作失败"); + } + return ServerResponse.createBySuccessMsg("操作成功"); + } } diff --git a/src/main/resources/static/js/basis/child/auditData.js b/src/main/resources/static/js/basis/child/auditData.js index c0af6ae..c312274 100644 --- a/src/main/resources/static/js/basis/child/auditData.js +++ b/src/main/resources/static/js/basis/child/auditData.js @@ -1,5 +1,5 @@ let form, layer, table, tableIns, laydate; -let pageNum = 1, limitSize = 1; // 默认第一页,分页数量为10 +let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 let deviceTypeList = []; let idParam = null, statusParam = null; let temp_table_list = []; // 临时保存每页的所有数据 @@ -58,7 +58,7 @@ function laypages(total, page, limit) { count: total, curr: page, limit: limit, - limits: [1, 20, 50, 100, 200, 500], + limits: [10, 20, 50, 100, 200, 500], layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], groups: 5, jump: function (obj, first) { @@ -113,9 +113,10 @@ function initTable(dataList, limit, page) { title: "操作", unresize: true, width: 180, align: "center", templet: function (d) { let html = ''; - html += "通过"; - html += "不通过"; - // html += setButtonName(d.id, d.roleCode, d.status); + if(checkNameArr.indexOf(d.status) > -1){ + html += "通过"; + html += "不通过"; + } return html; } }, @@ -133,6 +134,7 @@ function initTable(dataList, limit, page) { $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').attr('disabled','disabled'); $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().removeClass("layui-form-checked"); $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass("layui-disabled"); + $('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().find('i').css("background-color",'#c7c5c5'); } }) temp_table_list.forEach(function (o, i) { @@ -221,7 +223,7 @@ function getReqParams(page, limit, type) { } else { obj = { page: '1', - limit: '1', + limit: '10', keyWord: '', accessType: '', startTime: '', @@ -251,6 +253,7 @@ function query() { } function reloadData() { + temp_all_list.splice(0, temp_all_list.length); pages(pageNum, limitSize); } @@ -265,27 +268,28 @@ function viewData(experId, devTypeCode) { } /**/ -function passData(experId, sampleId, type) { +function passData(experId, sampleId,status, type) { let title = type === 1 ? '通过确认' : '驳回确认'; let param = { 'experId': experId, 'sampleId': sampleId, - 'type': type + 'type': type, + 'auditType':checkNameArr.indexOf(status) + 1 } openIframe3("passData", title, "passDataForm.html", '600px', '325px', param); } /*1.批量通过 2.批量不通过*/ function batchAudit(type) { - // const tableStatus = table.checkStatus('testData'); const size = temp_all_list.length if (size === 0) { return layer.msg('未选择数据', {icon: 7}); } - let experIdArr = [], sampleId = null; + let experIdArr = [], sampleId = null,auditType = 1; $.each(temp_all_list, function (index, item) { if (index === 0) { sampleId = item.sampleId; + status =item.status; } experIdArr.push(item.experId) }) @@ -295,7 +299,7 @@ function batchAudit(type) { move: false }, function () { layer.close(index); - passData(experIdArr, sampleId, type); + passData(experIdArr.toString(), sampleId,status, type); }) } diff --git a/src/main/resources/static/js/basis/child/passDataForm.js b/src/main/resources/static/js/basis/child/passDataForm.js index d8b8145..3050889 100644 --- a/src/main/resources/static/js/basis/child/passDataForm.js +++ b/src/main/resources/static/js/basis/child/passDataForm.js @@ -1,8 +1,9 @@ -let form, layer, experIdParam,sampleIdParam,typeParam; +let form, layer, experIdParam,sampleIdParam,typeParam,auditTypeParam; function setParams(params) { experIdParam = JSON.parse(params).experId; sampleIdParam = JSON.parse(params).sampleId; typeParam = JSON.parse(params).type; + auditTypeParam = JSON.parse(params).auditType; if(typeParam === 2) { $('#auditRemakr').attr('lay-verify', 'required'); $('#labelTitle').html('*备注'); @@ -12,23 +13,11 @@ function setParams(params) { form = layui.form; form.render(); form.on('submit(formData)', function (data) { - // saveData(data); + saveData(data); }); }); } -// 设置表单内容 -function setFormData(data) { - if (data) { - $('#id').val(data.lockNumber) - $('#lockNumber').val(data.lockNumber).attr('readonly', 'readonly').css('backgroundColor', '#eee') - $('#lockName').val(data.lockName) - lockNumberParam = data.lockNumber; - lockNameParam = data.lockName; - layui.form.render(); - } -} - function saveData2() { $('#formSubmit').trigger('click') } @@ -36,8 +25,13 @@ function saveData2() { // 保存数据 function saveData(data) { let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); - let url = lockNumberParam ? dataUrl + "/sys/doorLock/addDoorLock" : dataUrl + "/sys/doorLock/updateDoorLock"; + let url = dataUrl + "/examine/checkData"; let obj = data.field; + obj.experId = experIdParam.split(","); + obj.sampleId = parseInt(sampleIdParam); + obj.auditStatus = typeParam; + obj.auditType = auditTypeParam; + console.log(obj) let params = { encryptedData: encryptCBC(JSON.stringify(obj)) } diff --git a/src/main/resources/static/pages/basis/child/passDataForm.html b/src/main/resources/static/pages/basis/child/passDataForm.html index 4b9165c..ce495dc 100644 --- a/src/main/resources/static/pages/basis/child/passDataForm.html +++ b/src/main/resources/static/pages/basis/child/passDataForm.html @@ -18,7 +18,7 @@
-