Commit 8d45b57d sunke

关闭三天前的工单出库需求

关闭工单接口
1 个父辈 93ddd934
...@@ -20,6 +20,7 @@ public class OutInfo extends BaseMongoBean { ...@@ -20,6 +20,7 @@ public class OutInfo extends BaseMongoBean {
this.action = outItem.getAction(); this.action = outItem.getAction();
this.hSerial = outItem.gethSerial(); this.hSerial = outItem.gethSerial();
this.so = outItem.getSo(); this.so = outItem.getSo();
this.soseq = outItem.getSoseq();
this.refno = outItem.getRefno(); this.refno = outItem.getRefno();
this.sdate = outItem.getSdate(); this.sdate = outItem.getSdate();
this.mdate = outItem.getMdate(); this.mdate = outItem.getMdate();
...@@ -40,6 +41,11 @@ public class OutInfo extends BaseMongoBean { ...@@ -40,6 +41,11 @@ public class OutInfo extends BaseMongoBean {
private String so; private String so;
/** /**
* 工单序号
*/
private String soseq;
/**
* 备料单号 * 备料单号
*/ */
private String refno; private String refno;
...@@ -210,6 +216,9 @@ public class OutInfo extends BaseMongoBean { ...@@ -210,6 +216,9 @@ public class OutInfo extends BaseMongoBean {
return "M"; return "M";
} }
/**
* 放上料架顺序
*/
public String getShelfLatest(){ public String getShelfLatest(){
if(taskNum == 1){ if(taskNum == 1){
return "L"; return "L";
...@@ -235,14 +244,34 @@ public class OutInfo extends BaseMongoBean { ...@@ -235,14 +244,34 @@ public class OutInfo extends BaseMongoBean {
return sendStatus; return sendStatus;
} }
/**
* 是否发料完成(不缺料)
*/
public boolean isSendEnd(){ public boolean isSendEnd(){
return sendStatus == StorageConstants.SEND_STATUS.SEND_OK; return sendStatus == StorageConstants.SEND_STATUS.SEND_OK;
} }
/**
* 是否已关闭
*/
public boolean isClosed(){ public boolean isClosed(){
return sendStatus == StorageConstants.SEND_STATUS.CLOSED; return sendStatus == StorageConstants.SEND_STATUS.CLOSED;
} }
/**
* 是否本次任务执行完成
*/
public boolean isTaskEnd(){
return taskNum > 0 && taskFinishNum >= taskNum;
}
/**
* 是否正在执行
*/
public boolean isExecuting(){
return taskNum > 0 && sendStatus == StorageConstants.SEND_STATUS.EXECUTING;
}
public void setSendStatus(int sendStatus) { public void setSendStatus(int sendStatus) {
this.sendStatus = sendStatus; this.sendStatus = sendStatus;
} }
...@@ -259,6 +288,14 @@ public class OutInfo extends BaseMongoBean { ...@@ -259,6 +288,14 @@ public class OutInfo extends BaseMongoBean {
this.outItemMap = outItemMap; this.outItemMap = outItemMap;
} }
public String getSoseq() {
return soseq;
}
public void setSoseq(String soseq) {
this.soseq = soseq;
}
@Override @Override
public String toString() { public String toString() {
return "OutInfo{" + return "OutInfo{" +
......
...@@ -79,6 +79,8 @@ public interface IStoragePosDao extends IMongoDao { ...@@ -79,6 +79,8 @@ public interface IStoragePosDao extends IMongoDao {
List<StoragePos> allBindPos(String so); List<StoragePos> allBindPos(String so);
List<StoragePos> listSoSeqBindPos(String soseq);
StoragePos findByBarcode(String barcode); StoragePos findByBarcode(String barcode);
StoragePos unbindReel(StoragePos storagePos); StoragePos unbindReel(StoragePos storagePos);
......
...@@ -428,6 +428,16 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa ...@@ -428,6 +428,16 @@ public class StoragePosDaoImpl extends AbstractMongoDao implements IStoragePosDa
return findByQuery(q); return findByQuery(q);
} }
/**
* 获取工单的所有绑定料盘
*/
@Override
public List<StoragePos> listSoSeqBindPos(String soseq) {
Criteria c = Criteria.where("barcode.appendInfo.soseq").is(soseq);
Query q = new Query(c);
return findByQuery(q);
}
@Override @Override
public StoragePos findByBarcode(String barcode){ public StoragePos findByBarcode(String barcode){
return findOneByCondition(new String[]{"barcode.barcode"}, new String[]{barcode}); return findOneByCondition(new String[]{"barcode.barcode"}, new String[]{barcode});
......
...@@ -10,6 +10,10 @@ public interface IOutInfoDao extends IMongoDao { ...@@ -10,6 +10,10 @@ public interface IOutInfoDao extends IMongoDao {
OutInfo findByHSerial(String hSerial); OutInfo findByHSerial(String hSerial);
List<OutInfo> listBySo(String so);
List<OutInfo> listBySoSeq(String soseq);
List<OutInfo> findUnEndOutInfos(); List<OutInfo> findUnEndOutInfos();
void updateStatus(String hSerial, int bindStatus, int sendStatus); void updateStatus(String hSerial, int bindStatus, int sendStatus);
......
...@@ -6,6 +6,7 @@ import com.myproject.bean.update.qisda.OutItem; ...@@ -6,6 +6,7 @@ import com.myproject.bean.update.qisda.OutItem;
import com.myproject.dao.mongo.AbstractMongoDao; import com.myproject.dao.mongo.AbstractMongoDao;
import com.myproject.dao.mongo.qisda.IOutInfoDao; import com.myproject.dao.mongo.qisda.IOutInfoDao;
import com.myproject.dao.mongo.qisda.IOutItemDao; import com.myproject.dao.mongo.qisda.IOutItemDao;
import com.myproject.util.StorageConstants;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -26,12 +27,34 @@ public class OutIInfoDaoImpl extends AbstractMongoDao implements IOutInfoDao { ...@@ -26,12 +27,34 @@ public class OutIInfoDaoImpl extends AbstractMongoDao implements IOutInfoDao {
} }
/** /**
* 查找所有发料状态不为2(未发料完成)的工单需求单
*/
@Override
public List<OutInfo> listBySo(String so){
Criteria c = new Criteria();
c.and("so").is(so);
Query query = new Query(c);
return findByQuery(query);
}
/**
* 查找所有发料状态不为2(未发料完成)的工单需求单
*/
@Override
public List<OutInfo> listBySoSeq(String soseq){
Criteria c = new Criteria();
c.and("soseq").is(soseq);
Query query = new Query(c);
return findByQuery(query);
}
/**
* 查找所有发料状态不为2(未发料完成)的需求单 * 查找所有发料状态不为2(未发料完成)的需求单
*/ */
@Override @Override
public List<OutInfo> findUnEndOutInfos(){ public List<OutInfo> findUnEndOutInfos(){
Criteria c = new Criteria(); Criteria c = new Criteria();
c.and("sendStatus").ne(2); c.and("sendStatus").nin(StorageConstants.SEND_STATUS.CLOSED,StorageConstants.SEND_STATUS.SEND_OK);
Query query = new Query(c); Query query = new Query(c);
return findByQuery(query); return findByQuery(query);
} }
......
...@@ -697,6 +697,11 @@ public class StorageConstants { ...@@ -697,6 +697,11 @@ public class StorageConstants {
*/ */
public static int CLOSED = 3; public static int CLOSED = 3;
/**
* 需求单正在执行
*/
public static int EXECUTING = 4;
} }
} }
...@@ -180,18 +180,9 @@ public class QisdaController extends BaseController { ...@@ -180,18 +180,9 @@ public class QisdaController extends BaseController {
public String unBindAllReel(HttpServletRequest request){ public String unBindAllReel(HttpServletRequest request){
String so = request.getParameter("so"); String so = request.getParameter("so");
if(Strings.isNullOrEmpty(so)){ if(Strings.isNullOrEmpty(so)){
return "无工单号参数so,无法解绑"; return "无工单号参数so,无法解绑";
} }
log.info("开始解绑绑定工单["+so+"]的料盘"); String msg = outInfoCache.closeSo(so);
int count = 0;
List<StoragePos> bindPosList = storagePosDao.allBindPos(so);
for (StoragePos storagePos : bindPosList) {
storagePosDao.unbindReel(storagePos);
log.info("解除["+storagePos.getBarcode().getBarcode()+"]的工单["+so+"]绑定");
count = count + 1;
}
String msg = "工单["+so+"]解除绑定完成,共解绑["+count+"]盘";
log.info(msg);
return msg; return msg;
} }
......
package com.myproject.webapp.controller.qisda.util; package com.myproject.webapp.controller.qisda.util;
import com.myproject.bean.qisda.InquiryShelfBean; import com.myproject.bean.qisda.InquiryShelfBean;
import com.myproject.bean.update.Barcode;
import com.myproject.bean.update.StoragePos;
import com.myproject.bean.update.qisda.OutInfo; import com.myproject.bean.update.qisda.OutInfo;
import com.myproject.bean.update.qisda.OutItem; import com.myproject.bean.update.qisda.OutItem;
import com.myproject.dao.mongo.IStoragePosDao;
import com.myproject.dao.mongo.qisda.IOutInfoDao; import com.myproject.dao.mongo.qisda.IOutInfoDao;
import com.myproject.dao.mongo.qisda.IOutItemDao; import com.myproject.dao.mongo.qisda.IOutItemDao;
import com.myproject.util.DateUtil;
import com.myproject.util.StorageConstants; import com.myproject.util.StorageConstants;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -50,6 +55,9 @@ public class OutInfoCache { ...@@ -50,6 +55,9 @@ public class OutInfoCache {
@Autowired @Autowired
private IOutItemDao outItemDao; private IOutItemDao outItemDao;
@Autowired
private IStoragePosDao storagePosDao;
/** /**
* 更新需求项 * 更新需求项
*/ */
...@@ -80,7 +88,7 @@ public class OutInfoCache { ...@@ -80,7 +88,7 @@ public class OutInfoCache {
if(!outInfo.getOutItemMap().isEmpty()){ if(!outInfo.getOutItemMap().isEmpty()){
outInfoMap.put(hserial, outInfo); outInfoMap.put(hserial, outInfo);
}else{ }else{
outInfo.setSendStatus(2); outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_OK);
outInfoDao.save(outInfo); outInfoDao.save(outInfo);
} }
...@@ -94,11 +102,73 @@ public class OutInfoCache { ...@@ -94,11 +102,73 @@ public class OutInfoCache {
public void loadUnEndOutInfos(){ public void loadUnEndOutInfos(){
log.info("开始加载未完成的需求单"); log.info("开始加载未完成的需求单");
List<OutInfo> unEndOutInfoList = outInfoDao.findUnEndOutInfos(); List<OutInfo> unEndOutInfoList = outInfoDao.findUnEndOutInfos();
long now = System.currentTimeMillis();
for (OutInfo outInfo : unEndOutInfoList) { for (OutInfo outInfo : unEndOutInfoList) {
if(now - outInfo.getMdate().getTime() > 3 * 24 * 60 * 60 * 1000){
//3天前的需求单(非紧急料),关闭,并解绑
if(!outInfo.isUrgentAction()){
String so = outInfo.getSo();
String mDataStr = DateUtil.toDateString(outInfo.getMdate(),"yyyy-MM-dd HH:mm");
log.info("工单["+so+"]的必须出库日期["+mDataStr+"]为3天前,关闭并解绑工单");
closeSo(outInfo.getSo());
}
}else{
addOutInfo(outInfo); addOutInfo(outInfo);
updateStatus(outInfo.gethSerial()); updateStatus(outInfo.gethSerial());
} }
} }
}
public String closeSoSeq(String soseq){
log.info("开始关闭并解绑工单soseq=["+soseq+"]的料盘");
List<OutInfo> outInfoList = outInfoDao.listBySoSeq(soseq);
if(outInfoList.isEmpty()){
return "未找到工单序号soseq为["+soseq+"]的数据";
}
for (OutInfo outInfo : outInfoList) {
if(!outInfo.isClosed() && !outInfo.isSendEnd()){
log.info("关闭需求单["+outInfo.gethSerial()+"]so=["+outInfo.getSo()+"]soseq=["+outInfo.getSoseq()+"]");
int sendStatus = StorageConstants.SEND_STATUS.CLOSED;
outInfoDao.updateStatus(outInfo.gethSerial(),outInfo.getBindStatus(),sendStatus);
}
}
int count = 0;
List<StoragePos> bindPosList = storagePosDao.listSoSeqBindPos(soseq);
for (StoragePos storagePos : bindPosList) {
Barcode barcode = storagePos.getBarcode();
storagePosDao.unbindReel(storagePos);
count = count + 1;
log.info("解除["+barcode.getBarcode()+"]的工单so=["+barcode.getAppendInfo().getSo()+"]soseq=["+barcode.getAppendInfo().getSoseq()+"]绑定,累计解除"+count);
}
return "";
}
public String closeSo(String so){
if(Strings.isBlank(so)){
return "无效的工单序号";
}
List<OutInfo> outInfoList = outInfoDao.listBySo(so);
for (OutInfo outInfo : outInfoList) {
if(!outInfo.isClosed() && !outInfo.isSendEnd()){
log.info("关闭需求单["+outInfo.gethSerial()+"]");
int sendStatus = StorageConstants.SEND_STATUS.CLOSED;
outInfoDao.updateStatus(outInfo.gethSerial(),outInfo.getBindStatus(),sendStatus);
}
}
int count = 0;
List<StoragePos> bindPosList = storagePosDao.allBindPos(so);
for (StoragePos storagePos : bindPosList) {
storagePosDao.unbindReel(storagePos);
log.info("解除["+storagePos.getBarcode().getBarcode()+"]的工单so=["+so+"]绑定");
count = count + 1;
}
String msg = "工单so=["+so+"]解除绑定完成,共解绑["+count+"]盘";
log.info(msg);
return msg;
}
/** /**
* 获取缓存的需求单信息 * 获取缓存的需求单信息
...@@ -118,6 +188,12 @@ public class OutInfoCache { ...@@ -118,6 +188,12 @@ public class OutInfoCache {
outInfo.setOutReelNum(0); outInfo.setOutReelNum(0);
outInfo.setTaskFinishNum(0); outInfo.setTaskFinishNum(0);
outInfo.setTaskNum(outReelNum); outInfo.setTaskNum(outReelNum);
if(outReelNum != 0){
outInfo.setSendStatus(StorageConstants.SEND_STATUS.EXECUTING);
}else{
outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_LESS);
}
outInfoMap.put(hSerial, outInfo); outInfoMap.put(hSerial, outInfo);
} }
} }
...@@ -175,7 +251,6 @@ public class OutInfoCache { ...@@ -175,7 +251,6 @@ public class OutInfoCache {
} }
log.info("更新需求单["+hSerial+"]的发料状态 [" + outInfo.getSendStatus()+"]"); log.info("更新需求单["+hSerial+"]的发料状态 [" + outInfo.getSendStatus()+"]");
boolean sendEnd = true; boolean sendEnd = true;
boolean hasOut = false;
//默认为绑定OK, //默认为绑定OK,
int bindStatus = 2; int bindStatus = 2;
for (OutItem outItem : outInfo.getOutItemMap().values()) { for (OutItem outItem : outInfo.getOutItemMap().values()) {
...@@ -186,9 +261,6 @@ public class OutInfoCache { ...@@ -186,9 +261,6 @@ public class OutInfoCache {
if(!outItem.isItemEnd()){ if(!outItem.isItemEnd()){
sendEnd = false; sendEnd = false;
} }
if(outItem.getOutQty() > 0){
hasOut = true;
}
if(!outItem.isBindOk()){ if(!outItem.isBindOk()){
//有绑定缺料的情况,即认为是绑定缺料 //有绑定缺料的情况,即认为是绑定缺料
bindStatus = 1; bindStatus = 1;
...@@ -197,12 +269,11 @@ public class OutInfoCache { ...@@ -197,12 +269,11 @@ public class OutInfoCache {
if(sendEnd){ if(sendEnd){
outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_OK); outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_OK);
}else{ }else{
if(hasOut){
//有出库的,状态为发料缺料 //有出库的,状态为发料缺料
if(outInfo.isTaskEnd()){
outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_LESS); outInfo.setSendStatus(StorageConstants.SEND_STATUS.SEND_LESS);
}else{ }else{
//无出过库的,状态为未发料 outInfo.setSendStatus(StorageConstants.SEND_STATUS.EXECUTING);
outInfo.setSendStatus(StorageConstants.SEND_STATUS.NEW);
} }
} }
outInfo.setBindStatus(bindStatus); outInfo.setBindStatus(bindStatus);
...@@ -216,5 +287,4 @@ public class OutInfoCache { ...@@ -216,5 +287,4 @@ public class OutInfoCache {
} }
} }
} }
...@@ -183,11 +183,16 @@ public class BaseController { ...@@ -183,11 +183,16 @@ public class BaseController {
} }
protected void addLikeParam(HttpServletRequest request,Criteria criteria, String fieldStr){ protected void addLikeParam(HttpServletRequest request,Criteria criteria, String fieldStr){
String fieldValue = request.getParameter(fieldStr); String parmaKey = fieldStr;
int splitIndex = fieldStr.lastIndexOf('.');
if(splitIndex >= 0){
parmaKey = fieldStr.substring(splitIndex + 1);
}
String fieldValue = request.getParameter(parmaKey);
if(!Strings.isNullOrEmpty(fieldValue)){ if(!Strings.isNullOrEmpty(fieldValue)){
Pattern pattern = Pattern.compile(fieldValue, Pattern.CASE_INSENSITIVE); Pattern pattern = Pattern.compile(fieldValue, Pattern.CASE_INSENSITIVE);
criteria.and(fieldStr).regex(pattern); criteria.and(fieldStr).regex(pattern);
request.setAttribute(fieldStr,fieldValue); request.setAttribute(parmaKey,fieldValue);
} }
} }
......
...@@ -98,19 +98,9 @@ public class StoragePosFindController extends BaseSearchController { ...@@ -98,19 +98,9 @@ public class StoragePosFindController extends BaseSearchController {
addFromToDateParam(request,baseCriteria,"updateDate"); addFromToDateParam(request,baseCriteria,"updateDate");
String memo = request.getParameter("memo"); addLikeParam(request, baseCriteria,"barcode.memo");
if(!Strings.isNullOrEmpty(memo)){ addLikeParam(request, baseCriteria,"barcode.appendInfo.facility");
Pattern pattern = Pattern.compile(memo, Pattern.CASE_INSENSITIVE); addLikeParam(request, baseCriteria,"barcode.appendInfo.so");
baseCriteria.and("barcode.memo").regex(pattern);
request.setAttribute("memo",memo);
}
String facility = request.getParameter("facility");
if(!Strings.isNullOrEmpty(facility)){
Pattern pattern = Pattern.compile(facility, Pattern.CASE_INSENSITIVE);
baseCriteria.and("barcode.appendInfo.facility").regex(pattern);
request.setAttribute("facility",facility);
}
String expire = request.getParameter("expire"); String expire = request.getParameter("expire");
if(!Strings.isNullOrEmpty(expire)){ if(!Strings.isNullOrEmpty(expire)){
...@@ -122,11 +112,8 @@ public class StoragePosFindController extends BaseSearchController { ...@@ -122,11 +112,8 @@ public class StoragePosFindController extends BaseSearchController {
request.setAttribute("expire",expire); request.setAttribute("expire",expire);
} }
String lockId = request.getParameter("lockId");
if(!Strings.isNullOrEmpty(lockId)){ addLikeParam(request, baseCriteria,"barcode.lockId");
baseCriteria.and("barcode.lockId").is(lockId);
request.setAttribute("lockId",lockId);
}
addLikeParam(baseCriteria, request, "otherField1"); addLikeParam(baseCriteria, request, "otherField1");
addLikeParam(baseCriteria, request, "otherField2"); addLikeParam(baseCriteria, request, "otherField2");
...@@ -140,6 +127,7 @@ public class StoragePosFindController extends BaseSearchController { ...@@ -140,6 +127,7 @@ public class StoragePosFindController extends BaseSearchController {
baseCriteria.and("barcode.barcode").regex(pattern); baseCriteria.and("barcode.barcode").regex(pattern);
} }
int inactionDay = dataCache.getSettings().getInactionDay(); int inactionDay = dataCache.getSettings().getInactionDay();
if(inactionDay <=0){ if(inactionDay <=0){
inactionDay = 3; inactionDay = 3;
......
...@@ -161,7 +161,7 @@ public class QisdaApiController extends BaseController { ...@@ -161,7 +161,7 @@ public class QisdaApiController extends BaseController {
public ResultBean checkLockSo(HttpServletRequest request) { public ResultBean checkLockSo(HttpServletRequest request) {
List<Map<String, String>> bindReelInfos = new ArrayList<>(); List<Map<String, String>> bindReelInfos = new ArrayList<>();
try { try {
String paramInfo = receiveParamInfo(request); String paramInfo = receiveParamInfo(request,"paramInfo");
log.info("收到检测锁定工单请求:"+paramInfo); log.info("收到检测锁定工单请求:"+paramInfo);
if(paramInfo == null){ if(paramInfo == null){
return ResultBean.newErrorResult(-1,"参数为空"); return ResultBean.newErrorResult(-1,"参数为空");
...@@ -190,13 +190,38 @@ public class QisdaApiController extends BaseController { ...@@ -190,13 +190,38 @@ public class QisdaApiController extends BaseController {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("需求单请求处理出错", e); log.error("检测料盘是否绑定工单请求处理出错", e);
return ResultBean.newErrorResult(1001,"内部错误:" + e.getMessage()); return ResultBean.newErrorResult(1001,"内部错误:" + e.getMessage());
} }
return ResultBean.newOkResult(bindReelInfos); return ResultBean.newOkResult(bindReelInfos);
} }
/** /**
* 检测料盘是否绑定工单
*/
@RequestMapping(value = "/closeSoSeq",method = RequestMethod.POST)
@ResponseBody
public ResultBean closeSo(HttpServletRequest request) {
List<Map<String, String>> bindReelInfos = new ArrayList<>();
try {
String soseq = receiveParamInfo(request,"soseq");
log.info("收到检测锁定工单请求:"+soseq);
if(soseq == null){
return ResultBean.newErrorResult(-1,"未找到soseq参数");
}
String result = outInfoCache.closeSoSeq(soseq);
if(result.isEmpty()){
return ResultBean.newOkResult("OK");
}else{
return ResultBean.newErrorResult(2003,result);
}
} catch (Exception e) {
log.error("需求单请求处理出错", e);
return ResultBean.newErrorResult(1001,"内部错误:" + e.getMessage());
}
}
/**
* 出库 * 出库
*/ */
@RequestMapping(value = "/out",method = RequestMethod.POST) @RequestMapping(value = "/out",method = RequestMethod.POST)
...@@ -204,7 +229,7 @@ public class QisdaApiController extends BaseController { ...@@ -204,7 +229,7 @@ public class QisdaApiController extends BaseController {
public Object out(HttpServletRequest request) { public Object out(HttpServletRequest request) {
List<String> failedReelIdList = new ArrayList<>(); List<String> failedReelIdList = new ArrayList<>();
try { try {
String paramInfo = receiveParamInfo(request); String paramInfo = receiveParamInfo(request,"paramInfo");
log.info("收到需求单请求:"+paramInfo); log.info("收到需求单请求:"+paramInfo);
if(paramInfo == null){ if(paramInfo == null){
return ResultBean.newErrorResult(-1,"参数为空"); return ResultBean.newErrorResult(-1,"参数为空");
...@@ -246,7 +271,7 @@ public class QisdaApiController extends BaseController { ...@@ -246,7 +271,7 @@ public class QisdaApiController extends BaseController {
appendInfo.sethSerial(outItem.gethSerial()); appendInfo.sethSerial(outItem.gethSerial());
appendInfo.setRefno(outItem.getRefno()); appendInfo.setRefno(outItem.getRefno());
appendInfo.setSo("HSerial-" + outItem.gethSerial()); appendInfo.setSo("HSerial-" + outItem.gethSerial());
appendInfo.setSoseq("HSerial-" + outItem.getSoseq()); appendInfo.setSoseq("HSerial-" + outItem.gethSerial());
appendInfo.setSlotStr(outItem.getSlotStr()); appendInfo.setSlotStr(outItem.getSlotStr());
appendInfo.setBindSlot("1"); appendInfo.setBindSlot("1");
...@@ -1052,6 +1077,7 @@ public class QisdaApiController extends BaseController { ...@@ -1052,6 +1077,7 @@ public class QisdaApiController extends BaseController {
outInfo.setOutReelNum(0); outInfo.setOutReelNum(0);
outInfo.setTaskFinishNum(0); outInfo.setTaskFinishNum(0);
outInfo.setTaskNum(outReelNum); outInfo.setTaskNum(outReelNum);
outInfo.setSendStatus(StorageConstants.SEND_STATUS.EXECUTING);
outInfo = outInfoDao.save(outInfo); outInfo = outInfoDao.save(outInfo);
outInfoCache.resetTaskNum(hSerial, outReelNum); outInfoCache.resetTaskNum(hSerial, outReelNum);
...@@ -1088,12 +1114,12 @@ public class QisdaApiController extends BaseController { ...@@ -1088,12 +1114,12 @@ public class QisdaApiController extends BaseController {
/** /**
* 获取接收参数 * 获取接收参数
*/ */
private String receiveParamInfo(HttpServletRequest request){ private String receiveParamInfo(HttpServletRequest request, String paramKey){
String paramInfo = request.getParameter("paramInfo"); String paramInfo = request.getParameter(paramKey);
if(Strings.isNullOrEmpty(paramInfo)){ if(Strings.isNullOrEmpty(paramInfo)){
//从body里面再获取一次 //从body里面再获取一次
Map<String, String> bodyParamMap = getParamMapFromBody(request); Map<String, String> bodyParamMap = getParamMapFromBody(request);
paramInfo = bodyParamMap.get("paramInfo"); paramInfo = bodyParamMap.get(paramKey);
} }
return paramInfo; return paramInfo;
} }
......
...@@ -18,7 +18,6 @@ import com.myproject.bean.utils.BoxStatusBean; ...@@ -18,7 +18,6 @@ import com.myproject.bean.utils.BoxStatusBean;
import com.myproject.bean.utils.StatusBean; import com.myproject.bean.utils.StatusBean;
import com.myproject.dao.mongo.*; import com.myproject.dao.mongo.*;
import com.myproject.dao.mongo.qisda.IDNItemDao; import com.myproject.dao.mongo.qisda.IDNItemDao;
import com.myproject.dao.mongo.qisda.IOutInfoDao;
import com.myproject.dao.mongo.qisda.IOutItemDao; import com.myproject.dao.mongo.qisda.IOutItemDao;
import com.myproject.exception.ValidateException; import com.myproject.exception.ValidateException;
import com.myproject.manager.IBarcodeManager; import com.myproject.manager.IBarcodeManager;
...@@ -91,9 +90,6 @@ public class TaskService implements ITaskService { ...@@ -91,9 +90,6 @@ public class TaskService implements ITaskService {
@Autowired @Autowired
private OutInfoCache outInfoCache; private OutInfoCache outInfoCache;
@Autowired
private IOutInfoDao outInfoDao;
/** /**
* 任务队列,Key 为dataLog的ID,value 为本区域待执行的任务 * 任务队列,Key 为dataLog的ID,value 为本区域待执行的任务
*/ */
......
...@@ -83,6 +83,14 @@ ...@@ -83,6 +83,14 @@
</div> </div>
</div> </div>
<label class="control-label col-md-1"><fmt:message key="工单"/></label>
<div class="col-md-2">
<div style="text-align:left">
<input type="text" name="so" class="form-control" value="${so}"/>
</div>
</div>
<div class="col-md-2"> <div class="col-md-2">
<button class="btn purple" type="submit"><i class="fa fa-search"></i><fmt:message key="button.search"/> </button> <button class="btn purple" type="submit"><i class="fa fa-search"></i><fmt:message key="button.search"/> </button>
...@@ -177,6 +185,9 @@ ...@@ -177,6 +185,9 @@
<c:if test="${pos.barcode.type == 1 || pos.barcode.type == 4}">-</c:if> <c:if test="${pos.barcode.type == 1 || pos.barcode.type == 4}">-</c:if>
<c:if test="${pos.barcode.type != 1 && pos.barcode.type != 4}">${pos.barcode.amount} ${pos.barcode.appendInfo.cutMap}</c:if> <c:if test="${pos.barcode.type != 1 && pos.barcode.type != 4}">${pos.barcode.amount} ${pos.barcode.appendInfo.cutMap}</c:if>
</display:column> </display:column>
<%--<display:column titleKey="工单序号" sortProperty="barcode.appendInfo.soseq" sortable="true">--%>
<%--${pos.barcode.appendInfo.soseq}--%>
<%--</display:column>--%>
<display:column titleKey="工单" sortProperty="barcode.appendInfo.so" sortable="true"> <display:column titleKey="工单" sortProperty="barcode.appendInfo.so" sortable="true">
${pos.barcode.appendInfo.so} ${pos.barcode.appendInfo.so}
</display:column> </display:column>
......
...@@ -82,7 +82,9 @@ ...@@ -82,7 +82,9 @@
<a href="#" onclick="showDetail('${outInfo.hSerial}')">${outInfo.hSerial}</a> <a href="#" onclick="showDetail('${outInfo.hSerial}')">${outInfo.hSerial}</a>
</display:column> </display:column>
<display:column titleKey="动作" property="action" sortable="true" sortProperty="action"/> <display:column titleKey="动作" property="action" sortable="true" sortProperty="action"/>
<display:column titleKey="工单" property="so" sortable="true" sortProperty="so"/> <display:column titleKey="工单" sortable="true" sortProperty="so">
${outInfo.so}<c:if test="${outInfo.soseq != null}">(${outInfo.soseq})</c:if>
</display:column>
<display:column titleKey="备料单号" property="refno" sortable="true" sortProperty="refno"/> <display:column titleKey="备料单号" property="refno" sortable="true" sortProperty="refno"/>
<display:column titleKey="建议出仓时间" sortable="true" sortProperty="sdate"> <display:column titleKey="建议出仓时间" sortable="true" sortProperty="sdate">
<fmt:formatDate value="${outInfo.sdate}" pattern="yyyy-MM-dd HH:mm"/> <fmt:formatDate value="${outInfo.sdate}" pattern="yyyy-MM-dd HH:mm"/>
...@@ -102,8 +104,7 @@ ...@@ -102,8 +104,7 @@
</display:column> </display:column>
<display:column titleKey="checkOut.operate" media="html" sortProperty="sendStatus" sortable="true"> <display:column titleKey="checkOut.operate" media="html" sortProperty="sendStatus" sortable="true">
<span class="hide">${outInfo.sendStatus}</span> <c:if test="${!outInfo.sendEnd && outInfo.taskNum == 0 && !outInfo.closed}">
<c:if test="${outInfo.sendStatus != 2 && outInfo.taskNum == 0}">
<button class="btn yellow" id="btn${outInfo.hSerial}" <button class="btn yellow" id="btn${outInfo.hSerial}"
onclick="executeOut('${outInfo.hSerial}')"> onclick="executeOut('${outInfo.hSerial}')">
<i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button> <i class="fa fa-sign-out"></i><fmt:message key="button.checkout"/></button>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!