From 88b4f398111e6ca81efa7dee369112020dd38557 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期六, 22 二月 2025 14:03:26 +0800
Subject: [PATCH] 设备使用记录移植

---
 cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java                |   37 ++++
 cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceRecord.java                        |   70 +++++++
 cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java              |   31 +++
 cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml      |    4 
 cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml                     |   50 +++++
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java |   84 +++++++++
 cnas-device/src/main/java/com/ruoyi/device/dto/DeviceRecordDto.java                      |   14 +
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java     |  132 ++++++++++++++
 cnas-device/src/main/java/com/ruoyi/device/excel/DeviceRecordExportWord.java             |   28 +++
 cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java        |   63 +++++++
 10 files changed, 511 insertions(+), 2 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java
new file mode 100644
index 0000000..88518a7
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceExternalApplyController.java
@@ -0,0 +1,84 @@
+package com.ruoyi.device.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.device.pojo.DeviceExternalApply;
+import com.ruoyi.device.service.DeviceExternalApplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鍒╃敤澶栭儴璁惧鐢宠琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-12-17 10:28:43
+ */
+@Api(tags = "鍒╃敤澶栭儴璁惧鐢宠琛�")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/deviceExternalApply")
+public class DeviceExternalApplyController {
+
+    private DeviceExternalApplyService deviceExternalApplyService;
+
+
+    /**
+     * 鍒╃敤澶栭儴璁惧鐢宠鍒楄〃
+     * @return
+     */
+    @ApiOperation(value = "鍒╃敤澶栭儴璁惧鐢宠鍒楄〃")
+    @GetMapping("/pageDeviceExternalApply")
+    public Result<IPage<DeviceExternalApply>> pageDeviceExternalApply(Page page, DeviceExternalApply deviceExternalApply) throws Exception {
+        return Result.success(deviceExternalApplyService.pageDeviceExternalApply(page, deviceExternalApply));
+    }
+
+    /**
+     * 鏌ヨ鍒╃敤澶栭儴璁惧鐢宠
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ鍒╃敤澶栭儴璁惧鐢宠")
+    @GetMapping("/getDeviceExternalApply")
+    public Result getDeviceExternalApply(Integer externalApplyId){
+        return Result.success(deviceExternalApplyService.getById(externalApplyId));
+    }
+
+    /**
+     * 鍒犻櫎鍒╃敤澶栭儴璁惧鐢宠
+     * @return
+     */
+    @ApiOperation(value = "鍒犻櫎鍒╃敤澶栭儴璁惧鐢宠")
+    @GetMapping("/delDeviceExternalApply")
+    public Result delDeviceExternalApply(Integer externalApplyId){
+        return Result.success(deviceExternalApplyService.removeById(externalApplyId));
+    }
+
+    /**
+     * 鏂板鍒╃敤澶栭儴璁惧鐢宠
+     * @return
+     */
+    @ApiOperation(value = "鏂板鍒╃敤澶栭儴璁惧鐢宠")
+    @PostMapping("/addDeviceExternalApply")
+    public Result addDeviceExternalApply(@RequestBody DeviceExternalApply deviceExternalApply){
+        return Result.success(deviceExternalApplyService.addDeviceExternalApply(deviceExternalApply));
+    }
+
+    /**
+     * 瀵煎嚭鍒╃敤澶栭儴璁惧鐢宠
+     * @param externalApplyId 澶栭儴璁惧鐢宠id
+     * @return
+     */
+    @ApiOperation(value = "瀵煎嚭鍒╃敤澶栭儴璁惧鐢宠")
+    @GetMapping("/exportDeviceExternalApply")
+    public Result exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response){
+        deviceExternalApplyService.exportDeviceExternalApply(externalApplyId, response);
+        return Result.success();
+    }
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java
new file mode 100644
index 0000000..250fd42
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.device.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.numgen.NumberGenerator;
+import com.ruoyi.device.pojo.DeviceRecord;
+import com.ruoyi.device.service.DeviceRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * cnas璁惧浣跨敤璁板綍琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-09-21 11:06:47
+ */
+@Api(tags = "璁惧浣跨敤璁板綍")
+@RestController
+@RequestMapping("/deviceRecord")
+public class DeviceRecordController {
+    @Autowired
+    private DeviceRecordService deviceRecordService;
+
+    @ApiOperation(value = "澶囦娇鐢ㄨ褰曟煡璇�")
+    @GetMapping("/deviceRecordPage")
+    public Result deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
+        return Result.success(deviceRecordService.deviceRecordPage(deviceId, page, sampleCode, managementNumber));
+    }
+
+    @ApiOperation(value = "鏂板")
+    @PostMapping("/saveDeviceRecord")
+    public Result saveDeviceRecords(@RequestBody DeviceRecord deviceRecord) {
+        return Result.success(deviceRecordService.save(deviceRecord));
+    }
+
+    /**
+     * 缂栬緫璁惧浣跨敤璁板綍
+     * @param deviceRecord
+     * @return
+     */
+    @ApiOperation(value = "淇敼")
+    @PostMapping("/updateDeviceRecord")
+    public Result updateDeviceRecord(@RequestBody DeviceRecord deviceRecord) {
+        return Result.success(deviceRecordService.updateById(deviceRecord));
+    }
+
+    @DeleteMapping("/deleteDeviceRecord")
+    public Result deleteDeviceRecords(@RequestParam("id") Integer id) {
+        return Result.success(deviceRecordService.removeById(id));
+    }
+
+    @ApiOperation(value = "璁惧浣跨敤璁板綍瀵煎嚭")
+    @GetMapping("/exportUseRecord")
+    public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response){
+        deviceRecordService.exportUseRecord(deviceId, exportDate, response);
+    }
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceRecordDto.java b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceRecordDto.java
new file mode 100644
index 0000000..1e4226b
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/dto/DeviceRecordDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.device.dto;
+
+import com.ruoyi.device.pojo.DeviceRecord;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DeviceRecordDto extends DeviceRecord {
+
+    @ApiModelProperty("璁惧鍚嶇О")
+    private String deviceName;
+    @ApiModelProperty("璁惧缂栧彿")
+    private String managementNumber;
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/excel/DeviceRecordExportWord.java b/cnas-device/src/main/java/com/ruoyi/device/excel/DeviceRecordExportWord.java
new file mode 100644
index 0000000..a9505d5
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/excel/DeviceRecordExportWord.java
@@ -0,0 +1,28 @@
+package com.ruoyi.device.excel;
+
+import com.ruoyi.device.pojo.DeviceRecord;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Author: yuan
+ * Date: 2024-12-10 鏄熸湡浜� 17:19:22
+ * Description:
+ */
+@Data
+public class DeviceRecordExportWord extends DeviceRecord {
+    @ApiModelProperty("浣跨敤鍓�0浠h〃涓嶆甯�1浠h〃姝e父")
+    private String useBeforeString;
+
+    @ApiModelProperty("浣跨敤鍚�0浠h〃涓嶆甯�1浠h〃姝e父")
+    private String useAfterString;
+
+    @ApiModelProperty("鎿嶄綔鏃堕棿 String yyyy-MM-dd")
+    private String operationDate;
+
+    @ApiModelProperty("浣跨敤寮�濮嬫棩鏈� String yyyy-MM-dd \n HH:mm:ss")
+    private String useStartDateString;
+
+    @ApiModelProperty("浣跨敤缁撴潫鏃ユ湡 String yyyy-MM-dd \n HH:mm:ss")
+    private String useEndDateString;
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
new file mode 100644
index 0000000..f2a4e58
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
@@ -0,0 +1,37 @@
+package com.ruoyi.device.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.device.dto.DeviceRecordDto;
+import com.ruoyi.device.pojo.DeviceRecord;
+
+import java.util.List;
+
+/**
+ * <p>
+ * cnas璁惧浣跨敤璁板綍琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-09-21 11:06:47
+ */
+public interface DeviceRecordMapper extends BaseMapper<DeviceRecord> {
+
+    IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber, Integer userId);
+
+
+    /**
+     * 鏌ヨ鏈~鍐欑殑璁惧
+     * @return
+     */
+    List<DeviceRecordDto> selectNotFilled();
+
+    /**
+     * 鏌ヨ瀵煎嚭璁惧浣跨敤璁板綍
+     * @param deviceId
+     * @param exportDate
+     * @return
+     */
+    List<DeviceRecord> selectExportList(Integer deviceId, String exportDate);
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceRecord.java b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceRecord.java
new file mode 100644
index 0000000..dae2f66
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceRecord.java
@@ -0,0 +1,70 @@
+package com.ruoyi.device.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * cnas璁惧浣跨敤璁板綍琛�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-09-21 11:06:47
+ */
+@Getter
+@Setter
+@TableName("device_record")
+@ApiModel(value = "DeviceRecord瀵硅薄", description = "cnas璁惧浣跨敤璁板綍琛�")
+public class DeviceRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer deviceId;
+
+    @ApiModelProperty("璁㈠崟id")
+    private Integer insOrderId;
+
+    @ApiModelProperty("鏍峰搧缂栧彿")
+    private String sampleCode;
+
+    @ApiModelProperty("娓╁害")
+    private String temperature;
+
+    @ApiModelProperty("婀垮害")
+    private String humidity;
+
+    @ApiModelProperty("浣跨敤鍓�0寮傚父1鑹ソ")
+    private Integer useBefore;
+
+    @ApiModelProperty("浣跨敤鍚�0寮傚父1鑹ソ")
+    private Integer useAfter;
+
+    @ApiModelProperty("寮傚父鎯呭喌")
+    private String abnormal;
+
+    @ApiModelProperty("浣跨敤浜篿d")
+    private Integer usePersonId;
+
+    @ApiModelProperty("浣跨敤浜�")
+    private String usePerson;
+
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
+    @ApiModelProperty("浣跨敤寮�濮嬫棩鏈�")
+    private LocalDateTime useStartDate;
+
+    @ApiModelProperty("浣跨敤缁撴潫鏃ユ湡")
+    private LocalDateTime useEndDate;
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java
new file mode 100644
index 0000000..3d91d5a
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java
@@ -0,0 +1,31 @@
+package com.ruoyi.device.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.device.dto.DeviceRecordDto;
+import com.ruoyi.device.pojo.DeviceRecord;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * cnas璁惧浣跨敤璁板綍琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-09-21 11:06:47
+ */
+public interface DeviceRecordService extends IService<DeviceRecord> {
+
+    IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber);
+
+
+    /**
+     * 瀵煎嚭璁惧浣跨敤璁板綍
+     *
+     * @param deviceId
+     * @param response
+     */
+    void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response);
+}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
new file mode 100644
index 0000000..f507f30
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
@@ -0,0 +1,132 @@
+package com.ruoyi.device.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.ruoyi.device.dto.DeviceRecordDto;
+import com.ruoyi.device.excel.DeviceRecordExportWord;
+import com.ruoyi.device.mapper.DeviceMapper;
+import com.ruoyi.device.mapper.DeviceRecordMapper;
+import com.ruoyi.device.pojo.Device;
+import com.ruoyi.device.pojo.DeviceRecord;
+import com.ruoyi.device.service.DeviceRecordService;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * cnas璁惧浣跨敤璁板綍琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-09-21 11:06:47
+ */
+@Service
+public class DeviceRecordServiceImpl extends ServiceImpl<DeviceRecordMapper, DeviceRecord> implements DeviceRecordService {
+    @Resource
+    private DeviceMapper deviceMapper;
+
+    @Override
+    public IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
+        // todo:浠呯湅鑷繁
+        Integer userId = null;
+
+        return baseMapper.deviceRecordPage(deviceId, page, sampleCode, managementNumber, userId);
+    }
+
+
+    @Override
+    public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response) {
+        // 鏌ヨcnas璁惧浣跨敤璁板綍
+        List<DeviceRecord> deviceList = baseMapper.selectExportList(deviceId, exportDate);
+        // 璁惧淇℃伅
+        Device device = deviceMapper.selectById(deviceId);
+
+
+        // 鏌ヨ璁惧灞炰簬鍝釜瀹為獙瀹�
+        String laboratoryName = "瑁呭绾跨紗瀹為獙瀹�";
+
+        // 瑕佹槧灏勫埌word鏁版嵁
+        List<DeviceRecordExportWord> deviceExportList = new ArrayList<>();
+        // deviceExportList 璧嬪��
+        for (DeviceRecord deviceRecord : deviceList) {
+            // 澶勭悊璁惧 寮�濮嬩娇鐢ㄦ椂闂� 鍜� 缁撴潫鏃堕棿
+            String startTime = "";
+            String endTime = "";
+            String operationDate = "";
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+            if (deviceRecord.getUseStartDate() != null) {
+                startTime = deviceRecord.getUseStartDate().format(formatter);
+                endTime = deviceRecord.getUseEndDate().format(formatter);
+                String[] startTimeSplit = startTime.split(" ");
+                String[] endTimeSplit = endTime.split(" ");
+                startTime = startTimeSplit[1];
+                if (startTimeSplit[0].equals(endTimeSplit[0])) {
+                    endTime = endTimeSplit[1];
+                } else {
+                    endTime = endTimeSplit[0] + '\n' + endTimeSplit[1];
+                }
+                DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy.M.d");
+                operationDate = deviceRecord.getUseStartDate().format(formatter2);
+            }
+            // 澶勭悊浣跨敤鍓嶅拰浣跨敤鍚�
+            String useBeforeString = deviceRecord.getUseBefore() == 0? "寮傚父" : "鑹ソ";
+            String useAfterString = deviceRecord.getUseAfter() == 0 ? "寮傚父" : "鑹ソ";
+
+            DeviceRecordExportWord deviceRecordExportWord = new DeviceRecordExportWord();
+            // 杩涜璧嬪��
+            BeanUtils.copyProperties(deviceRecord, deviceRecordExportWord);
+            deviceRecordExportWord.setUseBeforeString(useBeforeString); // 浣跨敤鍓�
+            deviceRecordExportWord.setUseAfterString(useAfterString); // 浣跨敤鍚�
+            deviceRecordExportWord.setOperationDate(operationDate); // 璁惧鎿嶄綔鏃ユ湡
+            deviceRecordExportWord.setUseStartDateString(startTime); // 寮�濮嬫椂闂�
+            deviceRecordExportWord.setUseEndDateString(endTime); // 缁撴潫鏃堕棿
+            deviceExportList.add(deviceRecordExportWord);
+        }
+
+        // 鑾峰彇璺緞
+        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/use-record.docx");
+        Configure configure = Configure.builder()
+                .bind("useRecord", new HackLoopTableRenderPolicy())
+                .build();
+        String deviceName = device.getDeviceName();
+        String managementNumber = device.getManagementNumber();
+        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+                new HashMap<String, Object>() {{
+                    put("useRecord", deviceExportList);
+                    put("deviceName", deviceName);
+                    put("managementNumber", managementNumber);
+                    put("laboratory", laboratoryName);
+                }});
+
+        try {
+            response.setContentType("application/msword");
+            String fileName = URLEncoder.encode(
+                    "浠櫒浣跨敤璁板綍琛�", "UTF-8");
+            response.setHeader("Content-disposition",
+                    "attachment;filename=" + fileName + ".docx");
+            OutputStream os = response.getOutputStream();
+            template.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("瀵煎嚭澶辫触");
+        }
+    }
+
+}
diff --git a/cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml b/cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml
index e689b3b..7de51b3 100644
--- a/cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.DeviceTraceabilityManagementDetailsMapper">
+<mapper namespace="com.ruoyi.device.mapper.DeviceTraceabilityManagementDetailsMapper">
 
     <select id="deviceTraceabilityManagementDetailsList"
-            resultType="com.yuanchu.mom.dto.DeviceTraceabilityManagementDetailsDto">
+            resultType="com.ruoyi.device.dto.DeviceTraceabilityManagementDetailsDto">
         select
             dtmd.*,
             d.device_name,
diff --git a/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml b/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
new file mode 100644
index 0000000..1707e9d
--- /dev/null
+++ b/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.device.mapper.DeviceRecordMapper">
+
+    <select id="deviceRecordPage" resultType="com.ruoyi.device.dto.DeviceRecordDto">
+        select dr.*,
+               d.device_name,
+               d.management_number
+        from device_record dr
+                 left join device d on d.id = dr.device_id
+        where 1=1
+        <if test="deviceId != null">
+            and dr.device_id = #{deviceId}
+        </if>
+        <if test="sampleCode != '' and sampleCode != null">
+            and dr.sample_code like concat('%', #{sampleCode}, '%')
+        </if>
+        <if test="managementNumber != '' and managementNumber != null">
+            and d.management_number like concat('%', #{managementNumber}, '%')
+        </if>
+        <if test="userId != null">
+            and dr.use_person_id = #{userId}
+            and dr.use_start_date is null
+        </if>
+        ORDER BY (dr.use_start_date IS NULL) desc , dr.use_start_date DESC
+    </select>
+
+
+    <select id="selectNotFilled" resultType="com.ruoyi.device.dto.DeviceRecordDto">
+        select dr.*,
+               d.device_name,
+               d.management_number
+        from device_record dr
+                 left join device d on d.id = dr.device_id
+        where dr.use_start_date is null
+    </select>
+
+    <!-- 鏌ヨ瀵煎嚭璁惧浣跨敤璁板綍 -->
+    <select id="selectExportList" resultType="com.ruoyi.device.dto.DeviceRecordDto">
+        select dr.*
+        from device_record dr
+        where dr.use_start_date is not null
+        <if test="deviceId != null">
+            and dr.device_id = #{deviceId}
+        </if>
+        <if test="exportDate != '' and exportDate != null">
+            and DATE_FORMAT(dr.use_start_date, '%Y-%m') = #{exportDate};
+        </if>
+    </select>
+</mapper>

--
Gitblit v1.9.3