pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/controller/ItemReportController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/entity/ItemReport.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/service/ItemReportService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/zy/cloud/wms/manager/service/impl/ItemReportServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/excel/analysis_report.xlsx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ItemReportMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/itemReport/itemReport.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/item/item.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/itemBusiness/itemBusiness.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/itemReport/itemReport.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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> 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(); } } } } 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 "无"; } } 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); } 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; } } src/main/resources/excel/analysis_report.xlsxBinary files differ
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> 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", 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"> 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> 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="请输入总结">