123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- package com.iamberry.rst.controllers.pts;
- import com.alibaba.dubbo.common.json.JSONObject;
- import com.iamberry.rst.core.page.PagedResult;
- import com.iamberry.rst.core.pts.*;
- import com.iamberry.rst.faces.pts.MachinePartsService;
- import com.iamberry.rst.faces.pts.MachineSupplierService;
- import com.iamberry.rst.faces.pts.ProduceService;
- import com.iamberry.rst.faces.pts.PtsBomService;
- import com.iamberry.rst.utils.ExcelUtil;
- import com.iamberry.rst.utils.StitchAttrUtil;
- import com.iamberry.wechat.tools.DateTimeUtil;
- import com.iamberry.wechat.tools.ObjectExcelView;
- import com.iamberry.wechat.tools.ResponseJson;
- import com.iamberry.wechat.tools.ResultInfo;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.context.ContextLoader;
- import org.springframework.web.context.WebApplicationContext;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.commons.CommonsMultipartFile;
- import org.springframework.web.servlet.ModelAndView;
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.*;
- import java.text.MessageFormat;
- import java.util.*;
- import static com.iamberry.rst.util.SmsConfig.SEND_NOTICE;
- /**
- * Created by LJK on 2017/8/29.
- */
- @Controller
- @RequestMapping("/admin/machineParts")
- public class AdminMachinePartsController {
- @Autowired
- private MachinePartsService machinePartsService;
- @Autowired
- private ProduceService produceService;
- @Autowired
- private MachineSupplierService machineSupplierService;
- @Autowired
- private PtsBomService ptsBomService;
- /**
- * 进入添加机器零件页面
- * **/
- @RequiresPermissions("machineParts:add:machineParts")
- @RequestMapping("/_to_add_machineParts")
- public ModelAndView toAddMachineParts(){
- ModelAndView mv = new ModelAndView("pts/machinePtras/ptras_add");
- List<Produce> list = produceService.getProduceList();
- mv.addObject("produceList", list);
- List<PtsSupplier> listSupplier = machineSupplierService.listMachineSupplier();
- mv.addObject("listSupplier", listSupplier);
- return mv;
- }
- /**
- * 添加机器零件
- * **/
- @ResponseBody
- @RequiresPermissions("machineParts:add:machineParts")
- @RequestMapping("/add_machineParts")
- public ResponseJson addMachineParts(HttpServletRequest request,PtsComponents ptsComponents){
- ResponseJson responseJson = new ResponseJson();
- if(ptsComponents == null){
- responseJson.setReturnCode(500);
- return responseJson;
- }
- PtsComponents components = machinePartsService.getmachineParts(ptsComponents);
- if(components != null){
- responseJson.setReturnCode(501);
- return responseJson;
- }
- ptsComponents.setComponentsCost(ptsComponents.getComponentsCost() * 100);//元转换为分
- ptsComponents.setComponentsCreateTime(new Date());
- /* 生成机器零件编号 */
- ptsComponents.setComponentsNo(machinePartsService.getComPonentsNumber(ptsComponents.getComponentsNo(),ptsComponents.getComponentsType()));
- Integer msg = machinePartsService.addMachineParts(ptsComponents);
- if(msg > 0){
- responseJson.setReturnCode(200);
- }else{
- responseJson.setReturnCode(500);
- }
- return responseJson;
- }
- /**
- * 导入EXCEL生产零件(图片为默认图片)
- * **/
- @RequestMapping("/excelAdd")
- @ResponseBody
- public boolean excelAdd(@RequestParam("sourceFile") String sourceFile, HttpServletRequest request, HttpServletResponse response)throws IOException {
- //判断文件是否为空
- if (sourceFile==null) {
- return false;
- }
- /*//获取文件名
- String name=sourceFile.getOriginalFilename();
- long size =sourceFile.getSize();
- if (name==null ||("").equals(name) && size==0) {
- return false;
- }
- //把spring文件上传的MultipartFile转换成CommonsMultipartFile类型
- CommonsMultipartFile cf= (CommonsMultipartFile)sourceFile; //获取本地存储路径
- File file = new File(ResultInfo.PARTS_EXCEL);
- //创建一个目录 (它的路径名由当前 File 对象指定,包括任一必须的父路径。)
- if (!file.exists()) file.mkdirs();
- //新建一个文件
- File file1 = new File(ResultInfo.PARTS_EXCEL + new Date().getTime() + ".xls");
- //将上传的文件写入新建的文件中
- try {
- cf.getFileItem().write(file1);
- } catch (Exception e) {
- e.printStackTrace();
- }
- */
- // 获取Workbook
- InputStream inputStream = new BufferedInputStream(new FileInputStream(request.getServletContext().getRealPath(sourceFile)));
- Workbook wb = null;
- if (sourceFile.endsWith("xls")) {
- wb = new HSSFWorkbook(inputStream);
- } else {
- wb = new XSSFWorkbook(inputStream);
- }
- inputStream.close();
- // 获取Sheet
- Sheet sheet = wb.getSheetAt(0);
- Integer msg = machinePartsService.excelAddMachineParts(sheet);
- if(msg > 0){
- return true;
- }else{
- return false;
- }
- }
- /**
- * 导出零件列表Excel
- * 2017-11-13 14:46:37
- * @return
- */
- @RequestMapping("/generation_excel")
- public ModelAndView generationExcel(HttpServletRequest request){
- // 准备model
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("fileName", "零件列表"); // 下载文件名称
- String path = "https://rst.iamberry.com";
- // 标题
- List<String> titles = new ArrayList<String>();
- titles.add("零件编号");
- titles.add("供应商");
- titles.add("零件名称");
- titles.add("图片(url)");
- titles.add("状态");
- titles.add("成本(元)");
- titles.add("重量(g)");
- titles.add("材料");
- titles.add("材料类型");
- titles.add("MBSC");
- titles.add("规格");
- model.put("titles", titles);
- PtsComponents ptsComponents = new PtsComponents();
- // 内容
- List<List<Object>> countexts = new ArrayList<List<Object>>();
- List<PtsComponents> list = machinePartsService.listPtsComponents(ptsComponents);
- for (PtsComponents info : list) {
- List<Object> row = new ArrayList<Object>();
- row.add(info.getComponentsNo() == null ? null:info.getComponentsNo());
- row.add(info.getSupplierName() == null ? null:info.getSupplierName());
- row.add(info.getComponentsName() == null ? null:info.getComponentsName());
- row.add(info.getComponentsImg() == null ? null:path + info.getComponentsImg());
- row.add(info.getComponentsStatus() == 0 ? "停止使用":"正常使用");
- row.add(info.getComponentsCost()/100);
- row.add(info.getComponentsWeight());
- row.add(info.getComponentsMaterial() == null ? null:info.getComponentsMaterial());
- String type = "";
- switch (info.getComponentsType()){
- case 1:
- type = "塑胶件";
- break;
- case 2:
- type = "五金件";
- break;
- case 4:
- type = "电子类";
- break;
- case 5:
- type = "线材";
- break;
- case 6:
- type = "辅材";
- break;
- case 3:
- type = "其他";
- break;
- }
- row.add(info.getComponentsType() == null ? null:type);
- row.add(info.getComponentsMbsc() == null ? null:info.getComponentsMbsc());
- row.add(info.getComponentsSpecification() == null ? null:info.getComponentsSpecification());
- countexts.add(row);
- }
- model.put("varList", countexts);
- ObjectExcelView erv = new ObjectExcelView();
- ModelAndView mv = new ModelAndView(erv,model);
- return mv;
- }
- /**
- * 获取机器零件列表
- *
- * @param request
- * @return
- */
- @RequiresPermissions("parts:select:list")
- @RequestMapping("/_parts_list")
- public ModelAndView getPtsBom(HttpServletRequest request,PtsComponents ptsComponents,
- @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
- @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
- @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
- ModelAndView mv = new ModelAndView("pts/machinePtras/parts_list");
- PagedResult<PtsComponents> pagedResult = machinePartsService.listPtsComponents(pageNO, pageSize, ptsComponents, totalNum == 0);
- if (totalNum != 0){
- pagedResult.setTotal(totalNum);
- }
- //获取产品集合,用于页面选择产品
- List<Produce> list = produceService.getProduceList();
- mv.addObject("produceList",list);
- //获取供应商
- List<PtsSupplier> listSupplier = machineSupplierService.listMachineSupplier();
- mv.addObject("listSupplier", listSupplier);
- StitchAttrUtil.setModelAndView(ptsComponents, mv, "/admin/machineParts/_parts_list", pagedResult);
- return mv;
- }
- /**
- * 进入修改机器零件页面
- * **/
- @RequiresPermissions("machineParts:update:machineParts")
- @RequestMapping("/_to_update_machineParts")
- public ModelAndView toupdateMachineParts(HttpServletRequest request){
- ModelAndView mv = new ModelAndView("pts/machinePtras/ptras_update");
- String componentsId = request.getParameter("componentsId");
- PtsComponents ptsComponents = new PtsComponents();
- ptsComponents.setComponentsId(Integer.valueOf(componentsId));
- ptsComponents = machinePartsService.getmachineParts(ptsComponents);
- String comPonentsNos[] = ptsComponents.getComponentsNo().split("-");
- if(comPonentsNos != null && comPonentsNos.length > 2){
- ptsComponents.setComponentsNo(comPonentsNos[1]);
- String number = String.valueOf(comPonentsNos[2]);
- ptsComponents.setSerialNumber(number);
- }
- mv.addObject("ptsComponents", ptsComponents);
- List<Produce> list = produceService.getProduceList();
- mv.addObject("produceList", list);
- List<PtsSupplier> listSupplier = machineSupplierService.listMachineSupplier();
- mv.addObject("listSupplier", listSupplier);
- return mv;
- }
- /**
- * 修改机器零件
- * **/
- @ResponseBody
- @RequiresPermissions("machineParts:update:machineParts")
- @RequestMapping("/update_machineParts")
- public ResponseJson updateMachineParts(HttpServletRequest request,PtsComponents ptsComponents){
- ResponseJson responseJson = new ResponseJson();
- if(ptsComponents == null){
- responseJson.setReturnCode(500);
- return responseJson;
- }
- Integer componentsId = ptsComponents.getComponentsId();
- PtsComponents componentsByid = new PtsComponents();
- componentsByid.setComponentsId(componentsId);
- PtsComponents components = machinePartsService.getmachineParts(componentsByid);
- if(!components.getComponentsNo().equals(ptsComponents.getComponentsNo()) ||
- components.getComponentsStatus() != ptsComponents.getComponentsStatus() ||
- components.getProduceId() != components.getProduceId()){
- ptsComponents.setComponentsId(null);
- PtsComponents components2 = machinePartsService.getmachineParts(ptsComponents);
- if(components2 != null){
- responseJson.setReturnCode(501);
- return responseJson;
- }
- }
- //如果改变了产品或者状态,则删掉关联的bom单
- if(components.getComponentsStatus() != ptsComponents.getComponentsStatus() ||
- components.getProduceId() != components.getProduceId()){
- ptsBomService.deleteBomComponentByComponentsId(componentsId);
- }
- ptsComponents.setComponentsId(componentsId);
- ptsComponents.setComponentsCost(ptsComponents.getComponentsCost() * 100);//元转换为分
- ptsComponents.setComponentsUpdateTime(new Date());
- String comPonentsNos[] = ptsComponents.getComponentsNo().split("-");
- if(comPonentsNos != null && comPonentsNos.length < 3){
- ptsComponents.setComponentsNo(machinePartsService.getComPonentsNumber(ptsComponents.getComponentsNo(),ptsComponents.getComponentsType()));
- }
- Integer msg = machinePartsService.updateParts(ptsComponents);
- if(msg > 0){
- responseJson.setReturnCode(200);
- }else{
- responseJson.setReturnCode(500);
- }
- return responseJson;
- }
- /**
- * 上传零件图片
- * 通过流的方式上传文件
- * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象
- */
- @ResponseBody
- @RequestMapping("/fileUpload")
- public ResponseJson fileUpload(HttpServletRequest request,@RequestParam("file") CommonsMultipartFile file) throws IOException {
- ResponseJson responseJson = new ResponseJson();
- System.out.println("fileName:"+file.getOriginalFilename());
- //获取项目根目录
- WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
- ServletContext servletContext = webApplicationContext.getServletContext();
- String realPath = servletContext.getRealPath(ResultInfo.PARTS_IMAGE);
- String imgUrl = new Date().getTime()+file.getOriginalFilename();
- try {
- //获取输出流
- OutputStream os=new FileOutputStream(realPath+imgUrl);
- //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
- InputStream is=file.getInputStream();
- byte[] bts = new byte[1024];
- //一个一个字节的读取并写入
- while(is.read(bts)!=-1)
- {
- os.write(bts);
- }
- os.flush();
- os.close();
- is.close();
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- responseJson.setReturnCode(200);
- responseJson.addResponseKeyValue("imgUrl",ResultInfo.PARTS_IMAGE+imgUrl);
- return responseJson;
- }
- }
|