This commit is contained in:
parent
9d7e99bc5b
commit
b0761c3a40
|
|
@ -3,6 +3,7 @@ package com.bonus.aqgqj.basis.controller;
|
||||||
import com.bonus.aqgqj.annotation.DecryptAndVerify;
|
import com.bonus.aqgqj.annotation.DecryptAndVerify;
|
||||||
import com.bonus.aqgqj.annotation.LogAnnotation;
|
import com.bonus.aqgqj.annotation.LogAnnotation;
|
||||||
import com.bonus.aqgqj.basis.entity.dto.ParamsDto;
|
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.entity.vo.ExperimentalVo;
|
||||||
import com.bonus.aqgqj.basis.service.ExamineService;
|
import com.bonus.aqgqj.basis.service.ExamineService;
|
||||||
import com.bonus.aqgqj.system.vo.EncryptedReq;
|
import com.bonus.aqgqj.system.vo.EncryptedReq;
|
||||||
|
|
@ -42,4 +43,15 @@ public class ExamineController {
|
||||||
PageInfo<ExperimentalVo> pageInfo = new PageInfo<>(list);
|
PageInfo<ExperimentalVo> pageInfo = new PageInfo<>(list);
|
||||||
return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit());
|
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:examine:detailQuery')")
|
||||||
|
public ServerResponse getDetailList(EncryptedReq<ParamsDto> data) {
|
||||||
|
PageHelper.startPage(data.getData().getPage(), data.getData().getLimit());
|
||||||
|
List<ExperimentalDetailVo> list = service.getDetailList(data.getData());
|
||||||
|
PageInfo<ExperimentalDetailVo> pageInfo = new PageInfo<>(list);
|
||||||
|
return ServerResponse.createSuccessPage(pageInfo, data.getData().getPage(), data.getData().getLimit());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
package com.bonus.aqgqj.basis.dao;
|
package com.bonus.aqgqj.basis.dao;
|
||||||
|
|
||||||
import com.bonus.aqgqj.basis.entity.dto.ParamsDto;
|
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.entity.vo.ExperimentalVo;
|
||||||
|
import org.apache.ibatis.annotations.MapKey;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @className:ExamineMapper
|
* @className:ExamineMapper
|
||||||
|
|
@ -17,10 +20,31 @@ import java.util.List;
|
||||||
public interface ExamineMapper {
|
public interface ExamineMapper {
|
||||||
/**
|
/**
|
||||||
* 试验审查列表
|
* 试验审查列表
|
||||||
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return List<ExperimentalVo>
|
* @return List<ExperimentalVo>
|
||||||
* @author cwchen
|
* @author cwchen
|
||||||
* @date 2024/7/23 10:15
|
* @date 2024/7/23 10:15
|
||||||
*/
|
*/
|
||||||
List<ExperimentalVo> getList(ParamsDto dto);
|
List<ExperimentalVo> getList(ParamsDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审查详情列表
|
||||||
|
*
|
||||||
|
* @param dto
|
||||||
|
* @return List<ExperimentalDetailVo>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2024/7/23 17:58
|
||||||
|
*/
|
||||||
|
List<ExperimentalDetailVo> getDetailList(ParamsDto dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验设备数量
|
||||||
|
* @param experId
|
||||||
|
* @return List<Map < String, String>>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2024/7/23 18:16
|
||||||
|
*/
|
||||||
|
@MapKey("id")
|
||||||
|
List<Map<String, String>> getExperDevItemsNum(Long experId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,15 @@ public class ExperimentalDetailVo {
|
||||||
*/
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验人员
|
||||||
|
*/
|
||||||
|
private String experimenter;
|
||||||
|
/**
|
||||||
|
* 试验时间
|
||||||
|
*/
|
||||||
|
private String testTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 样品
|
* 样品
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.bonus.aqgqj.basis.entity.vo;
|
package com.bonus.aqgqj.basis.entity.vo;
|
||||||
|
|
||||||
|
import com.bonus.aqgqj.utils.UserUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -56,4 +57,14 @@ public class ExperimentalVo {
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
private String remarks;
|
private String remarks;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角色编码
|
||||||
|
*/
|
||||||
|
private String roleCode = UserUtil.getLoginUser() != null ? UserUtil.getLoginUser().getRoleCode() : "";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.bonus.aqgqj.basis.service;
|
package com.bonus.aqgqj.basis.service;
|
||||||
|
|
||||||
import com.bonus.aqgqj.basis.entity.dto.ParamsDto;
|
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.entity.vo.ExperimentalVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -15,10 +16,20 @@ import java.util.List;
|
||||||
public interface ExamineService {
|
public interface ExamineService {
|
||||||
/**
|
/**
|
||||||
* 试验审查列表
|
* 试验审查列表
|
||||||
|
*
|
||||||
* @param data
|
* @param data
|
||||||
* @return List<ExperimentalVo>
|
* @return List<ExperimentalVo>
|
||||||
* @author cwchen
|
* @author cwchen
|
||||||
* @date 2024/7/23 10:14
|
* @date 2024/7/23 10:14
|
||||||
*/
|
*/
|
||||||
List<ExperimentalVo> getList(ParamsDto data);
|
List<ExperimentalVo> getList(ParamsDto data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审查详情列表
|
||||||
|
* @param data
|
||||||
|
* @return List<ExperimentalDetailVo>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2024/7/23 17:57
|
||||||
|
*/
|
||||||
|
List<ExperimentalDetailVo> getDetailList(ParamsDto data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
package com.bonus.aqgqj.basis.service.impl;
|
package com.bonus.aqgqj.basis.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.bonus.aqgqj.basis.dao.ExamineMapper;
|
import com.bonus.aqgqj.basis.dao.ExamineMapper;
|
||||||
import com.bonus.aqgqj.basis.entity.dto.ParamsDto;
|
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.entity.vo.ExperimentalVo;
|
||||||
import com.bonus.aqgqj.basis.service.ExamineService;
|
import com.bonus.aqgqj.basis.service.ExamineService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @className:ExamineServiceImpl
|
* @className:ExamineServiceImpl
|
||||||
|
|
@ -30,6 +34,34 @@ public class ExamineServiceImpl implements ExamineService {
|
||||||
List<ExperimentalVo> list = new ArrayList<>();
|
List<ExperimentalVo> list = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
list = mapper.getList(dto);
|
list = mapper.getList(dto);
|
||||||
|
for (ExperimentalVo vo : list) {
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.toString(), e);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ExperimentalDetailVo> getDetailList(ParamsDto dto) {
|
||||||
|
List<ExperimentalDetailVo> list = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
list = mapper.getDetailList(dto);
|
||||||
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
for (ExperimentalDetailVo detailVo : list) {
|
||||||
|
// 样品试验结果、样品数量、送样总数
|
||||||
|
List<ExperimentalDetailVo.Sample> sampleList = new ArrayList<>();
|
||||||
|
if (detailVo.getExperId() != null) {
|
||||||
|
List<Map<String, String>> 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) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(), e);
|
log.error(e.toString(), e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
su2.user_name AS dispatchUserName,
|
su2.user_name AS dispatchUserName,
|
||||||
DATE_FORMAT(ts.sample_date, '%Y-%m-%d') AS sampleDate,
|
DATE_FORMAT(ts.sample_date, '%Y-%m-%d') AS sampleDate,
|
||||||
tt.team_name AS teamName,
|
tt.team_name AS teamName,
|
||||||
|
ts.process_status AS status,
|
||||||
<if test="roleCode == 'experimentalTeam'">
|
<if test="roleCode == 'experimentalTeam'">
|
||||||
WHEN process_status = 1 AND audti_status = 0 THEN '待审阅'
|
WHEN process_status = 1 AND audti_status = 0 THEN '待审阅'
|
||||||
END AS audtiStatus,
|
END AS audtiStatus,
|
||||||
|
|
@ -70,8 +71,8 @@
|
||||||
AND ts.team_id = -1
|
AND ts.team_id = -1
|
||||||
</if>
|
</if>
|
||||||
</if>
|
</if>
|
||||||
/*非管理员、非技术负责人、非中心负责人无审查数据权限*/
|
/*非管理员、非技术负责人、非中心负责人、非试验班组长无审查数据权限*/
|
||||||
<if test="roleCode != 'administrators' and roleCode != 'technicalDirector' and roleCode != 'centerManager' and roleCode != 'experimentalTeam'">
|
<if test="roleCode != 'administrators' and roleCode != 'technicalDirector' and roleCode != 'centerManager' and roleCode != 'experimentalTeamLeader'">
|
||||||
AND ts.team_id = -1
|
AND ts.team_id = -1
|
||||||
</if>
|
</if>
|
||||||
/*班组长-审阅*/
|
/*班组长-审阅*/
|
||||||
|
|
@ -92,4 +93,50 @@
|
||||||
</if>
|
</if>
|
||||||
ORDER BY FIELD(audtiStatus, '待审阅','待审核','待审批') ASC,dispatch_time ASC
|
ORDER BY FIELD(audtiStatus, '待审阅','待审核','待审批') ASC,dispatch_time ASC
|
||||||
</select>
|
</select>
|
||||||
|
<!--审查详情列表-->
|
||||||
|
<select id="getDetailList" resultType="com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo">
|
||||||
|
SELECT ANY_VALUE(tsd.sample_id) AS sampleId,
|
||||||
|
ANY_VALUE(tsd.dev_type_name) AS devTypeName,
|
||||||
|
tsd.dev_type_code AS devTypeCode,
|
||||||
|
ANY_VALUE(te.id) AS experId,
|
||||||
|
COUNT(tsd.dev_type_code) AS sampleNum,
|
||||||
|
ANY_VALUE(te.audit_remakr) AS causeOfRejection,
|
||||||
|
ANY_VALUE(su2.user_name) AS experimenter,
|
||||||
|
ANY_VALUE(DATE_FORMAT(te.update_time, '%Y-%m-%d')) AS testTime,
|
||||||
|
CASE WHEN ANY_VALUE(te.status) = 0 AND ANY_VALUE(te.audit_status) = 0 THEN '待提交'
|
||||||
|
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 0 THEN '待审阅'
|
||||||
|
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 2 THEN '审阅不通过'
|
||||||
|
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 0 THEN '待审核'
|
||||||
|
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 3 THEN '审核不通过'
|
||||||
|
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 0 THEN '待审批'
|
||||||
|
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 4 THEN '审批不通过'
|
||||||
|
WHEN ANY_VALUE(te.status) = 4 AND ANY_VALUE(te.audit_status) = 1 THEN '试验完成'
|
||||||
|
ELSE '待试验'
|
||||||
|
END AS status
|
||||||
|
FROM tb_sample_device tsd
|
||||||
|
LEFT JOIN tb_exper te ON tsd.sample_id = te.sample_id AND tsd.dev_type_code = te.dev_type_code AND te.del_flag = 0
|
||||||
|
LEFT JOIN sys_user su2 ON te.update_user = su2.id AND su2.del_flag = 0
|
||||||
|
WHERE tsd.sample_id = #{id} AND tsd.del_falg = 0
|
||||||
|
<if test="devTypeCode != null and devTypeCode!=''">
|
||||||
|
AND INSTR(tsd.dev_type_code,#{devTypeCode})
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null and endTime!=''">
|
||||||
|
AND DATE_FORMAT(te.update_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
|
||||||
|
</if>
|
||||||
|
<if test="keyWord != null and keyWord!=''">
|
||||||
|
AND (
|
||||||
|
INSTR(su2.user_name,#{keyWord}) > 0
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
GROUP BY tsd.dev_type_code
|
||||||
|
</select>
|
||||||
|
<!--查询试验设备数量-->
|
||||||
|
<select id="getExperDevItemsNum" resultType="java.util.Map">
|
||||||
|
SELECT dev_code AS devCode,
|
||||||
|
case is_hg WHEN '1' THEN '不合格'
|
||||||
|
WHEN '0' THEN '合格'
|
||||||
|
ELSE '不合格' END AS testResult
|
||||||
|
FROM tb_exper_dev
|
||||||
|
WHERE exper_id = #{experId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -314,15 +314,15 @@
|
||||||
tsd.dev_type_code AS devTypeCode,
|
tsd.dev_type_code AS devTypeCode,
|
||||||
ANY_VALUE(te.id) AS experId,
|
ANY_VALUE(te.id) AS experId,
|
||||||
COUNT(tsd.dev_type_code) AS sampleNum,
|
COUNT(tsd.dev_type_code) AS sampleNum,
|
||||||
ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_remakr)) AS causeOfRejection,
|
ANY_VALUE(te.audit_remakr) AS causeOfRejection,
|
||||||
CASE WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 0 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 0 THEN '待提交'
|
CASE WHEN ANY_VALUE(te.status) = 0 AND ANY_VALUE(te.audit_status) = 0 THEN '待提交'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 1 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 0 THEN '待审阅'
|
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 0 THEN '待审阅'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 1 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 2 THEN '审阅不通过'
|
WHEN ANY_VALUE(te.status) = 1 AND ANY_VALUE(te.audit_status) = 2 THEN '审阅不通过'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 2 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 0 THEN '待审核'
|
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 0 THEN '待审核'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 2 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 3 THEN '审核不通过'
|
WHEN ANY_VALUE(te.status) = 2 AND ANY_VALUE(te.audit_status) = 3 THEN '审核不通过'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 3 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 0 THEN '待审批'
|
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 0 THEN '待审批'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 3 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 4 THEN '审批不通过'
|
WHEN ANY_VALUE(te.status) = 3 AND ANY_VALUE(te.audit_status) = 4 THEN '审批不通过'
|
||||||
WHEN ANY_VALUE(GROUP_CONCAT(DISTINCT te.status)) = 4 AND ANY_VALUE(GROUP_CONCAT(DISTINCT te.audit_status)) = 1 THEN '试验完成'
|
WHEN ANY_VALUE(te.status) = 4 AND ANY_VALUE(te.audit_status) = 1 THEN '试验完成'
|
||||||
ELSE '待试验'
|
ELSE '待试验'
|
||||||
END AS status
|
END AS status
|
||||||
FROM tb_sample_device tsd
|
FROM tb_sample_device tsd
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,207 @@
|
||||||
|
let form, layer, table, tableIns, laydate;
|
||||||
|
let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10
|
||||||
|
let deviceTypeList = [];
|
||||||
|
let idParam = null, statusParam = null;
|
||||||
|
|
||||||
|
function setParams(params) {
|
||||||
|
idParam = JSON.parse(params).id;
|
||||||
|
statusParam = JSON.parse(params).status;
|
||||||
|
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
|
||||||
|
});
|
||||||
|
pages(1, 10, 1);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function pages(pageNum, pageSize, typeNum) {
|
||||||
|
let params = getReqParams(pageNum, pageSize, typeNum);
|
||||||
|
$.ajax({
|
||||||
|
url: dataUrl + "/examine/getDetailList",
|
||||||
|
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: "devTypeName", title: "设备类型", unresize: true, align: "center"},
|
||||||
|
{field: "sampleNum", title: "送样总数", unresize: true, align: "center"},
|
||||||
|
{field: "sampleQuantity", title: "样品总数", unresize: true, align: "center"},
|
||||||
|
{field: "experimenter", title: "试验人员", unresize: true, align: "center"},
|
||||||
|
{field: "testTime", title: "试验时间", unresize: true, align: "center"},
|
||||||
|
{field: "status", title: "状态", unresize: true, align: "center"},
|
||||||
|
{ title: "原始记录", unresize: true, align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
let html = '';
|
||||||
|
html += "<a title='查看' onclick=\"addData('" + d.id + "')\">查看</a>";
|
||||||
|
return html;
|
||||||
|
}},
|
||||||
|
{
|
||||||
|
title: "操作", unresize: true, width: 180, align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
let html = '';
|
||||||
|
// html += "<a class='layui-icon layui-icon-edit' title='详情' onclick=\"addData('" + d.id + "')\"></a>";
|
||||||
|
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(),
|
||||||
|
id: idParam
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
obj = {
|
||||||
|
page: '1',
|
||||||
|
limit: '10',
|
||||||
|
keyWord: '',
|
||||||
|
accessType: '',
|
||||||
|
startTime: '',
|
||||||
|
endTime: '',
|
||||||
|
devTypeCode: '',
|
||||||
|
id: idParam
|
||||||
|
};
|
||||||
|
}
|
||||||
|
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 += "<a title='" + btnName + "' onclick=\"auditData('" + id + "','" + status + "','" + btnName + "')\">" + btnName + "</a>";
|
||||||
|
}
|
||||||
|
return cent;
|
||||||
|
}
|
||||||
|
|
||||||
|
function seta() {
|
||||||
|
alert('12')
|
||||||
|
}
|
||||||
|
|
@ -93,8 +93,8 @@ function initTable(dataList, limit, page) {
|
||||||
title: "操作", unresize: true, width: 180, align: "center",
|
title: "操作", unresize: true, width: 180, align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
let html = '';
|
let html = '';
|
||||||
html += "<a class='layui-icon layui-icon-edit' title='编辑' onclick=\"addData('" + d.id + "')\"></a>" +
|
// html += "<a class='layui-icon layui-icon-edit' title='详情' onclick=\"addData('" + d.id + "')\"></a>";
|
||||||
"<a class='layui-icon layui-icon-delete' title='删除' onclick=\"delData('" + d.id + "')\"></a>";
|
html += setButtonName(d.id, d.roleCode, d.status);
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -157,49 +157,35 @@ function reloadData() {
|
||||||
pages(pageNum, limitSize);
|
pages(pageNum, limitSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增/修改平台用户
|
// 审核数据
|
||||||
function addData(id) {
|
function auditData(id, status, btnName) {
|
||||||
let title = '新增白名单'
|
let title = btnName
|
||||||
if (id) {
|
|
||||||
title = '修改白名单';
|
|
||||||
}
|
|
||||||
let param = {
|
let param = {
|
||||||
'id': id
|
'id': id,
|
||||||
|
'status':status
|
||||||
}
|
}
|
||||||
openIframe2("addOrEditWhite", title, "child/whiteForm.html", '875px', '625px', param);
|
openIframe3("auditData", title, "child/auditData.html", '1500px', '800px', param);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addPwdData(id) {
|
const data = {
|
||||||
let param = {
|
administrators1: '审阅',
|
||||||
'id': id
|
administrators2: '审核',
|
||||||
}
|
administrators3: '审批',
|
||||||
openIframe2("addOrEditWhite", '密码规则配置', "child/pwdRuleForm.html", '875px', '625px', param);
|
experimentalTeamLeader1: '审阅',
|
||||||
|
technicalDirector2: '审核',
|
||||||
|
centerManager3: '审批'
|
||||||
|
};
|
||||||
|
|
||||||
|
function getValueByKey(obj, key) {
|
||||||
|
return obj[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*删除白名单*/
|
/**设置审核类型*/
|
||||||
function delData(id) {
|
function setButtonName(id, value, status) {
|
||||||
layer.confirm("确定删除吗?", {
|
let cent = "";
|
||||||
move: false
|
const btnName = getValueByKey(data, value + status)
|
||||||
}, function () {
|
if (btnName) {
|
||||||
let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0});
|
cent += "<a title='" + btnName + "' onclick=\"auditData('" + id + "','" + status + "','" + btnName + "')\">" + btnName + "</a>";
|
||||||
let url = dataUrl + "/sys/white/delWhite"
|
|
||||||
let obj = {'id': id}
|
|
||||||
let params = {
|
|
||||||
encryptedData: encryptCBC(JSON.stringify(obj))
|
|
||||||
}
|
}
|
||||||
ajaxRequest(url, "POST", params, true, function () {
|
return cent;
|
||||||
}, function (result) {
|
|
||||||
layer.close(loadingMsg); // 关闭提示层
|
|
||||||
if (result.status === 200) {
|
|
||||||
parent.layer.msg(result.msg, {icon: 1})
|
|
||||||
query()
|
|
||||||
} else if (result.status === 500) {
|
|
||||||
layer.alert(result.msg, {icon: 2})
|
|
||||||
}
|
}
|
||||||
}, function (xhr) {
|
|
||||||
layer.close(loadingMsg); // 关闭提示层
|
|
||||||
error(xhr)
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,18 @@ function openIframe3(id, title, content, width, height, params) {
|
||||||
title: ['<div style="border-left: 3px solid #00377A;color:#00377A;font-size:18px;display: flex;letter-spacing:1px;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
title: ['<div style="border-left: 3px solid #00377A;color:#00377A;font-size:18px;display: flex;letter-spacing:1px;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
||||||
content: content,
|
content: content,
|
||||||
shade: 0.3,
|
shade: 0.3,
|
||||||
closeBtn: false,
|
closeBtn: true,
|
||||||
shadeClose: false,
|
shadeClose: false,
|
||||||
area: [width, height],
|
area: [width, height],
|
||||||
move: false,
|
move: false,
|
||||||
success: function () {
|
success: function () {
|
||||||
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
||||||
iframeWin.setParams(JSON.stringify(params));
|
iframeWin.setParams(JSON.stringify(params));
|
||||||
|
},
|
||||||
|
end:function (){
|
||||||
|
if(id === 'auditData'){
|
||||||
|
window.reloadData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="../../../js/layui-v2.9.14/layui/css/layui.css">
|
||||||
|
<link rel="stylesheet" href="../../../css/table-common2.css">
|
||||||
|
<script src="../../../js/libs/jquery-2.1.1.min.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
<script src="../../../js/layui-v2.9.14/layui/layui.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
<script src="../../../js/publicJs.js"></script>
|
||||||
|
<script src="../../../js/commonUtils.js"></script>
|
||||||
|
<script src="../../../js/openIframe.js"></script>
|
||||||
|
<script src="../../../js/my/aes.js"></script>
|
||||||
|
<script src="../../../js/ajaxRequest.js"></script>
|
||||||
|
<script src="../../../js/select.js"></script>
|
||||||
|
<title>试验数据-审阅/审核/审批</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="content">
|
||||||
|
<div class="basic-search-box layout">
|
||||||
|
<form class="layui-form basic-form" onsubmit="return false;">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline" style="padding: 0 0 0 10px;">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select class="layui-select" id="devTypeCode">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<div class="layui-inline" id="ID-laydate-rangeLinked">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" autocomplete="off" readonly id="startTime" class="layui-input"
|
||||||
|
placeholder="开始日期">
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-mid">-</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" autocomplete="off" readonly id="endTime" class="layui-input"
|
||||||
|
placeholder="结束日期">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" id="keyWord" maxlength="30" class="layui-input" autocomplete="off"
|
||||||
|
placeholder="请输入关键字">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline btns">
|
||||||
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="query(1)">查询
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="table-box" table-responsive style="z-index: 1;">
|
||||||
|
<table id="table_data" class="table" lay-filter="table_data"></table>
|
||||||
|
<div id="voi-page" class="layout"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<style>
|
||||||
|
.layui-table-init {
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script src="../../../js/basis/child/auditData.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue