From 88abda34da2c7437c8191da83972279d18ff9418 Mon Sep 17 00:00:00 2001
From: DELL <1525436766@qq.com>
Date: 星期五, 20 六月 2025 20:17:45 +0800
Subject: [PATCH] Merge branch 'master' of http://118.89.139.230:10101/r/powerIntelligenceSystem

---
 src/main/resources/excel_templates/batt_mon_static_template.xlsx       |    0 
 src/main/resources/mapper/DeviceSpareMapper.xml                        |   16 +++
 pom.xml                                                                |   15 +++
 src/main/java/com/whyc/controller/WorkflowMainController.java          |    9 +
 src/main/java/com/whyc/service/WorkflowLinkService.java                |   23 +++-
 src/main/java/com/whyc/service/BatttestdataInfService.java             |    8 +
 src/main/java/com/whyc/service/ExportService.java                      |   68 ++++++++++++
 src/main/java/com/whyc/mapper/DeviceSpareMapper.java                   |    3 
 src/main/java/com/whyc/service/DeviceSpareService.java                 |   53 ++++++++++
 src/main/java/com/whyc/service/SubTablePageInfoService.java            |   36 +++++++
 src/main/java/com/whyc/controller/ExportFileController.java            |    8 +
 src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java |    2 
 src/main/java/com/whyc/dto/Real/ExportTinfDataDto.java                 |   12 ++
 src/main/java/com/whyc/controller/DeviceSpareController.java           |    7 +
 src/main/resources/mapper/WorkflowMainMapper.xml                       |   40 ++++----
 15 files changed, 262 insertions(+), 38 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2a1ccf4..b808b65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,6 +148,21 @@
             <artifactId>poi-ooxml</artifactId>
             <version>3.10.1</version>
         </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>4.1.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.poi</groupId>
+                    <artifactId>poi-ooxml-schemas</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
         <!--<dependency>
             <groupId>org.springframework.plugin</groupId>
diff --git a/src/main/java/com/whyc/controller/DeviceSpareController.java b/src/main/java/com/whyc/controller/DeviceSpareController.java
index f08aaf2..bda2800 100644
--- a/src/main/java/com/whyc/controller/DeviceSpareController.java
+++ b/src/main/java/com/whyc/controller/DeviceSpareController.java
@@ -42,6 +42,13 @@
         return service.add(spare,file);
     }
 
+    @PostMapping("addByExcel")
+    @ApiOperation("excel瀵煎叆")
+    public Response addByExcel(@RequestParam MultipartFile file) throws IOException {
+        return service.addByExcel(file);
+    }
+
+
     @PostMapping("update")
     @ApiOperation("淇敼")
     public Response update(@RequestBody DeviceSpare spare) {
diff --git a/src/main/java/com/whyc/controller/ExportFileController.java b/src/main/java/com/whyc/controller/ExportFileController.java
index 00e6f84..9decf30 100644
--- a/src/main/java/com/whyc/controller/ExportFileController.java
+++ b/src/main/java/com/whyc/controller/ExportFileController.java
@@ -1,5 +1,6 @@
 package com.whyc.controller;
 
+import com.whyc.dto.Real.ExportTinfDataDto;
 import com.whyc.dto.Statistic.MonStic;
 import com.whyc.service.ExportService;
 import io.swagger.annotations.Api;
@@ -9,6 +10,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.text.ParseException;
 
 @RestController
@@ -23,4 +25,10 @@
     public void exportBattTinfStatistic(HttpServletRequest req, HttpServletResponse resp ,@RequestBody MonStic stic) throws ParseException {
         service.exportBattTinfStatistic(req,resp,stic);
     }
+
+    @PostMapping("exportTinfDataByTestRecordCount")
+    @ApiOperation(value = "鍘嗗彶娴嬭瘯鏁版嵁瀵煎嚭")
+    public void exportTinfDataByTestRecordCount(HttpServletRequest req, HttpServletResponse resp ,@RequestBody ExportTinfDataDto dto) throws ParseException, IOException {
+        service.exportTinfDataByTestRecordCount(req,resp,dto);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/controller/WorkflowMainController.java b/src/main/java/com/whyc/controller/WorkflowMainController.java
index 5b15efa..a7a1fe2 100644
--- a/src/main/java/com/whyc/controller/WorkflowMainController.java
+++ b/src/main/java/com/whyc/controller/WorkflowMainController.java
@@ -7,6 +7,7 @@
 import com.whyc.service.WorkflowLinkService;
 import com.whyc.service.WorkflowMainService;
 import com.whyc.util.ActionUtil;
+import com.whyc.util.CommonUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,7 +46,7 @@
     @GetMapping("ownStatistics")
     @ApiOperation(value = "鏈汉鐨勫崟鎹粺璁�",notes = "status鍚箟:1-瀹℃壒涓�,2-瀹℃壒瀹屾垚涓旈�氳繃,3-瀹℃壒瀹屾垚涓旈┏鍥�")
     public Response<Map<Integer,Integer>> getOwnStatistics(int type){
-        int userId = ActionUtil.getUser().getId().intValue();
+        int userId = CommonUtil.getUser().getId().intValue();
         return service.getOwnStatistics(userId,type);
     }
 
@@ -56,7 +57,7 @@
     @GetMapping("ownListPage")
     @ApiOperation(value = "鏈汉鐨勫崟鎹垪琛ㄥ垎椤�",notes = "status浼犲弬:0:鍏ㄩ儴,1-瀹℃壒涓�,2-瀹℃壒瀹屾垚涓旈�氳繃,3-瀹℃壒瀹屾垚涓旈┏鍥�")
     public Response<PageInfo<WorkflowMain>> ownListPage(int type,int status,int pageNum,int pageSize){
-        int userId = ActionUtil.getUser().getId().intValue();
+        int userId = CommonUtil.getUser().getId().intValue();
         return service.ownListPage(userId,type,status,pageNum,pageSize);
     }
 
@@ -67,7 +68,7 @@
     @GetMapping("receivedStatistics")
     @ApiOperation(value = "鎺ユ敹鍒扮殑鍗曟嵁缁熻",notes = "status鍚箟:1-寰呮帴鍗�,6-寰呭鏍�,58-宸插鏍�")
     public Response<Map<Integer,Integer>> getReceivedStatistics(int type){
-        User user = ActionUtil.getUser();
+        User user = CommonUtil.getUser();
         return service.getReceivedStatistics(type,user);
     }
 
@@ -78,7 +79,7 @@
     @GetMapping("receivedListPage")
     @ApiOperation(value = "鎺ユ敹鍒扮殑鍗曟嵁鍒楄〃鍒嗛〉", notes = "status浼犲弬:0-鍏ㄩ儴,1-寰呮帴鍗�,6-寰呭鏍�,5|8-宸插鏍�(閫氳繃|椹冲洖)")
     public Response<PageInfo<WorkflowMain>> getReceivedListPage(int type, int status, int pageNum, int pageSize) {
-        User user = ActionUtil.getUser();
+        User user = CommonUtil.getUser();
         return service.getReceivedListPage(type, status, user, pageNum, pageSize);
     }
 
diff --git a/src/main/java/com/whyc/dto/Real/ExportTinfDataDto.java b/src/main/java/com/whyc/dto/Real/ExportTinfDataDto.java
new file mode 100644
index 0000000..6b1be9e
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Real/ExportTinfDataDto.java
@@ -0,0 +1,12 @@
+package com.whyc.dto.Real;
+
+import lombok.Data;
+
+@Data
+public class ExportTinfDataDto {
+    private Integer battgroupId;
+    private Integer testRecordCount;
+    private String  picGroupVol;
+    private String  picBattVol;
+    private String  picGroupCurr;
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
index 50a605e..ddd3748 100644
--- a/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
+++ b/src/main/java/com/whyc/mapper/DeviceSpareMapper.java
@@ -2,7 +2,10 @@
 
 import com.whyc.pojo.web_site.DeviceSpare;
 
+import java.util.List;
+
 public interface DeviceSpareMapper extends CustomMapper<DeviceSpare>{
 
+    void outBound(List<DeviceSpare> spareList);
 
 }
diff --git a/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java b/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
index 2f76d30..d029919 100644
--- a/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
+++ b/src/main/java/com/whyc/pojo/db_pwrdev_alarm/PwrdevAlarmParamStand.java
@@ -42,7 +42,7 @@
     private Integer paramType;
 
     @ApiModelProperty(value = "鏍囧噯鍙傛暟瀵瑰簲鏁版嵁鍚嶇О")
-    private Integer paramName;
+    private String paramName;
 
     @ApiModelProperty(value = "鍩哄噯鍊�")
     private Float basisVal;
diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index e288db4..f763f91 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -1005,4 +1005,12 @@
         wrapper.last(" limit 1");
         return mapper.selectOne(wrapper);
     }
+    //鍘嗗彶娴嬭瘯鏁版嵁瀵煎嚭
+    public BatttestdataInf exportTinfDataByTestRecordCount(Integer battgroupId, Integer testRecordCount) {
+        QueryWrapper wrapper =new QueryWrapper();
+        wrapper.eq("battgroup_id",battgroupId);
+        wrapper.eq("test_record_count",testRecordCount);
+        wrapper.last(" limit 1");
+        return mapper.selectOne(wrapper);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/DeviceSpareService.java b/src/main/java/com/whyc/service/DeviceSpareService.java
index 5dd1598..72a0fea 100644
--- a/src/main/java/com/whyc/service/DeviceSpareService.java
+++ b/src/main/java/com/whyc/service/DeviceSpareService.java
@@ -12,6 +12,7 @@
 import com.whyc.util.CommonUtil;
 import com.whyc.util.ThreadLocalUtil;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -20,6 +21,7 @@
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -160,7 +162,7 @@
         return new Response<List<DeviceSpare>>().set(1,deviceSpares);
     }
 
-    public void add(List<DeviceSpare> spareList) {
+    public void addBatch(List<DeviceSpare> spareList) {
         mapper.insertBatchSomeColumn(spareList);
     }
 
@@ -187,4 +189,53 @@
         }
 
     }
+
+    public void outBound(List<DeviceSpare> spareList) {
+        mapper.outBound(spareList);
+    }
+
+    public Response addByExcel(MultipartFile file) throws IOException {
+        //灏嗘枃浠舵祦杞寲涓簑orkbook
+        Workbook book = WorkbookFactory.create(file.getInputStream());
+        Sheet sheet = book.getSheetAt(0);
+        //鑾峰彇鏈�鍚庝竴琛�
+        int lastRowIndex = sheet.getLastRowNum();
+        List<DeviceSpare> spareList = new ArrayList<>();
+        for (int i = 1; i <= lastRowIndex; i++) {
+            DeviceSpare spare = new DeviceSpare();
+            Row row = sheet.getRow(i);
+            //瀵规瘡琛岀殑鍓�7鍒楄繘琛岄潪绌烘牎楠�
+            for (int j = 0; j < 7; j++) {
+                Cell cell = row.getCell(j);
+                //闈炲浘鐗囧垪杩涜闈炵┖鏍¢獙.涓嶅悎瑙勬棤娉曚笂浼�
+                if (cell == null || cell.getCellType() == CellType.BLANK) {
+                    return new Response().set(1, false, "绗�" + (i + 1) + "琛岀" + (j + 1) + "鍒楁暟鎹负绌�");
+                }
+            }
+            //鑾峰彇鍒楃殑鍊�
+            String name = row.getCell(0).getStringCellValue();
+            String model = row.getCell(1).getStringCellValue();
+            String version = row.getCell(2).getStringCellValue();
+            int quantity = (int) row.getCell(3).getNumericCellValue();
+            String brand = row.getCell(4).getStringCellValue();
+            String type = row.getCell(5).getStringCellValue();
+            String supplier = row.getCell(6).getStringCellValue();
+            spare.setName(name);
+            spare.setModel(model);
+            spare.setVersion(version);
+            spare.setQuantity(quantity);
+            spare.setBrand(brand);
+            spare.setType(type);
+            spare.setSupplier(supplier);
+
+            spareList.add(spare);
+            //绗竷鍒椾负鍥剧墖 TODO 寰呭鐞�
+            /*Cell cell = row.getCell(7);
+            CellType cellType = cell.getCellType();
+            System.out.println("-");*/
+        }
+        addBatch(spareList);
+
+        return null;
+    }
 }
diff --git a/src/main/java/com/whyc/service/ExportService.java b/src/main/java/com/whyc/service/ExportService.java
index 5bf94b5..09ea1ea 100644
--- a/src/main/java/com/whyc/service/ExportService.java
+++ b/src/main/java/com/whyc/service/ExportService.java
@@ -1,17 +1,28 @@
 package com.whyc.service;
 
+import cn.afterturn.easypoi.entity.ImageEntity;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
+import com.whyc.dto.Real.ExportTinfDataDto;
+import com.whyc.dto.Response;
 import com.whyc.dto.Statistic.MonStic;
 import com.whyc.dto.Statistic.SticMonRes;
+import com.whyc.mapper.CommonMapper;
+import com.whyc.pojo.db_batt_testdata.BatttestdataId;
+import com.whyc.pojo.db_batt_testdata.BatttestdataInf;
 import com.whyc.pojo.db_user.User;
 import com.whyc.util.ActionUtil;
 import com.whyc.util.ServletUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 import sun.misc.BASE64Decoder;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -20,16 +31,19 @@
 import java.net.URLEncoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class ExportService {
 
     @Autowired
     private BatttestdataInfService battTinfService;
+
+    @Autowired
+    private SubTablePageInfoService subTablePageInfoService;
+
+    @Resource
+    private CommonMapper commonMapper;
 
 
     //鍗曡妭鏁伴噺缁熻瀵煎嚭锛�1.2.14锛�
@@ -169,4 +183,50 @@
             rowNum = rowNum+rowNumAdd+5;
         }
     }
+    //鍘嗗彶娴嬭瘯鏁版嵁瀵煎嚭
+    public void exportTinfDataByTestRecordCount(HttpServletRequest req, HttpServletResponse resp, ExportTinfDataDto dto) throws IOException {
+       Map<String,Object> map=new HashMap<>();
+        //鍘嗗彶娴嬭瘯鏁版嵁瀵煎嚭
+        BatttestdataInf tinf = battTinfService.exportTinfDataByTestRecordCount(dto.getBattgroupId(), dto.getTestRecordCount());
+        String tableName ="db_batt_testdata.tb_batttestdata_"+dto.getBattgroupId();
+        //鑾峰彇鍏蜂綋鐨勬斁鐢垫暟鎹�
+        List<BatttestdataId> dataList= subTablePageInfoService.exportTinfDataByTestRecordCount(dto.getBattgroupId(),dto.getTestRecordCount(),tableName);
+        map.put("dataList",dataList);
+        BASE64Decoder decoder = new BASE64Decoder();
+        if(!dto.getPicGroupVol().equals("")) {
+            ImageEntity volImage = new ImageEntity();
+            volImage.setData(decoder.decodeBuffer(dto.getPicGroupVol().substring(dto.getPicGroupVol().indexOf(",") + 1)));
+            volImage.setColspan(6);
+            volImage.setRowspan(17);
+            map.put("picGroupVol",volImage);
+        }
+        if(!dto.getPicBattVol().equals("")) {
+            ImageEntity volImage = new ImageEntity();
+            volImage.setData(decoder.decodeBuffer(dto.getPicGroupVol().substring(dto.getPicBattVol().indexOf(",") + 1)));
+            volImage.setColspan(6);
+            volImage.setRowspan(17);
+            map.put("picBattVol",volImage);
+        }
+        if(!dto.getPicGroupCurr().equals("")) {
+            ImageEntity volImage = new ImageEntity();
+            volImage.setData(decoder.decodeBuffer(dto.getPicGroupVol().substring(dto.getPicGroupCurr().indexOf(",") + 1)));
+            volImage.setColspan(6);
+            volImage.setRowspan(17);
+            map.put("picGroupCurr",volImage);
+        }
+        //鑾峰彇瀵煎嚭妯℃澘鍦板潃
+        ClassPathResource classPathResource = new ClassPathResource("excel_templates/batt_mon_static_template.xlsx");
+        String path = classPathResource.getPath();
+        TemplateExportParams templateExportParams1 = new TemplateExportParams(path,true);
+        Workbook wb = ExcelExportUtil.exportExcel(templateExportParams1, map);
+        try {
+            String fileName = "鍘嗗彶娴嬭瘯鏁版嵁琛�.xls";
+            resp.setContentType("application/vnd.ms-excel");
+            resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
+            resp.flushBuffer();
+            wb.write(resp.getOutputStream());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index a8b2dd5..b071132 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -950,4 +950,40 @@
         });
         return list;
     }
+    //鑾峰彇鍏蜂綋鐨勬斁鐢垫暟鎹�
+    public List<BatttestdataId> exportTinfDataByTestRecordCount(Integer battgroupId, Integer testRecordCount, String tableName) {
+        String sql="select distinct * from "+tableName+" "+
+                " where test_record_count="+testRecordCount;
+        sql+=" order by record_time asc";
+        List<BatttestdataId> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<BatttestdataId> list=new ArrayList<>();
+                while (rs.next()){
+                    BatttestdataId data=new BatttestdataId();
+                    data.setNum(rs.getInt("num"));
+                    data.setBattgroupId(rs.getInt("battgroup_id"));
+                    data.setTestRecordCount(rs.getInt("test_record_count"));
+                    data.setTestType(rs.getInt("test_type"));
+                    data.setRecordNum(rs.getInt("record_num"));
+                    data.setDataNew(rs.getInt("data_new"));
+                    data.setDataAvailable(rs.getInt("data_available"));
+                    data.setTestTimelong(rs.getInt("test_timelong"));
+                    data.setTestCurr(rs.getFloat("test_curr"));
+                    data.setTestCap(rs.getFloat("test_cap"));
+                    data.setMonNum(rs.getInt("mon_num"));
+                    data.setMonVol(rs.getFloat("mon_vol"));
+                    data.setMonTmp(rs.getFloat("mon_tmp"));
+                    data.setMonRes(rs.getFloat("mon_res"));
+                    data.setTestStarttime(rs.getTimestamp("test_starttime"));
+                    data.setRecordTime(rs.getTimestamp("record_time"));
+                    data.setGroupVol(rs.getFloat("group_vol"));
+                    data.setOnlineVol(rs.getFloat("online_vol"));
+                    list.add(data);
+                }
+                return list;
+            }
+        });
+        return list;
+    }
 }
diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java
index f3acc30..d7b1737 100644
--- a/src/main/java/com/whyc/service/WorkflowLinkService.java
+++ b/src/main/java/com/whyc/service/WorkflowLinkService.java
@@ -72,7 +72,7 @@
                     link.setDealAndClose(1);
                 }
             }break;
-            //璁惧鍏ュ簱鐢宠 TODO 鍏ュ簱褰卞搷搴撳瓨
+            //璁惧鍏ュ簱鐢宠
             case 2:
             //璁惧鎶ュ簾鐢宠
             case 3:{
@@ -149,19 +149,26 @@
                     link.setDealAndClose(1);
                 }
             }break;
-            case 4:{ //TODO 鍑哄簱鐢宠
+            case 4:{ // 鍑哄簱鐢宠
                 if(link.getStatus() == WorkflowEnum.LINK_STATUS_PASS.getValue().intValue()){
-                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_WAIT_FOR_DEALING.getValue());
+                    mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_PASS.getValue());
+                    mainInDB.setEndTime(now);
+                    mainInDB.setEndReason(link.getDealReason());
                     mainService.updateById(mainInDB);
+                    //鑾峰彇鍑哄簱鐢宠鍗曡澶�
+                    List<WorkflowDevice> deviceListInDB = deviceService.getByMainId(mainInDB.getId());
+                    List<DeviceSpare> spareList = new ArrayList<>();
+                    deviceListInDB.forEach(device -> {
+                        DeviceSpare spare = new DeviceSpare();
+                        BeanUtils.copyProperties(device,spare);
+                        spareList.add(spare);
+                    });
+                    //鏇存柊搴撳瓨
+                    deviceSpareService.outBound(spareList);
                 }else if(link.getStatus() == WorkflowEnum.LINK_STATUS_REJECT.getValue().intValue()){
                     mainInDB.setStatus(WorkflowEnum.MAIN_STATUS_END_REJECT.getValue());
                     mainInDB.setEndReason(link.getDealRejectReason());
                     mainInDB.setEndTime(now);
-                    //妫�鏌ユ槸鍚︽湁鍏宠仈宸ュ崟.濡傛灉鏈夊叧鑱斿伐鍗�,鍏宠仈宸ュ崟鐘舵�侀噸缃负瀹岀粨寰呭鐞�,瀹屾垚鏃堕棿閲嶇疆涓虹┖
-                    if(mainInDB.getRelatedId() != null){
-                        Integer relatedId = mainInDB.getRelatedId();
-                        //mainService.resetRepairStatus(relatedId,mainInDB.getQuantity());
-                    }
                     mainService.updateById(mainInDB);
                     link.setDealAndClose(1);
                 }
diff --git a/src/main/resources/excel_templates/batt_mon_static_template.xlsx b/src/main/resources/excel_templates/batt_mon_static_template.xlsx
new file mode 100644
index 0000000..0828d43
--- /dev/null
+++ b/src/main/resources/excel_templates/batt_mon_static_template.xlsx
Binary files differ
diff --git a/src/main/resources/mapper/DeviceSpareMapper.xml b/src/main/resources/mapper/DeviceSpareMapper.xml
new file mode 100644
index 0000000..36a7fe5
--- /dev/null
+++ b/src/main/resources/mapper/DeviceSpareMapper.xml
@@ -0,0 +1,16 @@
+<?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.whyc.mapper.DeviceSpareMapper" >
+
+    <update id="outBound">
+        <foreach collection="list" item="item" separator=";">
+            update web_site.tb_device_spare set quantity = quantity - #{item.quantity}
+            where name = #{item.name}
+            and model = #{item.model}
+            and version = #{item.version}
+            and brand = #{item.brand}
+            and type = #{item.type}
+            and supplier = #{item.supplier}
+        </foreach>
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/WorkflowMainMapper.xml b/src/main/resources/mapper/WorkflowMainMapper.xml
index 8c5dced..b065e9e 100644
--- a/src/main/resources/mapper/WorkflowMainMapper.xml
+++ b/src/main/resources/mapper/WorkflowMainMapper.xml
@@ -6,8 +6,8 @@
         l.id link_id,
         l.main_id,
         l.parent_id,
-        l.process_level as lProcessLevel,
-        l.process_level_name,
+        l.process_stage,
+        l.process_name,
         l.create_time link_create_time,
         l.deal_user_id,
         l.deal_type,
@@ -55,8 +55,8 @@
             <id column="link_id" property="id"/>
             <result column="main_id" property="mainId"/>
             <result column="parent_id" property="parentId"/>
-            <result column="lProcessLevel" property="processLevel"/>
-            <result column="process_level_name" property="processLevelName"/>
+            <result column="process_stage" property="processStage"/>
+            <result column="process_name" property="processName"/>
             <result column="link_create_time" property="createTime"/>
             <result column="deal_user_id" property="dealUserId"/>
             <result column="deal_type" property="dealType"/>
@@ -83,39 +83,39 @@
         <choose>
             <!--鍏ㄩ儴-->
             <when test="status==0">
-                SELECT m.*,u.uName as create_user_name,<include refid="linkColumn" />
-                    FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user_inf u
+                SELECT m.*,u.name as create_user_name,<include refid="linkColumn" />
+                    FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user u
                     where m.id = l.main_id
-                    and m.create_user_id = u.uId
+                    and m.create_user_id = u.id
                     and m.type = #{type}
-                    and l.deal_role_id = #{user.uRole}
+                    and l.deal_role_id = #{user.role}
                     and l.deal_user_id is null
                 union all
-                SELECT m.*,u.uName as create_user_name,<include refid="linkColumn" />
-                    FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user_inf u
+                SELECT m.*,u.name as create_user_name,<include refid="linkColumn" />
+                    FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user u
                     where m.id = l.main_id
-                    and m.create_user_id = u.uId
+                    and m.create_user_id = u.id
                     and m.type = #{type}
-                    and l.deal_user_id = #{user.uId} order by id desc
+                    and l.deal_user_id = #{user.id} order by id desc
             </when>
             <!--寰呮帴鍗�-->
             <when test="status==1">
-                SELECT m.*,u.uName as create_user_name,<include refid="linkColumn" />
-                FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user_inf u
+                SELECT m.*,u.name as create_user_name,<include refid="linkColumn" />
+                FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user u
                 where m.id = l.main_id
-                and m.create_user_id = u.uId
+                and m.create_user_id = u.id
                 and m.type = #{type}
-                and l.deal_role_id = #{user.uRole}
+                and l.deal_role_id = #{user.role}
                 and l.deal_user_id is null
                 and l.status = #{status} order by m.id desc
             </when>
             <otherwise>
-                SELECT m.*,u.uName as create_user_name,<include refid="linkColumn" />
-                FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user_inf u
+                SELECT m.*,u.name as create_user_name,<include refid="linkColumn" />
+                FROM web_site.tb_workflow_main m,web_site.tb_workflow_link l,db_user.tb_user u
                 where m.id = l.main_id
-                and m.create_user_id = u.uId
+                and m.create_user_id = u.id
                 and m.type = #{type}
-                and l.deal_user_id = #{user.uId}
+                and l.deal_user_id = #{user.id}
                 and l.status = #{status} order by m.id desc
             </otherwise>
         </choose>

--
Gitblit v1.9.1