package com.slcf.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import com.slcf.bean.LocDetailCondition;
|
import com.slcf.dao.LocDetailDao;
|
import com.slcf.dao.LocationDao;
|
import com.slcf.dao.MatCodeDao;
|
import com.slcf.dao.StationDao;
|
import com.slcf.dao.WaitPakInDao;
|
import com.slcf.dao.WaitPakOutDao;
|
import com.slcf.dao.WorkFileDao;
|
import com.slcf.dao.WorkNoDao;
|
import com.slcf.pojo.WorkMastBean;
|
import com.slcf.service.OperateService;
|
import com.slcf.service.WaitPakOutService;
|
import com.slcf.util.CommonMethod;
|
import com.slcf.util.DateTimeUtil;
|
import com.slcf.pojo.LocDetailBean;
|
import com.slcf.pojo.LocationBean;
|
import com.slcf.pojo.MatCodeBean;
|
import com.slcf.pojo.StationBean;
|
import com.slcf.pojo.UserBean;
|
import com.slcf.pojo.WaitPakInBean;
|
import com.slcf.pojo.WaitPakOutBean;
|
import com.slcf.pojo.WorkDetailBean;
|
|
/**
|
* 入出库作业接口实现
|
* @author admin
|
* @date 2018年12月4日
|
*/
|
@Service
|
public class OperateServiceImpl implements OperateService {
|
|
@Autowired
|
WorkFileDao workFileDao;
|
@Autowired
|
MatCodeDao matCodeDao;
|
@Autowired
|
WaitPakInDao waitPakInDao;
|
@Autowired
|
LocationDao locationDao;
|
@Autowired
|
StationDao stationDao;
|
@Autowired
|
WorkNoDao workNoDao;
|
@Autowired
|
LocDetailDao locDetailDao;
|
@Autowired
|
WaitPakOutDao waitPakOutDao;
|
@Autowired
|
WaitPakOutService waitPakOutService;
|
|
/**
|
* 入库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertPakStoreIn(WorkMastBean workMast,String[] detls,
|
StationBean station,UserBean user) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
//插入workDetail
|
if(detls!=null) {
|
for(String str : detls) {
|
String[] arr = str.split(";");
|
if(arr!=null && arr.length>2) {
|
String sheet_no = arr[0];
|
String mat_no = arr[1];
|
int store_qty = Integer.parseInt(arr[2]);
|
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(workMast.getWrk_no());
|
workDetl.setMat_no(mat_no);
|
workDetl.setIo_time(workMast.getIo_time());
|
workDetl.setModi_user(user.getUser_account());
|
int result=0;
|
WorkDetailBean detl = workFileDao.getWorkDetlByIdNo(workMast.getWrk_no(),mat_no);
|
if(detl==null) {//插入
|
workDetl.setQty(store_qty);
|
result = workFileDao.insertWorkDetail(workDetl);
|
}else {//修改,数量相加
|
workDetl.setQty(store_qty + detl.getQty());
|
result = workFileDao.upWorkDetail(workDetl);
|
}
|
|
if(result>0) {
|
WaitPakInBean bean = new WaitPakInBean();
|
bean.setSheet_no(sheet_no);
|
bean.setMat_no(mat_no);
|
WaitPakInBean waitPakIn = waitPakInDao.getWaitPakInById(bean);
|
if(waitPakIn!=null) {
|
int in_qty = waitPakIn.getIn_qty() + store_qty;
|
waitPakIn.setIn_qty(in_qty);
|
if(in_qty>=waitPakIn.getQty()) {
|
waitPakIn.setIo_status("Y");
|
}
|
result = waitPakInDao.upWaitPakIn(waitPakIn);
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "查询通知档待入库资料失败:单号--" + sheet_no + "\n物料编号--" + mat_no);
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
}
|
}
|
else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
station.setWrk_no(workMast.getWrk_no());
|
station.setIn_enable(station.getIn_enable());
|
station.setOut_enable(station.getOut_enable());
|
station.setBarcode(station.getBarcode());
|
station.setDec_desc(station.getDec_desc());
|
station.setModi_user(user.getUser_account());
|
result = stationDao.upStation(station);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "更新设备档失败:" + station.getDev_no());
|
return map;
|
}
|
|
LocationBean location = locationDao.getLocationById(workMast.getLoc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("O")) {
|
location.setLoc_sts("S");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getLoc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getLoc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getLoc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动入库失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 空托盘入库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertEmptyStoreIn(WorkMastBean workMast,
|
StationBean station,UserBean user) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
station.setWrk_no(workMast.getWrk_no());
|
station.setIn_enable(station.getIn_enable());
|
station.setOut_enable(station.getOut_enable());
|
station.setBarcode(station.getBarcode());
|
station.setDec_desc(station.getDec_desc());
|
station.setModi_user(user.getUser_account());
|
result = stationDao.upStation(station);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "更新设备档失败:" + station.getDev_no());
|
return map;
|
}
|
|
LocationBean location = locationDao.getLocationById(workMast.getLoc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("O")) {
|
location.setLoc_sts("S");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getLoc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getLoc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getLoc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动入库失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 空托盘出库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertemptyRetrieve(WorkMastBean workMast,String[] locs,
|
int stn_no,UserBean user, CommonMethod commonMethod) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
int result = 0;
|
//插入workDetail
|
if(locs!=null) {
|
for(String loc_no : locs) {
|
int wrk_no = commonMethod.getNewWorkNo(workNoDao.getWorkNoById(0));
|
if(wrk_no<=0) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号失败,请联系管理员");
|
return map;
|
}else {
|
WorkMastBean workFile = workFileDao.getWorkMastById(wrk_no);
|
if(workFile!=null) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号" + wrk_no + "在工作档中已存在");
|
return map;
|
}
|
}
|
|
int crn_no = Integer.parseInt(loc_no.substring(0,2));
|
crn_no = (crn_no + 1) / 2;
|
int s_staNo = commonMethod.getIoStaNo(110,crn_no,stn_no);
|
if(s_staNo<=0) {
|
map.put("code", 1);
|
map.put("msg", "获取堆垛机站点失败");
|
return map;
|
}
|
String io_time = DateTimeUtil.getStringDateTime(19);
|
workMast.setWrk_no(wrk_no);
|
workMast.setIo_time(io_time);
|
workMast.setCrn_no(crn_no);
|
workMast.setSource_sta_no(s_staNo);
|
workMast.setSta_no(stn_no);
|
workMast.setSource_loc_no(loc_no);
|
|
//插入workMast
|
result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(workMast.getSource_loc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("D")) {
|
location.setLoc_sts("R");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
}
|
}
|
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getSource_loc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动入库失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 库位移转
|
*/
|
@Transactional
|
public Map<String,Object> insertLocMove(WorkMastBean workMast,String old_loc_no,
|
String new_loc_no,UserBean user) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
LocDetailCondition locationCon = new LocDetailCondition();
|
locationCon.setLoc_no(old_loc_no);
|
List<LocDetailBean> list = locDetailDao.getLocDetailAll(locationCon);
|
//插入workDetail
|
if(list!=null && list.size()>0) {
|
for(LocDetailBean locDetail : list) {
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(workMast.getWrk_no());
|
workDetl.setMat_no(locDetail.getMat_no());
|
workDetl.setIo_time(workMast.getIo_time());
|
workDetl.setQty(locDetail.getQty());
|
// workDetl.setCtns(locDetail.getCtns());
|
// workDetl.setWt(locDetail.getWt());
|
workDetl.setModi_user(user.getUser_account());
|
int result = workFileDao.insertWorkDetail(workDetl);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}
|
}
|
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean slocation = locationDao.getLocationById(workMast.getSource_loc_no());
|
if(slocation!=null) {
|
if(slocation.getLoc_sts().equals("F") || slocation.getLoc_sts().equals("D")) {
|
slocation.setLoc_sts("R");
|
slocation.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(slocation);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约原库位状态失败:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约原库位状态失败,库位号不存在:" + workMast.getLoc_no());
|
return map;
|
}
|
}
|
|
LocationBean location = locationDao.getLocationById(workMast.getLoc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("O")) {
|
location.setLoc_sts("S");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约新库位状态失败:" + workMast.getLoc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约新库位状态失败,库位号不存在:" + workMast.getLoc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getSource_loc_no() + "-->" + workMast.getLoc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动库位移转失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 指定库位盘点作业
|
*/
|
@Transactional
|
public Map<String,Object> insertLocCheck(String value,
|
int stn_no,UserBean user, CommonMethod commonMethod) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
String loc_no = value;
|
String io_time = DateTimeUtil.getStringDateTime(19);
|
//插入workDetail
|
int wrk_no = commonMethod.getNewWorkNo(workNoDao.getWorkNoById(0));
|
if(wrk_no<=0) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号失败,请联系管理员");
|
return map;
|
}else {
|
WorkMastBean workFile = workFileDao.getWorkMastById(wrk_no);
|
if(workFile!=null) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号" + wrk_no + "在工作档中已存在");
|
return map;
|
}
|
}
|
|
LocDetailCondition locationCon = new LocDetailCondition();
|
locationCon.setLoc_no(loc_no);
|
List<LocDetailBean> list = locDetailDao.getLocDetailAll(locationCon);
|
//插入workDetail
|
if(list!=null && list.size()>0) {
|
for(LocDetailBean locDetail : list) {
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(wrk_no);
|
workDetl.setMat_no(locDetail.getMat_no());
|
workDetl.setIo_time(io_time);
|
workDetl.setQty(locDetail.getQty());
|
workDetl.setModi_user(user.getUser_account());
|
int result = workFileDao.insertWorkDetail(workDetl);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}
|
}
|
|
WorkMastBean workMast = new WorkMastBean();
|
int crn_no = Integer.parseInt(loc_no.substring(0,2));
|
crn_no = (crn_no + 1) / 2;
|
int s_staNo = commonMethod.getIoStaNo(107,crn_no,stn_no);
|
if(s_staNo<=0) {
|
map.put("code", 1);
|
map.put("msg", "获取堆垛机站点失败");
|
return map;
|
}
|
workMast.setWrk_no(wrk_no);
|
workMast.setIo_time(io_time);
|
workMast.setWrk_sts(11);
|
workMast.setIo_type(107);
|
workMast.setIo_pri(13);
|
workMast.setCrn_no(crn_no);
|
workMast.setSource_sta_no(s_staNo);
|
workMast.setSta_no(stn_no);
|
workMast.setSource_loc_no(loc_no);
|
workMast.setFull_plt("N");
|
workMast.setPicking("N");
|
workMast.setExit_mk("N");
|
workMast.setEmpty_mk("N");
|
workMast.setLink_mis("N");
|
workMast.setModi_user(user.getUser_account());
|
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(workMast.getSource_loc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("F")) {
|
location.setLoc_sts("P");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "库位号不存在:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
|
map.put("code", 0);
|
// map.put("msg", "库位号:" + workMast.getSource_loc_no());
|
map.put("msg", "");
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动盘点失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 并板作业
|
*/
|
@Transactional
|
public Map<String,Object> insertPakCombine(WorkMastBean workMast,String[] detls,
|
UserBean user) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
//插入workDetail
|
if(detls!=null) {
|
for(String str : detls) {
|
String[] arr = str.split(";");
|
if(arr!=null && arr.length>2) {
|
String sheet_no = arr[0];
|
String mat_no = arr[1];
|
int store_qty = Integer.parseInt(arr[2]);
|
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(workMast.getWrk_no());
|
workDetl.setMat_no(mat_no);
|
workDetl.setIo_time(workMast.getIo_time());
|
workDetl.setModi_user(user.getUser_account());
|
int result=0;
|
WorkDetailBean detl = workFileDao.getWorkDetlByIdNo(workMast.getWrk_no(),mat_no);
|
if(detl==null) {//插入
|
workDetl.setQty(store_qty);
|
result = workFileDao.insertWorkDetail(workDetl);
|
}else {//修改,数量相加
|
workDetl.setQty(store_qty + detl.getQty());
|
result = workFileDao.upWorkDetail(workDetl);
|
}
|
|
if(result>0) {
|
WaitPakInBean bean = new WaitPakInBean();
|
bean.setSheet_no(sheet_no);
|
bean.setMat_no(mat_no);
|
WaitPakInBean waitPakIn = waitPakInDao.getWaitPakInById(bean);
|
if(waitPakIn!=null) {
|
int in_qty = waitPakIn.getIn_qty() + store_qty;
|
waitPakIn.setIn_qty(in_qty);
|
if(in_qty>=waitPakIn.getQty()) {
|
waitPakIn.setIo_status("Y");
|
}
|
result = waitPakInDao.upWaitPakIn(waitPakIn);
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "查询通知档待入库资料失败:单号--" + sheet_no + "\n物料编号--" + mat_no);
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
}
|
}
|
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(workMast.getSource_loc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("F")) {
|
location.setLoc_sts("P");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getSource_loc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getSource_loc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动并板失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 出库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertPakRetrieve(String loc_no, String[] detls,
|
int stn_no,UserBean user, CommonMethod commonMethod) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
String io_time = DateTimeUtil.getStringDateTime(19);
|
//插入workDetail
|
int wrk_no = commonMethod.getNewWorkNo(workNoDao.getWorkNoById(1));
|
if(wrk_no<=0) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号失败,请联系管理员");
|
return map;
|
}else {
|
WorkMastBean workFile = workFileDao.getWorkMastById(wrk_no);
|
if(workFile!=null) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号" + wrk_no + "在工作档中已存在");
|
return map;
|
}
|
}
|
// int qty=0;
|
//插入workDetail
|
if(detls!=null) {
|
for(String str : detls) {
|
String[] arr = str.split(";");
|
if(arr!=null && arr.length>4) {
|
if(!loc_no.equals(arr[0])) {
|
continue;
|
}
|
String matnr = arr[1];
|
String lgnum = arr[2];
|
String tbnum = arr[3];
|
String tbpos = arr[4];
|
|
LocDetailBean locDetl = locDetailDao.getLocDetailById(loc_no,matnr);
|
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(wrk_no);
|
workDetl.setMatnr(matnr);
|
workDetl.setLgnum(lgnum);
|
workDetl.setTbnum(Integer.parseInt(tbnum));
|
workDetl.setTbpos(Integer.parseInt(tbpos));
|
workDetl.setZmatid(locDetl.getZmatid());
|
workDetl.setMaktx(locDetl.getMaktx());
|
workDetl.setWerks(locDetl.getWerks());
|
workDetl.setAnfme(locDetl.getAnfme());
|
workDetl.setAltme(locDetl.getAltme());
|
workDetl.setBname(locDetl.getBname());
|
workDetl.setZpallet(locDetl.getZpallet());
|
workDetl.setIo_time(io_time);
|
// workDetl.setQty(retrieve_qty);
|
workDetl.setModi_user(user.getUser_account());
|
int result=workFileDao.insertWorkDetail(workDetl);
|
|
if(result>0) {
|
// WaitPakOutBean waitPakOut = new WaitPakOutBean();
|
// int random = (int)(Math.random()*900 + 100);
|
// waitPakOut.setSheet_no(DateTimeUtil.getStringDateTime(14)+Integer.toString(random));
|
// waitPakOut.setMat_no(mat_no);
|
// waitPakOut.setQty(retrieve_qty);
|
// waitPakOut.setOut_qty(retrieve_qty);
|
// waitPakOut.setStatus("Y");
|
// waitPakOut.setIo_status("Y");
|
// waitPakOut.setType("ASRS");
|
// waitPakOut.setModi_user(user.getUser_account());
|
// result = waitPakOutDao.insertWaitPakOut(waitPakOut);
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
// qty = qty + retrieve_qty;
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
|
WorkMastBean workMast = new WorkMastBean();
|
int crn_no = Integer.parseInt(loc_no.substring(0,2));
|
crn_no = (crn_no + 1) / 2;
|
String loc_sts="";
|
// int stk_qty = locDetailDao.getStockQtyByLoc(loc_no);
|
|
int s_staNo = commonMethod.getIoStaNo(101,crn_no,stn_no);
|
if(s_staNo<=0) {
|
map.put("code", 1);
|
map.put("msg", "获取堆垛机站点失败");
|
return map;
|
}
|
workMast.setSource_sta_no(s_staNo);
|
workMast.setSta_no(stn_no);
|
workMast.setIo_type(101);
|
workMast.setPicking("N");
|
loc_sts = "R";
|
|
workMast.setWrk_no(wrk_no);
|
workMast.setIo_time(io_time);
|
workMast.setWrk_sts(11);
|
workMast.setIo_pri(13);
|
workMast.setCrn_no(crn_no);
|
workMast.setSource_loc_no(loc_no);
|
workMast.setFull_plt("Y");
|
workMast.setExit_mk("N");
|
workMast.setEmpty_mk("N");
|
workMast.setLink_mis("N");
|
workMast.setModi_user(user.getUser_account());
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(loc_no);
|
if(location!=null) {
|
if(location.getLoc_sts().equals("F")) {
|
location.setLoc_sts(loc_sts);
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + loc_no);
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + loc_no);
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "");
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 预约出库->出库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertPakRetrieve1(String loc_no, String[] detls,
|
int stn_no,UserBean user, CommonMethod commonMethod) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
String io_time = DateTimeUtil.getStringDateTime(19);
|
String mat_no = "";
|
//插入workDetail
|
int wrk_no = commonMethod.getNewWorkNo(workNoDao.getWorkNoById(1));
|
if(wrk_no<=0) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号失败,请联系管理员");
|
return map;
|
}else {
|
WorkMastBean workFile = workFileDao.getWorkMastById(wrk_no);
|
if(workFile!=null) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号" + wrk_no + "在工作档中已存在");
|
return map;
|
}
|
}
|
// int qty=0;
|
//插入workDetail
|
if(detls!=null) {
|
for(String str : detls) {
|
String[] arr = str.split(";");
|
if(arr!=null && arr.length>1) {
|
if(!loc_no.equals(arr[0])) {
|
continue;
|
}
|
mat_no = arr[1];
|
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(wrk_no);
|
workDetl.setMat_no(mat_no);
|
workDetl.setIo_time(io_time);
|
// workDetl.setQty(retrieve_qty);
|
workDetl.setModi_user(user.getUser_account());
|
int result=workFileDao.insertWorkDetail(workDetl);
|
|
if(result>0) {
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
// qty = qty + retrieve_qty;
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无入库明细数据");
|
return map;
|
}
|
|
WorkMastBean workMast = new WorkMastBean();
|
int crn_no = Integer.parseInt(loc_no.substring(0,2));
|
crn_no = (crn_no + 1) / 2;
|
String loc_sts="";
|
// int stk_qty = locDetailDao.getStockQtyByLoc(loc_no);
|
|
int s_staNo = commonMethod.getIoStaNo(101,crn_no,stn_no);
|
if(s_staNo<=0) {
|
map.put("code", 1);
|
map.put("msg", "获取堆垛机站点失败");
|
return map;
|
}
|
workMast.setSource_sta_no(s_staNo);
|
workMast.setSta_no(stn_no);
|
workMast.setIo_type(101);
|
workMast.setPicking("N");
|
loc_sts = "R";
|
|
workMast.setWrk_no(wrk_no);
|
workMast.setIo_time(io_time);
|
workMast.setWrk_sts(11);
|
|
WaitPakOutBean waitPakOutBean = waitPakOutService.queryWaitPakOutByMatNo(mat_no);
|
if(waitPakOutBean!=null) {
|
workMast.setIo_pri(waitPakOutBean.getCtns());
|
}
|
// workMast.setIo_pri(13);
|
workMast.setCrn_no(crn_no);
|
workMast.setSource_loc_no(loc_no);
|
workMast.setFull_plt("Y");
|
workMast.setExit_mk("N");
|
workMast.setEmpty_mk("N");
|
workMast.setLink_mis("N");
|
workMast.setModi_user(user.getUser_account());
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(loc_no);
|
if(location!=null) {
|
if(location.getLoc_sts().equals("L")) {
|
location.setLoc_sts(loc_sts);
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result>0) {
|
//更新待出库档
|
// WaitPakOutBean waitPakOutBean = waitPakOutDao.getWaitPakOutByMatNo(mat_no);
|
if(waitPakOutBean!=null) {
|
waitPakOutBean.setIo_status("2");
|
waitPakOutBean.setModi_time(io_time);
|
result=waitPakOutDao.upWaitPakOutByLocNo(waitPakOutBean);
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + loc_no);
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + loc_no);
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "");
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 手持端入库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertApiStoreIn(WorkMastBean workMast,String barcode,
|
StationBean station,UserBean user) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
//插入workDetail
|
MatCodeBean matCode = matCodeDao.getMatCodeByBarcode(barcode);
|
if(matCode!=null) {
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(workMast.getWrk_no());
|
workDetl.setMat_no(matCode.getMat_no());
|
workDetl.setIo_time(workMast.getIo_time());
|
workDetl.setModi_user(user.getUser_account());
|
int result=0;
|
result = workFileDao.insertWorkDetail(workDetl);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "条码数据为空");
|
return map;
|
}
|
|
// List<WaitPakInBean> list = waitPakInDao.getApiWaitPakInList(barcode);
|
// if(list!=null && list.size()>0) {
|
// for(WaitPakInBean pak : list) {
|
// WorkDetailBean workDetl = new WorkDetailBean();
|
// workDetl.setWrk_no(workMast.getWrk_no());
|
// workDetl.setMat_no(pak.getMat_no());
|
// workDetl.setIo_time(workMast.getIo_time());
|
// workDetl.setModi_user(user.getUser_account());
|
// workDetl.setQty(pak.getQty());
|
// int result=0;
|
// result = workFileDao.insertWorkDetail(workDetl);
|
//
|
// if(result>0) {
|
// pak.setIn_qty(pak.getQty());
|
// result = waitPakInDao.upWaitPakIn(pak);
|
// }else {
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
// map.put("code", 1);
|
// map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
// return map;
|
// }
|
// }
|
// }else {
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
// map.put("code", 1);
|
// map.put("msg", "条码数据为空");
|
// return map;
|
// }
|
|
//插入workMast
|
workMast.setBarcode(barcode);
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
station.setWrk_no(workMast.getWrk_no());
|
station.setIn_enable(station.getIn_enable());
|
station.setOut_enable(station.getOut_enable());
|
station.setBarcode(station.getBarcode());
|
station.setDec_desc(station.getDec_desc());
|
station.setModi_user(user.getUser_account());
|
result = stationDao.upStation(station);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "更新设备档失败:" + station.getDev_no());
|
return map;
|
}
|
|
LocationBean location = locationDao.getLocationById(workMast.getLoc_no());
|
if(location!=null) {
|
if(location.getLoc_sts().equals("O")) {
|
location.setLoc_sts("S");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + workMast.getLoc_no());
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + workMast.getLoc_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "库位号:" + workMast.getLoc_no());
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动入库失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
/**
|
* 手持端出库作业
|
*/
|
@Transactional
|
public Map<String,Object> insertApiPakRetrieve(String loc_no,
|
int stn_no,UserBean user, CommonMethod commonMethod, String barcode) throws Exception{
|
Map<String,Object> map=new HashMap<String, Object>();
|
try {
|
String io_time = DateTimeUtil.getStringDateTime(19);
|
//插入workDetail
|
int wrk_no = commonMethod.getNewWorkNo(workNoDao.getWorkNoById(1));
|
if(wrk_no<=0) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号失败,请联系管理员");
|
return map;
|
}else {
|
WorkMastBean workFile = workFileDao.getWorkMastById(wrk_no);
|
if(workFile!=null) {
|
map.put("code", 1);
|
map.put("msg", "生成工作号" + wrk_no + "在工作档中已存在");
|
return map;
|
}
|
}
|
|
//插入workDetail
|
List<LocDetailBean> list = locDetailDao.getLocDetlByLoc(loc_no);
|
if(list!=null && list.size()>0) {
|
for(LocDetailBean detl : list) {
|
WorkDetailBean workDetl = new WorkDetailBean();
|
workDetl.setWrk_no(wrk_no);
|
workDetl.setMat_no(detl.getMat_no());
|
workDetl.setIo_time(io_time);
|
workDetl.setQty(detl.getQty());
|
workDetl.setModi_user(user.getUser_account());
|
int result=workFileDao.insertWorkDetail(workDetl);
|
|
if(result>0) {
|
// WaitPakOutBean waitPakOut = new WaitPakOutBean();
|
// int random = (int)(Math.random()*900 + 100);
|
// waitPakOut.setSheet_no(DateTimeUtil.getStringDateTime(14)+Integer.toString(random));
|
// waitPakOut.setMat_no(detl.getMat_no());
|
// waitPakOut.setQty(detl.getQty());
|
// waitPakOut.setOut_qty(detl.getQty());
|
// waitPakOut.setStatus("Y");
|
// waitPakOut.setIo_status("Y");
|
// waitPakOut.setType("ASRS");
|
// waitPakOut.setModi_user(user.getUser_account());
|
// result = waitPakOutDao.insertWaitPakOut(waitPakOut);
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作明细档失败:" + workDetl.getMat_no());
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "无库存明细数据");
|
return map;
|
}
|
|
WorkMastBean workMast = new WorkMastBean();
|
int crn_no = Integer.parseInt(loc_no.substring(0,2));
|
crn_no = (crn_no+1) / 2 ;
|
int s_staNo = commonMethod.getIoStaNo(101,crn_no,stn_no);
|
if(s_staNo<=0) {
|
map.put("code", 1);
|
map.put("msg", "获取堆垛机站点失败");
|
return map;
|
}
|
workMast.setSource_sta_no(s_staNo);
|
workMast.setSta_no(stn_no);
|
workMast.setIo_type(101);
|
workMast.setPicking("N");
|
workMast.setWrk_no(wrk_no);
|
workMast.setIo_time(io_time);
|
workMast.setWrk_sts(11);
|
workMast.setIo_pri(13);
|
workMast.setCrn_no(crn_no);
|
workMast.setSource_loc_no(loc_no);
|
workMast.setFull_plt("Y");
|
workMast.setExit_mk("N");
|
workMast.setEmpty_mk("N");
|
workMast.setLink_mis("N");
|
workMast.setModi_user(user.getUser_account());
|
if(barcode!=null && !barcode.equals("")) {
|
workMast.setBarcode(barcode);
|
}
|
//插入workMast
|
int result = workFileDao.insertWorkMast(workMast);
|
if(result>0) {
|
LocationBean location = locationDao.getLocationById(loc_no);
|
if(location!=null) {
|
if(location.getLoc_sts().equals("F")) {
|
location.setLoc_sts("R");
|
location.setModi_user(user.getUser_account());
|
result = locationDao.upLocation(location);
|
if(result<=0) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败:" + loc_no);
|
return map;
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "预约库位状态失败,库位号不存在:" + loc_no);
|
return map;
|
}
|
}
|
}else {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
map.put("code", 1);
|
map.put("msg", "插入工作主档失败");
|
return map;
|
}
|
map.put("code", 0);
|
map.put("msg", "");
|
return map;
|
}catch(Exception e) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
System.out.println(e.getMessage());
|
map.put("code", 1);
|
map.put("msg", "启动失败--" + e.getMessage());
|
}
|
return map;
|
}
|
|
}
|