Commit 624e29bb sunke

新增加料仓库位库存接口

1 个父辈 f1ef7b50
......@@ -325,6 +325,7 @@ public class ServiceHandle {
if(last.length() == 1){
last = "0" + last;
}
//T8001.010203 0102为Magazine 03为Slot
String depot = "T" + cid + "." + first + middle + last;
data.Depot = depot;
}
......
......@@ -12,6 +12,8 @@ import com.myproject.manager.IBarcodeManager;
import com.myproject.manager.IStoragePosManager;
import com.myproject.util.StorageConstants;
import com.myproject.webapp.controller.webService.DataCache;
import com.myproject.webapp.controller.webService.ITaskService;
import com.myproject.webapp.controller.webService.StorageDataController;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
......@@ -36,6 +38,9 @@ public class StoragePosUpdateController extends BaseUpdateController {
@Autowired
private DataCache dataCache;
@Autowired
private ITaskService taskService;
private final static String UPDATE_VIEW = "storage/storagePosUpdate";
@RequestMapping("/storage/getStoragePos")
......@@ -69,21 +74,29 @@ public class StoragePosUpdateController extends BaseUpdateController {
if(barcode != null){
log.info("清理库位["+storagePos.getPosName()+"]中的库存"+barcode.getBarcode());
String opUser = StorageDataController.getLoginUsername() + "-clear";
taskService.addTaskToFinished(storagePos,null,opUser);
Storage storage = dataCache.getStorageById(storagePos.getStorageId());
if(storage != null){
WebServiceClient.NotifyCarrierUnload(barcode.getBarcode(),storage.getCid());
if(dataCache.needConnectWeiChuang()){
WebServiceClient.NotifyCarrierUnload(barcode.getBarcode(),storage.getCid());
}
}
barcode = barcodeManager.findByBarcode(barcode.getBarcode());
barcode.setPosName("");
barcodeManager.save(barcode);
storagePos.setBarcode(null);
storagePos.setUsed(false);
storagePosManager.save(storagePos);
// barcode = barcodeManager.findByBarcode(barcode.getBarcode());
// barcode.setPosName("");
// barcodeManager.save(barcode);
// storagePos.setBarcode(null);
// storagePos.setUsed(false);
// storagePosManager.save(storagePos);
}
return "";
} catch (ValidateException e) {
} catch (Exception e) {
return e.getMessage();
}
}
......
......@@ -18,21 +18,16 @@ import com.myproject.manager.IStoragePosManager;
import com.myproject.util.DateUtil;
import com.myproject.util.StorageConstants;
import com.myproject.webapp.controller.storage.BaseController;
import com.myproject.webapp.filter.LocaleFilter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.util.Integers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
@Controller
......@@ -387,7 +382,7 @@ public class MesApiController extends BaseController {
}
String msg = statusBean.getMsg();
String msgEn = statusBean.getMsgEn();
String msgEn = msg;
String doorReelSingnal = statusBean.getDoorReelSingnal();
Exception e = taskService.getServerException(storage.getCid());
if(e != null){
......@@ -412,6 +407,9 @@ public class MesApiController extends BaseController {
itemMap.put("name", storage.getName());
itemMap.put("status",storageStatus);
itemMap.put("msg",msg);
if(msg.isEmpty()){
msgEn = "";
}
itemMap.put("msgEn",msgEn);
itemMap.put("doorReelSignal",doorReelSingnal);
log.info("doorReelSignal:" + doorReelSingnal);
......@@ -432,14 +430,166 @@ public class MesApiController extends BaseController {
return results;
}
/**
* 功能: 开发 储位(solt)占用情况接口, 供MES 系统调用 方式: 沟通方式采用 Restful API沟通方式,method使用Get方式
* Interface
* Method: Get
*  
* [
*   {
*     "towerId": "tower01", // tower編號
*     "usedSlot": { //已使用儲位
*       "7x8": "200", //已使用的7x8儲位
*       "7x12": "350" //已使用的7x12儲位
*     },
*     "freeSlot": {
*       "7x8": "100",  //未使用的7x8儲位
*       "7x12": "250"  //未使用的7x12儲位
*     },
*     "material": [
*       {
*         "barcode": "A00000000001",  //料捲編號
*         "magazine": "A:1", //tower magazine,  Depot T8001.010203,Magazine為紅色四碼
*         "slot": "08", //tower slot  ,  Depot T8001.010203,slot為紅色兩碼
*         "reelSize": "7x8", //料捲尺寸
*         "slotSize": "7x8"  //該儲位可放尺寸
*       },
*       {
*         "barcode": "A00000000002", //料捲編號
*         "magazine": "A:1",  //tower magazine
*         "slot": "08",  //tower slot
*         "reelSize": "7x8", //料捲尺寸
*         "slotSize": "7x12" //該儲位可放尺寸
*       },
*       {
*         "barcode": "A00000000003",
*         "magazine": "A:1",
*         "slot": "08",
*         "reelSize": "7x8",
*         "slotSize": "7x16"
*       }
*     ]
*   },
*   {
*     "towerId": "tower02",
*     "usedSlot": {
*       "7x8": "200",
*       "7x12": "350"
*     },
*     "freeSlot": {
*       "7x8": "100",
*       "7x12": "250"
*     },
*     "material": [
*       {
*         "barcode": "B00000000001",
*         "magazine": "A:1",
*         "slot": "08",
*         "reelSize": "7x8",
*         "slotSize": "7x12"
*       },
*       {
*         "barcode": "B00000000002",
*         "magazine": "A:1",
*         "slot": "08",
*         "reelSize": "7x8",
*         "slotSize": "7x12"
*       },
*       {
*         "barcode": "B00000000003",
*         "magazine": "A:1",
*         "slot": "08",
*         "reelSize": "7x8",
*         "slotSize": "7x12"
*       }
*     ]
*   }
* ]
* @return
*/
@RequestMapping(value = "/slotStatus")
@ResponseBody
public List<Map<String, Object>> getSlotStatus(){
List<Map<String,Object>> resultMap = new ArrayList<>();
Map<String, List<Map<String, Object>>> materialMap = getMaterialMap();
for (Storage storage : dataCache.getAllStorage().values()) {
String cid = storage.getCid();
String storageId = storage.getId();
Map<String,String> usedSlot = new HashMap<>();
Map<String,String> freeSlot = new HashMap<>();
for (UsageItem useageItem : storage.getUsageMap().values()) {
String sizeStr = useageItem.getSizeStr();
int usedCount = useageItem.getUsedCount();
int totalCount = useageItem.getTotalCount();
if(usedCount > totalCount){
usedCount = totalCount;
}
int freeCount = totalCount - usedCount;
usedSlot.put(sizeStr,usedCount+"");
freeSlot.put(sizeStr,freeCount+"");
}
List<Map<String, Object>> materialList = materialMap.get(storage.getId());
if(materialList == null){
materialList = new ArrayList<>();
}
Map<String, Object> towerMap = new HashMap<>();
towerMap.put("towerId",storage.getCid());
towerMap.put("usedSlot",usedSlot);
towerMap.put("freeSlot",freeSlot);
towerMap.put("material",materialList);
}
private Date toDate(String dateStr){
try {
return DateUtil.toDate(dateStr,"yyyyMMddHHmmss");
} catch (Exception e) {
return resultMap;
}
private Map<String,List<Map<String,Object>>> getMaterialMap(){
List<StoragePos> posList = storagePosManager.findNotEmpty();
Map<String,List<Map<String,Object>>> materialMap = new HashMap<>();
for (StoragePos storagePos : posList) {
String[] infos = storagePos.getPosName().split("_");
String magazine = "";//后面第6-后2位
String slot = "";//最后2位
if(infos.length >= 3){
String last = infos[infos.length-1];
String middle = infos[infos.length -2];
String first = infos[infos.length - 3];
if(first.length()==1){
first = "0"+first;
}
if(middle.length() == 1){
middle = "0" + middle;
}
if(last.length() == 1){
last = "0" + last;
}
//T8001.010203 0102为Magazine 03为Slot
magazine = first + middle;
slot = last;
}
Barcode barcode = storagePos.getBarcode();
String slotSize = storagePos.getW() + "x" + storagePos.getH();
String reelSize = barcode.getPlateSize() + "x" + barcode.getHeight();
String storageId = storagePos.getStorageId();
List<Map<String,Object>> materialList = materialMap.get(storageId);
if(materialList == null){
materialList = new ArrayList<>();
}
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("barcode",barcode.getBarcode());//料捲編號
dataMap.put("magazine",magazine);//////tower magazine,  Depot T8001.010203,Magazine為0102
dataMap.put("slot",slot);//tower slot  ,  Depot T8001.010203,slot為03
dataMap.put("reelSize",reelSize);//料捲尺寸
dataMap.put("slotSize",slotSize);//該儲位可放尺寸
materialList.add(dataMap);
materialMap.put(storageId, materialList);
}
return null;
return materialMap;
}
}
......@@ -237,7 +237,7 @@
<!-- BEGIN FOOTER -->
<div class="page-footer">
<div class="page-footer-inner">
2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a>
2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX 1.27.2714</a>
</div>
<div class="scroll-to-top">
<i class="icon-arrow-up"></i>
......
......@@ -18,7 +18,7 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
......@@ -49,11 +49,11 @@
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-all:1.3" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jcl:2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jcl:2.17.0" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.17.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.17.0" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.2.0.Beta1" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.27" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
......@@ -105,8 +105,8 @@
<orderEntry type="library" name="Maven: org.webjars:jquery:1.11.1" level="project" />
<orderEntry type="library" name="Maven: org.webjars:bootstrap-datepicker:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.webjars:bootswatch-spacelab:3.3.1+2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.logging.log4j:log4j-1.2-api:2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.logging.log4j:log4j-web:2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.logging.log4j:log4j-1.2-api:2.17.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.logging.log4j:log4j-web:2.17.0" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: javax.mail:mail:1.4.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
......
......@@ -970,5 +970,6 @@
<wicket-webjars.version>0.4.1</wicket-webjars.version>
<wro4j.version>1.7.5</wro4j.version>
<spring-data.version>1.8.0.RELEASE</spring-data.version>
<log4j2.version>2.17.0</log4j2.version>
</properties>
</project>
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!