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.WaitPakInCondition;
|
import com.slcf.pojo.WaitPakInBean;
|
import com.slcf.pojo.MatCodeBean;
|
import com.slcf.pojo.SysLogBean;
|
import com.slcf.service.WaitPakInService;
|
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 2018年11月17日
|
*/
|
@Controller
|
@RequestMapping("/work")
|
public class WaitPakInController {
|
|
@Resource
|
WaitPakInService waitPakInService;
|
@Autowired
|
SysLogService sysLogService;
|
@Autowired
|
MatCodeService matCodeService;
|
@Autowired
|
RoleService roleService;
|
|
@RequestMapping("/goWaitPakIn.action")
|
public String goWaitPakInPage(HttpServletRequest request){
|
try {
|
String rid = request.getSession().getAttribute("ROLEID").toString();
|
String authCode = roleService.getAuthListByRoleMenu(Integer.parseInt(rid),
|
AuthorityCode.WaitPakInCode);
|
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("goWaitPakIn.action");
|
sysLog.setTts_keyname("访问:入库通知档");
|
sysLog.setModi_user(user.getUser_account());
|
sysLogService.insertSysLog(sysLog);
|
}catch (Exception e) {
|
System.out.println(e.getMessage());
|
}
|
return "waitPakIn";
|
}
|
|
/**
|
* 添加
|
* @param waitPakIn
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/addWaitPakIn.action")
|
public Integer insertWaitPakIn(WaitPakInBean waitPakIn,HttpServletRequest request){
|
int result=0;
|
try {
|
UserBean user=(UserBean)request.getSession().getAttribute("USER");
|
if(waitPakIn.getSheet_no()==null || waitPakIn.getSheet_no().equals("")) {
|
int random = (int)(Math.random()*900 + 100);
|
String seq = Integer.toString(random);
|
String sheet_no = DateTimeUtil.getStringDateTime(14);
|
waitPakIn.setSheet_no(sheet_no+seq);
|
}
|
waitPakIn.setModi_user(user.getUser_account());
|
result = waitPakInService.insertWaitPakIn(waitPakIn);
|
|
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("addWaitPakIn.action");
|
sysLog.setTts_keyname("插入通知档:" + waitPakIn.getSheet_no() + "-" + waitPakIn.getMat_no());
|
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("/waitPakInList.action")
|
public Map<String,Object> queryWaitPakInListByPages(WaitPakInCondition waitPakInCon){
|
Map<String,Object>map=waitPakInService.queryWaitPakInList(waitPakInCon);
|
return map;
|
}
|
|
/**
|
* 验证物料编号是否存在
|
* @param did
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/checkCode.action")
|
public Map<String,Object> checkMatCode(@RequestParam("did")String id){
|
Map<String,Object> map=new HashMap<String, Object>();
|
// 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("/queryWaitPakInById.action")
|
// public WaitPakInBean queryWaitPakInById(@RequestParam("sheet_no")String sheet_no,
|
// @RequestParam("mat_no")String mat_no,HttpServletRequest request){
|
public WaitPakInBean queryWaitPakInById(WaitPakInBean waitPakIn,HttpServletRequest request){
|
try {
|
return waitPakInService.queryWaitPakInById(waitPakIn);
|
}catch(Exception e) {
|
System.out.println(e.getMessage());
|
return null;
|
}
|
}
|
|
// /**
|
// * 验证工作代号是否唯一
|
// * @param did
|
// * @return
|
// */
|
// @ResponseBody
|
// @RequestMapping("/checkWaitPakIn.action")
|
// public Map<String,Object> checkWaitPakIn(@RequestParam("did")int id){
|
// Map<String,Object> map=new HashMap<String, Object>();
|
//// boolean flag=userService.validUserAccount(account, uid);
|
// try {
|
// WaitPakInBean WaitPakIn = WaitPakInService.queryWaitPakInById(id);
|
// if(WaitPakIn==null){
|
// map.put("msg", "代号可用");
|
// }else{
|
// map.put("msg", "代号不可用");
|
// }
|
// }catch(Exception e) {
|
// System.out.println(e.getMessage());
|
// }
|
// return map;
|
// }
|
|
/**
|
* 手工完结入库通知档,反馈ERP
|
* @param WaitPakInEntity
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/overWaitPakIn.action")
|
public Integer overWaitPakIn(WaitPakInBean waitPakIn,HttpServletRequest request){
|
int result = 0;
|
try {
|
UserBean user=(UserBean)request.getSession().getAttribute("USER");
|
waitPakIn.setModi_user(user.getUser_account());
|
|
WaitPakInBean waitPakInBean = waitPakInService.queryWaitPakInById(waitPakIn);
|
String httpUrl = Constants.SAP_URL + "/sap/opu/odata/SAP/Z_WM_H5_SRV/AsrsTrSet";
|
result = sendPakInStatus(httpUrl,waitPakInBean);
|
// result=waitPakInService.upWaitPakIn(waitPakIn);
|
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("upWaitPakIn.action");
|
sysLog.setTts_keyname("修改入库通知档:" + waitPakIn.getSheet_no());
|
sysLog.setModi_user(user.getUser_account());
|
sysLogService.insertSysLog(sysLog);
|
}
|
}catch(Exception e) {
|
System.out.println(e.getMessage());
|
}
|
return result;
|
}
|
|
/**
|
* 入库完成,调用sap接口上传完成信息
|
*/
|
private int sendPakInStatus(String httpUrl,WaitPakInBean waitPakIn) {
|
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<String, List<String>> 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",waitPakIn.getLgnum());
|
json.put("tbnum",Long.toString(waitPakIn.getTbnum()));
|
json.put("tbpos",Integer.toString(waitPakIn.getTbpos()));
|
json.put("zmatid",waitPakIn.getZmatid());
|
|
json.put("anfme",Double.toString(waitPakIn.getAnfme()));
|
json.put("altme",waitPakIn.getAltme());
|
json.put("nltyp","A01");
|
json.put("nlber","001");
|
json.put("nlpla",waitPakIn.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("Accept-Language","zh-CN,zh;q=0.9,en;q=0.8");
|
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 WaitPakInEntity
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/upWaitPakIn.action")
|
public Integer upWaitPakIn(WaitPakInBean waitPakIn,HttpServletRequest request){
|
int result = 0;
|
try {
|
UserBean user=(UserBean)request.getSession().getAttribute("USER");
|
waitPakIn.setModi_user(user.getUser_account());
|
|
result=waitPakInService.upWaitPakIn(waitPakIn);
|
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("upWaitPakIn.action");
|
sysLog.setTts_keyname("修改入库通知档:" + waitPakIn.getSheet_no());
|
sysLog.setModi_user(user.getUser_account());
|
sysLogService.insertSysLog(sysLog);
|
}
|
}catch(Exception e) {
|
System.out.println(e.getMessage());
|
}
|
return result;
|
}
|
|
/**
|
* 删除信息
|
* @param id
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/delWaitPakIn.action")
|
public int delWaitPakIn(@RequestParam("lgnum")String lgnum,@RequestParam("tbnum")int tbnum,
|
@RequestParam("tbpos")int tbpos,@RequestParam("zmatid")String zmatid,HttpServletRequest request){
|
int result = 0;
|
try {
|
WaitPakInBean waitPakIn = new WaitPakInBean();
|
waitPakIn.setLgnum(lgnum);
|
waitPakIn.setTbnum(tbnum);
|
waitPakIn.setTbpos(tbpos);
|
waitPakIn.setZmatid(zmatid);
|
result=waitPakInService.delWaitPakIn(waitPakIn);
|
|
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("delWaitPakIn.action");
|
sysLog.setTts_keyname("删除通知档资料:" + lgnum + "-" + tbnum);
|
sysLog.setModi_user(user.getUser_account());
|
sysLogService.insertSysLog(sysLog);
|
}
|
}catch(Exception e) {
|
System.out.println(e.getMessage());
|
}
|
return result;
|
}
|
|
/**
|
* 查询所有
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/getWaitPakIn.action")
|
public List<WaitPakInBean> getWaitPakIn(){
|
try {
|
return waitPakInService.getWaitPakInList();
|
}catch(Exception e) {
|
System.out.println(e.getMessage());
|
return null;
|
}
|
}
|
|
/**
|
* 通知档资料转历史档
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("/movePakInToLog.action")
|
public int movePakInToLog(@RequestParam("ids")String[] sheetNos,
|
@RequestParam("matStr")String[] matNos,HttpServletRequest request){
|
int result = 0;
|
try {
|
String sheet_no="", mat_no="";
|
for(int i=0;i<sheetNos.length;i++) {
|
WaitPakInBean waitPakIn = new WaitPakInBean();
|
waitPakIn.setSheet_no(sheetNos[i]);
|
waitPakIn.setMat_no(matNos[i]);
|
result=waitPakInService.moveToLog(waitPakIn);
|
}
|
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("movePakInToLog.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;
|
}
|
|
}
|