package com.slcf.controller; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; 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 com.slcf.pojo.UserBean; import com.slcf.bean.WaitCheckCondition; import com.slcf.pojo.WaitCheckBean; import com.slcf.pojo.MatCodeBean; import com.slcf.pojo.SysLogBean; import com.slcf.service.WaitCheckService; import com.slcf.util.AuthorityCode; import com.slcf.util.Constants; import com.slcf.util.DateTimeUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import sun.misc.BASE64Encoder; import com.slcf.service.MatCodeService; import com.slcf.service.RoleService; import com.slcf.service.SysLogService; /** * 盘点通知档控制器层 * @author admin * @date 2020年1月14日 */ @Controller @RequestMapping("/work") public class WaitCheckController { @Resource WaitCheckService waitCheckService; @Autowired SysLogService sysLogService; @Autowired MatCodeService matCodeService; @Autowired RoleService roleService; @RequestMapping("/goWaitCheck.action") public String goWaitCheckPage(HttpServletRequest request){ try { String rid = request.getSession().getAttribute("ROLEID").toString(); String authCode = roleService.getAuthListByRoleMenu(Integer.parseInt(rid), AuthorityCode.WaitCheckCode); request.getSession().setAttribute("AUTHCODE",authCode); // 插入日志 UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("goWaitCheck.action"); sysLog.setTts_keyname("访问:盘点通知档"); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); }catch (Exception e) { System.out.println(e.getMessage()); } return "waitCheck"; } /** * 添加 * @param waitCheck * @param request * @return */ @ResponseBody @RequestMapping("/addWaitCheck.action") public Integer insertWaitCheck(WaitCheckBean waitCheck,HttpServletRequest request){ int result=0; try { UserBean user=(UserBean)request.getSession().getAttribute("USER"); // if(waitCheck.getSheet_no()==null || waitCheck.getSheet_no().equals("")) { // int random = (int)(Math.random()*900 + 100); // String seq = Integer.toString(random); // String sheet_no = DateTimeUtil.getStringDateTime(14); // waitCheck.setSheet_no(sheet_no+seq); // } // waitCheck.setModi_user(user.getUser_account()); result = waitCheckService.insertWaitCheck(waitCheck); if(result>0) { // 插入日志 // UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("addWaitCheck.action"); sysLog.setTts_keyname("插入通知档:" + waitCheck.getLgnum() + "-" + waitCheck.getIvnum()); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); } }catch(Exception e) { System.out.println(e.getMessage()); result=0; } return result; } /** * 分页查询所有 * @param pageNumber * @param pageSize * @return */ @ResponseBody @RequestMapping("/waitCheckList.action") public Map queryWaitCheckListByPages(WaitCheckCondition waitCheckCon){ Mapmap=waitCheckService.queryWaitCheckList(waitCheckCon); return map; } /** * 验证物料编号是否存在 * @param did * @return */ @ResponseBody @RequestMapping("/checkMatCode.action") public Map checkMatCode(@RequestParam("did")String id){ Map map=new HashMap(); // boolean flag=userService.validUserAccount(account, uid); try { MatCodeBean matCode = matCodeService.queryMatCodeById(id); if(matCode!=null){ map.put("msg", "代号可用"); map.put("mat_name_add",matCode.getMat_name()); }else{ map.put("msg", "物料号不存在"); } }catch(Exception e) { System.out.println(e.getMessage()); } return map; } /** * 根据id查询信息 * @param id * @return */ @ResponseBody @RequestMapping("/queryWaitCheckById.action") // public WaitCheckBean queryWaitCheckById(@RequestParam("sheet_no")String sheet_no, // @RequestParam("mat_no")String mat_no,HttpServletRequest request){ public WaitCheckBean queryWaitCheckById(WaitCheckBean waitCheck,HttpServletRequest request){ try { return waitCheckService.queryWaitCheckById(waitCheck); }catch(Exception e) { System.out.println(e.getMessage()); return null; } } // /** // * 验证工作代号是否唯一 // * @param did // * @return // */ // @ResponseBody // @RequestMapping("/checkWaitCheck.action") // public Map checkWaitCheck(@RequestParam("did")int id){ // Map map=new HashMap(); //// boolean flag=userService.validUserAccount(account, uid); // try { // WaitCheckBean WaitCheck = WaitCheckService.queryWaitCheckById(id); // if(WaitCheck==null){ // map.put("msg", "代号可用"); // }else{ // map.put("msg", "代号不可用"); // } // }catch(Exception e) { // System.out.println(e.getMessage()); // } // return map; // } /** * 手工完结入库通知档,反馈ERP * @param WaitCheckEntity * @return */ @ResponseBody @RequestMapping("/overWaitCheck.action") public Integer overWaitCheck(WaitCheckBean waitCheck,HttpServletRequest request){ int result = 0; try { UserBean user=(UserBean)request.getSession().getAttribute("USER"); waitCheck.setModi_user(user.getUser_account()); WaitCheckBean waitCheckBean = waitCheckService.queryWaitCheckById(waitCheck); String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_SRV/AsrsTrSet"; result = sendCheckStatus(httpUrl,waitCheckBean); // result=waitCheckService.upWaitCheck(waitCheck); if(result>0) { // 插入日志 // UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("upWaitCheck.action"); sysLog.setTts_keyname("修改盘点通知档:" + waitCheck.getLgnum()); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); } }catch(Exception e) { System.out.println(e.getMessage()); } return result; } /** * 入库完成,调用sap接口上传完成信息 */ private int sendCheckStatus(String httpUrl,WaitCheckBean waitCheck) { int result = 0; //// String token = getXCsrfToken(httpUrl); // String input = Constants.SAP_USER + ":" + Constants.SAP_PASSWORD;//"ZHANGX:654321"; // BASE64Encoder base = new BASE64Encoder(); // String encodedPassword; // String token=""; // String session_value=""; // try { // encodedPassword = base.encode(input.getBytes("UTF-8")); // URL url1 = new URL(httpUrl); // HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); // connection1.setDoOutput(true); // connection1.setDoInput(true); // connection1.setRequestMethod("GET"); // connection1.setRequestProperty("Authorization", "Basic " + encodedPassword); // connection1.setRequestProperty("x-csrf-token","Fetch"); // String sessionCookie = connection1.getHeaderField("Set-Cookie"); // String[] sessionId = sessionCookie.split(";"); // session_value = sessionId[0]; // token = connection1.getHeaderField("x-csrf-token"); //// Map> map = connection1.getHeaderFields(); //// token = map.get("x-csrf-token").toString(); // } catch (Exception e1) { // e1.printStackTrace(); // } // // try { // JSONObject jsObj = new JSONObject(); // JSONArray arr = new JSONArray(); // for(int i=0;i<1;i++) { // JSONObject json = new JSONObject(); // json.put("lgnum",waitCheck.getLgnum()); // json.put("tbnum",Long.toString(waitCheck.getTbnum())); // json.put("tbpos",Integer.toString(waitCheck.getTbpos())); // json.put("zmatid",waitCheck.getZmatid()); // // json.put("anfme",Double.toString(waitCheck.getAnfme())); // json.put("altme",waitCheck.getAltme()); // json.put("nltyp","A01"); // json.put("nlber","001"); // json.put("nlpla",waitCheck.getLoc_no()); // arr.add(json); // } // jsObj.put("item", arr); // byte[] buff = jsObj.toString().getBytes(); // int buffLen = buff.length; // //创建连接 // try { //// String input = "ZHANGX:654321"; //// BASE64Encoder base = new BASE64Encoder(); //// String encodedPassword = base.encode(input.getBytes("UTF-8")); // // URL url = new URL(httpUrl); // HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // connection.setDoOutput(true); // connection.setDoInput(true); // connection.setRequestMethod("POST"); // // connection.setUseCaches(false); // // connection.setInstanceFollowRedirects(true); //// connection.setRequestProperty("Content-Type","text/json;charset=gb2312"); // connection.setRequestProperty("Cookie", session_value); // connection.setRequestProperty("Content-Type","application/json"); // connection.setRequestProperty("Accept","application/json"); // connection.setRequestProperty("Content-Length","" + buffLen); //// connection.setRequestProperty("Authorization", "Basic " + encodedPassword); // connection.setRequestProperty("x-csrf-token",token); // // //POST请求 // OutputStream out = connection.getOutputStream(); // out.write(buff); // out.close(); // // //读取响应 // BufferedReader reader = new BufferedReader(new InputStreamReader( // connection.getInputStream())); // String lines; // StringBuffer sb = new StringBuffer(""); // while ((lines = reader.readLine()) != null) { // lines = new String(lines.getBytes(), "utf-8"); // sb.append(lines); // } // System.out.println(sb.toString()); // result = 1; // }catch (Exception e) { // System.out.println(e.getMessage()); // } // }catch (Exception e) { // System.out.println(e.getMessage()); // } return result; } /** * 修改信息 * @param WaitCheckEntity * @return */ @ResponseBody @RequestMapping("/upWaitCheck.action") public Integer upWaitCheck(WaitCheckBean waitCheck,HttpServletRequest request){ int result = 0; try { UserBean user=(UserBean)request.getSession().getAttribute("USER"); waitCheck.setModi_user(user.getUser_account()); result=waitCheckService.upWaitCheck(waitCheck); if(result>0) { // 插入日志 // UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("upWaitCheck.action"); sysLog.setTts_keyname("修改盘点通知档:" + waitCheck.getLgnum()); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); } }catch(Exception e) { System.out.println(e.getMessage()); } return result; } /** * 删除信息 * @param id * @return */ @ResponseBody @RequestMapping("/delWaitCheck.action") public int delWaitCheck(WaitCheckBean waitCheckBean,HttpServletRequest request){ int result = 0; try { result=waitCheckService.delWaitCheck(waitCheckBean); if(result>0) { // 插入日志 UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("delWaitCheck.action"); sysLog.setTts_keyname("删除通知档资料:" + waitCheckBean.getLgnum() + "-" + waitCheckBean.getIvnum()); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); } }catch(Exception e) { System.out.println(e.getMessage()); } return result; } /** * 查询所有 * @return */ @ResponseBody @RequestMapping("/getWaitCheck.action") public List getWaitCheck(){ try { return waitCheckService.getWaitCheckList(); }catch(Exception e) { System.out.println(e.getMessage()); return null; } } /** * 通知档资料转历史档 * @return */ @ResponseBody @RequestMapping("/moveCheckToLog.action") public int moveCheckToLog(@RequestParam("ids")String[] sheetNos, @RequestParam("matStr")String[] matNos,HttpServletRequest request){ int result = 0; try { String sheet_no="", mat_no=""; for(int i=0;i0) { // 插入日志 UserBean user = (UserBean) request.getSession().getAttribute("USER"); SysLogBean sysLog = new SysLogBean(); sysLog.setLogin_no(user.getUser_account()); sysLog.setMachine_ip(request.getRemoteAddr()); sysLog.setForm_no("moveCheckToLog.action"); sysLog.setTts_keyname("通知档资料转历史档:" + sheet_no + "-" + mat_no); sysLog.setModi_user(user.getUser_account()); sysLogService.insertSysLog(sysLog); } }catch(Exception e) { System.out.println(e.getMessage()); } return result; } }