package com.zy.asrs.controller;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.core.annotations.ManagerAuth;
|
import com.core.common.R;
|
import com.zy.asrs.entity.LocDetl;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.service.LocDetlService;
|
import com.zy.asrs.service.LocMastService;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.common.web.BaseController;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.io.*;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
@RestController
|
|
public class MapController extends BaseController {
|
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private LocDetlService locDetlService;
|
|
private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{
|
add("0200101");
|
add("0300101");
|
add("0400101");
|
add("0500101");
|
add("0600101");
|
add("0700101");
|
add("0800101");
|
add("0900101");
|
add("1000101");
|
add("1100101");
|
add("1200101");
|
}};
|
|
@GetMapping("/map/getData/{lev}/auth")
|
@ManagerAuth
|
public String getMapData(@PathVariable("lev") Integer lev) {
|
try {
|
String mapFilename = "map.json";
|
String fileName = Objects.requireNonNull(this.getClass().getClassLoader().getResource(mapFilename)).getPath();//获取文件路径
|
File file = new File(fileName);
|
StringBuffer stringBuffer = new StringBuffer();
|
if (file.isFile() && file.exists()) {
|
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
|
BufferedReader br = new BufferedReader(isr);
|
String lineTxt = null;
|
while ((lineTxt = br.readLine()) != null) {
|
stringBuffer.append(lineTxt);
|
}
|
br.close();
|
|
//解析json地图数据
|
List<ArrayList> arrayLists = JSON.parseArray(stringBuffer.toString(), ArrayList.class);
|
for (String locNo : DISABLE_LOC_NO) {//禁用设置库位
|
int row = Utils.getRow(locNo);
|
int bay = Utils.getBay(locNo);
|
if (row >= 2 && row <= 12) {
|
row++;
|
}else if (row == 13) {
|
row += 2;
|
}
|
ArrayList rowData = arrayLists.get(row);
|
Object o = rowData.get(bay);
|
JSONObject jsonObject = JSON.parseObject(o.toString());
|
jsonObject.put("value", 10);//将禁用库位进行设置
|
//更新list
|
rowData.set(bay, jsonObject);
|
arrayLists.set(row, rowData);
|
}
|
|
//获取当前楼层库位数据
|
List<LocMast> locMasts = locMastService.selectLocByLev(lev);
|
for (LocMast locMast : locMasts) {
|
Integer row = locMast.getRow1();
|
Integer bay = locMast.getBay1();
|
if (row >= 2 && row <= 12) {
|
row++;
|
}else if (row == 13) {
|
row += 2;
|
}
|
ArrayList rowData = arrayLists.get(row);
|
Object o = rowData.get(bay);
|
JSONObject jsonObject = JSON.parseObject(o.toString());
|
jsonObject.put("locNo", locMast.getLocNo());//设置库位号
|
jsonObject.put("locSts", locMast.getLocSts());//库位状态
|
jsonObject.put("locSts$", locMast.getLocSts$());//库位状态
|
//更新list
|
rowData.set(bay, jsonObject);
|
arrayLists.set(row, rowData);
|
}
|
|
return JSONObject.toJSONString(arrayLists);
|
} else {
|
System.out.println("文件不存在!");
|
}
|
} catch (IOException ioException) {
|
ioException.printStackTrace();
|
}
|
return null;
|
}
|
|
@RequestMapping("/map/searchData/auth")
|
@ManagerAuth
|
public R searchLoc(@RequestParam("lev") Integer lev,
|
@RequestParam("locNo") String locNo,
|
@RequestParam("orderNo") String orderNo,
|
@RequestParam("specs") String specs,
|
@RequestParam("matnr") String matnr,
|
@RequestParam("maktx") String maktx
|
) {
|
List<LocDetl> locDetls = locDetlService.searchByLike(orderNo, matnr, maktx, specs, locNo);
|
ArrayList<LocDetl> lists = new ArrayList<>();
|
for (LocDetl locDetl : locDetls) {//过滤掉不是当前楼层的数据
|
int lev1 = Utils.getLev(locDetl.getLocNo());
|
if (lev1 == lev) {
|
lists.add(locDetl);
|
}
|
}
|
return R.ok().add(lists);
|
}
|
|
}
|