From 2b7a7bbdeb3e89d441e9658f2122c899c31a4e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Sat, 5 Jan 2019 21:33:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=95=86=E5=93=81=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/js/pages/manage/supplier.js | 7 +- erp_web/pages/materials/material.html | 13 +- .../erp/controller/DepotItemController.java | 9 +- .../erp/controller/MaterialController.java | 133 +++++++++++++++++- .../erp/controller/SupplierController.java | 68 +++++++++ .../datasource/mappers/MaterialMapper.java | 6 + .../datasource/mappers/SupplierMapper.java | 7 + .../erp/service/material/MaterialService.java | 32 +++++ .../erp/service/supplier/SupplierService.java | 4 + .../resources/mapper_xml/MaterialMapperEx.xml | 18 +++ .../resources/mapper_xml/SupplierMapperEx.xml | 21 +++ 11 files changed, 311 insertions(+), 7 deletions(-) diff --git a/erp_web/js/pages/manage/supplier.js b/erp_web/js/pages/manage/supplier.js index 08deeb26..31983a1c 100644 --- a/erp_web/js/pages/manage/supplier.js +++ b/erp_web/js/pages/manage/supplier.js @@ -343,7 +343,12 @@ //导出数据 function setOutputFun(){ - window.location.href = "/supplier/exportExcel.action?browserType=" + getOs() + "&type=" + listTypeEn; + var supplier = $.trim($("#searchSupplier").val()); + var phonenum = $.trim($("#searchPhonenum").val()); + var telephone = $.trim($("#searchTelephone").val()); + var description = $.trim($("#searchDesc").val()); + window.location.href = "/supplier/exportExcel?browserType=" + getOs() + + "&supplier=" + supplier + "&type=" + listType + "&phonenum=" + phonenum + "&telephone=" + telephone + "&description=" + description; } //增加单位 diff --git a/erp_web/pages/materials/material.html b/erp_web/pages/materials/material.html index 9f78ccfb..59e0098d 100644 --- a/erp_web/pages/materials/material.html +++ b/erp_web/pages/materials/material.html @@ -244,7 +244,7 @@
-
+
@@ -259,7 +259,6 @@
-
导入 objects = new ArrayList(); if (null != dataList) { for (DepotItemVo4WithInfoEx diEx : dataList) { - String[] objs = new String[13]; + String[] objs = new String[9]; Double prevSum = sumNumber("入库", pid, diEx.getMaterialid(), monthTime, true) - sumNumber("出库", pid, diEx.getMaterialid(), monthTime, true); Double InSum = sumNumber("入库", pid, diEx.getMaterialid(), monthTime, false); Double OutSum = sumNumber("出库", pid, diEx.getMaterialid(), monthTime, false); diff --git a/src/main/java/com/jsh/erp/controller/MaterialController.java b/src/main/java/com/jsh/erp/controller/MaterialController.java index f3e52ca3..35cba0dd 100644 --- a/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -1,18 +1,24 @@ package com.jsh.erp.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.datasource.entities.Material; import com.jsh.erp.datasource.entities.MaterialVo4Unit; import com.jsh.erp.service.material.MaterialService; -import com.jsh.erp.utils.BaseResponseInfo; -import com.jsh.erp.utils.ErpInfo; +import com.jsh.erp.utils.*; +import jxl.Sheet; +import jxl.Workbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -177,4 +183,127 @@ public class MaterialController { } return res; } + + /** + * 生成excel表格 + * @param name + * @param model + * @param categoryId + * @param categoryIds + * @param request + * @param response + * @return + */ + @GetMapping(value = "/exportExcel") + public BaseResponseInfo exportExcel(@RequestParam("name") String name, + @RequestParam("model") String model, + @RequestParam("categoryId") Long categoryId, + @RequestParam("categoryIds") String categoryIds, + HttpServletRequest request, HttpServletResponse response) { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = "成功"; + try { + List dataList = materialService.findByAll(name, model, categoryId, categoryIds); + String[] names = {"品名", "类型", "型号", "安全存量", "单位", "零售价", "最低售价", "预计采购价", "批发价", "备注", "状态"}; + String title = "商品信息"; + List objects = new ArrayList(); + if (null != dataList) { + for (MaterialVo4Unit m : dataList) { + String[] objs = new String[11]; + objs[0] = m.getName(); + objs[1] = m.getCategoryName(); + objs[2] = m.getModel(); + objs[3] = m.getSafetystock() == null? "" : m.getSafetystock().toString(); + objs[4] = m.getUnit(); + objs[5] = m.getRetailprice() == null ? "" : m.getRetailprice().toString(); + objs[6] = m.getLowprice() == null ? "" : m.getLowprice().toString(); + objs[7] = m.getPresetpriceone() == null ? "" : m.getPresetpriceone().toString(); + objs[8] = m.getPresetpricetwo() == null ? "" : m.getPresetpricetwo().toString(); + objs[9] = m.getRemark(); + objs[10] = m.getEnabled() ? "启用" : "禁用"; + objects.add(objs); + } + } + File file = ExcelUtils.exportObjectsWithoutTitle(title, names, title, objects); + ExportExecUtil.showExec(file, file.getName(), response); + res.code = 200; + } catch (Exception e) { + e.printStackTrace(); + message = "导出失败"; + res.code = 500; + } finally { + map.put("message", message); + res.data = map; + } + return res; + } + + /** + * excel表格导入 + * @param materialFile + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importExcel") + public void importExcel(MultipartFile materialFile, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo info = new BaseResponseInfo(); + Map data = new HashMap(); + String message = "成功"; + try { + Sheet src = null; + //文件合法性校验 + try { + Workbook workbook = Workbook.getWorkbook(materialFile.getInputStream()); + src = workbook.getSheet(0); + } catch (Exception e) { + message = "导入文件不合法,请检查"; + data.put("message", message); + info.code = 400; + info.data = data; + } + //读取所有的摄像机编码 + //每行中数据顺序 "品名","类型","型号","安全存量","单位","零售价","最低售价","预计采购价","批发价","备注","状态" + List mList = new ArrayList(); + for (int i = 1; i < src.getRows(); i++) { + Material m = new Material(); + m.setName(ExcelUtils.getContent(src, i, 0)); + m.setCategoryid(1l); //根目录 + m.setModel(ExcelUtils.getContent(src, i, 2)); + String safetyStock = ExcelUtils.getContent(src, i, 3); + m.setSafetystock(parseDoubleEx(safetyStock)); + m.setUnit(ExcelUtils.getContent(src, i, 4)); + String retailprice = ExcelUtils.getContent(src, i, 5); + m.setRetailprice(parseDoubleEx(retailprice)); + String lowPrice = ExcelUtils.getContent(src, i, 6); + m.setLowprice(parseDoubleEx(lowPrice)); + String presetpriceone = ExcelUtils.getContent(src, i, 7); + m.setPresetpriceone(parseDoubleEx(presetpriceone)); + String presetpricetwo = ExcelUtils.getContent(src, i, 8); + m.setPresetpricetwo(parseDoubleEx(presetpricetwo)); + m.setRemark(ExcelUtils.getContent(src, i, 9)); + String enabled = ExcelUtils.getContent(src, i, 10); + m.setEnabled(enabled.equals("启用")? true: false); + mList.add(m); + } + info = materialService.importExcel(mList); + } catch (Exception e) { + e.printStackTrace(); + message = "导入失败"; + info.code = 500; + data.put("message", message); + info.data = data; + } + response.sendRedirect("../pages/materials/material.html"); + } + + public Double parseDoubleEx(String str){ + if(!StringUtil.isEmpty(str)) { + return Double.parseDouble(str); + } else { + return null; + } + } } diff --git a/src/main/java/com/jsh/erp/controller/SupplierController.java b/src/main/java/com/jsh/erp/controller/SupplierController.java index d2dc0fec..e61e79a8 100644 --- a/src/main/java/com/jsh/erp/controller/SupplierController.java +++ b/src/main/java/com/jsh/erp/controller/SupplierController.java @@ -7,6 +7,8 @@ import com.jsh.erp.service.supplier.SupplierService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.ErpInfo; +import com.jsh.erp.utils.ExcelUtils; +import com.jsh.erp.utils.ExportExecUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DataAccessException; @@ -14,6 +16,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -259,4 +264,67 @@ public class SupplierController { } return arr; } + + /** + * 生成excel表格 + * @param supplier + * @param type + * @param phonenum + * @param telephone + * @param description + * @param request + * @param response + * @return + */ + @GetMapping(value = "/exportExcel") + public BaseResponseInfo exportExcel(@RequestParam("supplier") String supplier, + @RequestParam("type") String type, + @RequestParam("phonenum") String phonenum, + @RequestParam("telephone") String telephone, + @RequestParam("description") String description, + HttpServletRequest request, HttpServletResponse response) { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = "成功"; + try { + List dataList = supplierService.findByAll(supplier, type, phonenum, telephone, description); + String[] names = {"名称", "类型", "联系人", "电话", "电子邮箱", "预收款", "期初应收", "期初应付", "备注", "传真", "手机", "地址", "纳税人识别号", "开户行", "账号", "税率", "状态"}; + String title = "信息报表"; + List objects = new ArrayList(); + if (null != dataList) { + for (Supplier s : dataList) { + String[] objs = new String[17]; + objs[0] = s.getSupplier(); + objs[1] = s.getType(); + objs[2] = s.getContacts(); + objs[3] = s.getPhonenum(); + objs[4] = s.getEmail(); + objs[5] = s.getAdvancein() == null? "" : s.getAdvancein().toString(); + objs[6] = s.getBeginneedget() == null? "" : s.getBeginneedget().toString(); + objs[7] = s.getBeginneedpay() == null? "" : s.getBeginneedpay().toString(); + objs[8] = s.getDescription(); + objs[9] = s.getFax(); + objs[10] = s.getTelephone(); + objs[11] = s.getAddress(); + objs[12] = s.getTaxnum(); + objs[13] = s.getBankname(); + objs[14] = s.getAccountnumber(); + objs[15] = s.getTaxrate() == null? "" : s.getTaxrate().toString(); + objs[16] = s.getEnabled() ? "启用" : "禁用"; + objects.add(objs); + } + } + File file = ExcelUtils.exportObjectsWithoutTitle(title, names, title, objects); + ExportExecUtil.showExec(file, file.getName(), response); + res.code = 200; + } catch (Exception e) { + e.printStackTrace(); + message = "导出失败"; + res.code = 500; + } finally { + map.put("message", message); + res.data = map; + } + return res; + } } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java index d89547c8..b7e203bb 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java @@ -121,4 +121,10 @@ public interface MaterialMapper { int updatePriceNullByPrimaryKey(Long id); int updateUnitIdNullByPrimaryKey(Long id); + + List findByAll( + @Param("name") String name, + @Param("model") String model, + @Param("categoryId") Long categoryId, + @Param("categoryIds") String categoryIds); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapper.java b/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapper.java index d06df131..f6ecd8e6 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapper.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapper.java @@ -109,4 +109,11 @@ public interface SupplierMapper { @Param("phonenum") String phonenum, @Param("telephone") String telephone, @Param("description") String description); + + List findByAll( + @Param("supplier") String supplier, + @Param("type") String type, + @Param("phonenum") String phonenum, + @Param("telephone") String telephone, + @Param("description") String description); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/service/material/MaterialService.java b/src/main/java/com/jsh/erp/service/material/MaterialService.java index fec66c9b..ffad45e3 100644 --- a/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -5,6 +5,7 @@ import com.jsh.erp.datasource.entities.Material; import com.jsh.erp.datasource.entities.MaterialExample; import com.jsh.erp.datasource.entities.MaterialVo4Unit; import com.jsh.erp.datasource.mappers.MaterialMapper; +import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,7 +14,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class MaterialService { @@ -154,4 +157,33 @@ public class MaterialService { return materialMapper.selectByExample(example); } + public List findByAll(String name, String model, Long categoryId, String categoryIds) { + List resList = new ArrayList(); + List list = materialMapper.findByAll(name, model, categoryId, categoryIds); + if (null != list) { + for (MaterialVo4Unit m : list) { + resList.add(m); + } + } + return resList; + } + + public BaseResponseInfo importExcel(List mList) throws Exception { + BaseResponseInfo info = new BaseResponseInfo(); + Map data = new HashMap(); + try { + for(Material m: mList) { + materialMapper.insertSelective(m); + } + info.code = 200; + data.put("message", "成功"); + } catch (Exception e) { + e.printStackTrace(); + info.code = 500; + data.put("message", e.getMessage()); + } + info.data = data; + return info; + + } } diff --git a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java index c113e745..6c3ce21d 100644 --- a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java +++ b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java @@ -116,4 +116,8 @@ public class SupplierService { List list = supplierMapper.selectByExample(example); return list; } + + public List findByAll(String supplier, String type, String phonenum, String telephone, String description) { + return supplierMapper.findByAll(supplier, type, phonenum, telephone, description); + } } diff --git a/src/main/resources/mapper_xml/MaterialMapperEx.xml b/src/main/resources/mapper_xml/MaterialMapperEx.xml index 0d33938d..4dea65a6 100644 --- a/src/main/resources/mapper_xml/MaterialMapperEx.xml +++ b/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -77,4 +77,22 @@ UnitId = null where Id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/SupplierMapperEx.xml b/src/main/resources/mapper_xml/SupplierMapperEx.xml index d890226e..d18af528 100644 --- a/src/main/resources/mapper_xml/SupplierMapperEx.xml +++ b/src/main/resources/mapper_xml/SupplierMapperEx.xml @@ -45,4 +45,25 @@ and description like '%${description}%' + + \ No newline at end of file