Merge remote-tracking branch 'origin/master'

This commit is contained in:
sliang 2024-07-22 09:15:01 +08:00
commit 57caa6cf2a
28 changed files with 1696 additions and 304 deletions

View File

@ -78,4 +78,26 @@ public class ExperimentalController {
public ServerResponse addTestData(EncryptedReq<TestVo> 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<TestVo> 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<ParamsDto> data) {
return service.delTestData(data.getData());
}
@PostMapping(value = "viewTestData")
@DecryptAndVerify(decryptedClass = ParamsDto.class)//加解密统一管理
public ServerResponse viewTestData(EncryptedReq<ParamsDto> data) {
return service.viewTestData(data.getData());
}
}

View File

@ -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<ToolsManageDto> 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<ToolsManageDto> data) {
PageHelper.startPage(data.getData().getPage(), data.getData().getLimit());
try {
List<ToolsManageDto> list = toolsManageService.getDetailsList(data.getData());
PageInfo<ToolsManageDto> 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<ToolsManageDto> list = toolsManageService.listTools();
return ServerResponse.createSuccess(list);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
}

View File

@ -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<ExperBasisVo> basisVos, @Param("id") Long id);
void addConfigBasis(@Param("list") List<ExperBasisVo> basisVos, @Param("experId") Long experId);
/**
* 查询收样设备-根据设备类型
*
* @param dto
* @return List<SampleDeviceVo>
* @author cwchen
* @date 2024/7/21 17:01
*/
List<SampleDeviceVo> 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<ExperDevItemVo> 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<ConfigDevVo> deviceVos, @Param("experId") Long experId);
/**
* 试验依据信息
*
* @param dto
* @return List<ExperBasisVo>
* @author cwchen
* @date 2024/7/21 23:19
*/
List<ExperBasisVo> getConfigBasis(ParamsDto dto);
/**
* 试验设备信息
*
* @param dto
* @return List<ConfigDevVo>
* @author cwchen
* @date 2024/7/21 23:22
*/
List<ConfigDevVo> getExperConfigDevs(ParamsDto dto);
/**
* 试验项信息
*
* @param dto
* @return List<ConfigItemsVo>
* @author cwchen
* @date 2024/7/21 23:27
*/
List<ConfigItemsVo> getExperItems(ParamsDto dto);
/**
* 试验项内容信息
*
* @param id
* @return List<ConfigItemVo>
* @author cwchen
* @date 2024/7/21 23:33
*/
List<ConfigItemVo> getExperItem(Long id);
/**
* 试验样品设备
*
* @param dto
* @return List<ExperDevVo>
* @author cwchen
* @date 2024/7/21 23:37
*/
List<ExperDevVo> getExperDev(ParamsDto dto);
/**
* 修改试验信息数据
*
* @param vo
* @return void
* @author cwchen
* @date 2024/7/22 0:02
*/
void updateExper(TestVo vo);
/**
* 获取试验样品设备ID
*
* @param id
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:18
*/
List<Long> getExperDevIds(Long id);
/**
* 获取设备试验项信息ID
*
* @param list
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:18
*/
List<Long> getExperDevItems(List<Long> 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<Long> list);
/**
* 删除设备试验项数据
*
* @param list
* @return void
* @author cwchen
* @date 2024/7/22 0:24
*/
void delExperDevItem(List<Long> list);
/**
* 删除试验信息
*
* @param id
* @return void
* @author cwchen
* @date 2024/7/22 0:32
*/
void delExper(Long id);
/**
* 查询试验项ID
*
* @param id
* @return List<Long>
* @author cwchen
* @date 2024/7/22 0:34
*/
List<Long> 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<Long> experItemsIds);
}

View File

@ -25,4 +25,23 @@ public interface ToolsManageDao {
*/
List<ToolsManageDto> list(ToolsManageDto bean);
/**
* 获取工器具
* @param id
* @return
*/
String getSampleTools(Integer id);
/**
* 获取详情列表
* @param data
* @return
*/
List<ToolsManageDto> getDetailsList(ToolsManageDto data);
/**
* 获取工器具
* @return
*/
List<ToolsManageDto> listTools();
}

View File

@ -3,119 +3,111 @@ 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 sampleDepartment;
/**
* 单位部门
* 送样人
*/
private String orgName;
private String sampleUser;
/**
* 角色名称
* 送样时间
*/
private String roleName;
private String password;
private String oldPassword;
private String sampleTime;
/**
* 手机号
* 送样设备
*/
private String phone;
private String sampleTools;
/**
* 用户类型
* 收样人
*/
private String userType;
private String email;
private Integer sex;
private Integer state;
private String collectSamplesUser;
/**
* 角色id
* 收样时间
*/
private String roleId;
private String collectSamplesTime;
/**
* 织机构id
*
*/
private Integer orgId;
private String teamName;
/**
* 所属单位
* 设备编号
*/
private String unit;
private String devCode;
/**
* 所属部门
* 客户自编号
*/
private String dept;
private String devTypeCode;
/**
* 登录权限
* 生产厂家
*/
private String loginType;
private String headImgUrl;
private String delFlag;
private String factoryName;
/**
* 账号类型
* 生产日期
*/
private int type;
private String manufactureDate;
/**
* 休眠时间
* 设备规格
*/
private String sleepTime;
private String updatePasswordTime;
private String devModule;
/**
* 临时账号时间
* 试验日期
*/
private String lsTime;
private String experTime;
/**
* 登录时间
* 下次试验日期
*/
private String loginTimes;
private String nextExperTime;
private String status;
/**
* 试验人员
*/
private String experUser;
private String newUser;
/**
* 试验结论
*/
private String experConclu;
/**
* 关键字
*/
private String keyWord;
public interface Status {
int DISABLED = 0;
int VALID = 1;
int LOCKED = 2;
}
}

View File

@ -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;
}

View File

@ -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<ExperDevItemVo> experDevItemVos;
}

View File

@ -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 {
}
}

View File

@ -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;
}

View File

@ -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<ConfigMainDevVo> mainDeviceVos;
/**
@ -198,6 +199,16 @@ public class TestVo {
*/
private List<ConfigItemsVo> configItemsVos;
/**
* 收样设备list
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private List<SampleDeviceVo> sampleDeviceVos;
/**
* 试验样品设备list
*/
private List<ExperDevVo> experDevVos;
/**
* 查询条件限制
*/

View File

@ -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);
}

View File

@ -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<ToolsManageDto> list(ToolsManageDto bean);
/**
* 详情列表
* @param data
* @return
*/
List<ToolsManageDto> getDetailsList(ToolsManageDto data);
/**
* 工器具列表
* @return
*/
List<ToolsManageDto> listTools();
}

View File

@ -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)) {

View File

@ -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<SampleDeviceVo> sampleDeviceVos = mapper.getSampleDeviceVos(dto);
List<ExperBasisVo> basisVos = standardMapper.getExperBasis(vo.getConfigId());
List<ConfigDevVo> deviceVos = standardMapper.getConfigDev(vo.getConfigId());
List<ConfigMainDevVo> mainDevVos = standardMapper.getConfigMainDev(vo.getConfigId());
@ -88,6 +94,7 @@ public class ExperimentalServiceImpl implements ExperimentalService {
List<ConfigItemVo> 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<ExperDevItemsVo> experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo);
for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) {
// 添加设备试验项信息
mapper.addExperDevItems(experDevItemsVo);
List<ExperDevItemVo> 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<Long> experDevIds = mapper.getExperDevIds(vo.getId());
List<Long> 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<ExperDevItemsVo> experDevItemsVos = setExperDevItemsList(vo.getExperDevVos().get(i), vo);
for (ExperDevItemsVo experDevItemsVo : experDevItemsVos) {
// 添加设备试验项信息
mapper.addExperDevItems(experDevItemsVo);
List<ExperDevItemVo> 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<Long> experDevIds = mapper.getExperDevIds(dto.getId());
List<Long> experDevItemsIds = mapper.getExperDevItems(experDevIds);
List<Long> 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<ExperBasisVo> experBasisVos = mapper.getConfigBasis(dto);
List<ConfigDevVo> experConfigDevs = mapper.getExperConfigDevs(dto);
List<ConfigItemsVo> configItemsVos = mapper.getExperItems(dto);
for (ConfigItemsVo configItemsVo : configItemsVos) {
List<ConfigItemVo> configItemVos = mapper.getExperItem(configItemsVo.getId());
configItemsVo.setItemList(configItemVos);
}
List<ExperDevVo> 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<ConfigItemsVo>
@ -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<ExperBasisVo> basisVos = yjList.toJavaList(ExperBasisVo.class);
List<ConfigDevVo> deviceVos = devList.toJavaList(ConfigDevVo.class);
List<ConfigMainDevVo> mainDeviceVos = mainDevList.toJavaList(ConfigMainDevVo.class);
List<ConfigItemsVo> configItemsVos = itemsList.toJavaList(ConfigItemsVo.class);
List<ExperDevVo> experDevVos = experDevList.toJavaList(ExperDevVo.class);
for (ConfigItemsVo configItemsVo : configItemsVos) {
JSONArray itemArr = JSONObject.parseArray(configItemsVo.getItem());
List<ConfigItemVo> 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<ConfigMainDevVo> mainDeviceVos = vo.getMainDeviceVos();
List<ExperBasisVo> basisVos = vo.getBasisVos();
List<ConfigItemsVo> configItemsVos = vo.getConfigItemsVos();
List<ExperDevVo> 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<ExperDevItemsVo>
* @author cwchen
* @date 2024/7/21 19:17
*/
public List<ExperDevItemsVo> setExperDevItemsList(ExperDevVo experDevVo, TestVo vo) {
List<ExperDevItemsVo> 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<ExperDevItemVo>
* @author cwchen
* @date 2024/7/21 19:17
*/
public List<ExperDevItemVo> setExperDevItemList(ExperDevVo experDevVo, TestVo vo, ExperDevItemsVo experDevItemsVo) {
List<ExperDevItemVo> experDevItemList = new ArrayList<>();
int index = 0;
for (int i = 0; i < vo.getConfigItemsVos().size(); i++) {
ConfigItemsVo configItemsVo = vo.getConfigItemsVos().get(i);
List<ExperDevItemVo> 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;
}
}
}

View File

@ -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<ToolsManageDto> list(ToolsManageDto bean) {
return toolsManageDao.list(bean);
List<ToolsManageDto> 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<ToolsManageDto> getDetailsList(ToolsManageDto data) {
return toolsManageDao.getDetailsList(data);
}
@Override
public List<ToolsManageDto> listTools() {
List<ToolsManageDto> list = toolsManageDao.listTools();
return list;
}

View File

@ -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";

View File

@ -50,13 +50,13 @@
<if test="experStand != null and experStand!=''">#{experStand},</if>
<if test="experConclu != null and experConclu!=''">#{experConclu},</if>
<if test="remarsk != null and remarsk!=''">#{remarsk},</if>
#{auditStatus}
#{auditStatus},
#{createTime},
#{createUser},
#{updateTime},
#{updateUser},
#{status},
0,
#{status},
null
</trim>
</insert>
@ -65,10 +65,163 @@
INSERT INTO tb_config_basis(id,exper_id,exper_basis_name) VALUES
<foreach collection="list" separator="," item="item">
(
null,#{id},#{item.basisName}
null,#{experId},#{item.basisName}
)
</foreach>
</insert>
<!--添加试验项信息-->
<insert id="addExperItems" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">exper_id,</if>
<if test="params.experTypeCode != null and params.experTypeCode != ''">exper_type_code,</if>
<if test="params.experTypeName != null and params.experTypeName != ''">exper_type_name,</if>
<if test="params.experNum != null">exper_num,</if>
<if test="params.itemsSort != null">items_sort,</if>
<if test="params.amount != null and params.amount!=''">amount,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.experTypeCode != null and params.experTypeCode != ''">#{params.experTypeCode},</if>
<if test="params.experTypeName != null and params.experTypeName != ''">#{params.experTypeName},</if>
<if test="params.experNum != null">#{params.experNum},</if>
<if test="params.itemsSort != null">#{params.itemsSort},</if>
<if test="params.amount != null and params.amount!=''">#{params.amount},</if>
null
</trim>
</insert>
<!--添加试验项内容-->
<insert id="addExperItem" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">items_id,</if>
<if test="params.itemNum != null">item_sort,</if>
<if test="params.itemName != null and params.itemName != ''">item_name,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.itemNum != null">#{params.itemNum},</if>
<if test="params.itemName != null and params.itemName != ''">#{params.itemName},</if>
null
</trim>
</insert>
<!--添加试验样品设备-->
<insert id="addExperDev" useGeneratedKeys="true" keyProperty="params.id">
INSERT INTO tb_exper_dev
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="experId != null">exper_id,</if>
<if test="params.devCode != null and params.devCode!=''">dev_code,</if>
<if test="params.manufacturer != null and params.manufacturer != ''">manufacturer,</if>
<if test="params.manufactureDate != null and params.manufactureDate != ''">manufacture_date,</if>
<if test="params.devModule != null and params.devModule != ''">dev_module,</if>
<if test="params.devStatus != null and params.devStatus != ''">dev_status,</if>
<if test="params.devData != null and params.devData != ''">dev_data,</if>
<if test="params.amount != null and params.amount != ''">amount,</if>
<if test="params.remarks != null and params.remarks != ''">remarks,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="experId != null">#{experId},</if>
<if test="params.devCode != null and params.devCode!=''">#{params.devCode},</if>
<if test="params.manufacturer != null and params.manufacturer != ''">#{params.manufacturer},</if>
<if test="params.manufactureDate != null and params.manufactureDate != ''">#{params.manufactureDate},</if>
<if test="params.devModule != null and params.devModule != ''">#{params.devModule},</if>
<if test="params.devStatus != null and params.devStatus != ''">#{params.devStatus},</if>
<if test="params.devData != null and params.devData != ''">#{params.devData},</if>
<if test="params.amount != null and params.amount != ''">#{params.amount},</if>
<if test="params.remarks != null and params.remarks != ''">#{params.remarks},</if>
null
</trim>
</insert>
<!--添加设备试验项信息-->
<insert id="addExperDevItems" useGeneratedKeys="true" keyProperty="id">
INSERT INTO tb_exper_dev_items
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="devId != null">dev_id,</if>
<if test="itemsId != null">items_id,</if>
<if test="itemsName != null and itemsName != ''">items_name,</if>
<if test="valSort != null">val_sort,</if>
id
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="devId != null">#{devId},</if>
<if test="itemsId != null">#{itemsId},</if>
<if test="itemsName != null and itemsName != ''">#{itemsName},</if>
<if test="valSort != null">#{valSort},</if>
null
</trim>
</insert>
<!--添加设备试验项数据-->
<insert id="addExperDevItem">
INSERT INTO tb_exper_dev_item (id,items_id,item_id,dev_id,item_name,item_val) VALUES
<foreach collection="experDevItemVos" separator="," item="item">
(
null,#{item.itemsId},#{item.itemId},#{item.devId},#{item.itemName},#{item.itemVal}
)
</foreach>
</insert>
<!--添加试验设备数据-->
<insert id="addExperConfigDev">
INSERT INTO tb_exper_config_dev(id,dev_type_code,dev_type_name,exper_id,dev_name,dev_id) VALUES
<foreach collection="list" separator="," item="item">
(
null,#{item.devTypeCode},#{item.devTypeName},#{experId},#{item.devName},#{item.devId}
)
</foreach>
</insert>
<!--修改试验信息数据-->
<update id="updateExper">
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}
</update>
<!--删除试验依据-->
<delete id="delConfigBasis">
DELETE FROM tb_config_basis WHERE exper_id = #{id}
</delete>
<!--删除试验设备-->
<delete id="delExperConfigDev">
DELETE FROM tb_exper_config_dev WHERE exper_id = #{id}
</delete>
<!--删除试验样品设备-->
<delete id="delExperDev">
DELETE FROM tb_exper_dev WHERE exper_id = #{id}
</delete>
<!--删除设备试验项信息-->
<delete id="delExperDevItems">
DELETE FROM tb_exper_dev_items
WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--删除设备试验项数据-->
<delete id="delExperDevItem">
DELETE FROM tb_exper_dev_item
WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--删除试验信息-->
<delete id="delExper">
UPDATE tb_exper SET del_flag = 1 WHERE id = #{id}
</delete>
<!--删除试验项-->
<delete id="delExperItems">
DELETE FROM tb_exper_items WHERE exper_id = #{id}
</delete>
<!--删除试验项内容-->
<delete id="delExperItem">
DELETE FROM tb_exper_item WHERE items_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
<!--试验列表-->
<select id="getList" resultType="com.bonus.aqgqj.basis.entity.vo.ExperimentalVo">
@ -115,8 +268,8 @@
</select>
<!--试验详情列表-->
<select id="getDetailList" resultType="com.bonus.aqgqj.basis.entity.vo.ExperimentalDetailVo">
SELECT sample_id AS sampleId,
dev_type_name AS devTypeName,
SELECT ANY_VALUE(sample_id) AS sampleId,
any_value(dev_type_name) AS devTypeName,
dev_type_code AS devTypeCode
FROM tb_sample_device
WHERE sample_id = #{id} AND del_falg = 0
@ -138,7 +291,13 @@
a.exper_local AS experLocal
FROM tb_sample ts
LEFT JOIN (
SELECT tsd.dev_type_code,tsc.dev_type_name,tsc.dev_module,tsc.exper_local_code,tsc.exper_local,tsc.id,tsd.sample_id
SELECT tsd.dev_type_code,
ANY_VALUE(tsc.dev_type_name) AS dev_type_name,
ANY_VALUE(tsc.dev_module) AS dev_module,
ANY_VALUE(tsc.exper_local_code) AS exper_local_code,
ANY_VALUE(tsc.exper_local) AS exper_local,
ANY_VALUE(tsc.id) AS id,
ANY_VALUE(tsd.sample_id) AS sample_id
FROM tb_sample_device tsd
LEFT JOIN tb_exper_config tsc ON tsc.dev_type_code = tsd.dev_type_code AND tsc.del_flag = 0
WHERE tsd.sample_id = #{id} AND tsd.del_falg = 0 AND tsd.dev_type_code = #{devTypeCode}
@ -146,4 +305,109 @@
) a ON a.sample_id = ts.id
WHERE ts.id = #{id} AND del_flag = 0
</select>
<!--查询收样设备-根据设备类型-->
<select id="getSampleDeviceVos" resultType="com.bonus.aqgqj.basis.entity.vo.SampleDeviceVo">
SELECT id,
dev_code AS devCode,
dev_module AS devModule,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName
FROM tb_sample_device
WHERE sample_id = #{id}
AND dev_type_code = #{devTypeCode}
AND del_falg = 0
</select>
<!--试验数据详情-->
<select id="viewTestData" resultType="com.bonus.aqgqj.basis.entity.vo.TestVo">
SELECT id,
sample_id AS sampleId,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName,
dev_num AS sampleQuantity,
dev_module AS devModule,
sample_date AS sampleDate,
DATE_FORMAT(exper_time, '%Y-%m-%d') AS experTime,
DATE_FORMAT(next_exper_time, '%Y-%m-%d') AS nextExperTime,
submit_unit AS customId,
submit_location AS experLocal,
exper_dev AS experDev,
exper_module AS experModule,
exper_code AS experCode,
DATE_FORMAT(check_time, '%Y-%m-%d') AS checkTime,
exper_stand AS experStand,
exper_conclu AS experConclu,
remarsk AS remarsk
FROM tb_exper te
WHERE te.id = #{id}
</select>
<!--试验依据信息-->
<select id="getConfigBasis" resultType="com.bonus.aqgqj.basis.entity.vo.ExperBasisVo">
SELECT id,
exper_id AS configId,
exper_basis_name AS basisName
FROM tb_config_basis WHERE exper_id = #{id}
</select>
<!--试验设备信息-->
<select id="getExperConfigDevs" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigDevVo">
SELECT id,
dev_type_code AS devTypeCode,
dev_type_name AS devTypeName,
exper_id AS configId,
dev_name AS devName,
dev_id AS devId
FROM tb_exper_config_dev
WHERE exper_id = #{id}
</select>
<!--试验项信息-->
<select id="getExperItems" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigItemsVo">
SELECT id,
exper_type_code AS experTypeCode,
exper_type_name AS experTypeName,
exper_num AS experNum,
items_sort AS itemsSort,
amount
FROM tb_exper_items
WHERE exper_id = #{id}
ORDER BY items_sort
</select>
<!--试验项内容信息-->
<select id="getExperItem" resultType="com.bonus.aqgqj.basis.entity.vo.ConfigItemVo">
SELECT id,
items_id AS itemId,
item_sort AS itemNum,
item_name AS itemName
FROM tb_exper_item
WHERE items_id = #{id}
ORDER BY item_sort
</select>
<!--试验样品设备-->
<select id="getExperDev" resultType="com.bonus.aqgqj.basis.entity.vo.ExperDevVo">
SELECT id,
exper_id AS experId,
dev_code AS devCode,
manufacturer,
manufacture_date AS manufactureDate,
dev_module AS devModule,
dev_status AS devStatus,
dev_data AS devData,
amount,
remarks
FROM tb_exper_dev
WHERE exper_id = #{id}
</select>
<!--获取试验样品设备ID-->
<select id="getExperDevIds" resultType="java.lang.Long">
SELECT id FROM tb_exper_dev WHERE exper_id = #{id}
</select>
<!--获取试验样品设备ID-->
<select id="getExperDevItems" resultType="java.lang.Long">
SELECT id FROM tb_exper_dev_items WHERE dev_id IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<!--查询试验项ID-->
<select id="getExperItemsIds" resultType="java.lang.Long">
SELECT id FROM tb_exper_items WHERE exper_id = #{id}
</select>
</mapper>

View File

@ -4,43 +4,68 @@
<select id="list" resultType="com.bonus.aqgqj.basis.entity.dto.ToolsManageDto">
SELECT
t.id,
t.login_name AS loginName,
t.user_name AS username,
t.user_code AS userCode,
t.sex,
t.org_id as orgId,
CONCAT(so.org_name,'/',t.team_name) as orgName,
sr.role_name roleName,
t.phone AS phone,
t.team_id as teamId,
t.team_name as teamName,
CASE
t.user_type
WHEN '0' THEN
'内部用户'
WHEN '1' THEN
'外部用户' ELSE ''
END userType,
t.state AS state,
t.del_flag AS delFlag
tsd.id,
tsd.dev_type_name as sampleTools,
tsd.dev_code as devCode,
tsd.dev_type_code as devTypeCode,
tsd.dev_module as devModule,
tc.custom_name as customName,
ted.manufacture_date as manufactureDate,
te.exper_time as experTime,
te.next_exper_time as nextExperTime,
te.exper_conclu as experConclu,
su.user_name as experUser
FROM
sys_user t
LEFT JOIN sys_role sr ON sr.role_id = t.role_id
LEFT JOIN sys_org so ON so.org_id = t.org_id
where t.del_flag = 0
<if test="username != null and username != ''">
and t.user_name like concat('%', #{username}, '%')
tb_sample_device tsd
LEFT JOIN tb_sample ts on ts.id=tsd.sample_id
LEFT JOIN tb_custom tc on tc.id=ts.custom_id
LEFT JOIN tb_exper te on te.sample_id=ts.id
LEFT JOIN tb_exper_dev ted on ted.exper_id =te.id
LEFT JOIN sys_user su on su.id=te.create_user
WHERE
tsd.del_falg=0
<if test="sampleTools != null and sampleTools != ''">
and tsd.dev_type_name like concat('%',#{sampleTools}, '%')
</if>
<if test="phone != null and phone != ''">
and t.phone like concat('%', #{phone}, '%')
<if test="keyWord != null and keyWord != ''">
AND (
tsd.dev_code like concat('%', #{keyWord}, '%') OR
tsd.dev_type_code like concat('%', #{keyWord}, '%') OR
tsd.dev_module like concat('%', #{keyWord}, '%') OR
tc.custom_name like concat('%', #{keyWord}, '%')
)
</if>
<if test="orgId != null and orgId != ''">
and t.org_id = #{orgId}
</select>
<select id="getSampleTools" resultType="java.lang.String">
SELECT GROUP_CONCAT(aa.dev_type_name SEPARATOR '、') AS sampleTools
FROM (SELECT DISTINCT tsd.dev_type_name
FROM tb_sample_device tsd
LEFT JOIN tb_sample ts ON ts.id = tsd.sample_id
WHERE tsd.sample_id = #{id}
AND tsd.del_falg = '0') aa
</select>
<select id="getDetailsList" resultType="com.bonus.aqgqj.basis.entity.dto.ToolsManageDto">
select
tsd.id,
tsd.dev_type_name as sampleTools,
tsd.dev_type_code as devTypeCode,
tsd.dev_module as devModule
from
tb_sample_device tsd
where tsd.del_falg = 0
and tsd.sample_id = #{id}
<if test="sampleTools != null and sampleTools != ''">
and tsd.dev_type_name like concat('%',#{sampleTools}, '%')
</if>
<if test="userType != null and userType != ''">
and t.user_type = #{userType}
</if>
order by t.del_flag ASC , t.state,t.create_time DESC
</select>
<select id="listTools" resultType="com.bonus.aqgqj.basis.entity.dto.ToolsManageDto">
select
id,
dict_name as name
from
sys_distinct
where
p_id = 92
and del_flag = 0
</select>
</mapper>

View File

@ -151,7 +151,7 @@ function setFormData(data) {
$("#password").removeAttr("lay-verify");
$("#pwd").css("display","none");
$('#id').val(data.id)
$('#userCode').val(data.userCode)
// $('#userCode').val(data.userCode)
$('#username').val(data.username)
$('#loginName').val(data.loginName)
$('#phone').val(data.phone)

View File

@ -127,7 +127,7 @@ function initTable(dataList, limit, page) {
unresize: true,
align: "center"
},
{field: "state", title: "启用状态", align: "center",templet: '#is-state'},
{field: "state", title: "状态", align: "center",templet: '#is-state'},
{
title: "操作",
unresize: true,

View File

@ -97,7 +97,7 @@ function initTable(dataList, limit, page) {
},
{field: "loginName", title: "登录名", unresize: true, align: "center"},
{field: "username", title: "用户名", unresize: true, align: "center"},
{field: "userCode", title: "工号", unresize: true, align: "center"},
// {field: "userCode", title: "工号", unresize: true, align: "center"},
{field: "sex", title: "性别", unresize: true, align: "center",
templet: function (d) {
if (d.sex == 0) {

View File

@ -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 '<a href="#" style="color: blue;" onclick="handleClick1(\'' + d.id + '\')">查看</a>';
}
},
{
field: "view2", title: "合格证", unresize: true, align: "center", templet: function (d) {
return '<a href="#" style="color: blue;" onclick="handleClick2(\'' + d.id + '\')">查看</a>';
}
},
{
field: "view3", title: "设备二维码", unresize: true, align: "center", templet: function (d) {
return '<a href="#" style="color: blue;" onclick="handleClick3(\'' + d.id + '\')">查看</a>';
}
},
],
],
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 = '<option value="" selected>请选择</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
})
$('#' + selectName).empty().append(html);
layui.form.render();
}

View File

@ -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,27 +85,40 @@ 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",
templet: function (d) {
let html = '';
// let updaetpwd="<a class=\"layui-icon layui-icon-password\" style='cursor:pointer;' title='修改密码' onclick=\"resetPwd('" + d.id + "')\"></a>";
let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>"
let edit="<a class=\"layui-icon layui-icon-edit\" style='cursor:pointer;' title='修改' onclick=\"addData('" + d.id + "')\"></a>";
html=edit+del;
if(d.delFlag==1){
return '';
}
return html;
{field: "sampleTools", title: "设备类型", unresize: true, align: "center"},
{field: "devCode", title: "设备编号", unresize: true, align: "center"},
{field: "devTypeCode", title: "客户自编号", unresize: true, align: "center"},
{field: "devModule", title: "设备规格", unresize: true, align: "center"},
{field: "customName", title: "送样单位", unresize: true, align: "center"},
{field: "sampleDepartment", title: "送样部门", unresize: true, align: "center"},
{field: "manufactureDate", title: "生产日期", unresize: true, align: "center"},
{field: "experTime", title: "试验日期", unresize: true, align: "center"},
{field: "experConclu", title: "试验结果", unresize: true, align: "center"},
{
field: "certificate", title: "合格证", unresize: true, align: "center", templet: function (d) {
console.log("d",d.id);
return '<a href="#" style="color: blue;" onclick="handleClick1(\'' + d.sampleTools + '\',\'' + d.devModule + '\',\'' + d.devCode + '\',\'' + d.experTime + '\',\'' + d.nextExperTime + '\',\'' + d.experUser + '\',\'' + d.experConclu + '\',\'' + d.customName + '\')">查看</a>';
}
},
{
field: "qrCode", title: "二维码", unresize: true, align: "center", templet: function (d) {
return '<a href="#" style="color: blue;" onclick="handleClick2(\'' + d + '\')">打印</a>';
}
},
// {title: "操作", unresize: true, width: 85, align: "center",
// templet: function (d) {
//
// let html = '';
// // let updaetpwd="<a class=\"layui-icon layui-icon-password\" style='cursor:pointer;' title='修改密码' onclick=\"resetPwd('" + d.id + "')\"></a>";
// // let del="<a class=\"layui-icon layui-icon-delete\" style='cursor:pointer;' title='删除' onclick=\"delData('" + d.id + "')\"></a>"
// let view="<a class=\"layui-icon layui-icon-form\" style='cursor:pointer;' title='查看' onclick=\"addData('" + d.id + "')\"></a>";
// html=view;
// if(d.delFlag==1){
// return '';
// }
// return html;
// }
// },
],
],
done: function (res, curr, count) {
@ -127,27 +130,48 @@ function initTable(dataList, limit, page) {
});
}
function handleClick1(sampleTools,devModule,devCode,experTime,nextExperTime,experUser,experConclu,customName) {
title = '合格证';
let param = {
'sampleTools' : sampleTools,
'devModule' : devModule,
'devCode' : devCode,
'experTime' : experTime,
'nextExperTime' : nextExperTime,
'experUser': experUser,
'experConclu': experConclu,
'customName': customName
}
openIframe2("addOrEditUser", title, "child/certificateView.html", '30%', '70%', param);
}
function handleClick2(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 + "",
userName: $('#userName').val(),
phone: $('#phone').val(),
orgId: $('#orgId').val(),
userType: $('#userType').val(),
sampleTools: selectedText,
keyWord:$('#keyWord').val()
};
} else {
obj = {
page: '1',
limit: '10',
userName: '',
phone:'',
orgId:'',
userType: '',
sampleTools: '',
keyWord: ''
};
}
console.log(obj)
@ -191,43 +215,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 +256,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 = '<option value="" selected>单位部门</option>';
console.log("list",list)
let html = '<option value="" selected>请选择设备类型</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '</option>';
})

View File

@ -24,10 +24,9 @@
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>角色编码</label>
<label class="layui-form-label">角色编码</label>
<div class="layui-input-inline">
<input class="layui-input" placeholder="角色编码" type="text" name="roleCode" id="roleCode" maxlength="25"
lay-verify="required">
<input class="layui-input" placeholder="角色编码" type="text" name="roleCode" id="roleCode" maxlength="25">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">

View File

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../../../js/libs/jquery-2.1.1.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../../js/tools/child/certificateView.js"></script>
<title>表格布局示例</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f4f4f4;
}
</style>
</head>
<body>
<div class="dynamic-text" id="address">xxxxxxxx</div>
<table>
<!-- 第一行 -->
<tr>
<td colspan="2" style="text-align: center;">试验结果</td>
</tr>
<!-- 第二行 -->
<tr>
<td style="width: 25%; text-align: center;">样品名称</td>
<td id="sampleTools"></td>
</tr>
<!-- 第三行 -->
<tr>
<td style="width: 25%; text-align: center;">规格型号</td>
<td id="devModule"></td>
</tr>
<!-- 第四行 -->
<tr>
<td style="width: 25%; text-align: center;">样品编号</td>
<td id="devCode"></td>
</tr>
<!-- 第五行 -->
<tr>
<td style="width: 25%; text-align: center;">检验日期</td>
<td id="experTime"></td>
</tr>
<tr>
<td style="width: 25%; text-align: center;">下次检验日期</td>
<td id="nextExperTime"></td>
</tr>
<tr>
<td style="width: 25%; text-align: center;">试验人员</td>
<td id="experUser"></td>
</tr>
<tr>
<td style="width: 25%; text-align: center;">试验结果</td>
<td id="experConclu"></td>
</tr>
<tr>
<td style="width: 25%; text-align: center;">送检单位</td>
<td id="customName"></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,52 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/css/layui.css" media="all">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/dtree/dtree.css">
<link rel="stylesheet" href="../../../js/layui-v2.6.8/dtree/font/dtreefont.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.6.8/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>
<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 id="sampleTools" name="sampleTools" class="form-control input-sm">
</select>
</div>
</div>
<!-- <div class="layui-inline" style="padding: 0 0 0 10px;">-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" id="collectSamplesUser" 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>
<script src="../../../js/tools/child/toolsForm.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -9,11 +9,12 @@
<script src="../../js/libs/jquery-2.1.1.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../js/layui-v2.6.8/layui.js" charset="UTF-8" type="text/javascript"></script>
<script src="../../js/publicJs.js"></script>
<script src="../../js/dict.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>
<title>用户管理</title>
<title>工器具个体管理</title>
</head>
<body>
<div id="content">
@ -23,14 +24,14 @@
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<select id="devTypeId" name="userType" class="form-control input-sm">
<select id="sampleTools" name="sampleTools" class="form-control input-sm">
</select>
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<input type="text" id="userName" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入用户名">
<input type="text" id="keyWord" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入关键字">
</div>
</div>
@ -38,12 +39,12 @@
<div class="layui-inline btns">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="query(1)">查询
</button>
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2"
onclick="addData(null)">
<div class="layout" style="justify-content: space-around;"><img
src="../../img/form/add_icon3.png">
<p>新增</p></div>
</button>
<!-- <button type="button" class="layui-btn layui-btn-primary layui-btn-sm btn-2"-->
<!-- onclick="addData(null)">-->
<!-- <div class="layout" style="justify-content: space-around;"><img-->
<!-- src="../../img/form/add_icon3.png">-->
<!-- <p>新增</p></div>-->
<!-- </button>-->
</div>
</div>
</form>
@ -60,11 +61,5 @@
}
</style>
<script type="text/html" id="is-state">
<input type="checkbox" name="state" value="{{d.id}}" lay-skin="switch" lay-text="开|关"
lay-filter="is-state"
{{ d.state== 1 ? 'checked' : '' }}>
</script>
<script src="../../js/tools/toolsMge.js" charset="UTF-8" type="text/javascript"></script>
</html>

View File

@ -24,7 +24,7 @@
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录名</label>
<div class="layui-input-inline">
<input class="layui-input" id="loginName" name="loginName" autocomplete="off"
lay-verify="required" maxlength="30">
lay-verify="required" maxlength="20">
</div>
</div>
@ -32,19 +32,19 @@
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>用户名</label>
<div class="layui-input-inline">
<input class="layui-input" id="username" name="username" autocomplete="off"
lay-verify="required" maxlength="30">
lay-verify="required" maxlength="10">
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>工号</label>
<div class="layui-input-inline">
<input class="layui-input" id="userCode" name="userCode" autocomplete="off"
lay-verify="required" maxlength="30">
</div>
</div>
<!-- <div class="layui-form-item" style="margin-top: 2%;">-->
<!-- <label class="layui-form-label"><i style="padding: 0 10px;">*</i>工号</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input class="layui-input" id="userCode" name="userCode" autocomplete="off"-->
<!-- lay-verify="required" maxlength="30">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 性别</label>
@ -107,31 +107,6 @@
</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录权限</label>-->
<!-- <div class="layui-input-inline" id="cbGuDing" >-->
<!-- <input type="checkbox" name="loginType" value="1" title="后台" lay-skin="primary" checked>-->
<!-- <input type="checkbox" name="loginType" value="2" title="大屏" lay-skin="primary">-->
<!-- <input type="checkbox" name="loginType" value="3" title="app" lay-skin="primary">-->
<!-- <input type="hidden" id="loginType" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">邮箱</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input class="layui-input" autocomplete="off"-->
<!-- maxlength="50" id="email" name="email">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">部门</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input class="layui-input" type="text" id="dept" name="dept" autocomplete="off"-->
<!-- maxlength="50">-->
<!-- </div>-->
<!-- </div>-->
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button>
</form>