From a8b9893712835e3e4ebb94c3563234f7ed81d089 Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期四, 07 四月 2022 15:02:24 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java    |   87 ++++++++++++++
 src/main/webapp/views/item/item.html                                       |    4 
 src/main/webapp/views/itemReport/itemReport.html                           |   10 +
 src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java |  138 +++++++++++++++++++++++
 src/main/webapp/static/js/itemReport/itemReport.js                         |   36 +++++
 src/main/resources/excel/analysis_report.xlsx                              |    0 
 pom.xml                                                                    |    1 
 src/main/webapp/views/itemBusiness/itemBusiness.html                       |    8 
 src/main/java/zy/cloud/wms/manager/service/ItemReportService.java          |    6 +
 src/main/resources/mapper/ItemReportMapper.xml                             |    3 
 src/main/java/zy/cloud/wms/manager/entity/ItemReport.java                  |   36 ++++++
 11 files changed, 314 insertions(+), 15 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4b0adc0..3383f13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
             <artifactId>mysql-connector-java</artifactId>
             <version>${mysql-driver.version}</version>
         </dependency>
+
         <dependency>
             <groupId>com.microsoft.sqlserver</groupId>
             <artifactId>mssql-jdbc</artifactId>
diff --git a/src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java b/src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java
index a6e0717..5ceea8a 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java
@@ -7,6 +7,10 @@
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellAddress;
+import org.apache.poi.xssf.usermodel.*;
 import zy.cloud.wms.manager.entity.Cstmr;
 import zy.cloud.wms.manager.entity.Item;
 import zy.cloud.wms.manager.entity.ItemReport;
@@ -20,6 +24,11 @@
 import org.springframework.web.bind.annotation.*;
 import zy.cloud.wms.manager.service.ItemService;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.util.*;
 
 @RestController
@@ -76,11 +85,35 @@
 
 	@RequestMapping(value = "/itemReport/update/auth")
 	@ManagerAuth
-    public R update(ItemReport itemReport){
-        if (Cools.isEmpty(itemReport) || null==itemReport.getId()){
+    public R update(ItemReport report){
+        if (Cools.isEmpty(report) || null==report.getId()){
             return R.error();
         }
-        itemReportService.updateById(itemReport);
+        if (report.getDeliverReason() == null || report.getDeliverReason().equals("")) {
+            report.setDeliverIssue(false);
+        }else {
+            report.setDeliverIssue(true);
+        }
+
+        if (report.getQualityReason() == null || report.getQualityReason().equals("")) {
+            report.setQualityIssue(false);
+        }else {
+            report.setQualityIssue(true);
+        }
+
+        if (report.getDesignReason() == null || report.getDesignReason().equals("")) {
+            report.setDesignIssue(false);
+        }else {
+            report.setDesignIssue(true);
+        }
+
+        if (report.getInstallReason() == null || report.getInstallReason().equals("")) {
+            report.setInstallIssue(false);
+        }else {
+            report.setInstallIssue(true);
+        }
+        itemReportService.update(report,new EntityWrapper<ItemReport>()
+                .eq("id",report.getId()));
         return R.ok();
     }
 
@@ -144,4 +177,52 @@
         }
         return R.ok(result);
     }
+
+    @RequestMapping("/itemReport/makeReport/auth")
+    public HttpServletResponse makeReport(@RequestParam("id") String id, HttpServletResponse response){
+        /**
+         * 鎺х涓庡垵濮嬪寲
+         *
+         */
+        if (Cools.isEmpty(id)) {
+            throw new CoolException("闇�瑕佺敓鎴愭姤鍛婄殑椤圭洰涓虹┖,鏃犳硶鐢熸垚");
+        }
+        Item item = itemService.selectOne(new EntityWrapper<Item>()
+                .eq("id", id));
+        ItemReport itemReport = itemReportService.selectOne(new EntityWrapper<ItemReport>()
+                .eq("item_id", id));
+        if (Cools.isEmpty(item) || Cools.isEmpty(itemReport)) {
+            throw new CoolException("鎵句笉鍒拌椤圭洰鎴栨槸椤圭洰鐨勬�荤粨");
+        }
+        return itemReportService.makeReport(item,itemReport, response);
+    }
+
+    public static void main(String[] args) {
+        FileOutputStream out = null;
+        FileInputStream in = null;
+        try {
+            in = new FileInputStream("src/main/resources/excel/analysis_report.xlsx");
+            out = new FileOutputStream("C:\\Users\\Zhs\\Desktop\\report.xlsx");
+            XSSFWorkbook wb = new XSSFWorkbook(in);
+            XSSFSheet mainSheet = wb.getSheet("鎶ュ憡");
+
+            XSSFRow row10 = mainSheet.getRow(11);
+            XSSFCell cell = row10.getCell(1);
+            cell.setCellValue("涓哄暐浣犲氨鍙互鍛�?");
+            wb.write(out);
+            out.flush();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }finally {
+            try {
+                out.close();
+                in.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+
+        }
+
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/ItemReport.java b/src/main/java/zy/cloud/wms/manager/entity/ItemReport.java
index fdef57c..d29c60c 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/ItemReport.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/ItemReport.java
@@ -129,6 +129,15 @@
     @ApiModelProperty(value= "1:鏈敓鎴�,2:宸茬敓鎴�(涓嶅彲淇敼)")
     private Integer status;
 
+    private String issue;
+
+    public String getIssue$(){
+        if (this.issue == null || this.issue.equals("")){
+            return "鏃犲紓甯�";
+        }
+        return this.issue;
+    }
+
 
     public String getUpdateTime$(){
         if (Cools.isEmpty(this.updateTime)){
@@ -198,4 +207,31 @@
         }
         return this.installReason;
     }
+
+    public String getDeliverIssue$() {
+        if (this.deliverIssue) {
+            return "鏈�";
+        }
+        return "鏃�";
+    }
+
+    public String getQualityIssue$() {
+        if (this.qualityIssue) {
+            return "鏈�";
+        }
+        return "鏃�";
+    }
+    public String getDesignIssue$() {
+        if (this.designIssue) {
+            return "鏈�";
+        }
+        return "鏃�";
+    }
+    public String getInstallIssue$() {
+        if (this.installIssue) {
+            return "鏈�";
+        }
+        return "鏃�";
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/ItemReportService.java b/src/main/java/zy/cloud/wms/manager/service/ItemReportService.java
index f53f5d9..98bfb28 100644
--- a/src/main/java/zy/cloud/wms/manager/service/ItemReportService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/ItemReportService.java
@@ -1,9 +1,15 @@
 package zy.cloud.wms.manager.service;
 
+import com.core.common.R;
+import zy.cloud.wms.manager.entity.Item;
 import zy.cloud.wms.manager.entity.ItemReport;
 import com.baomidou.mybatisplus.service.IService;
+
+import javax.servlet.http.HttpServletResponse;
 
 public interface ItemReportService extends IService<ItemReport> {
 
     void init(ItemReport itemReport, Long userId);
+
+    HttpServletResponse makeReport(Item item, ItemReport itemReport, HttpServletResponse response);
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java
index 7618d0c..f3f7deb 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import zy.cloud.wms.manager.entity.Item;
 import zy.cloud.wms.manager.mapper.ItemReportMapper;
@@ -12,6 +16,10 @@
 import org.springframework.stereotype.Service;
 import zy.cloud.wms.manager.service.ItemService;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
 import java.util.Date;
 
 @Service("itemReportService")
@@ -70,4 +78,134 @@
         report.setCreateBy(userId);
         insert(report);
     }
+
+    @Override
+    public HttpServletResponse makeReport(Item item, ItemReport itemReport, HttpServletResponse response) {
+
+        FileInputStream in = null;
+        ServletOutputStream out = null;
+        try {
+            /**
+             * 涓�浜涘垵濮嬪寲
+             */
+            in = new FileInputStream("src/main/resources/excel/analysis_report.xlsx");
+
+            XSSFWorkbook wb = new XSSFWorkbook(in);
+            XSSFSheet mainSheet = wb.getSheet("鎶ュ憡");
+            /**
+             * 寮�濮嬭缃10鍜�11鍚堝苟琛岀殑鎵�鏈夊垪, 瑙掓爣浠�0寮�濮�,rownum9瀹為檯涓婄瓑浜�10
+             */
+            XSSFRow row10 = mainSheet.getRow(9);
+            row10.getCell(1).setCellValue(item.getUuid());
+            row10.getCell(3).setCellValue(item.getEndTime0$());
+            row10.getCell(5).setCellValue(item.getRealEndTime0$());
+
+            XSSFRow row1 = mainSheet.getRow(0);
+            row1.getCell(0).setCellValue(item.getName()+"璁㈠崟鎬荤粨鍒嗘瀽鎶ュ憡");
+
+            /**
+             * 寮�濮嬭缃12琛�
+             */
+            XSSFRow row12 = mainSheet.getRow(11);
+            row12.getCell(1).setCellValue(item.getUuid());
+            row12.getCell(3).setCellValue(item.getPlandeAmt());
+            row12.getCell(5).setCellValue(item.getRealdeAmt());
+
+            /**
+             *寮�濮嬭缃14琛�
+             */
+            XSSFRow row14 = mainSheet.getRow(13);
+            row14.getCell(1).setCellValue(item.getName());
+            row14.getCell(3).setCellValue(item.getPlaninAmt());
+            row14.getCell(5).setCellValue(item.getRealinAmt());
+
+            /**
+             * 绗�16琛�
+             */
+            XSSFRow row16 = mainSheet.getRow(15);
+            row16.getCell(1).setCellValue(item.getType$());
+
+            /**
+             * 绗�18琛�
+             */
+            XSSFRow row17 = mainSheet.getRow(17);
+            row17.getCell(1).setCellValue(item.getSalesman());
+            row17.getCell(2).setCellValue(itemReport.getIssue());
+
+
+            /**
+             * 绗�20琛�
+             */
+            XSSFRow row19 = mainSheet.getRow(19);
+            row19.getCell(1).setCellValue(item.getLeader());
+
+            /**
+             * 绗�22琛�
+             */
+            XSSFRow row22 = mainSheet.getRow(21);
+            row22.getCell(1).setCellValue(item.getOriginArea());
+
+            /**
+             * 绗�29琛�
+             */
+            XSSFRow row29 = mainSheet.getRow(28);
+            row29.getCell(1).setCellValue(itemReport.getDeliverIssue$());
+            row29.getCell(2).setCellValue(itemReport.getDeliverReason());
+
+            /**
+             * 绗�31琛�
+             */
+            XSSFRow row31 = mainSheet.getRow(30);
+            row31.getCell(1).setCellValue(itemReport.getQualityIssue$());
+            row31.getCell(2).setCellValue(itemReport.getQualityReason());
+
+            /**
+             * 33琛�
+             */
+
+            XSSFRow row33 = mainSheet.getRow(32);
+            row33.getCell(1).setCellValue(itemReport.getDesignIssue$());
+            row33.getCell(2).setCellValue(itemReport.getDesignReason());
+            /**
+             * 35琛�
+             */
+
+            XSSFRow row35 = mainSheet.getRow(34);
+            row35.getCell(1).setCellValue(itemReport.getInstallIssue$());
+            row35.getCell(2).setCellValue(itemReport.getInstallReason());
+            /**
+             * 绗�45琛�
+             */
+            XSSFRow row45 = mainSheet.getRow(44);
+            row45.getCell(1).setCellValue(itemReport.getConclusion());
+
+
+//            wb.write(out);
+
+            out = response.getOutputStream();
+
+            response.setContentType("application/octet-stream; charset=utf-8");
+
+            response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(item.getName()+"鎶ュ憡.xlsx"));
+
+            ServletOutputStream outputStream = response.getOutputStream();
+            wb.write(outputStream);
+
+
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                in.close();
+                out.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+        return response;
+    }
+
 }
diff --git a/src/main/resources/excel/analysis_report.xlsx b/src/main/resources/excel/analysis_report.xlsx
new file mode 100644
index 0000000..520b2b7
--- /dev/null
+++ b/src/main/resources/excel/analysis_report.xlsx
Binary files differ
diff --git a/src/main/resources/mapper/ItemReportMapper.xml b/src/main/resources/mapper/ItemReportMapper.xml
index 1b33edc..0529624 100644
--- a/src/main/resources/mapper/ItemReportMapper.xml
+++ b/src/main/resources/mapper/ItemReportMapper.xml
@@ -10,7 +10,7 @@
         <result column="deliver_issue" property="deliverIssue" />
         <result column="deliver_reason" property="deliverReason" />
         <result column="quality_issue" property="qualityIssue" />
-        <result column="quality_reson" property="qualityReson" />
+        <result column="quality_reson" property="qualityReason" />
         <result column="design_issue" property="designIssue" />
         <result column="design_reason" property="designReason" />
         <result column="install_issue" property="installIssue" />
@@ -21,6 +21,7 @@
         <result column="create_by" property="createBy" />
         <result column="create_time" property="createTime" />
         <result column="status" property="status" />
+        <result column="issue" property="issue" />
 
     </resultMap>
 
diff --git a/src/main/webapp/static/js/itemReport/itemReport.js b/src/main/webapp/static/js/itemReport/itemReport.js
index c08290e..8333c1f 100644
--- a/src/main/webapp/static/js/itemReport/itemReport.js
+++ b/src/main/webapp/static/js/itemReport/itemReport.js
@@ -26,6 +26,7 @@
             ,{field: 'qualityReason$', align: 'center',title: '璐ㄩ噺闂鍘熷洜'}
             ,{field: 'designReason$', align: 'center',title: '璁捐闂鍘熷洜'}
             ,{field: 'installReason$', align: 'center',title: '瀹夎闂鍘熷洜'}
+            ,{field: 'issue$', align: 'center',title: '寮傚父鎻忚堪'}
             ,{field: 'conclusion', align: 'center',title: '鎬荤粨'}
             ,{field: 'updateBy', align: 'center',title: '', hide:true}
             ,{field: 'updateTime$', align: 'center',title: '', hide:true}
@@ -134,19 +135,47 @@
     // 鐩戝惉琛屽伐鍏蜂簨浠�
     table.on('tool(itemReport)', function(obj){
         var data = obj.data;
+
+
         switch (obj.event) {
             case 'edit':
                 showEditModel(data);
                 break;
             case "del":
-                var ids = [data.id];
-                del(ids);
+                var id = data.id;
+                del(id);
+                break;
+            case "makeReport":
+                console.log(obj);
+                var ids = [data.itemId];
+                makeReport(ids);
                 break;
         }
     });
-
+    function makeReport(id) {
+        location.href = 'http://localhost:8080/pms/itemReport/makeReport/auth?id=' + id;
+        // layer.confirm('纭畾瑕佺敓鎴愰�変腑鏁版嵁鐨勬姤鍛婂悧锛�', {
+        //         skin: 'layui-layer-admin',
+        //         shade: .1
+        //     }, function (i) {
+        //         layer.close(i);
+        //         var loadIndex = layer.load(2);
+        //         $.ajax({
+        //             url: baseUrl+"/itemReport/makeReport/auth",
+        //             headers: {'token': localStorage.getItem('token')},
+        //             data: {ids: ids},
+        //             method: 'POST',
+        //             success: function (res) {
+        //                 layer.close(loadIndex);
+        //
+        //             }
+        //         })
+        //     }
+        // )
+    };
     /* 寮圭獥 - 鏂板銆佷慨鏀� */
     function showEditModel(mData) {
+        mData.itemId$ = mData.itemName;
         admin.open({
             type: 1,
             area: '600px',
@@ -156,6 +185,7 @@
                 layDateRender();
                 form.val('detail', mData);
                 form.on('submit(editSubmit)', function (data) {
+                    console.log(data);
                     var loadIndex = layer.load(2);
                     $.ajax({
                         url: baseUrl+"/itemReport/"+(mData?'update':'add')+"/auth",
diff --git a/src/main/webapp/views/item/item.html b/src/main/webapp/views/item/item.html
index 9f01407..94fcd5b 100644
--- a/src/main/webapp/views/item/item.html
+++ b/src/main/webapp/views/item/item.html
@@ -181,9 +181,9 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
-                    <label class="layui-form-label layui-form-required">瀹炴柦鍛ㄦ湡(鏈�): </label>
+                    <label class="layui-form-label layui-form-required">瀹炴柦鍛ㄦ湡(澶�): </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="濉啓鏁板瓧鏈堜唤" type="number" lay-verify="required"
+                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="濉啓鏁板瓧澶╂暟" type="number" lay-verify="required"
                                onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
                                onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
                                oninput="if(value>200)value=200;if(value<=0)value=1">
diff --git a/src/main/webapp/views/itemBusiness/itemBusiness.html b/src/main/webapp/views/itemBusiness/itemBusiness.html
index 46db8e7..9a4ba5c 100644
--- a/src/main/webapp/views/itemBusiness/itemBusiness.html
+++ b/src/main/webapp/views/itemBusiness/itemBusiness.html
@@ -87,9 +87,9 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
-                    <label class="layui-form-label layui-form-required">瀹炴柦鍛ㄦ湡(鏈�): </label>
+                    <label class="layui-form-label layui-form-required">瀹炴柦鍛ㄦ湡(澶�): </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="濉啓鏁板瓧鏈堜唤" type="number" lay-verify="required"
+                        <input class="layui-input" name="realMonth" id="realMonth$" placeholder="濉啓鏁板瓧澶╂暟" type="number" lay-verify="required"
                                onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
                                onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"
                                oninput="if(value>200)value=200;if(value<=0)value=1">
@@ -174,9 +174,9 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
-                    <label class="layui-form-label layui-form-required">閿�鍞瀹夎鏈�: </label>
+                    <label class="layui-form-label ">閿�鍞瀹夎鏈�: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="preinDate" id="preinDate" placeholder="璇疯緭鍏ラ瀹夎鏃ユ湡" lay-vertype="tips" lay-verify="required">
+                        <input class="layui-input" name="preinDate" id="preinDate" placeholder="璇疯緭鍏ラ瀹夎鏃ユ湡" lay-vertype="tips">
                     </div>
                 </div>
 
diff --git a/src/main/webapp/views/itemReport/itemReport.html b/src/main/webapp/views/itemReport/itemReport.html
index d782991..dab17e8 100644
--- a/src/main/webapp/views/itemReport/itemReport.html
+++ b/src/main/webapp/views/itemReport/itemReport.html
@@ -40,7 +40,7 @@
 </script>
 
 <script type="text/html" id="operate">
-<!--    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>-->
+    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
 <!--    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>-->
     <a class="layui-btn layui-btn layui-btn-xs btn-edit" lay-event="makeReport">鐢熸垚鎶ュ憡</a>
 </script>
@@ -91,7 +91,7 @@
                 <div class="layui-form-item">
                     <label class="layui-form-label">璐ㄩ噺闂鎻忚堪: </label>
                     <div class="layui-input-block">
-                        <input class="layui-input" name="qualityReson" placeholder="涓虹┖琛ㄧず鏃�">
+                        <input class="layui-input" name="qualityReason" placeholder="涓虹┖琛ㄧず鏃�">
                     </div>
                 </div>
 <!--                <div class="layui-form-item">-->
@@ -119,6 +119,12 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
+                    <label class="layui-form-label">寮傚父鎻忚堪: </label>
+                    <div class="layui-input-block">
+                        <input class="layui-input" name="issue" placeholder="涓虹┖琛ㄧず鏃�">
+                    </div>
+                </div>
+                <div class="layui-form-item">
                     <label class="layui-form-label">鎬荤粨: </label>
                     <div class="layui-input-block">
                         <input class="layui-input" name="conclusion" placeholder="璇疯緭鍏ユ�荤粨">

--
Gitblit v1.9.1