cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -153,8 +153,8 @@ @ApiOperation(value = "通过设备编号获取设备列表") @GetMapping("/selectDeviceByCode") @ValueAuth public Result selectDeviceByCode(String code) { return Result.success(deviceService.selectDeviceByCode(code)); public Result selectDeviceByCode(Integer id) { return Result.success(deviceService.selectDeviceByCode(id)); } @ValueAuth cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java
@@ -7,6 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Data @AllArgsConstructor @NoArgsConstructor @@ -23,4 +25,22 @@ @ValueTableShow(13) @ApiModelProperty(value = "检验项目") private String insProductItem; @ApiModelProperty(value = "管理人姓名") private String equipmentManagerName; @ApiModelProperty(value = "被授权人姓名") private String authorizedPersonName; @ApiModelProperty(value = "核准证书编号") private String calibrateNo; @ValueTableShow(value = 15, name = "最近校准日期") @ApiModelProperty(value = "最近校准日期") private LocalDateTime lastCalibrationDateTwo; @ValueTableShow(value = 16, name = "下次校准日期") @ApiModelProperty(value = "下次校准日期") private LocalDateTime nextCalibrationDateTwo; } cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
@@ -37,5 +37,7 @@ List<Map<String, Object>> getInspectionItemSubclass(@Param("id") Integer id); List<Map<String, Object>> treeDevice(@Param("deviceName") String deviceName); DeviceDto selectDeviceByCode(Integer id); } cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java
@@ -143,4 +143,13 @@ @ApiModelProperty("数采-db,mdb文件名称") private String dbFileName; @ApiModelProperty("被授权人") private String authorizedPerson; @ApiModelProperty("资产编码") private String assetCode; @ApiModelProperty("产地") private String origin; } cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -38,7 +38,7 @@ List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass); Device selectDeviceByCode(String code); Device selectDeviceByCode(Integer id); Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode); cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -1,6 +1,7 @@ package com.yuanchu.mom.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -23,6 +24,7 @@ import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.vo.Result; import lombok.AllArgsConstructor; import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +36,7 @@ import java.io.OutputStream; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; @@ -52,12 +55,16 @@ private DeviceMapper deviceMapper; private EnumServiceImpl enumService; private UserMapper userMapper; private StructureItemParameterMapper structureItemParameterMapper; @Autowired private DataConfigService dataConfigService; private QrShowServiceImpl qrShowService; private InsSampleMapper insSampleMapper; @@ -166,8 +173,35 @@ } @Override public Device selectDeviceByCode(String code) { return deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getFactoryNo, code).last("limit 1")); public Device selectDeviceByCode(Integer id) { DeviceDto deviceDto = deviceMapper.selectDeviceByCode(id); List<Integer> ids = new ArrayList<>(); if (Strings.isNotEmpty(deviceDto.getAuthorizedPerson())) { if (deviceDto.getAuthorizedPerson().equals("null")) { deviceDto.setAuthorizedPerson("[]"); } ids = JSON.parseArray(deviceDto.getAuthorizedPerson(), Integer.class); } String name = ""; if (!ids.isEmpty()) { name = userMapper.selectBatchIds(ids).stream().map(User::getName).collect(Collectors.joining(",")); } deviceDto.setAuthorizedPersonName(name); //查询设备校准信息 DeviceMetricRecord calibrate = qrShowService.getDeviceMetricRecord(id, "calibrate"); //deviceDto.setCalibrationDate(qrShowService.formatDate(calibrate.getCalibrationDate(),"yyyy-MM-dd")); deviceDto.setCalibrateNo(calibrate.getCertificateSerialNumber()); // 到了停用日期,自动将状态改为停用 if (deviceDto.getNextCalibrationDate() != null) { if (LocalDateTime.now().isAfter(deviceDto.getNextCalibrationDate())) { List<Enums> enums = enumService.selectEnumByCategory("设备状态"); List<Enums> status = enums.stream().filter(item -> item.getLabel().equals("停用")).collect(Collectors.toList()); deviceDto.setDeviceStatus(Integer.parseInt(status.get(0).getValue())); deviceMapper.updateById(deviceDto); } } return deviceDto; } @Override cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -165,4 +165,22 @@ </where> order by l.laboratory_name desc, d.large_category desc </select> <select id="selectDeviceByCode" resultType="com.yuanchu.mom.dto.DeviceDto"> SELECT d.*, GROUP_CONCAT(DISTINCT inspection_item SEPARATOR ';') AS ins_product_item, l.laboratory_name, u1.name equipmentManager_name, u2.name authorized_person_name FROM device d LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids) LEFT JOIN laboratory l ON d.subordinate_departments_id = l.id LEFT JOIN user u1 ON u1.id = d.equipment_manager LEFT JOIN user u2 ON u2.id = d.authorized_person WHERE d.id = #{id} GROUP BY d.id, l.laboratory_name, u1.name, u2.name </select> </mapper>