package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Supplier; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.supplier.SupplierService; import com.jsh.erp.service.systemConfig.SystemConfigService; import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.*; import jxl.Sheet; import jxl.Workbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DataAccessException; import org.springframework.transaction.annotation.Transactional; 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.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; /** * @author ji|sheng|hua 华夏erp */ @RestController @RequestMapping(value = "/supplier") public class SupplierController { private Logger logger = LoggerFactory.getLogger(SupplierController.class); @Resource private SupplierService supplierService; @Resource private UserBusinessService userBusinessService; @Resource private SystemConfigService systemConfigService; @Resource private UserService userService; /** * 查找客户信息-下拉框 * @param request * @return */ @PostMapping(value = "/findBySelect_cus") public JSONArray findBySelectCus(HttpServletRequest request) { JSONArray arr = new JSONArray(); try { String type = "UserCustomer"; Long userId = userService.getUserId(request); //获取权限信息 String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString()); List supplierList = supplierService.findBySelectCus(); JSONArray dataArray = new JSONArray(); if (null != supplierList) { boolean customerFlag = systemConfigService.getCustomerFlag(); for (Supplier supplier : supplierList) { JSONObject item = new JSONObject(); Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]"); if (!customerFlag || flag) { item.put("id", supplier.getId()); item.put("supplier", supplier.getSupplier()); //客户名称 dataArray.add(item); } } } arr = dataArray; } catch(Exception e){ e.printStackTrace(); } return arr; } /** * 查找供应商信息-下拉框 * @param request * @return */ @PostMapping(value = "/findBySelect_sup") public JSONArray findBySelectSup(HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { List supplierList = supplierService.findBySelectSup(); JSONArray dataArray = new JSONArray(); if (null != supplierList) { for (Supplier supplier : supplierList) { JSONObject item = new JSONObject(); item.put("id", supplier.getId()); //供应商名称 item.put("supplier", supplier.getSupplier()); dataArray.add(item); } } arr = dataArray; } catch(Exception e){ e.printStackTrace(); } return arr; } /** * 查找往来单位,含供应商和客户信息-下拉框 * @param request * @return */ @PostMapping(value = "/findBySelect_organ") public JSONArray findBySelectOrgan(HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { JSONArray dataArray = new JSONArray(); //1、获取供应商信息 List supplierList = supplierService.findBySelectSup(); if (null != supplierList) { for (Supplier supplier : supplierList) { JSONObject item = new JSONObject(); item.put("id", supplier.getId()); item.put("supplier", supplier.getSupplier()); //供应商名称 dataArray.add(item); } } //2、获取客户信息 String type = "UserCustomer"; Long userId = userService.getUserId(request); String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString()); List customerList = supplierService.findBySelectCus(); if (null != customerList) { boolean customerFlag = systemConfigService.getCustomerFlag(); for (Supplier supplier : customerList) { JSONObject item = new JSONObject(); Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]"); if (!customerFlag || flag) { item.put("id", supplier.getId()); item.put("supplier", supplier.getSupplier()); //客户名称 dataArray.add(item); } } } arr = dataArray; } catch(Exception e){ e.printStackTrace(); } return arr; } /** * 查找会员信息-下拉框 * @param request * @return */ @PostMapping(value = "/findBySelect_retail") public JSONArray findBySelectRetail(HttpServletRequest request)throws Exception { JSONArray arr = new JSONArray(); try { List supplierList = supplierService.findBySelectRetail(); JSONArray dataArray = new JSONArray(); if (null != supplierList) { for (Supplier supplier : supplierList) { JSONObject item = new JSONObject(); item.put("id", supplier.getId()); //客户名称 item.put("supplier", supplier.getSupplier()); item.put("advanceIn", supplier.getAdvanceIn()); //预付款金额 dataArray.add(item); } } arr = dataArray; } catch(Exception e){ e.printStackTrace(); } return arr; } /** * 批量设置状态-启用或者禁用 * @param jsonObject * @param request * @return */ @PostMapping(value = "/batchSetStatus") public String batchSetStatus(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { Boolean status = jsonObject.getBoolean("status"); String ids = jsonObject.getString("ids"); Map objectMap = new HashMap<>(); int res = supplierService.batchSetStatus(status, ids); if(res > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } /** * 用户对应客户显示 * @param type * @param keyId * @param request * @return */ @GetMapping(value = "/findUserCustomer") public JSONArray findUserCustomer(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, HttpServletRequest request) throws Exception{ JSONArray arr = new JSONArray(); try { //获取权限信息 String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); List dataList = supplierService.findUserCustomer(); //开始拼接json数据 JSONObject outer = new JSONObject(); outer.put("id", 0); outer.put("key", 0); outer.put("value", 0); outer.put("title", "客户列表"); outer.put("attributes", "客户列表"); //存放数据json数组 JSONArray dataArray = new JSONArray(); if (null != dataList) { for (Supplier supplier : dataList) { JSONObject item = new JSONObject(); item.put("id", supplier.getId()); item.put("key", supplier.getId()); item.put("value", supplier.getId()); item.put("title", supplier.getSupplier()); item.put("attributes", supplier.getSupplier()); Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]"); if (flag) { item.put("checked", true); } dataArray.add(item); } } outer.put("children", dataArray); arr.add(outer); } catch (Exception e) { e.printStackTrace(); } return arr; } /** * 导入excel表格 * @param file * @param request * @param response * @return */ @PostMapping(value = "/importExcel") public BaseResponseInfo importExcel(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception{ BaseResponseInfo res = new BaseResponseInfo(); try { importFun(file); res.code = 200; res.data = "导入成功"; } catch(Exception e){ e.printStackTrace(); res.code = 500; res.data = "导入失败"; } return res; } public String importFun(MultipartFile file)throws Exception{ BaseResponseInfo info = new BaseResponseInfo(); Map data = new HashMap(); String message = "成功"; try { Sheet src = null; //文件合法性校验 try { Workbook workbook = Workbook.getWorkbook(file.getInputStream()); src = workbook.getSheet(0); } catch (Exception e) { message = "导入文件不合法,请检查"; data.put("message", message); info.code = 400; info.data = data; } //每行中数据顺序 "名称","类型","联系人","电话","电子邮箱","预收款","期初应收","期初应付","备注","传真","手机","地址","纳税人识别号","开户行","账号","税率","状态" List sList = new ArrayList(); for (int i = 1; i < src.getRows(); i++) { Supplier s = new Supplier(); s.setSupplier(ExcelUtils.getContent(src, i, 0)); s.setType(ExcelUtils.getContent(src, i, 1)); s.setContacts(ExcelUtils.getContent(src, i, 2)); s.setPhoneNum(ExcelUtils.getContent(src, i, 3)); s.setEmail(ExcelUtils.getContent(src, i, 4)); s.setAdvanceIn(parseBigDecimalEx(ExcelUtils.getContent(src, i, 5))); s.setBeginNeedGet(parseBigDecimalEx(ExcelUtils.getContent(src, i, 6))); s.setBeginNeedPay(parseBigDecimalEx(ExcelUtils.getContent(src, i, 7))); s.setDescription(ExcelUtils.getContent(src, i, 8)); s.setFax(ExcelUtils.getContent(src, i, 9)); s.setTelephone(ExcelUtils.getContent(src, i, 10)); s.setAddress(ExcelUtils.getContent(src, i, 11)); s.setTaxNum(ExcelUtils.getContent(src, i, 12)); s.setBankName(ExcelUtils.getContent(src, i, 13)); s.setAccountNumber(ExcelUtils.getContent(src, i, 14)); s.setTaxRate(parseBigDecimalEx(ExcelUtils.getContent(src, i, 15))); String enabled = ExcelUtils.getContent(src, i, 16); s.setEnabled(enabled.equals("启用")? true: false); s.setIsystem(Byte.parseByte("1")); sList.add(s); } info = supplierService.importExcel(sList); } catch (Exception e) { e.printStackTrace(); message = "导入失败"; info.code = 500; data.put("message", message); info.data = data; } return null; } public BigDecimal parseBigDecimalEx(String str)throws Exception{ if(!StringUtil.isEmpty(str)) { return new BigDecimal(str); } else { return null; } } }