Commit dd861676 authored by yff's avatar yff

增加产品跟踪条码导出功能

parent 15021e7f
...@@ -23,6 +23,7 @@ import com.gavel.common.converter.DataConvert; ...@@ -23,6 +23,7 @@ import com.gavel.common.converter.DataConvert;
import com.gavel.common.utils.StringUtils; import com.gavel.common.utils.StringUtils;
import com.gavel.kwell.service.GpfkService; import com.gavel.kwell.service.GpfkService;
import com.gavel.kwell.service.GphyService; import com.gavel.kwell.service.GphyService;
import com.gavel.kwell.service.UWosnService;
import com.gavel.persistence.sql.RecordSet; import com.gavel.persistence.sql.RecordSet;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -37,6 +38,9 @@ public class WosngzController extends BaseController { ...@@ -37,6 +38,9 @@ public class WosngzController extends BaseController {
@Autowired @Autowired
private GphyService gphyService; private GphyService gphyService;
@Autowired
private UWosnService wosnService;
@ResourcePermissions() @ResourcePermissions()
@RequestMapping("/index") @RequestMapping("/index")
public String index() { public String index() {
...@@ -73,11 +77,19 @@ public class WosngzController extends BaseController { ...@@ -73,11 +77,19 @@ public class WosngzController extends BaseController {
@RequestMapping(value = BaseURL.EXPORT, method = RequestMethod.POST) @RequestMapping(value = BaseURL.EXPORT, method = RequestMethod.POST)
@ResponseBody @ResponseBody
public void export(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject param) throws Exception { public void export(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject param) throws Exception {
String wosnid = param.getString("wosnid");
GpWoCondition condition = DataConvert.getCondition(param.getJSONObject("condition"), GpWoCondition.class); GpWoCondition condition = DataConvert.getCondition(param.getJSONObject("condition"), GpWoCondition.class);
RecordSet<WosngzVO> records = gpfkService.queryWosngz(condition); RecordSet<WosngzVO> records = gpfkService.queryWosngz(condition);
doExport(request, response, param, records.getRecords()); doExport(request, response, param, records.getRecords());
} }
@RequestMapping(value = "exportxq", method = RequestMethod.POST)
@ResponseBody
public void exportxq(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject param) throws Exception {
String wosnid = param.getString("wosnid");
wosnService.exportProductFlow(request, response, wosnid);
}
@ApiOperation(value = "传入wosnid(条码)") @ApiOperation(value = "传入wosnid(条码)")
@RequestMapping(value = "/getWosngzInfo", method = RequestMethod.POST) @RequestMapping(value = "/getWosngzInfo", method = RequestMethod.POST)
@ResponseBody @ResponseBody
......
...@@ -124,4 +124,5 @@ public interface GpfkService extends BaseEditService { ...@@ -124,4 +124,5 @@ public interface GpfkService extends BaseEditService {
public FkVO gzfk(FkCondition fkCondition); public FkVO gzfk(FkCondition fkCondition);
/** 科威尔mes工票反馈重写--end */ /** 科威尔mes工票反馈重写--end */
} }
package com.gavel.kwell.service; package com.gavel.kwell.service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gavel.common.base.service.BaseEditService; import com.gavel.common.base.service.BaseEditService;
import com.gavel.kwell.vo.UWosnCondition; import com.gavel.kwell.vo.UWosnCondition;
import com.gavel.kwell.vo.UWosnVO; import com.gavel.kwell.vo.UWosnVO;
...@@ -17,4 +20,6 @@ public interface UWosnService extends BaseEditService { ...@@ -17,4 +20,6 @@ public interface UWosnService extends BaseEditService {
public boolean queryIfHasPrint(String id); public boolean queryIfHasPrint(String id);
public void exportProductFlow(HttpServletRequest request,HttpServletResponse response,String wosnid);
} }
...@@ -32,6 +32,7 @@ import com.gavel.common.utils.NumberUtils; ...@@ -32,6 +32,7 @@ import com.gavel.common.utils.NumberUtils;
import com.gavel.common.utils.StringUtils; import com.gavel.common.utils.StringUtils;
import com.gavel.common.utils.ThreadContext; import com.gavel.common.utils.ThreadContext;
import com.gavel.common.utils.UserInfoUtil; import com.gavel.common.utils.UserInfoUtil;
import com.gavel.framework.service.FrameService;
import com.gavel.framework.utils.JwtUtil; import com.gavel.framework.utils.JwtUtil;
import com.gavel.gygl.persistent.Bzgx; import com.gavel.gygl.persistent.Bzgx;
import com.gavel.gygl.service.BzgxService; import com.gavel.gygl.service.BzgxService;
...@@ -101,6 +102,8 @@ public class GpfkServiceImpl extends BaseEditServiceImpl implements GpfkService ...@@ -101,6 +102,8 @@ public class GpfkServiceImpl extends BaseEditServiceImpl implements GpfkService
@Autowired @Autowired
private GphyDao gphyDao; private GphyDao gphyDao;
@Autowired
private FrameService frameService;
@Autowired @Autowired
private CommonService commonService; private CommonService commonService;
...@@ -844,8 +847,9 @@ public class GpfkServiceImpl extends BaseEditServiceImpl implements GpfkService ...@@ -844,8 +847,9 @@ public class GpfkServiceImpl extends BaseEditServiceImpl implements GpfkService
addReturnData(Constants.UserInfo.TOKEN, token); addReturnData(Constants.UserInfo.TOKEN, token);
addReturnData("roles", roles); addReturnData("roles", roles);
UserInfoUtil.tokenUserMap.put(token, userInfo); UserInfoUtil.tokenUserMap.put(token, userInfo);
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(StringUtils.upperCase(user.getUserid()), user.getPassword()); frameService.login(user.getUserid(), user.getPassword());
SecurityUtils.getSubject().login(usernamePasswordToken); // UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(StringUtils.upperCase(user.getUserid()), user.getPassword());
// SecurityUtils.getSubject().login(usernamePasswordToken);
BzgxVO bzgxVO= bzgxVOs.get(0); BzgxVO bzgxVO= bzgxVOs.get(0);
if(StringUtils.isNotEmpty(YymkFKEnum.getNameById(bzgxVO.getGxlx()))) { if(StringUtils.isNotEmpty(YymkFKEnum.getNameById(bzgxVO.getGxlx()))) {
YymkCondition yymkCondition = new YymkCondition(); YymkCondition yymkCondition = new YymkCondition();
......
package com.gavel.kwell.service.impl; package com.gavel.kwell.service.impl;
import com.gavel.common.base.service.impl.BaseEditServiceImpl; import com.gavel.common.base.service.impl.BaseEditServiceImpl;
import com.gavel.common.utils.DateUtils;
import com.gavel.common.utils.NumberUtils; import com.gavel.common.utils.NumberUtils;
import com.gavel.common.utils.StringUtils;
import com.gavel.kwell.dao.UWosnDao; import com.gavel.kwell.dao.UWosnDao;
import com.gavel.kwell.service.GpfkService;
import com.gavel.kwell.service.GphyService;
import com.gavel.kwell.service.UWosnService; import com.gavel.kwell.service.UWosnService;
import com.gavel.kwell.utils.HzGylxEnum;
import com.gavel.kwell.vo.GpWoCondition;
import com.gavel.kwell.vo.GpfkVO;
import com.gavel.kwell.vo.GphyCondition;
import com.gavel.kwell.vo.GphyVO;
import com.gavel.kwell.vo.UWosnCondition; import com.gavel.kwell.vo.UWosnCondition;
import com.gavel.kwell.vo.UWosnVO; import com.gavel.kwell.vo.UWosnVO;
import com.gavel.kwell.vo.WosngzVO;
import com.gavel.persistence.sql.RecordSet; import com.gavel.persistence.sql.RecordSet;
import com.gavel.wo.persistent.Wosn; import com.gavel.wo.persistent.Wosn;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -20,6 +49,10 @@ public class UWosnServiceImpl extends BaseEditServiceImpl implements UWosnServic ...@@ -20,6 +49,10 @@ public class UWosnServiceImpl extends BaseEditServiceImpl implements UWosnServic
@Autowired @Autowired
private UWosnDao uwosnDao; private UWosnDao uwosnDao;
@Autowired
private GpfkService gpfkService;
@Autowired
private GphyService gphyService;
@Override @Override
public void initService() { public void initService() {
...@@ -46,4 +79,137 @@ public class UWosnServiceImpl extends BaseEditServiceImpl implements UWosnServic ...@@ -46,4 +79,137 @@ public class UWosnServiceImpl extends BaseEditServiceImpl implements UWosnServic
Integer res = uwosnDao.queryHasPringCount(id); Integer res = uwosnDao.queryHasPringCount(id);
return NumberUtils.Greater(res,0); return NumberUtils.Greater(res,0);
} }
@Override
public void exportProductFlow(HttpServletRequest request,HttpServletResponse response,String wosnid) {
Resource resource = new ClassPathResource("static/model/生产工单.xlsx");
FileInputStream fs = null;
XSSFWorkbook wb =null;
OutputStream outputStream =null;
try {
File file = resource.getFile();
fs = new FileInputStream(file);
wb= new XSSFWorkbook(fs);
List<WosngzVO> wosngxList = null;
if(StringUtils.isNotEmpty(wosnid)) {
GpWoCondition gpWoCondition =new GpWoCondition();
gpWoCondition.setWosnid(wosnid);
RecordSet<WosngzVO> records = gpfkService.queryWosngz(gpWoCondition);
wosngxList = records.getRecords();
}
if(wosngxList!=null&&wosngxList.size()>0) {
XSSFSheet sheet = wb.getSheetAt(0);
WosngzVO wosngx=wosngxList.get(0);
List<GpfkVO> gpfkVOList = gpfkService.queryWosngzByWosnid(wosnid);
//获取excel产品名称和产品规格列
XSSFRow row3 = sheet.getRow(2);
XSSFCell wlxxNameCell = row3.getCell(2);
wlxxNameCell.setCellValue(wosngx.getWlxxName());
XSSFCell wlggCell = row3.getCell(5);
wlggCell.setCellValue(wosngx.getWlxxGg());
//获取excel生产订单和生产日期列
XSSFRow row4 = sheet.getRow(3);
XSSFCell woDjCell = row4.getCell(2);
woDjCell.setCellValue(wosngx.getDjid());
XSSFCell worqCell = row4.getCell(5);
if(gpfkVOList!=null&&gpfkVOList.size()>0) {
worqCell.setCellValue(DateUtils.formatDate(gpfkVOList.get(0).getFksj()));
}
//获取excel序列号列
XSSFRow row5 = sheet.getRow(4);
XSSFCell wosnCell = row5.getCell(2);
wosnCell.setCellValue(wosnid);
//遍历反馈数据
if(gpfkVOList!=null&&gpfkVOList.size()>0) {
//设置列样式
XSSFCellStyle cellStyle = wb.createCellStyle();
//设置单元格边框
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderTop(BorderStyle.THIN);
//设置居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
for(int i=0;i<gpfkVOList.size();i++) {
XSSFRow row = sheet.createRow(6 + i);
XSSFCell bzCell = row.createCell(1);
bzCell.setCellStyle(cellStyle);
XSSFCell gxCell = row.createCell(2);
gxCell.setCellStyle(cellStyle);
XSSFCell zynrCell = row.createCell(3);
zynrCell.setCellStyle(cellStyle);
XSSFCell zyygCell = row.createCell(4);
zyygCell.setCellStyle(cellStyle);
XSSFCell zysjCell = row.createCell(5);
zysjCell.setCellStyle(cellStyle);
if(StringUtils.isNotEmpty(gpfkVOList.get(i).getBzgxGxlx())) {
String id =HzGylxEnum.getIdByName(gpfkVOList.get(i).getBzgxGxlx());
bzCell.setCellValue(id);
}
if(StringUtils.isNotEmpty(gpfkVOList.get(i).getBzgxName())) {
gxCell.setCellValue(gpfkVOList.get(i).getBzgxName());
}
if(StringUtils.isNotEmpty(gpfkVOList.get(i).getId())) {
GphyCondition condition = new GphyCondition();
condition.setMid(gpfkVOList.get(i).getId());
List<GphyVO> gphyVOList = gphyService.query(condition).getRecords();
StringBuilder cellValue = new StringBuilder("");
if(gphyVOList!=null&&gphyVOList.size()>0) {
cellValue.append("物料名称:");
cellValue.append(gphyVOList.get(0).getWlxxName());
cellValue.append(";");
cellValue.append("物料规格:");
cellValue.append(gphyVOList.get(0).getWlxxGg());
cellValue.append(";");
cellValue.append("物料数量:");
cellValue.append(gphyVOList.get(0).getZpsl());
cellValue.append("。");
}
else {
if(StringUtils.isNotEmpty(gpfkVOList.get(i).getHgbz())&&gpfkVOList.get(i).getHgbz().equals("Y")) {
cellValue.append("合格");
}
else {
cellValue.append("不合格");
}
}
zynrCell.setCellValue(cellValue.toString());
}
if(StringUtils.isNotEmpty(gpfkVOList.get(i).getFkr())) {
zyygCell.setCellValue(gpfkVOList.get(i).getFkr());
}
if(gpfkVOList.get(i).getFksj()!=null) {
zysjCell.setCellValue(DateUtils.formatDate(gpfkVOList.get(i).getFksj()));
}
}
}
}
//3.将Excel文件通过Response输出到前端
outputStream = response.getOutputStream();
// 清空response
response.reset();
response.setContentType("application/vnd.ms-excel");
// response.setContentType("application/msexcel");//设置生成的文件类型
response.setCharacterEncoding("UTF-8");//设置文件头编码方式和文件名
String filename = wosnid+"生产工单流程.xlsx";
response.setHeader("Content-Disposition", "attachment; "
+ " filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1"));
String origin = request.getHeader("Origin");
response.addHeader("Access-Control-Allow-Origin", origin);
wb.write(outputStream);
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
wb.close();
outputStream.close();
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }
...@@ -54,4 +54,14 @@ public enum HzGylxEnum { ...@@ -54,4 +54,14 @@ public enum HzGylxEnum {
} }
return list; return list;
} }
public static String getIdByName(String name) {
String id = "";
for (HzGylxEnum e : HzGylxEnum.values()) {
if(e.getId().equals(name)) {
id = e.getName();
}
}
return id;
}
} }
...@@ -4,8 +4,9 @@ ...@@ -4,8 +4,9 @@
<div id="wosngzTable-toolbar" class="gui-toolbar" data-options="grid:{type:'datagrid',id:'wosngzTable'}"> <div id="wosngzTable-toolbar" class="gui-toolbar" data-options="grid:{type:'datagrid',id:'wosngzTable'}">
<div class="navbar-toolbar"> <div class="navbar-toolbar">
<a class="toolbar-print toolbar" href="javascript:void(0)"></a> <a class="toolbar-print toolbar" href="javascript:void(0)"></a>
<a class="toolbar-export toolbar" href="javascript:void(0)"></a> <!-- <a class="toolbar-export toolbar" href="javascript:void(0)"></a> -->
<a class="toolbar-gpmx toolbar" href="javascript:void(0)"></a> <a class="toolbar-gpmx toolbar" href="javascript:void(0)"></a>
<a class="toolbar-exportxq toolbar" href="javascript:void(0)"></a>
</div> </div>
<div class="form-sub"> <div class="form-sub">
<form class="query-criteria"> <form class="query-criteria">
...@@ -211,5 +212,17 @@ ...@@ -211,5 +212,17 @@
}, },
}); });
$("#wosngzTable-toolbar").find('.toolbar-exportxq').iMenubutton({
iconCls:"fa fa-file-excel-o",
text:'导出工单',
onClick:function(){
var row=$('#kwellWosngz').find(".toolbar-table").datagrid("getSelected");
if(!row){
gas.showTipsWarning("请选择一条数据");
return false
}
HTTP.download("kmes/wosngz/exportxq",{wosnid:$('#kwellWosngz').find(".toolbar-table").datagrid("getSelected").wosnCode},"post");
},
});
}) })
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment