From 548d32793451d756dad9412d285dd22e2fe64afd Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期六, 18 一月 2025 12:36:34 +0800
Subject: [PATCH] Merge branch 'phyzasrs-erp' into phyzasrs-erp-4
---
src/main/webapp/static/js/orderView/out.js | 631 ++++++++++
src/main/webapp/views/orderView/orderView.html | 342 +++++
src/main/java/com/zy/asrs/controller/AgvLocDetlController.java | 107 +
src/main/java/com/zy/asrs/controller/OrderViewController.java | 37
src/main/java/com/zy/asrs/task/OrderLogScheduler.java | 5
src/main/java/com/zy/asrs/task/OverYearLogScheduler.java | 4
src/main/webapp/static/js/orderView/orderView.js | 736 ++++++++++++
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 30
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 6
src/main/webapp/views/orderView/outView.html | 333 +++++
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java | 19
src/main/java/com/zy/asrs/controller/AgvBasDevpController.java | 99
src/main/java/com/zy/asrs/controller/OrderDetlController.java | 163 +-
src/main/webapp/static/js/orderDetl/orderDetl.js | 42
src/main/resources/mapper/OrderViewMapper.xml | 93 +
src/main/java/com/zy/asrs/entity/OrderView.java | 542 +++++++++
src/main/java/com/zy/asrs/entity/OrderViewParam.java | 37
src/main/java/com/zy/asrs/controller/AgvMobileController.java | 2
src/main/webapp/views/orderDetl/orderDetl.html | 258 ++--
src/main/java/com/zy/asrs/mapper/OrderViewMapper.java | 20
src/main/java/com/zy/asrs/task/ReportDataScheduler.java | 21
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 9
22 files changed, 3,186 insertions(+), 350 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
index feba49f..198d92f 100644
--- a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java
@@ -40,15 +40,17 @@
@RequestMapping(value = "/basDevp/list/auth")
@ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R list(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
excludeTrash(param);
EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
convert(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }
return R.ok(agvBasDevpService.selectPage(new Page<>(curr, limit), wrapper));
}
@@ -68,7 +70,7 @@
@ManagerAuth
public R query(@RequestBody JSONObject param) {
Wrapper<AgvBasDevp> wrapper = new EntityWrapper<AgvBasDevp>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
- if (null != agvBasDevpService.selectOne(wrapper)){
+ if (null != agvBasDevpService.selectOne(wrapper)) {
return R.parse(BaseRes.REPEAT).add(getComment(BasDevp.class, String.valueOf(param.get("key"))));
}
return R.ok();
@@ -82,8 +84,8 @@
@RequestMapping(value = "/basDevp/update/auth")
@ManagerAuth(memo = "绔欑偣淇敼")
- public R update(AgvBasDevp basDevp){
- if (Cools.isEmpty(basDevp) || null==basDevp.getDevNo()){
+ public R update(AgvBasDevp basDevp) {
+ if (Cools.isEmpty(basDevp) || null == basDevp.getDevNo()) {
return R.error("鍙傛暟缂哄け");
}
basDevp.setModiUser(getUserId());
@@ -94,12 +96,12 @@
@RequestMapping(value = "/basDevp/delete/auth")
@ManagerAuth(memo = "绔欑偣鍒犻櫎")
- public R delete(@RequestParam String param){
+ public R delete(@RequestParam String param) {
List<AgvBasDevp> list = JSONArray.parseArray(param, AgvBasDevp.class);
- if (Cools.isEmpty(list)){
+ if (Cools.isEmpty(list)) {
return R.error("鍙傛暟缂哄け");
}
- for (AgvBasDevp entity : list){
+ for (AgvBasDevp entity : list) {
agvBasDevpService.delete(new EntityWrapper<>(entity));
}
return R.ok();
@@ -107,26 +109,26 @@
@RequestMapping(value = "/basDevp/unbind/auth")
@ManagerAuth(memo = "绔欑偣瑙g粦")
- public R unbind(@RequestParam String param){
- AgvBasDevp agvBasDevp = JSONArray.parseObject(param,AgvBasDevp.class);
- if (agvBasDevp==null){
+ public R unbind(@RequestParam String param) {
+ AgvBasDevp agvBasDevp = JSONArray.parseObject(param, AgvBasDevp.class);
+ if (agvBasDevp == null) {
return R.error("鍙傛暟缂哄け");
}
//鑻ュ綋鍓嶇珯鐐硅揣浣嶇姸鎬佷笉涓篎.鍦ㄥ簱鐘舵�侊紝鍒欒繑鍥為敊璇�
- if(!agvBasDevp.getLocSts().equals("F")){
+ if (!agvBasDevp.getLocSts().equals("F")) {
return R.error("褰撳墠绔欑偣璐т綅鐘舵�佷笉涓哄湪搴擄紝鏃犳硶瑙i櫎缁戝畾");
}
agvBasDevp.setLocSts("O");
agvBasDevp.setBarcode("");
agvBasDevp.setLocType2(null);
- agvBasDevpService.update(agvBasDevp,new EntityWrapper<AgvBasDevp>().eq("dev_no",agvBasDevp.getDevNo()));
+ agvBasDevpService.update(agvBasDevp, new EntityWrapper<AgvBasDevp>().eq("dev_no", agvBasDevp.getDevNo()));
return R.ok();
}
@RequestMapping(value = "/basDevp/export/auth")
@ManagerAuth(memo = "绔欑偣瀵煎嚭")
- public R export(@RequestBody JSONObject param){
+ public R export(@RequestBody JSONObject param) {
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
Map<String, Object> map = excludeTrash(param.getJSONObject("basDevp"));
@@ -142,7 +144,7 @@
wrapper.like("dev_no", condition);
Page<AgvBasDevp> page = agvBasDevpService.selectPage(new Page<>(0, 10), wrapper);
List<Map<String, Object>> result = new ArrayList<>();
- for (AgvBasDevp basDevp : page.getRecords()){
+ for (AgvBasDevp basDevp : page.getRecords()) {
Map<String, Object> map = new HashMap<>();
map.put("id", basDevp.getDevNo());
map.put("value", basDevp.getDevNo());
@@ -166,25 +168,25 @@
绔欑偣鏄庣粏
*/
@RequestMapping(value = "/basDevp/detail/list/auth")
- public R basDevpDetailList(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam Map<String, Object> param){
+ public R basDevpDetailList(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam Map<String, Object> param) {
String devNo = param.get("devNo").toString();
- if (Cools.isEmpty(devNo) || !CodeDetectionUtil.carCodeDetection(devNo)){
+ if (Cools.isEmpty(devNo) || !CodeDetectionUtil.carCodeDetection(devNo)) {
throw new CoolException(devNo + "灏忚溅鍦扮爜鏈夎锛岃姝g‘鎵爜锛侊紒锛�");
}
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
- if("F".equals(agvBasDevp.getLocSts()) || "R".equals(agvBasDevp.getLocSts())){
+ if ("F".equals(agvBasDevp.getLocSts()) || "R".equals(agvBasDevp.getLocSts())) {
//鍏堝幓鍏ュ簱閫氱煡妗f壘鏄庣粏
Page<AgvWaitPakin> agvWaitPakinPage = agvWaitPakinService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWaitPakin>()
.eq("supp_code", agvBasDevp.getBarcode()));
- if(agvWaitPakinPage.getRecords().size()>0){
+ if (agvWaitPakinPage.getRecords().size() > 0) {
return R.ok(agvWaitPakinPage);
- }else {
+ } else {
//濡傛灉鍏ュ簱閫氭。鏄庣粏涓虹┖锛屽垯鍘诲伐浣滄。鎵炬槑缁�
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
.eq("loc_no", agvBasDevp.getDevNo())
- .or().eq("source_loc_no",agvBasDevp.getDevNo()));
+ .or().eq("source_loc_no", agvBasDevp.getDevNo()));
if (Cools.isEmpty(agvWrkMast)) {
Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>()
.eq("supp_code", agvBasDevp.getBarcode()));
@@ -198,7 +200,7 @@
Page<AgvWrkDetl> agvWrkDetlPage = agvWrkDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWrkDetl>()
.eq("wrk_no", agvWrkMast.getWrkNo()));
- if(agvWrkDetlPage.getRecords().size()>0){
+ if (agvWrkDetlPage.getRecords().size() > 0) {
return R.ok(agvWrkDetlPage);
}
}
@@ -208,7 +210,7 @@
}
@RequestMapping(value = "/basDevp/visualized/list/auth")
- public R visualizedList(@RequestBody JSONObject param){
+ public R visualizedList(@RequestBody JSONObject param) {
String stationCode = param.get("stationCode").toString();
@@ -216,26 +218,28 @@
return R.ok(result);
}
+
@RequestMapping(value = "/basDevp/visualized/list/auth/v2")
- public R visualizedList(@RequestParam String stationCode){
+ public R visualizedList(@RequestParam String stationCode) {
Map<String, Object> result = agvBasDevpService.getAgvBasDevpDtoByStationCode(stationCode);
return R.ok(result);
}
+
/*
浠诲姟瀹屾垚
*/
@RequestMapping(value = "/basDevp/visualized/container/moveOut")
@ManagerAuth(memo = "纭鍑哄簱")
- public R visualiZedContainerMoveOut(@RequestBody Map<String,Object> map) {
+ public R visualiZedContainerMoveOut(@RequestBody Map<String, Object> map) {
String barcode = map.get("barcode").toString();
- AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L));
- if (agvWrkMast == null){
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts", 205L));
+ if (agvWrkMast == null) {
R.error("宸ヤ綔妗d笉瀛樺湪");
}
- if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
+ if (agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110) {
throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓嶄负101.鍑哄簱锛屾棤娉曟墽琛岃揣鏋剁鍦轰换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�");
}
@@ -251,14 +255,14 @@
*/
@RequestMapping(value = "/basDevp/visualized/container/moveOut2")
@ManagerAuth(memo = "纭鍑哄簱2")
- public R visualiZedContainerMoveOut2(@RequestBody Map<String,Object> map) {
+ public R visualiZedContainerMoveOut2(@RequestBody Map<String, Object> map) {
String barcode = map.get("barcode").toString();
- AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L));
- if (agvWrkMast == null){
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts", 205L));
+ if (agvWrkMast == null) {
return R.error("宸ヤ綔妗d笉瀛樺湪");
}
- if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){
+ if (agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110) {
throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓嶄负101.鍑哄簱锛屾棤娉曟墽琛岃揣鏋剁鍦轰换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�");
}
@@ -274,13 +278,19 @@
*/
@RequestMapping(value = "/basDevp/visualized/container/pickIn")
@ManagerAuth(memo = "宸叉嫞鏂欏洖搴�")
- public R visualiZedPickIn(@RequestBody Map<String,Object> map){
+ public R visualiZedPickIn(@RequestBody Map<String, Object> map) {
+ if (Cools.isEmpty(map.get("devNo"))) {
+ return R.error("绔欑偣涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(map.get("barcode"))) {
+ return R.error("璐ф灦鐮佷笉鑳戒负绌�");
+ }
List<AgvWrkMast> agvWrkMastList = new ArrayList<>();
String devNo = map.get("devNo").toString();
String barcode = map.get("barcode").toString();
- AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L));
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts", 205L));
if (agvWrkMast != null) {
- if(agvWrkMast.getIoType() == 101){
+ if (agvWrkMast.getIoType() == 101) {
throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓�101.鍑哄簱锛屾棤娉曟墽琛屾嫞鏂欏叆搴撲换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�");
}
agvWrkMast.setLocNo(devNo);
@@ -291,14 +301,13 @@
}
-
return R.ok("鐢熸垚鎷f枡鍥炲簱浠诲姟鎴愬姛");
}
- private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
String val = String.valueOf(entry.getValue());
- if (val.contains(RANGE_TIME_LINK)){
+ if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
index 9f6d390..08f5a62 100644
--- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
@@ -7,14 +7,8 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
-import com.zy.asrs.entity.AgvLocDetl;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.service.AgvLocDetlService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.MatService;
-import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -40,16 +34,20 @@
private OrderDetlService orderDetlService;
@Autowired
private DocTypeService docTypeService;
+ @Autowired
+ private AgvWrkDetlService agvWrkDetlService;
+ @Autowired
+ private AgvWrkMastService agvWrkMastService;
@RequestMapping(value = "/locDetl/list/auth")
@ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam(required = false)String condition,
+ public R list(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam(required = false) String condition,
@RequestParam Map<String, Object> param,
- @RequestParam(required = false)Boolean unreason){
+ @RequestParam(required = false) Boolean unreason) {
if (!Cools.isEmpty(unreason) && unreason) {
return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>()
@@ -64,7 +62,7 @@
if (chooseRow.length() == 1) {
row = "0" + chooseRow;
param.remove("row");
- }else {
+ } else {
row = chooseRow;
param.remove("row");
}
@@ -72,10 +70,12 @@
excludeTrash(param);
convert(param, wrapper);
allLike(AgvLocDetl.class, param.keySet(), wrapper, condition);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
- if (!row.equals("")){
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }
+ if (!row.equals("")) {
wrapper.and()
- .where("loc_no like '" +row +"%'");
+ .where("loc_no like '" + row + "%'");
}
return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper));
@@ -83,13 +83,13 @@
@RequestMapping(value = "/locDetl/list/auth/v2")
@ManagerAuth
- public R listV2(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam(required = false)String condition,
- @RequestParam Map<String, Object> param,
- @RequestParam(required = false)Boolean unreason){
+ public R listV2(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam(required = false) String condition,
+ @RequestParam Map<String, Object> param,
+ @RequestParam(required = false) Boolean unreason) {
if (!Cools.isEmpty(unreason) && unreason) {
return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>()
@@ -104,7 +104,7 @@
if (chooseRow.length() == 1) {
row = "0" + chooseRow;
param.remove("row");
- }else {
+ } else {
row = chooseRow;
param.remove("row");
}
@@ -112,12 +112,22 @@
excludeTrash(param);
convert(param, wrapper);
allLike(AgvLocDetl.class, param.keySet(), wrapper, condition);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
- if (!row.equals("")){
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }
+ if (!row.equals("")) {
wrapper.and()
- .where("loc_no like '" +row +"%'");
+ .where("loc_no like '" + row + "%'");
}
Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.get("loc_no")));
+ String orderNo = null;
+ if (agvWrkMast != null) {
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectByWrkNo(agvWrkMast.getWrkNo());
+ if (!agvWrkDetls.isEmpty()) {
+ orderNo = agvWrkDetls.get(0).getOrderNo();
+ }
+ }
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
List<Long> docIds = new ArrayList<>();
for (DocType pakin : pakins) {
@@ -126,10 +136,19 @@
}
}
for (AgvLocDetl record : agvLocDetlPage.getRecords()) {
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
- .eq("three_code", record.getThreeCode())
- .eq("matnr", record.getMatnr())
- .in("source",docIds));
+ OrderDetl orderDetl;
+ if (!Cools.isEmpty(orderNo)) {
+ orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+ .eq("order_no", orderNo)
+ .eq("three_code", record.getThreeCode())
+ .eq("matnr", record.getMatnr())
+ .in("source", docIds));
+ } else {
+ orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+ .eq("three_code", record.getThreeCode())
+ .eq("matnr", record.getMatnr())
+ .in("source", docIds));
+ }
// if (orderDetl.getAnfme() - orderDetl.getQty() > 0) {
// record.setStock(orderDetl.getAnfme() - orderDetl.getQty());
// } else {
@@ -148,8 +167,8 @@
@RequestMapping(value = "/locDetl/statis/auth")
@ManagerAuth(memo = "AGV搴撳瓨鏄庣粏缁熻")
- public R statis(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
+ public R statis(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
@RequestParam Map<String, Object> param) {
Page<AgvLocDetl> stockStatis = agvLocDetlService.getStockStatis(toPage(curr, limit, param, AgvLocDetl.class));
for (AgvLocDetl locDetl : stockStatis.getRecords()) {
@@ -165,7 +184,7 @@
鑾峰彇搴撳瓨鎬绘暟
*/
@RequestMapping("/locDetl/count")
- public R getAllCount(){
+ public R getAllCount() {
Integer sum = agvLocDetlService.sum();
return R.ok(sum);
}
@@ -192,7 +211,7 @@
@RequestMapping(value = "/locDetl/statis/export")
@ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
- public synchronized R statisExport(@RequestBody JSONObject param){
+ public synchronized R statisExport(@RequestBody JSONObject param) {
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
List<AgvLocDetl> stockStatisExcel = agvLocDetlService.getStockStatisExcel();
return R.ok(exportSupport(stockStatisExcel, fields));
@@ -200,7 +219,7 @@
@RequestMapping(value = "/locDetl/export/auth")
@ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
- public synchronized R export(@RequestBody JSONObject param){
+ public synchronized R export(@RequestBody JSONObject param) {
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>();
Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
@@ -210,15 +229,15 @@
if (chooseRow.length() == 1) {
row = "0" + chooseRow;
map.remove("row");
- }else {
+ } else {
row = chooseRow;
map.remove("row");
}
}
convert(map, wrapper);
- if (!row.equals("")){
+ if (!row.equals("")) {
wrapper.and()
- .where("loc_no like '" +row +"%'");
+ .where("loc_no like '" + row + "%'");
}
List<AgvLocDetl> list = agvLocDetlService.selectList(wrapper);
return R.ok(exportSupport(list, fields));
@@ -232,10 +251,10 @@
return R.ok();
}
- private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
String val = String.valueOf(entry.getValue());
- if (val.contains(RANGE_TIME_LINK)){
+ if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 94adb56..8529651 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -178,7 +178,7 @@
}
for (AgvMobileStartParam.Pda pda : params.getPad()) {
if (pda == null || Cools.isEmpty(pda.getContainerCode())) {
- return R.error("缂哄皯瀹瑰櫒淇℃伅");
+ return R.error("缂哄皯瀹瑰櫒鍙傛暟");
}
pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0, 2)));
workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false);
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 47ca17f..2490c12 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -49,15 +48,17 @@
@RequestMapping(value = "/orderDetl/list/auth")
@ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R list(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convert(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
wrapper.eq("status", 1);
@@ -66,23 +67,25 @@
@RequestMapping(value = "/orderDetl/pakout/list/auth")
@ManagerAuth
- public R pakoutList(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam Map<String, Object> param){
+ public R pakoutList(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam Map<String, Object> param) {
return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class)));
}
@RequestMapping(value = "/orderDetl/pakout/list/authV2")
@ManagerAuth
- public R pakoutList2(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList2(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convert(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -91,28 +94,30 @@
docIds.add(pakin.getDocId());
}
EntityWrapper<Order> orderEntityWrapper = new EntityWrapper<>();
- List<Order> orders = orderService.selectList(orderEntityWrapper.in("doc_type",docIds));
+ List<Order> orders = orderService.selectList(orderEntityWrapper.in("doc_type", docIds));
List<String> orderNos = new ArrayList<>();
for (Order order : orders) {
orderNos.add(order.getOrderNo());
}
- wrapper.in("order_no",orderNos);
+ wrapper.in("order_no", orderNos);
return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
}
@RequestMapping(value = "/orderDetl/pakout/list/authV193")
@ManagerAuth
- public R pakoutList193(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam(required = false)Long docType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList193(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam(required = false) Long docType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
param.remove("docType");
excludeTrash(param);
convertLike(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -133,13 +138,13 @@
if (docIds.size() > 0) {
if (docType > 0) {
- wrapper.in("source",docType);
+ wrapper.in("source", docType);
} else {
- wrapper.in("source",docIds);
+ wrapper.in("source", docIds);
}
} else {
- wrapper.in("source",0);
+ wrapper.in("source", 0);
}
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
for (OrderDetl record : page.getRecords()) {
@@ -153,17 +158,19 @@
@RequestMapping(value = "/orderDetl/pakout/list/authV3")
@Synchronized
@ManagerAuth
- public R pakoutList3(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList3(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convertLike(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -173,7 +180,7 @@
docIds.add(pakin.getDocId());
}
}
- wrapper.in("source",docIds);
+ wrapper.in("source", docIds);
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
for (OrderDetl record : page.getRecords()) {
Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
@@ -185,19 +192,21 @@
}
/*
- * 鍗婃垚鍝佸姞宸ュ崟鎹�
- * */
+ * 鍗婃垚鍝佸姞宸ュ崟鎹�
+ * */
@RequestMapping(value = "/orderDetl/pakout/list/authV5")
@ManagerAuth
- public R pakoutList5(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList5(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convertLike(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -207,8 +216,8 @@
docIds.add(pakin.getDocId());
}
}
- wrapper.eq("process_sts",1);
- wrapper.in("source",docIds);
+ wrapper.eq("process_sts", 1);
+ wrapper.in("source", docIds);
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
for (OrderDetl record : page.getRecords()) {
Double sumAnfme = agvLocDetlService.getSumAnfmeProcess(record.getMatnr(), record.getThreeCode());
@@ -220,15 +229,17 @@
@RequestMapping(value = "/orderDetl/pakout/list/authV4")
@ManagerAuth
- public R pakoutList4(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList4(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convertLike(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -239,7 +250,7 @@
}
}
- wrapper.in("source",docIds);
+ wrapper.in("source", docIds);
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
for (OrderDetl record : page.getRecords()) {
Double sumAnfme = agvLocDetlService.getSumAnfmeProcessed(record.getMatnr(), record.getThreeCode());
@@ -251,15 +262,17 @@
@RequestMapping(value = "/orderDetl/pakout/list/authV6")
@ManagerAuth
- public R pakoutList6(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam Map<String, Object> param){
+ public R pakoutList6(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
excludeTrash(param);
convertLike(param, wrapper);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
wrapper.orderBy("create_time", false);
}
List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
@@ -270,7 +283,7 @@
}
}
- wrapper.in("source",docIds);
+ wrapper.in("source", docIds);
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
for (OrderDetl record : page.getRecords()) {
Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
@@ -280,23 +293,23 @@
return R.ok(page);
}
- private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
String val = String.valueOf(entry.getValue());
- if (val.contains(RANGE_TIME_LINK)){
+ if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
} else {
- wrapper.eq(entry.getKey(), val);
+ wrapper.like(entry.getKey(), val);
}
}
}
- private <T> void convertLike(Map<String, Object> map, EntityWrapper<T> wrapper){
- for (Map.Entry<String, Object> entry : map.entrySet()){
+ private <T> void convertLike(Map<String, Object> map, EntityWrapper<T> wrapper) {
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
String val = String.valueOf(entry.getValue());
- if (val.contains(RANGE_TIME_LINK)){
+ if (val.contains(RANGE_TIME_LINK)) {
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -313,10 +326,10 @@
return R.ok();
}
- @RequestMapping(value = "/orderDetl/update/auth")
- @ManagerAuth
- public R update(OrderDetl orderDetl){
- if (Cools.isEmpty(orderDetl) || null==orderDetl.getId()){
+ @RequestMapping(value = "/orderDetl/update/auth")
+ @ManagerAuth
+ public R update(OrderDetl orderDetl) {
+ if (Cools.isEmpty(orderDetl) || null == orderDetl.getId()) {
return R.error("鍙傛暟缂哄け");
}
orderDetlService.updateById(orderDetl);
@@ -325,8 +338,8 @@
@RequestMapping(value = "/orderDetl/delete/auth")
@ManagerAuth
- public R delete(@RequestParam(value="ids[]") Long[] ids){
- for (Long id : ids){
+ public R delete(@RequestParam(value = "ids[]") Long[] ids) {
+ for (Long id : ids) {
orderDetlService.deleteById(id);
}
return R.ok();
@@ -334,7 +347,7 @@
@RequestMapping(value = "/orderDetl/export/auth")
@ManagerAuth
- public R export(@RequestBody JSONObject param){
+ public R export(@RequestBody JSONObject param) {
EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
Map<String, Object> map = excludeTrash(param.getJSONObject("orderDetl"));
@@ -350,7 +363,7 @@
wrapper.like("id", condition);
Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(0, 10), wrapper);
List<Map<String, Object>> result = new ArrayList<>();
- for (OrderDetl orderDetl : page.getRecords()){
+ for (OrderDetl orderDetl : page.getRecords()) {
Map<String, Object> map = new HashMap<>();
map.put("id", orderDetl.getId());
map.put("value", orderDetl.getId());
@@ -363,7 +376,7 @@
@ManagerAuth
public R query(@RequestBody JSONObject param) {
Wrapper<OrderDetl> wrapper = new EntityWrapper<OrderDetl>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
- if (null != orderDetlService.selectOne(wrapper)){
+ if (null != orderDetlService.selectOne(wrapper)) {
return R.parse(BaseRes.REPEAT).add(getComment(OrderDetl.class, String.valueOf(param.get("key"))));
}
return R.ok();
diff --git a/src/main/java/com/zy/asrs/controller/OrderViewController.java b/src/main/java/com/zy/asrs/controller/OrderViewController.java
new file mode 100644
index 0000000..96f3157
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/OrderViewController.java
@@ -0,0 +1,37 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.R;
+import com.zy.asrs.entity.OrderView;
+import com.zy.asrs.entity.OrderViewParam;
+import com.zy.asrs.mapper.OrderViewMapper;
+import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+public class OrderViewController extends BaseController {
+
+ @Autowired
+ private OrderViewMapper orderViewMapper;
+
+
+ @RequestMapping(value = "/orderView/list/auth")
+ @ManagerAuth
+ public R navList(OrderViewParam bean) {
+ List<OrderView> orderViews = orderViewMapper.selectOrderView(bean);
+ int count = orderViewMapper.countOrderView(bean);
+ Page<OrderView> page = new Page<>();
+ page.setRecords(orderViews);
+ page.setTotal(count);
+ return R.ok(page);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/OrderView.java b/src/main/java/com/zy/asrs/entity/OrderView.java
new file mode 100644
index 0000000..38383d8
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/OrderView.java
@@ -0,0 +1,542 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderSettleService;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_order_view")
+public class OrderView implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ApiModelProperty(value = "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 缂栧彿
+ */
+ @ApiModelProperty(value = "缂栧彿")
+ private String uuid;
+
+ /**
+ * 璁㈠崟缂栧彿
+ */
+ @ApiModelProperty(value = "璁㈠崟缂栧彿")
+ @TableField("order_no")
+ private String orderNo;
+
+ /**
+ * 鍗曟嵁鏃ユ湡
+ */
+ @ApiModelProperty(value = "鍗曟嵁鏃ユ湡")
+ @TableField("order_time")
+ private String orderTime;
+
+ /**
+ * 鍗曟嵁绫诲瀷
+ */
+ @ApiModelProperty(value = "鍗曟嵁绫诲瀷")
+ @TableField("doc_type")
+ private Long docType;
+
+ /**
+ * 椤圭洰缂栧彿
+ */
+ @ApiModelProperty(value = "椤圭洰缂栧彿")
+ @TableField("item_id")
+ private Long itemId;
+
+ @ApiModelProperty(value = "")
+ @TableField("item_name")
+ private String itemName;
+
+ /**
+ * 璋冩嫧椤圭洰缂栧彿
+ */
+ @ApiModelProperty(value = "璋冩嫧椤圭洰缂栧彿")
+ @TableField("allot_item_id")
+ private Long allotItemId;
+
+ /**
+ * 鍒濆绁ㄦ嵁鍙�
+ */
+ @ApiModelProperty(value = "鍒濆绁ㄦ嵁鍙�")
+ @TableField("def_number")
+ private String defNumber;
+
+ /**
+ * 绁ㄦ嵁鍙�
+ */
+ @ApiModelProperty(value = "绁ㄦ嵁鍙�")
+ private String number;
+
+ /**
+ * 瀹㈡埛缂栧彿
+ */
+ @ApiModelProperty(value = "瀹㈡埛缂栧彿")
+ private Long cstmr;
+
+ /**
+ * 瀹㈡埛
+ */
+ @ApiModelProperty(value = "瀹㈡埛")
+ @TableField("cstmr_name")
+ private String cstmrName;
+
+ /**
+ * 鑱旂郴鏂瑰紡
+ */
+ @ApiModelProperty(value = "鑱旂郴鏂瑰紡")
+ private String tel;
+
+ /**
+ * 鎿嶄綔浜哄憳
+ */
+ @ApiModelProperty(value = "鎿嶄綔浜哄憳")
+ @TableField("oper_memb")
+ private String operMemb;
+
+ /**
+ * 鍚堣閲戦
+ */
+ @ApiModelProperty(value = "鍚堣閲戦")
+ @TableField("total_fee")
+ private Double totalFee;
+
+ /**
+ * 浼樻儬鐜�
+ */
+ @ApiModelProperty(value = "浼樻儬鐜�")
+ private Double discount;
+
+ /**
+ * 浼樻儬閲戦
+ */
+ @ApiModelProperty(value = "浼樻儬閲戦")
+ @TableField("discount_fee")
+ private Double discountFee;
+
+ /**
+ * 閿�鍞垨閲囪喘璐圭敤鍚堣
+ */
+ @ApiModelProperty(value = "閿�鍞垨閲囪喘璐圭敤鍚堣")
+ @TableField("other_fee")
+ private Double otherFee;
+
+ /**
+ * 瀹炰粯閲戦
+ */
+ @ApiModelProperty(value = "瀹炰粯閲戦")
+ @TableField("act_fee")
+ private Double actFee;
+
+ /**
+ * 浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处
+ */
+ @ApiModelProperty(value = "浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 ")
+ @TableField("pay_type")
+ private Integer payType;
+
+ /**
+ * 涓氬姟鍛�
+ */
+ @ApiModelProperty(value = "涓氬姟鍛�")
+ private String salesman;
+
+ /**
+ * setMemo
+ */
+ @ApiModelProperty(value = "缁撶畻澶╂暟")
+ @TableField("account_day")
+ private Integer accountDay;
+
+ /**
+ * 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻
+ */
+ @ApiModelProperty(value = "閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻 ")
+ @TableField("post_fee_type")
+ private Integer postFeeType;
+
+ /**
+ * 閭垂
+ */
+ @ApiModelProperty(value = "閭垂")
+ @TableField("post_fee")
+ private Double postFee;
+
+ /**
+ * 浠樻鏃堕棿
+ */
+ @ApiModelProperty(value = "浠樻鏃堕棿")
+ @TableField("pay_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date payTime;
+
+ /**
+ * 鍙戣揣鏃堕棿
+ */
+ @ApiModelProperty(value = "鍙戣揣鏃堕棿")
+ @TableField("send_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date sendTime;
+
+ /**
+ * 鐗╂祦鍚嶇О
+ */
+ @ApiModelProperty(value = "鐗╂祦鍚嶇О")
+ @TableField("ship_name")
+ private String shipName;
+
+ /**
+ * 鐗╂祦鍗曞彿
+ */
+ @ApiModelProperty(value = "鐗╂祦鍗曞彿")
+ @TableField("ship_code")
+ private String shipCode;
+
+ /**
+ * 璁㈠崟鐘舵��
+ */
+ @ApiModelProperty(value = "璁㈠崟鐘舵��")
+ private Long settle;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value = "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value = "娣诲姞浜哄憳")
+ @TableField("create_by")
+ private Long createBy;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value = "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value = "淇敼浜哄憳")
+ @TableField("update_by")
+ private Long updateBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField("update_time")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ private String memo;
+
+ @ApiModelProperty(value = "erp浠撳簱缂栫爜")
+ @TableField("plt_type")
+ private Integer pltType;
+
+ /**
+ * 鍏ュ簱鏃ユ湡
+ */
+ @ApiModelProperty(value = "鍏ュ簱鏃ユ湡")
+ @TableField("in_time")
+ private String inTime;
+
+
+ @TableField("Upstreamcode")
+ private String Upstreamcode;
+
+
+
+
+ /**
+ * 鏁伴噺
+ */
+ @ApiModelProperty(value= "鏁伴噺")
+ private Double anfme;
+
+ /**
+ * 浣滀笟鏁伴噺
+ *
+ * 1. 鍏ュ簱 : qty 馃憜
+ * 1. 鍑哄簱 : qty 馃憜
+ */
+ @ApiModelProperty(value= "浣滀笟鏁伴噺")
+ private Double qty;
+
+ /**
+ * 鐗╂枡鍙�
+ */
+ @ApiModelProperty(value= "鐗╂枡鍙�")
+ private String matnr;
+
+ /**
+ * 鐗╂枡鍙�
+ */
+ @ApiModelProperty(value= "鐗╂枡鍙�")
+ private String maktx;
+ /**
+ * 涓夋柟缂栫爜
+ */
+ @ApiModelProperty(value= "涓夋柟缂栫爜")
+ @TableField("three_code")
+ private String threeCode;
+
+ /**
+ * 搴忓垪鐮�
+ */
+ @ApiModelProperty(value= "搴忓垪鐮�")
+ private String batch;
+
+ /**
+ * 宸ュ簭鐘舵��
+ */
+ @ApiModelProperty(value= "宸ュ簭鐘舵�� 1锛氬緟鍔犲伐锛�2锛氬凡鍔犲伐锛�3锛氭棤闇�鍔犲伐")
+ @TableField("process_sts")
+ private Integer processSts;
+
+ @TableField("report_qty")
+ private Double reportQty;
+
+ @TableField("dev_no")
+ private String devNo;
+
+
+
+
+
+
+
+ public OrderView() {
+ }
+
+ public OrderView(String uuid, String orderNo, String orderTime, Long docType, Long itemId, String itemName, Long allotItemId, String defNumber, String number, Long cstmr, String cstmrName, String tel, String operMemb, Double totalFee, Double discount, Double discountFee, Double otherFee, Double actFee, Integer payType, String salesman, Integer accountDay, Integer postFeeType, Double postFee, Date payTime, Date sendTime, String shipName, String shipCode, Long settle, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
+ this.uuid = uuid;
+ this.orderNo = orderNo;
+ this.orderTime = orderTime;
+ this.docType = docType;
+ this.itemId = itemId;
+ this.itemName = itemName;
+ this.allotItemId = allotItemId;
+ this.defNumber = defNumber;
+ this.number = number;
+ this.cstmr = cstmr;
+ this.cstmrName = cstmrName;
+ this.tel = tel;
+ this.operMemb = operMemb;
+ this.totalFee = totalFee;
+ this.discount = discount;
+ this.discountFee = discountFee;
+ this.otherFee = otherFee;
+ this.actFee = actFee;
+ this.payType = payType;
+ this.salesman = salesman;
+ this.accountDay = accountDay;
+ this.postFeeType = postFeeType;
+ this.postFee = postFee;
+ this.payTime = payTime;
+ this.sendTime = sendTime;
+ this.shipName = shipName;
+ this.shipCode = shipCode;
+ this.settle = settle;
+ this.status = status;
+ this.createBy = createBy;
+ this.createTime = createTime;
+ this.updateBy = updateBy;
+ this.updateTime = updateTime;
+ this.memo = memo;
+ }
+
+// Order order = new Order(
+// null, // 缂栧彿[闈炵┖]
+// null, // 璁㈠崟缂栧彿
+// null, // 鍗曟嵁鏃ユ湡
+// null, // 鍗曟嵁绫诲瀷
+// null, // 椤圭洰缂栧彿
+// null, //
+// null, // 璋冩嫧椤圭洰缂栧彿
+// null, // 鍒濆绁ㄦ嵁鍙�
+// null, // 绁ㄦ嵁鍙�
+// null, // 瀹㈡埛缂栧彿
+// null, // 瀹㈡埛
+// null, // 鑱旂郴鏂瑰紡
+// null, // 鎿嶄綔浜哄憳
+// null, // 鍚堣閲戦
+// null, // 浼樻儬鐜�
+// null, // 浼樻儬閲戦
+// null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+// null, // 瀹炰粯閲戦
+// null, // 浠樻绫诲瀷
+// null, // 涓氬姟鍛�
+// null, // 缁撶畻澶╂暟
+// null, // 閭垂鏀粯绫诲瀷
+// null, // 閭垂
+// null, // 浠樻鏃堕棿
+// null, // 鍙戣揣鏃堕棿
+// null, // 鐗╂祦鍚嶇О
+// null, // 鐗╂祦鍗曞彿
+// null, // 璁㈠崟鐘舵��
+// null, // 鐘舵��
+// null, // 娣诲姞浜哄憳
+// null, // 娣诲姞鏃堕棿
+// null, // 淇敼浜哄憳
+// null, // 淇敼鏃堕棿
+// null // 澶囨敞
+// );
+
+ public String getDocType$() {
+ DocTypeService service = SpringUtils.getBean(DocTypeService.class);
+ DocType docType = service.selectById(this.docType);
+ if (!Cools.isEmpty(docType)) {
+ return String.valueOf(docType.getDocName());
+ }
+ return null;
+ }
+
+ public String getPayType$() {
+ if (null == this.payType) {
+ return null;
+ }
+ switch (this.payType) {
+ case 1:
+ return "鐜伴噾";
+ case 2:
+ return "璁拌处";
+ default:
+ return String.valueOf(this.payType);
+ }
+ }
+
+ public String getPostFeeType$() {
+ if (null == this.postFeeType) {
+ return null;
+ }
+ switch (this.postFeeType) {
+ case 1:
+ return "鍦ㄧ嚎鏀粯";
+ case 2:
+ return "璐у埌浠樻";
+ default:
+ return String.valueOf(this.postFeeType);
+ }
+ }
+
+ public String getPayTime$() {
+ if (Cools.isEmpty(this.payTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.payTime);
+ }
+
+ public String getSendTime$() {
+ if (Cools.isEmpty(this.sendTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
+ }
+
+ public String getSettle$() {
+ OrderSettleService service = SpringUtils.getBean(OrderSettleService.class);
+ OrderSettle orderSettle = service.selectById(this.settle);
+ if (!Cools.isEmpty(orderSettle)) {
+ return String.valueOf(orderSettle.getSettleName());
+ }
+ return null;
+ }
+
+ public String getStatus$() {
+ if (null == this.status) {
+ return null;
+ }
+ switch (this.status) {
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getCreateBy$() {
+ if (!Cools.isEmpty(this.createBy) && this.createBy == 9999L) {
+ return "绯荤粺鍚屾";
+ }
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.createBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getCreateTime$() {
+ if (Cools.isEmpty(this.createTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getUpdateBy$() {
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.updateBy);
+ if (!Cools.isEmpty(user)) {
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public String getUpdateTime$() {
+ if (Cools.isEmpty(this.updateTime)) {
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+ public String getProcessSts$(){
+ if (null == this.processSts){ return null; }
+ switch (this.processSts){
+ case 0:
+ return "鍏朵粬";
+ case 1:
+ return "寰呭姞宸�";
+ case 2:
+ return "宸插姞宸�";
+ case 3:
+ return "鏃犻渶鍔犲伐";
+ default:
+ return String.valueOf(this.processSts);
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/OrderViewParam.java b/src/main/java/com/zy/asrs/entity/OrderViewParam.java
new file mode 100644
index 0000000..106cf1a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/OrderViewParam.java
@@ -0,0 +1,37 @@
+package com.zy.asrs.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 搴撳瓨婊炵暀鏃堕棿瀹炰綋绫�
+ * @author admin
+ * @date 2018骞�11鏈�23鏃�
+ */
+@Data
+public class OrderViewParam implements Serializable {
+
+ private int curr;
+
+ private int limit;
+
+ private String threeCode;
+
+
+ @ApiModelProperty(value = "鐗╂枡鍙�")
+ private String matnr;
+
+
+ @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+ private String maktx;
+
+
+ @ApiModelProperty(value = "鍗曟嵁缂栧彿")
+ private String orderNo;
+
+ private Long docType;
+
+ private Long settle;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderViewMapper.java b/src/main/java/com/zy/asrs/mapper/OrderViewMapper.java
new file mode 100644
index 0000000..eef5ef2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/OrderViewMapper.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.OrderView;
+import com.zy.asrs.entity.OrderViewParam;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface OrderViewMapper extends BaseMapper<OrderView> {
+
+ List<OrderView> selectOrderView(OrderViewParam bean);
+
+ int countOrderView(OrderViewParam bean);
+
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 2173736..49d9eee 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -4,7 +4,6 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
-import com.zy.asrs.constant.AsrsConstants;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
@@ -655,6 +654,9 @@
@Transactional
public String allocationIn(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException("璇疯緭鍏ヨ揣鏋剁爜");
+ }
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
if (Cools.isEmpty(agvWrkMast)) {
throw new CoolException("鏆傛棤褰撳墠璐ф灦鐮佺殑浠诲姟");
@@ -732,6 +734,9 @@
@Synchronized
public String empIn(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
+ if (Cools.isEmpty(param.getBarcode())) {
+ throw new CoolException("璇疯緭鍏ヨ揣鏋剁爜");
+ }
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
if (Cools.isEmpty(agvWrkMast)) {
throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
@@ -761,7 +766,7 @@
public String handBack(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
- if (agvWrkMast == null) {
+ if (agvWrkMast == null){
throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
}
agvWrkMast.setIoType(113);
@@ -791,23 +796,8 @@
agvWrkMastLogService.save(agvWrkMast);
agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
String sourceLocNo = agvWrkMast.getSourceLocNo();
-
- // TODO 鍥涙湡
- List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
- String factory = null;
- if (agvWrkDetls != null && !Cools.isEmpty(agvWrkDetls)) {
- String orderNo = agvWrkDetls.get(0).getOrderNo();
- if (!Cools.isEmpty(orderNo)) {
- if (orderNo.contains(AsrsConstants.ERCHANG)) {
- factory = AsrsConstants.ERCHANG;
- } else if (orderNo.contains(AsrsConstants.SANCHANG)) {
- factory = AsrsConstants.SANCHANG;
- }
- }
- }
- AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory);
- //AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
- if (newLocMast == null) {
+ AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
+ if (newLocMast==null){
throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
}
agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
@@ -829,7 +819,7 @@
agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30);
agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo));
- //List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode()));
agvWrkDetls.forEach(agvWrkDetl -> {
for (AgvWrkDetl wrkDetl : param.getWrkDetls()) {
if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) {
diff --git a/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java b/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
index 5a653bc..fd5450b 100644
--- a/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
@@ -1,6 +1,5 @@
package com.zy.asrs.task;
-import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -87,7 +86,10 @@
HashMap<String, Object> sendData = new HashMap<>();
for (AgvWarn agvWarn : agvWarnList) {
Integer warnTime = getWarnTime(agvWarn.getTimes(), first.getValue(), second.getValue(), third.getValue());
- DateTime begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
+ Date begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
+ if (DateUtil.offsetMinute(agvWarn.getAppeTime(), -3).after(begin)) {
+ begin = agvWarn.getAppeTime();
+ }
if (DateUtil.offsetMinute(new Date(), -warnTime).after(begin)) {
buffer = new StringBuffer();
buffer.append(processRegion(agvs, agvWarn.getRobotCode()) + "[" + agvWarn.getRobotCode() + "]鍙稟GV灏忚溅鎶ヨ浜哱n");
@@ -95,19 +97,21 @@
if (!Cools.isEmpty(agvWarn.getSourceLocNo())) {
buffer.append("浠�:[" + agvWarn.getSourceLocNo() + "]鍒癧" + agvWarn.getLocNo() + "]\n");
}
- buffer.append("鎶ヨ寮�濮嬫椂闂�:" + agvWarn.getBeginTime() + "\n");
- buffer.append("褰撳墠鏃堕棿:" + DateUtil.formatDateTime(new Date()) + "\n");
- int i = agvWarn.getTimes() + 1;
+ //buffer.append("鎶ヨ寮�濮嬫椂闂�:" + agvWarn.getBeginTime() + "\n");
+ buffer.append("鎶ヨ寮�濮嬫椂闂�:" + DateUtil.formatDateTime(begin) + "\n");
+ buffer.append("褰撳墠鏃堕棿:" + DateUtil.formatDateTime(new Date()));
+ //int i = agvWarn.getTimes() + 1;
//buffer.append("绗琜" + i + "]娆℃姤璀�");
HashMap<String, Object> param = new HashMap<>();
HashMap<String, Object> data = new HashMap<>();
data.put("content", buffer.toString());
param.put("msgtype", "text");
param.put("text", data);
- //log.info("鍙戦�佹姤璀︿俊鎭細{}", JSON.toJSONString(param));
+
sendData.put(agvWarn.getRobotCode() + agvWarn.getWarnContent(), param);
}
for (HashMap.Entry<String, Object> entry : sendData.entrySet()) {
+ log.info("鍙戦�佹姤璀︿俊鎭細{}", JSON.toJSONString(entry.getValue()));
String response = null;
try {
response = new HttpHandler.Builder().setUri(url.getValue()).setJson(JSON.toJSONString(entry.getValue())).setHttps(true).build().doPost();
@@ -117,9 +121,8 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.get("errmsg").equals("ok")) {
agvWarn.setTimes(agvWarn.getTimes() + 1);
+ agvWarn.setModiTime(new Date());
agvWarnService.updateById(agvWarn);
- //鍙戦�佹垚鍔�
- return;
} else {
log.error("鍙戦�佸け璐ワ紝閿欒淇℃伅锛歿}", jsonObject.get("errmsg"));
}
diff --git a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
index 61c9047..ebea365 100644
--- a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java
@@ -18,13 +18,14 @@
private OrderLogHandler orderLogHandler;
@Autowired
private OrderService orderService;
-//
+
+ //
// @Value("${erp.enable}")
// private boolean isERP;
//
//@Scheduled(cron = "0/10 * * * * ? ")
@Scheduled(fixedDelay = 600000)
- private void execute(){
+ private void execute() {
List<Order> orders = orderService.selectToBeHistoryOrder();
if (orders.isEmpty()) {
return;
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index b25e322..fa4219c 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,6 +1,5 @@
package com.zy.asrs.task;
-import cn.hutool.core.date.StopWatch;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
@@ -63,8 +62,6 @@
@Scheduled(fixedDelay = 600000)
//@Async("orderThreadPool")
public void completeAndReport() {
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
List<Order> orders = orderService.selectComplete();
@@ -91,8 +88,6 @@
}
}
}
- stopWatch.stop();
- log.info("瀹氭椂浠诲姟瀹屾垚锛岃�楁椂锛歿}ms", stopWatch.getTotalTimeMillis());
}
//@Scheduled(cron = "* 0/5 * * * ? ")
@@ -132,7 +127,6 @@
} finally {
page++;
}
- log.info("鍒嗛〉鏌ヨ瀹屾瘯锛寋}", page);
}
}
diff --git a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
index 79e42a0..b67b758 100644
--- a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
@@ -20,14 +20,12 @@
private OverYearLogHandler overYearLogHandler;
@Scheduled(cron = "0/1 * * * * ? ")
- private void execute() {
+ private void execute(){
ReturnT<String> returnT = overYearLogHandler.start();
if (!returnT.isSuccess()) {
log.error(returnT.getMsg());
}
}
-
-
@Scheduled(cron = "* * 1 * * ? ")
private void executeOrderLog() {
ReturnT<String> returnT = overYearLogHandler.start2();
diff --git a/src/main/java/com/zy/asrs/task/ReportDataScheduler.java b/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
index 131eeab..df5c2f3 100644
--- a/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ReportDataScheduler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task;
+import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -7,7 +8,9 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.ReportData;
+import com.zy.asrs.entity.ReportDataLog;
import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.ReportDataLogService;
import com.zy.asrs.service.ReportDataService;
import com.zy.asrs.task.handler.ReportDataHandler;
import com.zy.common.utils.HttpHandler;
@@ -18,7 +21,9 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -32,6 +37,9 @@
@Autowired
private ReportDataService reportDataService;
+
+ @Autowired
+ private ReportDataLogService reportDataLogService;
@Autowired
private ApiLogService apiLogService;
@@ -60,6 +68,19 @@
private String stock;
+ /**
+ * 鍒犻櫎鍛婅鏃ュ織
+ */
+ @Scheduled(cron = "0 0 2 * * ? ")
+ private void delReportDataLog() {
+ String format = DateUtil.format(DateUtil.offsetMonth(new Date(), -2), "yyyy-MM-dd HH:mm:ss");
+ List<ReportDataLog> agvWarnList = reportDataLogService.selectList(new EntityWrapper<ReportDataLog>().le("modi_time", format));
+ for (ReportDataLog agvWarn : agvWarnList) {
+ reportDataLogService.deleteById(agvWarn);
+ }
+ }
+
+
@Scheduled(fixedDelay = 30000)
public void execute() {
if (!flag) {
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 8c3a2be..2d41bc7 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -51,11 +51,6 @@
@Autowired
private AgvLocMastService agvLocMastService;
-
- @Autowired
- private AgvWrkMastService agvWrkMastService;
-
-
@Value("${spring.profiles.active}")
private String active;
@@ -67,6 +62,7 @@
@Value("${u8.orderReportPath}")
private String orderReportPath;
+
@Transactional
public ReturnT<String> start(Order order) {
@@ -128,7 +124,6 @@
}
}
}
-
if (Cools.isEmpty(order.getPltType())) {
return;
}
@@ -186,7 +181,7 @@
childInfo.setIrowno(orderDetl.getItemNum());
childInfo.setCInvCode(orderDetl.getMatnr());
childInfo.setIQuantity(orderDetl.getQty() - (orderDetl.getReportQty() == null ? 0D : orderDetl.getReportQty()) + "");
- String batch = orderDetl.getBrand();
+ String batch = orderDetl.getBatch();
if (Cools.isEmpty(batch)) {
childInfo.setCBatch("");
childInfo.setBFree1("");
diff --git a/src/main/resources/mapper/OrderViewMapper.xml b/src/main/resources/mapper/OrderViewMapper.xml
new file mode 100644
index 0000000..29d90f2
--- /dev/null
+++ b/src/main/resources/mapper/OrderViewMapper.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.OrderViewMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.OrderView">
+ <id column="id" property="id"/>
+ <result column="uuid" property="uuid"/>
+ <result column="order_no" property="orderNo"/>
+ <result column="order_time" property="orderTime"/>
+ <result column="doc_type" property="docType"/>
+ <result column="item_id" property="itemId"/>
+ <result column="item_name" property="itemName"/>
+ <result column="allot_item_id" property="allotItemId"/>
+ <result column="def_number" property="defNumber"/>
+ <result column="number" property="number"/>
+ <result column="cstmr" property="cstmr"/>
+ <result column="cstmr_name" property="cstmrName"/>
+ <result column="tel" property="tel"/>
+ <result column="oper_memb" property="operMemb"/>
+ <result column="total_fee" property="totalFee"/>
+ <result column="discount" property="discount"/>
+ <result column="discount_fee" property="discountFee"/>
+ <result column="other_fee" property="otherFee"/>
+ <result column="act_fee" property="actFee"/>
+ <result column="pay_type" property="payType"/>
+ <result column="salesman" property="salesman"/>
+ <result column="account_day" property="accountDay"/>
+ <result column="post_fee_type" property="postFeeType"/>
+ <result column="post_fee" property="postFee"/>
+ <result column="pay_time" property="payTime"/>
+ <result column="send_time" property="sendTime"/>
+ <result column="ship_name" property="shipName"/>
+ <result column="ship_code" property="shipCode"/>
+ <result column="settle" property="settle"/>
+ <result column="status" property="status"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="memo" property="memo"/>
+
+ <result column="anfme" property="anfme"/>
+ <result column="qty" property="qty"/>
+ <result column="matnr" property="matnr"/>
+ <result column="three_code" property="threeCode"/>
+ <result column="maktx" property="maktx"/>
+ <result column="batch" property="batch"/>
+ <result column="process_sts" property="processSts"/>
+ <result column="report_qty" property="reportQty"/>
+ <result column="dev_no" property="devNo"/>
+
+
+ </resultMap>
+
+ <sql id="viewConditionSql">
+ <if test="matnr!=null and matnr!='' ">
+ and matnr like '%' + #{matnr} + '%'
+ </if>
+ <if test="maktx!=null and maktx!='' ">
+ and maktx like '%' + #{maktx} + '%'
+ </if>
+ <if test="orderNo!=null and orderNo!='' ">
+ and order_no like '%' + #{orderNo} + '%'
+ </if>
+ <if test="threeCode!=null and threeCode!='' ">
+ and three_code like '%' + #{threeCode} + '%'
+ </if>
+ <if test="docType!=null ">
+ and doc_type = #{docType}
+ </if>
+ <if test="settle!=null ">
+ and settle = #{settle}
+ </if>
+ </sql>
+
+ <select id="selectOrderView" parameterType="com.zy.asrs.entity.OrderViewParam" resultMap="BaseResultMap">
+ select * from ( select *,ROW_NUMBER() over (order by create_time desc) as row
+ from agv_order_view aov
+ where 1=1
+ <include refid="viewConditionSql"></include>
+ ) a
+ where a.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit})
+ </select>
+
+ <select id="countOrderView" parameterType="com.zy.asrs.entity.OrderViewParam" resultType="Integer">
+ select count(1)
+ from agv_order_view aov
+ where 1=1
+ <include refid="viewConditionSql"></include>
+ </select>
+
+</mapper>
diff --git a/src/main/webapp/static/js/orderDetl/orderDetl.js b/src/main/webapp/static/js/orderDetl/orderDetl.js
index b6e3708..d202f44 100644
--- a/src/main/webapp/static/js/orderDetl/orderDetl.js
+++ b/src/main/webapp/static/js/orderDetl/orderDetl.js
@@ -21,29 +21,31 @@
cellMinWidth: 50,
height: 'full-120',
cols: [[
- {type: 'checkbox'}
- ,{field: 'id', align: 'center',title: 'ID'}
- ,{field: 'orderId$', align: 'center',title: '璁㈠崟鍐呯爜'}
+ // {type: 'checkbox'}
+ // ,{field: 'id', align: 'center',title: 'ID'}
+ // ,{field: 'orderId$', align: 'center',title: '璁㈠崟鍐呯爜'}
+ {field: 'orderNo', align: 'center',title: '璁㈠崟缂栧彿', width: 100}
+ ,{field: 'threeCode', align: 'center',title: '閿�鍞崟鍙�'}
,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺'}
,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'}
,{field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О'}
- ,{field: 'name', align: 'center',title: '鍚嶇О'}
- ,{field: 'specs', align: 'center',title: '瑙勬牸'}
- ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
- ,{field: 'batch', align: 'center',title: '搴忓垪鐮�'}
- ,{field: 'unit', align: 'center',title: '鍗曚綅'}
- ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜'}
- ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
- ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
- ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
- ,{field: 'count', align: 'center',title: '鏁伴噺'}
- ,{field: 'weight', align: 'center',title: '閲嶉噺'}
- ,{field: 'status$', align: 'center',title: '鐘舵��'}
- ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
- ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
- ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
- ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
- ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'specs', align: 'center',title: '瑙勬牸'}
+ // ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
+ ,{field: 'batch', align: 'center',title: '鎵规'}
+ // ,{field: 'unit', align: 'center',title: '鍗曚綅'}
+ // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
]],
diff --git a/src/main/webapp/static/js/orderView/orderView.js b/src/main/webapp/static/js/orderView/orderView.js
new file mode 100644
index 0000000..c4c1ff3
--- /dev/null
+++ b/src/main/webapp/static/js/orderView/orderView.js
@@ -0,0 +1,736 @@
+var insTbCount = 0;
+var admin;
+var insTb
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var form = layui.form;
+ var table = layui.table;
+ var util = layui.util;
+ admin = layui.admin;
+ var xmSelect = layui.xmSelect;
+ var layDate = layui.laydate;
+ var laytpl = layui.laytpl;
+
+ // 娓叉煋鎼滅储妯℃澘
+ $.ajax({
+ url: baseUrl+"/docType/list/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ limit: 9999
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ let template = Handlebars.compile($('#docTypeTpl').html());
+ $('#docType-query').html(template(res.data));
+ layui.form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+
+ // 娓叉煋琛ㄦ牸
+ insTb = table.render({
+ elem: '#order',
+ url: baseUrl+'/orderView/list/auth',
+ headers: {token: localStorage.getItem('token')},
+ page: true,
+ cellMinWidth: 100,
+ cols: [[
+ {type: 'numbers'},
+ {field: 'defNumber', align: 'center', title: '鎿嶄綔绯荤粺鍙�', hide: true, width: 100},
+ {field: '鎿嶄綔鍗曟嵁', align: 'center', title: '鎿嶄綔鍗曟嵁', hide: true},
+ {field: '鎿嶄綔绫诲瀷', align: 'center', title: '鎿嶄綔绫诲瀷', hide: true},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 200},
+ //{field: 'itemName', align: 'center', title: '鏍哥畻涓讳綋'},
+ {field: 'docType$', align: 'center', title: '鍗曟嵁绫诲瀷', width: 180},
+ {field: 'threeCode', align: 'center',title: '閿�鍞崟鍙�', width: 130},
+ {field: 'anfme', align: 'center',title: '鏁伴噺', width: 90},
+ {field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', width: 90},
+ {field: 'matnr', align: 'center',title: '鐗╂枡鍙�', width: 140},
+ {field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О', width: 180},
+ {field: 'processSts$', title: '宸ュ簭', hide: true},
+ {field: 'reportQty', align: 'center',title: '涓婃姤鏁伴噺', width: 90},
+ {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 130, width: 130},
+ //{field: 'defNumber', align: 'center', title: '涓氬姟绫诲瀷'},
+ //{field: 'postFee', align: 'center', title: '鎬绘暟閲�', minWidth: 130, width: 130},
+ //{align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
+ {field: 'orderTime', align: 'center',title: '鍗曟嵁鏃ユ湡', hide: true, width: 180},
+ //{field: 'shipCode', align: 'center',title: '鍒跺崟浜�'},
+ {field: 'createBy$', title: '鍒涘缓浜�', width: 120},
+ {field: 'createTime$', title: '鍒涘缓鏃堕棿', hide: true, width: 180},
+ {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
+ {field: 'cstmrName', align: 'center',title: '渚涘簲鍟�/瀹㈡埛缂栫爜', hide: true},
+ {field: 'tel', align: 'center',title: '浠撳簱', hide: true},
+ {field: 'operMemb', align: 'center',title: '鍑哄叆搴撶被鍒�', hide: true},
+ {field: 'salesman', align: 'center',title: '閮ㄩ棬', hide: true},
+ {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 190}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function (res, curr, count) {
+ limit();
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ insTbCount = count;
+ }
+ });
+
+ // 鎼滅储
+ form.on('submit(tbSearch)', function (data) {
+ insTb.reload({where: data.field, page: {curr: 1}});
+ });
+
+ // 娣诲姞
+ $("#orderAddBtn").click(function () {
+ showEditModel();
+ });
+
+ // 瀵煎叆閿�鍞崟
+ $("#importOrder").click(function () {
+ $("#importExcel").trigger("click");
+ });
+
+ $("#orderCheckBtn").click(function () {
+ $("#importExcel2").trigger("click");
+ });
+
+ // 宸ュ叿鏉$偣鍑讳簨浠�
+ table.on('tool(order)', function (obj) {
+ var data = obj.data;
+ var layEvent = obj.event;
+ if (layEvent === 'edit') {
+ showEditModel(data);
+ } else if (layEvent === 'wrkTrace') {
+ showWrkTrace(data.id);
+ } else if (layEvent === 'del') {
+ doDel(data.id);
+ } else if (layEvent === 'complete') {
+ doModify(data.id, 4);
+ } else if (layEvent === 'report'){
+ doReport(data.id);
+ } else if (layEvent === 'look') {
+ var $a = $(obj.tr).find('a[lay-event="look"]');
+ var offset = $a.offset();
+ var top = offset.top;
+ var left = offset.left;
+ layer.open({
+ type: 1,
+ title: false,
+ area: '1100px',
+ offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
+ shade: .01,
+ shadeClose: true,
+ fixed: false,
+ content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
+ success: function (layero) {
+ table.render({
+ elem: '#lookSSXMTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl/list/auth',
+ where: {
+ order_id: data.id
+ },
+ page: true,
+ cellMinWidth: 100,
+ cols: [[
+ {type: 'numbers'},
+ {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 140},
+ {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 150},
+ {field: 'batch', title: '鎵瑰彿'},
+ {field: 'anfme', title: '鏁伴噺'},
+ {field: 'qty', title: '浣滀笟鏁伴噺', style: 'font-weight: bold'},
+ // {field: 'unit', title: '鍗曚綅'},
+ // {
+ // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
+ // return util.toDateString(d.createTime);
+ // }, width: 180
+ // },
+ // {field: 'inQty', title: '宸插叆搴撻噺'},
+ // {field: 'color', title: '棰滆壊'},
+ //{field: 'specs', title: '瑙勬牸鍨嬪彿'},
+ {field: 'unit', title: '璁¢噺鍗曚綅'},
+ //{field: 'manu', title: '琛屽彿'},
+ {field: 'threeCode', title: '閿�鍞崟鍙�'},
+ //{field: 'deadTime', title: '鑷敱椤�'},
+ {field: 'processSts$', title: '宸ュ簭'},
+ //{field: 'specs', title: '瑙勬牸'},
+ {field: 'reportQty', title: '涓婃姤鏁伴噺'},
+ //{field: 'itemNum', title: '琛屽敮涓�鏍囪瘑'}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function () {
+ $(layero).find('.layui-table-view').css('margin', '0');
+ },
+ size: ''
+ });
+ }
+ });
+ }
+ });
+
+ // 鏄剧ず琛ㄥ崟寮圭獥
+ function showEditModel(expTpe) {
+ admin.open({
+ type: 1,
+ title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁',
+ content: $('#editDialog').html(),
+ area: '1600px',
+ success: function (layero, dIndex) {
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ var isExpAdd = !expTpe;
+ // 鍥炴樉鏁版嵁
+ form.val('editForm', expTpe);
+ if (expTpe) {
+ $('#orderNo').attr("disabled", "disabled");
+ }
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(orderEditSubmit)', function (data) {
+ // 缁勮鏁版嵁
+ if (xxDataList.length <= 0) {
+ layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']});
+ return false;
+ }
+ let nList = admin.util.deepClone(xxDataList);
+ for (let xi = 0; xi < nList.length; xi++) {
+ if (nList[xi].anfme <= 0){
+ layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2});
+ return false;
+ }
+ }
+ layer.load(2);
+ $.ajax({
+ url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify({
+ orderId: Number(data.field.id),
+ docType: Number(data.field.docType),
+ orderNo: data.field.orderNo,
+ orderDetlList: nList
+ }),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ layer.close(dIndex);
+ $(".layui-laypage-btn")[0].click();
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ // 鏄庣粏琛ㄦ牸
+ var xxDataList = [];
+ var tbOptions = {
+ elem: '#formSSXMTable',
+ headers: {token: localStorage.getItem('token')},
+ data: xxDataList,
+ page: true,
+ //height: '350px;',
+ cellMinWidth: 100,
+
+ css: [ // 璁剧疆鍗曞厓鏍兼牱寮�
+ // 鍙栨秷榛樿鐨勬孩鍑洪殣钘忥紝骞惰缃�傚綋楂樺害
+ '.layui-table-cell{height: 50px; line-height: 40px;}',
+ '.layui-table-cell .layui-colorpicker{width: 38px; height: 38px;}',
+ '.layui-table-cell select{height: 36px; padding: 0 5px;}'
+ ].join(''),
+ cols: [[
+ {type: 'numbers', title: '#'},
+ {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
+ {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
+ {field: 'batch', title: '搴忓垪鐮�', edit: true},
+ {field: 'specs', title: '瑙勬牸'},
+ {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+ {field: 'threeCode', title: '閿�鍞鍗曞彿(淇敼)', style: 'color: blue;font-weight: bold', edit: 'text', minWidth: 110, width: 110},
+ {field: 'deadTime', title: '閿�鍞鍗曡鍙�(淇敼)', style: 'color: blue;font-weight: bold', edit: 'text', minWidth: 110, width: 110},
+ {field: 'processSts', title: '宸ュ簭', templet: function (d) {
+ var select = `<select class="layui-select" name="processSts" data-state=${d.processSts} lay-filter="processStsSelect" data-value=${d.processSts} id=${d.id}>
+ <option value="">閫夋嫨鐘舵��</option>
+ <option value="1">寰呭姞宸�</option>
+ <option value="2">宸插姞宸�</option>
+ <option value="3">鏃犻渶鍔犲伐</option>
+ </select>`;
+ return select;
+ }},
+ // {field: 'inQty', title: '宸插叆搴撻噺', minWidth: 100, width: 100},
+ // {field: 'unit', title: '鍗曚綅', width: 80},
+ {field: 'memo', title: '澶囨敞' , edit: true},
+ {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
+ ]],
+ done: function (res,curr, count) {
+ $(layero).find('.layui-table-view').css('margin', '0');
+ $(".layui-table-body").css('overflow','visible');
+ $(".layui-table-box").css('overflow','visible');
+ $(".layui-table-view").css('overflow','visible');
+
+ var tableElem = this.elem.next('.layui-table-view');
+ count || tableElem.find('.layui-table-header').css('overflow', 'auto');
+ layui.each(tableElem.find('select[name="processSts"]'), function (index, item) {
+ var elem = $(item);
+ elem.val(elem.data('state')).parents('div.layui-table-cell').css('overflow', 'visible');
+ });
+
+ form.render();//鍒锋柊琛ㄥ崟
+ },
+ size: ''
+ };
+ if (!isExpAdd) {
+ $.ajax({
+ url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ xxDataList = res.data;
+ tbOptions.data = xxDataList;
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+ var insTbSSXM = table.render(tbOptions);
+ // 宸ュ叿鏉$偣鍑讳簨浠�
+ table.on('tool(formSSXMTable)', function (obj) {
+ var data = obj.data;
+ var layEvent = obj.event;
+ if (layEvent === 'edit') {
+ showEditModel2(data);
+ } else if (layEvent === 'del') {
+ layer.confirm('纭畾瑕佸垹闄よ鏄庣粏瀵瑰簲鐨勫崟鎹悧锛�', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ for (var j = 0; j < xxDataList.length; j++) {
+ if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) {
+ xxDataList.splice(j, 1);
+ break;
+ }
+ }
+ insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+ });
+ }
+ });
+ // 宸ュ叿鏉$偣鍑讳簨浠�
+ form.on('select(processStsSelect)', function (obj) {
+ console.log(obj)
+ var id = obj.elem.id
+ var val = obj.value
+ for (let item of xxDataList) {
+ if (item.id == id) {
+ item.processSts = val
+ }
+ }
+ });
+ // 鏄庣粏鏁版嵁淇敼
+ table.on('edit(formSSXMTable)', function (obj) {
+ let index = 0;
+ for (let k in xxDataList) {
+ if (obj.data.id === xxDataList[k].id)
+ index = k
+ }
+ let data = xxDataList[index];
+ if (obj.field === 'anfme'){
+ let vle = Number(obj.value);
+ if (isNaN(vle)) {
+ layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
+ return false;
+ } else {
+ if (vle <= 0) {
+ layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2});
+ return false;
+ }
+ }
+ }
+ data[obj.field] = obj.value;
+ insTbSSXM.reload({data: xxDataList});
+ });
+
+ $('#matAddBtnComment').click(function () {
+ showEditModel2();
+ });
+
+ // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥
+ function showEditModel2(exp) {
+ admin.open({
+ type: 1,
+ offset: '150px',
+ area: '680px',
+ title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏',
+ content: $('#matEditDialog').html(),
+ success: function (layero, dIndex) {
+ // 鍥炴樉鏁版嵁
+ form.val('matEditForm', exp);
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(matEditSubmit)', function (data) {
+ let selectList = matXmSelect.getValue();
+ for (let i = 0; i<selectList.length; i++) {
+ let item = selectList[i];
+ // 鏌ヨ鐗╂枡璇︽儏
+ $.ajax({
+ url: baseUrl+"/mat/covert/"+item.value+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ xxDataList.push(res.data);
+ insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+ layer.close(dIndex);
+ return false;
+ });
+ // 娓叉煋鐗╂枡閫夋嫨
+ var matXmSelect = xmSelect.render({
+ el: '#mat',
+ style: {
+ width: '340px',
+ },
+ autoRow: true,
+ toolbar: { show: true },
+ filterable: true,
+ remoteSearch: true,
+ remoteMethod: function(val, cb, show){
+ $.ajax({
+ url: baseUrl+"/mat/all/get/kv",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ condition: val
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ cb(res.data)
+ } else {
+ cb([]);
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ });
+ }
+ })
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ }
+ });
+ }
+
+ // 鍒犻櫎鍗曟嵁
+ function doDel(orderId) {
+ layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ layer.load(2);
+ $.ajax({
+ url: baseUrl+"/order/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ orderId: orderId
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 涓婁紶瀹℃牳鍗曟嵁
+ function doReport(orderId) {
+ layer.confirm('纭畾瑕佷笂浼犲崟鎹悧锛�', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ layer.load(2);
+ $.ajax({
+ url: baseUrl+"/order/report/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ orderId: orderId
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 淇敼璁㈠崟鐘舵��
+ function doModify(orderId, settle) {
+ layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撹璁㈠崟鍚楋紵', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ layer.load(2);
+ console.log(orderId);
+ console.log(settle);
+ $.ajax({
+ url: baseUrl+"/order/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ id: orderId,
+ settle: settle
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 浠诲姟杩芥函
+ function showWrkTrace(orderId) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl+"/order/wrk/trace/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ orderId: orderId
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) {
+ admin.open({
+ type: 1,
+ title: '浠诲姟杩芥函',
+ area: ['800px', '450px'],
+ shadeClose: true,
+ content: html,
+ success: function (layero, dIndex) {
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ /** 缁熻鍥捐〃 */
+ var traceCharts = echarts.init(document.getElementById('wrkTraceCharts'));
+ var traceOptions = {
+ title: {
+ text: '浣滀笟/鎬婚噺', x: 'center', y: '38%',
+ textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'},
+ subtextStyle: {fontSize: 36, color: '#10B4E8'},
+ itemGap: 20
+ },
+ color: ['#10B4E8', '#E0E0E0', '#FF0000'],
+ tooltip: {trigger: 'item'},
+ series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}]
+ };
+ traceCharts.setOption(traceOptions);
+ // 璧嬪��
+ traceCharts.setOption({
+ title: {
+ subtext: res.data.wrkQty+"/"+res.data.totalQty
+ },
+ series: [
+ {
+ data: [
+ {name: '宸蹭綔涓�', value: res.data.wrkQty},
+ {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty},
+ {name: '搴撳瓨涓嶈冻', value: res.data.lackQty},
+ ]
+ }
+ ]
+ });
+ }
+ });
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ }
+
+
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+});
+
+function upload(obj){
+ if(!obj.files) {
+ return;
+ }
+ var file = obj.files[0];
+ admin.confirm('纭瀵煎叆 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) {
+ layer.load(1, {shade: [0.1,'#fff']});
+ var url = baseUrl + "/order/excel/import/auth";
+ var form = new FormData();
+ form.append("file", file);
+ let xhr = new XMLHttpRequest();
+ xhr.open("post", url, true);
+ xhr.setRequestHeader('token', localStorage.getItem('token'));
+ xhr.onload = uploadComplete;
+ xhr.onerror = uploadFailed;
+ xhr.onloadend = function () {
+ layer.closeAll('loading');
+ };
+ // xhr.upload.onprogress = progressFunction;
+ xhr.upload.onloadstart = function(){
+ ot = new Date().getTime();
+ oloaded = 0;
+ };
+ xhr.send(form);
+ }, function(index){
+ });
+}
+function uploadComplete(evt) {
+ let res = JSON.parse(evt.target.responseText);
+ if(res.code === 200) {
+ layer.msg(res.msg, {icon: 1});
+ insTb.reload({page: {curr: 1}});
+ } else {
+ alert(res.msg);
+ // layer.msg(res.msg, {icon: 2});
+ }
+}
+function uploadFailed(evt) {
+ let res = JSON.parse(evt.target.responseText);
+ alert(res.msg);
+ // layer.msg(res.msg, {icon: 2});
+}
+
+
+function upload2(obj){
+ if(!obj.files) {
+ return;
+ }
+ var file = obj.files[0];
+ admin.confirm('纭瀵煎叆 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) {
+ layer.load(1, {shade: [0.1,'#fff']});
+ var url = baseUrl + "/order/excel/import2/auth";
+ var form = new FormData();
+ form.append("file", file);
+ let xhr = new XMLHttpRequest();
+ xhr.open("post", url, true);
+ xhr.setRequestHeader('token', localStorage.getItem('token'));
+ xhr.onload = uploadComplete;
+ xhr.onerror = uploadFailed;
+ xhr.onloadend = function () {
+ layer.closeAll('loading');
+ };
+ // xhr.upload.onprogress = progressFunction;
+ xhr.upload.onloadstart = function(){
+ ot = new Date().getTime();
+ oloaded = 0;
+ };
+ xhr.send(form);
+ }, function(index){
+ });
+}
+function uploadComplete(evt) {
+ let res = JSON.parse(evt.target.responseText);
+ if(res.code === 200) {
+ layer.msg(res.msg, {icon: 1});
+ insTb.reload({page: {curr: 1}});
+ } else {
+ alert(res.msg);
+ // layer.msg(res.msg, {icon: 2});
+ }
+}
+function uploadFailed(evt) {
+ let res = JSON.parse(evt.target.responseText);
+ alert(res.msg);
+ // layer.msg(res.msg, {icon: 2});
+}
diff --git a/src/main/webapp/static/js/orderView/out.js b/src/main/webapp/static/js/orderView/out.js
new file mode 100644
index 0000000..9ea995d
--- /dev/null
+++ b/src/main/webapp/static/js/orderView/out.js
@@ -0,0 +1,631 @@
+var pageCurr;
+var insTb2;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+ notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'util', 'admin', 'notice', 'treeTable', 'xmSelect', 'tableMerge', 'tableX'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+ var util = layui.util;
+ var notice = layui.notice;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tableMerge = layui.tableMerge;
+ var tableX = layui.tableX;
+
+ insTb2 = table.render({
+ elem: '#orderDetlTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl/pakout/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#orderDetToolbar',
+ height: 'full-120',
+ where: {order_id: 9999999999},
+ cols: [[
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160}
+ ,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�', width: 160}
+ ,{field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О', width: 200}
+ ,{field: 'batch', align: 'center',title: '搴忓垪鐮�'}
+ ,{field: 'specs', align: 'center',title: '瑙勬牸'}
+ // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'threeCode', align: 'center',title: '閿�鍞鍗曞彿'}
+ ,{field: 'deadTime', align: 'center',title: '閿�鍞鍗曡鍙�'}
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
+ ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+ ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
+ // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ /* 琛ㄦ牸2鎼滅储 */
+ form.on('submit(sensorTbSearch)', function (data) {
+ insTb2.reload({where: data.field, page: {curr: 1}});
+ return false;
+ });
+
+ /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ table.on('toolbar(orderDetlTable)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ if (obj.event === 'pakoutPreview') { // 娣诲姞
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
+ return;
+ }
+ pakoutPreview(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ var checkRows = table.checkStatus('sensorTable');
+ if (checkRows.data.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.data.map(function (d) {
+ return d.id;
+ });
+ doDelSensor({ids: ids});
+ }
+ });
+
+ /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
+ table.on('tool(orderDetlTable)', function (obj) {
+ var data = obj.data;
+ switch (obj.event) {
+ // 鍑哄簱
+ case 'pakoutPreview':
+ pakoutPreview([data.id])
+ break;
+ }
+ });
+
+ function pakoutPreview(ids) {
+ let loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(ids),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ pakoutPreviewDialog(res.data)
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakoutPreviewDialog(data) {
+ for(var i=0; i<data.length; i++){
+ if(!data[i].staNos){
+ data[i].staNos = data[i].agvStaNos;
+ data[i].staNo = data[i].agvStaNo;
+ }
+ }
+ var tableCache;
+ layer.open({
+ type: 1
+ ,title: false
+ ,closeBtn: false
+ ,offset: '50px'
+ ,area: ['1200px', '700px']
+ ,shade: 0.5
+ ,shadeClose: false
+ ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ ,btnAlign: 'c'
+ ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ ,content: $('#pakoutPreviewBox').html()
+ ,success: function(layero, index){
+ stoPreTabIdx = table.render({
+ elem: '#stoPreTab',
+ data: data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ // {type: 'checkbox', merge: ['orderNo']},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+ {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'batch', title: '搴忓垪鐮�', align: 'center'},
+ {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold', edit:true},
+ {field: 'locNo', title: '璐т綅', align: 'center', templet: '#locNoTpl'},
+ {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+ // {type: 'checkbox', merge: ['locNo']},
+ ]],
+ //cols: getCol(data),
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i<tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ //tableCache[i]['staNo'] = Number(obj.elem.value);
+ tableCache[i]['staNo'] = obj.elem.value;
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ modifySta();
+ });
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta() {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for(let i = 0; i<tableCache.length; i++) {
+ let staNos = tableCache[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val =>
+ {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ //let batchSta = Number(obj.field.batchSta);
+ let batchSta = obj.field.batchSta;
+ let arr = [];
+ for (let i = 0; i<tableCache.length; i++) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx); layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ ,yes: function(index, layero){
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
+ }
+ ,btn2: function(index, layero){
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ }
+
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ for(var i=0; i<tableCache.length; i++){
+ if(tableCache[i].agvStaNos){
+ tableCache[i].agvStaNo = tableCache[i].staNo;
+ tableCache[i].staNos = null;
+ tableCache[i].staNo = null;
+ }
+ }
+ notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
+ $.ajax({
+ url: baseUrl + "/out/pakout/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+ layer.msg(res.msg, {icon: 1});
+ insTb.reload({where: null});
+ insTb2.reload({where: null, page: {curr: 1}});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+
+
+
+ /* 鍒犻櫎璁㈠崟 */
+ function doDelSensor(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/sensor/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: obj.ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ $(".layui-laypage-btn")[0].click();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+
+ });
+ }
+
+ // 淇敼鐘舵��
+ form.on('switch(statusSwitch)', function (obj) {
+ var index = obj.othis.parents('tr').attr("data-index");
+ var data = tableData[index];
+ data[this.name] = obj.elem.checked?1:0;
+ http.post(baseUrl+"/sensor/edit/auth", {id: data.id, status: data[this.name]}, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ })
+ })
+
+ window.pakoutPreview = pakoutPreview;
+
+ // ----------------------------------------------------------------------------------------------------------------------------------
+
+ // 鍚堝苟鍑哄簱
+ form.on('submit(mergeOut)', function (data) {
+ let checkStatus = layui.table.checkStatus('originTable').data;
+ if (checkStatus.length < 2) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓ゆ潯浠ヤ笂鍚堝苟鏁版嵁", {icon: 7});
+ return false;
+ }
+ showMerge(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ });
+
+ // 璁㈠崟鍚堝苟绐楀彛
+ function showMerge(orderIds) {
+ let loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/order/merge/preview/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ data: {
+ orderIds: orderIds
+ },
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.open({
+ type: 1
+ , title: false
+ , closeBtn: false
+ , offset: '50px'
+ , area: ['1200px', '700px']
+ , shade: 0.5
+ , shadeClose: false
+ , btn: ['纭畾', '鍙栨秷']
+ , btnAlign: 'c'
+ , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ , content: $('#mergeDialog').html()
+ , success: function (layero, index) {
+ orderMergeTabIdx = table.render({
+ elem: '#orderMergeTab',
+ data: res.data,
+ height: 550,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ {type: 'checkbox'},
+ {field: 'matnr', title: '鐗╂枡鍙�', align: 'center', width: 350},
+ {field: 'maktx', title: '鐗╂枡鍚嶇О', align: 'center'},
+ {field: 'specs', title: '瑙勬牸', align: 'center'},
+ {field: 'batch', title: '鎵瑰彿', align: 'center'},
+ {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ ]],
+ done: function (res) {
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ }
+ });
+ }
+ , yes: function (index, layero) {
+ //鎸夐挳銆愮‘瀹氥�戠殑鍥炶皟
+ let checkStatus = layui.table.checkStatus('orderMergeTab').data;
+ if (checkStatus.length < 1) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�", {icon: 7});
+ return false;
+ }
+ let loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/merge/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(checkStatus),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(index)
+ pakoutPreviewMergeDialog(res.data)
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+ , btn2: function (index, layero) {
+ //鎸夐挳銆愬彇娑堛�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ })
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakoutPreviewMergeDialog(data) {
+ for(var i=0; i<data.length; i++){
+ if(!data[i].staNos){
+ data[i].staNos = data[i].agvStaNos;
+ data[i].staNo = data[i].agvStaNo;
+ }
+ }
+ var mergeTabCache;
+ layer.open({
+ type: 1
+ ,title: false
+ ,closeBtn: false
+ ,offset: '50px'
+ ,area: ['1200px', '700px']
+ ,shade: 0.5
+ ,shadeClose: false
+ ,btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ ,btnAlign: 'c'
+ ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ ,content: $('#pakoutPreviewMergeBox').html()
+ ,success: function(layero, index){
+ stoPreTabMergeIdx = table.render({
+ elem: '#stoPreTabMerge',
+ data: data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ // {type: 'checkbox', merge: ['orderNo']},
+ {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'specs', title: '瑙勬牸', align: 'center'},
+ {field: 'batch', title: '搴忓垪鐮�', align: 'center'},
+ {field: 'anfme', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'},
+ {field: 'locNo', title: '璐т綅', align: 'center', templet: '#locNoTpl'},
+ {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
+ // {type: 'checkbox', merge: ['locNo']},
+ ]],
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ mergeTabCache = table.cache.stoPreTabMerge;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = mergeTabCache[index];
+ for (let i = 0; i<mergeTabCache.length; i++) {
+ if (mergeTabCache[i].locNo === data.locNo) {
+ //mergeTabCache[i]['staNo'] = Number(obj.elem.value);
+ mergeTabCache[i]['staNo'] = obj.elem.value;
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ modifySta();
+ });
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta() {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for(let i = 0; i<mergeTabCache.length; i++) {
+ let staNos = mergeTabCache[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val =>
+ {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ //let batchSta = Number(obj.field.batchSta);
+ let batchSta = obj.field.batchSta;
+ let arr = [];
+ for (let i = 0; i<mergeTabCache.length; i++) {
+ mergeTabCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ console.log(mergeTabCache)
+ stoPreTabMergeIdx.reload({data: mergeTabCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTabMerge] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTabMerge] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx); layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ ,yes: function(index, layero){
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(mergeTabCache, index);
+ }
+ ,btn2: function(index, layero){
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ }
+
+
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ }
+ });
+}
+
+/**
+ * 涓�閿嚭搴�
+ */
+function autoOut(orderId) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl + "/out/pakout/orderDetlIds/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: { orderId : orderId },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ pakoutPreview(res.data);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+}
diff --git a/src/main/webapp/views/orderDetl/orderDetl.html b/src/main/webapp/views/orderDetl/orderDetl.html
index debde49..8e0ad36 100644
--- a/src/main/webapp/views/orderDetl/orderDetl.html
+++ b/src/main/webapp/views/orderDetl/orderDetl.html
@@ -17,10 +17,30 @@
<div class="layui-card-body">
<div class="layui-form toolbar" id="search-box">
<div class="layui-form-item">
+<!-- <div class="layui-inline">-->
+<!-- <label class="layui-form-label">缂栧彿:</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-inline">
- <label class="layui-form-label">缂栧彿:</label>
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ <div class="layui-input-inline mr0">
+ <input name="order_no" class="layui-input" type="text" placeholder="杈撳叆涓昏鍗曞彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="three_code" class="layui-input" type="text" placeholder="杈撳叆閿�鍞崟鍙�"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="matnr" class="layui-input" type="text" placeholder="杈撳叆鐗╂枡缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="maktx" class="layui-input" type="text" placeholder="杈撳叆鐗╂枡鍚嶇О"/>
</div>
</div>
<div class="layui-inline"> 
@@ -40,9 +60,9 @@
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+<!-- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+<!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>-->
</div>
</script>
@@ -55,7 +75,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/orderDetl/orderDetl.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/orderDetl/orderDetl.js?v=1" charset="utf-8"></script>
</body>
<!-- 琛ㄥ崟寮圭獥 -->
<script type="text/html" id="editDialog">
@@ -63,18 +83,18 @@
<input name="id" type="hidden">
<div class="layui-row">
<div class="layui-col-md12">
- <div class="layui-form-item">
- <label class="layui-form-label">璁㈠崟鍐呯爜: </label>
- <div class="layui-input-block cool-auto-complete">
- <input class="layui-input" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" style="display: none">
- <input id="orderId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
- </div>
- </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">璁㈠崟鍐呯爜: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" style="display: none">-->
+<!-- <input id="orderId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">鏁伴噺: </label>
<div class="layui-input-block">
@@ -93,26 +113,26 @@
<input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label">鍚嶇О: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="name" placeholder="璇疯緭鍏ュ悕绉�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">瑙勬牸: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�">
- </div>
- </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鍚嶇О: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="name" placeholder="璇疯緭鍏ュ悕绉�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">瑙勬牸: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鎵规: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�">-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">鎵规: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">搴忓垪鐮�: </label>
<div class="layui-input-block">
<input class="layui-input" name="batch" placeholder="璇疯緭鍏ュ簭鍒楃爜">
</div>
@@ -123,94 +143,94 @@
<input class="layui-input" name="unit" placeholder="璇疯緭鍏ュ崟浣�">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label">鍟嗗搧鏉$爜: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">渚涘簲鍟�: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鍗曚环: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="unitPrice" placeholder="璇疯緭鍏ュ崟浠�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鍝侀」鏁�: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鏁伴噺: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="count" placeholder="璇疯緭鍏ユ暟閲�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">閲嶉噺: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">鐘舵��: </label>
- <div class="layui-input-block">
- <select name="status">
- <option value="">璇烽�夋嫨鐘舵��</option>
- <option value="1">姝e父</option>
- <option value="0">绂佺敤</option>
- </select>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">娣诲姞浜哄憳: </label>
- <div class="layui-input-block cool-auto-complete">
- <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">
- <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
- </div>
- </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鍟嗗搧鏉$爜: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">渚涘簲鍟�: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鍗曚环: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="unitPrice" placeholder="璇疯緭鍏ュ崟浠�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鍝侀」鏁�: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鏁伴噺: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="count" placeholder="璇疯緭鍏ユ暟閲�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">閲嶉噺: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鐘舵��: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <select name="status">-->
+<!-- <option value="">璇烽�夋嫨鐘舵��</option>-->
+<!-- <option value="1">姝e父</option>-->
+<!-- <option value="0">绂佺敤</option>-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">娣诲姞浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">-->
+<!-- <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">娣诲姞鏃堕棿: </label>
<div class="layui-input-block">
<input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label">淇敼浜哄憳: </label>
- <div class="layui-input-block cool-auto-complete">
- <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
- <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">淇敼鏃堕棿: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">澶囨敞: </label>
- <div class="layui-input-block">
- <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
- </div>
- </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">-->
+<!-- <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">澶囨敞: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">-->
+<!-- </div>-->
+<!-- </div>-->
</div>
</div>
diff --git a/src/main/webapp/views/orderView/orderView.html b/src/main/webapp/views/orderView/orderView.html
new file mode 100644
index 0000000..c344e74
--- /dev/null
+++ b/src/main/webapp/views/orderView/orderView.html
@@ -0,0 +1,342 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <!-- <link rel="stylesheet" href="../../static/css/common.css" media="all">-->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ <style>
+ .wrk-trace {
+ color: green;
+ cursor: pointer;
+ margin-left: 6px;
+ font-size: 18px;
+ }
+
+ .layui-timeline:first-child .layui-timeline-item {
+ margin-top: 30px;
+ }
+
+ .btn-add {
+ display: none;
+ }
+ .btn-edit {
+ display: none;
+ }
+ .btn-complete {
+ display: none;
+ }
+ .btn-delete {
+ display: none;
+ }
+ .btn-report {
+ display: none;
+ }
+ td .layui-form-select {
+ margin-top: -9px;
+ margin-left: -14px;
+ margin-right: -14px;
+ }
+ </style>
+</head>
+<body>
+
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <!-- 琛ㄦ牸椤堕儴宸ュ叿鏍� -->
+ <div class="layui-form toolbar">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="orderNo" class="layui-input" type="text" placeholder="杈撳叆涓昏鍗曞彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="threeCode" class="layui-input" type="text" placeholder="杈撳叆閿�鍞崟鍙�"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="matnr" class="layui-input" type="text" placeholder="杈撳叆鐗╂枡缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline mr0">
+ <input name="maktx" class="layui-input" type="text" placeholder="杈撳叆鐗╂枡鍚嶇О"/>
+ </div>
+ </div>
+<!-- <div class="layui-inline" style="width: 300px">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <select name="doc_type" id="docType-query">
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <select name="settle">
+ <option value="">閫夋嫨鐘舵��</option>
+ <option value="1">寰呭鐞�</option>
+ <option value="2">浣滀笟涓�</option>
+ <option value="4">宸插畬鎴�</option>
+ <option value="6">涓婃姤瀹屾垚</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button id="orderAddBtn" class="layui-btn icon-btn btn-add">
+ <i class="layui-icon"></i>娣诲姞
+ </button>
+ <button id="importOrder" class="layui-btn icon-btn btn-add">
+ <i class="layui-icon layui-icon-upload"></i> 瀵煎叆鍗曟嵁
+ </button>
+ <button id="orderCheckBtn" class="layui-btn icon-btn btn-add">
+ <i class="layui-icon"></i>娣诲姞
+ </button>
+ <input style="display:none" id="importExcel" type="file" onchange="upload(this)" >
+ <input style="display:none" id="importExcel2" type="file" onchange="upload2(this)" >
+ </div>
+ </div>
+ </div>
+ <table id="order" lay-filter="order"></table>
+ </div>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="text-danger">鎵嬪姩鍒犻櫎鎴栧畬缁撴椂锛屾槸鍒犻櫎鎴栧畬缁撴槑缁嗗搴旂殑璁㈠崟锛岃�屼笉鏄崟鏉¤鍗曟槑缁嗐��</div>
+ </div>
+ </div>
+</div>
+<!-- 琛ㄦ牸鎿嶄綔鍒� -->
+<script type="text/html" id="operate">
+ {{# if (d.settle == 1 || d.settle == 2) { }}
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ {{# if (d.settle == 2) { }}
+ <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a>
+ {{# } }}
+ {{# } }}
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a>
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-report" lay-event="report">涓婃姤</a>
+</script>
+<!-- 琛ㄦ牸鎿嶄綔鍒� -->
+<script type="text/html" id="tbLook">
+ <span class="layui-text">
+ <a href="javascript:;" lay-event="look">
+ <i class="layui-icon" style="font-size: 12px;"></i> 鏌ョ湅鍗曟嵁鏄庣粏
+ </a>
+ </span>
+</script>
+<script type="text/html" id="orderNoTpl">
+ {{d.orderNo}}
+ {{# if(d.settle > 1 && d.settle !== 3){ }}
+
+ {{# } }}
+ <i class="layui-icon layui-icon-about wrk-trace" lay-tips="鏌ョ湅浠诲姟杩芥函" lay-direction="2" lay-offset="-10px,0px" lay-event="wrkTrace"></i>
+</script>
+<script type="text/html" id="settleTpl">
+ <span name="settle"
+ {{# if( d.settle === 1){ }}
+ class="layui-badge layui-badge-red"
+ {{# }else if(d.settle === 2){ }}
+ class="layui-badge layui-badge-green"
+ {{# }else if(d.settle === 3){ }}
+ class="layui-badge layui-badge-gray"
+ {{# }else if(d.settle === 4){ }}
+ class="layui-badge layui-badge-blue"
+ {{# }else if(d.settle === 5){ }}
+ class="layui-badge layui-badge-gray"
+ {{# }else if(d.settle === 6){ }}
+ class="layui-badge layui-badge-gray"
+ {{# } }}
+ >{{d.settle$}}</span>
+</script>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="editForm" lay-filter="editForm" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曟嵁绫诲瀷锛�</label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="docType" placeholder="璇疯緭鍏ュ崟鎹被鍨�" style="display: none">
+ <input id="docType$" name="docType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="docTypeQueryBydocType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="docTypeQueryBydocTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曟嵁缂栧彿锛�</label>
+ <div class="layui-input-block">
+ <input id="orderNo" name="orderNo" placeholder="杈撳叆鍗曟嵁缂栧彿" type="text" class="layui-input" maxlength="20" lay-verType="tips" lay-verify="required"/>
+ </div>
+ </div>
+ <div class="layui-form-item" style="position: relative;">
+ <label class="layui-form-label">鍗曟嵁鏄庣粏锛�</label>
+ <div class="layui-input-block">
+ <table id="formSSXMTable" lay-filter="formSSXMTable"></table>
+ </div>
+ <button class="layui-btn layui-btn-sm icon-btn" id="matAddBtnComment"
+ style="position: absolute; left: 20px;top: 60px;padding: 0 5px;" type="button">
+ <i class="layui-icon"></i>娣诲姞鏄庣粏
+ </button>
+ </div>
+ <div class="layui-form-item text-right">
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ <button class="layui-btn" lay-filter="orderEditSubmit" lay-submit>淇濆瓨</button>
+ </div>
+ </form>
+</script>
+<!-- 琛ㄦ牸鎿嶄綔鍒� -->
+<script type="text/html" id="formSSXMTableBar">
+ <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>-->
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a>
+</script>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="matEditDialog">
+ <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form">
+ <input name="experimentId" type="hidden"/>
+ <div class="layui-form-item" style="float: left">
+ <label class="layui-form-label">鐗╂枡 - 澶氶��</label>
+ <div class="layui-input-block">
+ <div id="mat" name="mat">
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item text-right" style="display: inline-block; margin-left: 35px">
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ <button class="layui-btn" lay-filter="matEditSubmit" lay-submit>淇濆瓨</button>
+ </div>
+ </form>
+</script>
+
+<!--宸ュ簭鐘舵��-->
+<script type="text/html" id="process">
+
+</script>
+
+<!-- 璁㈠崟浠诲姟杩芥函 -->
+<script id="wrkTraceDialog" type="text/html" style="position: relative">
+ <div style="position: absolute; top: 0; left: 0;">
+ <div class="layui-card" style="overflow: hidden;">
+ <div class="layui-card-header" style="text-align: center;width: 80%;font-weight: inherit;font-size: 18px">{{ d.orderNo }}</div>
+ <div class="layui-card-body">
+ <div id="wrkTraceCharts" style="height: 300px;width: 400px;transform: translateX(-10%);"></div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-row" >
+ <div class="layui-col-md5">
+ <h1 style="opacity: 0;">Hello World</h1>
+ </div>
+ <div class="layui-col-md7" style="">
+ {{# if(d.list.length > 0){ }}
+ <ul class="layui-timeline" style="height: 400px; overflow: scroll;">
+ {{# layui.each(d.list, function(index, item){ }}
+ <li class="layui-timeline-item">
+ <i class="layui-icon layui-timeline-axis"></i>
+ <div class="layui-timeline-content layui-text">
+ <div class="layui-timeline-title">
+ <h3 class="inline-block">
+ {{ item.wrkNo }}
+
+ {{# if(item.wrkMast.ioType < 100){ }}
+ <span class="layui-badge layui-bg-blue" style="line-height: 20px;">
+ {{ item.wrkMast.ioType$ }}
+ </span>
+ {{# } }}
+
+ {{# if(item.wrkMast.ioType > 100){ }}
+ <span class="layui-badge layui-bg-orange" style="line-height: 20px;">
+ {{ item.wrkMast.ioType$ }}
+ </span>
+ {{# } }}
+
+
+ {{# if(item.wrkMast.wrkSts < 14){ }}
+ <span class="layui-badge layui-bg-red" style="line-height: 20px;">
+ {{ item.wrkMast.wrkSts$ }}
+ </span>
+ {{# } }}
+
+ {{# if(item.wrkMast.wrkSts >= 14){ }}
+ <span class="layui-badge layui-bg-green" style="line-height: 20px;">
+ {{ item.wrkMast.wrkSts$ }}
+ </span>
+ {{# } }}
+
+ </h3> 
+ {{ item.wrkMast.ioTime$ }}
+ </div>
+
+ <table class="layui-table" lay-skin="nob" style="width: 80%">
+ <thead>
+ <tr style="background: none">
+ <td>No.</td>
+ <td>鐗╂枡鍙�</td>
+ <td>鏁伴噺</td>
+ </tr>
+ </thead>
+ <tbody>
+ {{# layui.each(item.wrkDetls, function(idx, wrkDetl){ }}
+ <tr>
+ <td><span class="layui-badge layui-bg-cyan">{{ idx+1 }}</span></td>
+ <td>{{ wrkDetl.matnr }}</td>
+ <td style="font-weight: bold">{{ wrkDetl.anfme }}</td>
+ </tr>
+ {{# }); }}
+ </tbody>
+ </table>
+
+ <hr class="layui-border-cyan" style="width: 90%; opacity: .6;">
+ </div>
+ </li>
+ {{# }); }}
+ </ul>
+ {{# } else { }}
+ <div style="height: 350px;display: flex;justify-content: center;align-items: center;">
+ <h2 style="font-weight: bold;letter-spacing: 2px">鏆傛棤浠诲姟</h2>
+ </div>
+ {{# } }}
+ </div>
+ </div>
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/orderView/orderView.js?v=11" charset="utf-8"></script>
+
+<script type="text/template" id="docTypeTpl">
+ <option value="">閫夋嫨绫诲瀷</option>
+ {{#each records}}
+ <option value="{{docId}}">{{docName}}</option>
+ {{/each}}
+</script>
+</body>
+
+</html>
+
diff --git a/src/main/webapp/views/orderView/outView.html b/src/main/webapp/views/orderView/outView.html
new file mode 100644
index 0000000..a5c61ba
--- /dev/null
+++ b/src/main/webapp/views/orderView/outView.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/originTable.css" media="all">
+ <style>
+ body {
+ color: #595959;
+ background-color: #f5f7f9;
+ }
+
+ .admin-form {
+ padding: 25px 30px 0 0 !important;
+ margin: 0 !important;
+ }
+
+ .layui-table-view .layui-table-cell .layui-select-title .layui-input {
+ height: 28px;
+ line-height: 28px;
+ }
+
+ .layui-table-view [lay-size="lg"] .layui-table-cell .layui-select-title .layui-input {
+ height: 40px;
+ line-height: 40px;
+ }
+
+ .layui-table-view [lay-size="lg"] .layui-table-cell .layui-select-title .layui-input {
+ height: 40px;
+ line-height: 40px;
+ }
+
+ .layui-table-view [lay-size="sm"] .layui-table-cell .layui-select-title .layui-input {
+ height: 20px;
+ line-height: 20px;
+ }
+
+ .layui-table-view [lay-size="sm"] .layui-table-cell .layui-btn-xs {
+ height: 18px;
+ line-height: 18px;
+ }
+
+ /* 鏉冮檺鎺у埗 */
+ #btn-pakoutPreview {
+ display: none;
+ }
+ /*#btn-delete {*/
+ /* display: none;*/
+ /*}*/
+ /*.btn-edit {*/
+ /* display: none;*/
+ /*}*/
+ /*.btn-more {*/
+ /* display: none;*/
+ /*}*/
+ </style>
+</head>
+<body>
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid" style="padding-bottom: 0;">
+ <div class="layui-row layui-col-space15">
+ <!-- 宸� -->
+ <div class="layui-col-md3" id="left-table">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <form class="layui-form toolbar">
+ <div class="layui-form-item">
+ <div class="layui-inline" style="max-width: 300px;margin-bottom: 5px">
+ <input name="orderNo" class="layui-input" placeholder="杈撳叆鍗曟嵁缂栧彿" autocomplete="off"/>
+ </div>
+ <div class="layui-inline" style="margin-bottom: 5px">
+ <button class="layui-btn icon-btn" lay-filter="originTableSearch" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="originTbReset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </form>
+ <button style="margin-bottom: 5px;line-height: 28px;height: 28px" class="layui-btn icon-btn layui-btn-danger" lay-filter="mergeOut" lay-submit>
+ <i class="layui-icon"></i> 鍚堝苟鍑哄簱
+ </button>
+ <table id="originTable" lay-filter="originTable"></table>
+ </div>
+ </div>
+ </div>
+ <!-- 鍙� -->
+ <div class="layui-col-md9">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <form class="layui-form toolbar">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">鐗╂枡鍙�:</label>
+ <div class="layui-input-inline">
+ <input name="matnr" class="layui-input" placeholder="鐗╂枡鍙�"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鐗╂枡鍚嶇О:</label>
+ <div class="layui-input-inline">
+ <input name="maktx" class="layui-input" placeholder="鐗╂枡鍚嶇О"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">璁㈠崟鍙�:</label>
+ <div class="layui-input-inline">
+ <input name="batch" class="layui-input" placeholder="搴忓垪鐮�"/>
+ </div>
+ </div>
+ <!-- <div class="layui-inline">-->
+ <!-- <label class="layui-form-label">鐘舵��:</label>-->
+ <!-- <div class="layui-input-inline">-->
+ <!-- <select name="isOnline">-->
+ <!-- <option value="1">鍏呯數涓�</option>-->
+ <!-- <option value="1">鍏呯數涓�</option>-->
+ <!-- <option value="0">涓嶅湪鍏呯數</option>-->
+ <!-- </select>-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="sensorTbSearch" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ </div>
+ </div>
+ </form>
+ <table id="orderDetlTable" lay-filter="orderDetlTable"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<!-- 澶村伐鍏锋爮 -->
+<script type="text/html" id="orderDetToolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm layui-btn-danger btn-pakoutPreview" id="btn-pakoutPreview" lay-event="pakoutPreview">鎵归噺鍑哄簱</button>
+ </div>
+</script>
+
+<!-- 琛屽伐鍏锋爮 -->
+<script type="text/html" id="operate">
+ {{#if (d.anfme > d.qty){ }}
+ <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>鍑哄簱</a>
+ {{# } }}
+</script>
+
+<!-- 鍑哄簱棰勮 -->
+<script type="text/html" id="pakoutPreviewBox" style="display: none">
+ <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px">
+ <table id="stoPreTab" lay-filter="stoPreTab"></table>
+ </div>
+ <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta" lay-submit style="display: block;float: right;margin-right: 1rem">
+ 鎵归噺淇敼
+ </button>
+ </div>
+</script>
+
+<!-- 鍚堝苟琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="mergeDialog">
+ <div style="padding: 25px; line-height: 22px; background-color: #1E9FFF; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鍚堝苟鍑哄簱</span>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px">
+ <table id="orderMergeTab" lay-filter="orderMergeTab"></table>
+ </div>
+ </div>
+</script>
+
+<!-- 鍑哄簱棰勮 銆愬悎骞躲�� -->
+<script type="text/html" id="pakoutPreviewMergeBox" style="display: none">
+ <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px">
+ <table id="stoPreTabMerge" lay-filter="stoPreTabMerge"></table>
+ </div>
+ <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta" lay-submit style="display: block;float: right;margin-right: 1rem">
+ 鎵归噺淇敼
+ </button>
+ </div>
+</script>
+
+<script type="text/html" id="tbBasicTbStaNos">
+ <div class="ew-select-fixed">
+ <select class="order-sta-select" lay-filter="tbBasicTbStaNos">
+ {{#if (d.staNos!=null) {}}
+ {{# for(let i=0; i<d.staNos.length; i++) { }}
+ <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option>
+ {{# } }}
+ {{# } }}
+ </select>
+ </div>
+</script>
+
+<script type="text/html" id="staBatchSelectDialog">
+ <form class="layui-form" style="padding: 25px 50px 30px 50px;text-align: center">
+ <select id="batchSelectStaBox" name="batchSta" lay-vertype="tips" lay-verify="required" required="">
+ </select>
+ <button style="margin-top: 30px" class="layui-btn" lay-filter="staBatchSelectConfirm" lay-submit="">纭畾</button>
+ </form>
+</script>
+
+<script type="text/html" id="locNoTpl">
+ <span name="locNo"
+ {{# if( d.lack === false){ }}
+ class="layui-badge layui-badge-green" >{{d.locNo}}</span>
+ {{# } else { }}
+ class="layui-badge layui-badge-red" >搴撳瓨涓嶈冻</span>
+ {{# } }}
+</script>
+
+<!-- 琛屾牱寮� -->
+<script type="text/html" id="orderNoTpl">
+ <span name="orderNo" class="layui-badge layui-badge-gray">{{d.orderNo}}</span>
+</script>
+<script type="text/html" id="statusTpl">
+ <input type="checkbox" name="status" value="{{d.status}}" lay-skin="switch" lay-text="姝e父|绂佺敤" lay-filter="statusSwitch" {{ d.status === 1 ? 'checked' : '' }}>
+</script>
+
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form">
+ <input name="id" type="hidden">
+ <input name="status" type="hidden">
+ <div class="layui-row">
+
+ <div class="layui-col-md4">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">璁惧缂栧彿</label>
+ <div class="layui-input-block">
+ <input name="uuid" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md4">
+ <div class="layui-form-item">
+ <label class="layui-form-label">璁惧绫诲瀷锛�</label>
+ <div class="layui-input-block">
+ <div id="modelSel" class="ew-xmselect-tree"></div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md4">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鎵�灞為」鐩�: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input name="hostId" class="layui-input" style="display: none">
+ <input id="hostId$" name="hostId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇烽�夋嫨鎵�灞為」鐩�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="hostQueryByhostId" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="hostQueryByhostIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">璇︾粏鍦板潃</label>
+ <div class="layui-input-block">
+ <input name="addr" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" class="layui-input">
+ </div>
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-col-md12" style="text-align: center">
+ <iframe id="mapIframe" src="map.html" scrolling="no" frameborder="0"
+ style="display: inline-block; width: 90%;height: 400px;margin: auto">
+ </iframe>
+ </div>
+
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/tools/md5.js"></script>
+<script type="text/javascript" src="../../static/js/orderTable.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/orderView/outView.js" charset="utf-8"></script>
+
+<!-- 椤圭洰缂栬緫绐楀彛 -->
+<script type="text/html" id="hostEditDialog">
+ <form id="hostEditForm" lay-filter="hostEditForm" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">椤圭洰鍚嶇О:</label>
+ <div class="layui-input-block">
+ <input name="name" placeholder="璇疯緭鍏ョ被鍨嬪悕绉�" class="layui-input"
+ lay-verType="tips" lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="hostEditSubmit" lay-submit>淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+
+</body>
+
+<script type="text/template" id="batchStaSelectTpl">
+ <option value="">閫夋嫨鍑哄簱绔�</option>
+ {{#each list}}
+ <option value="{{this}}">{{this}}</option>
+ {{/each}}
+</script>
+
+</html>
+
--
Gitblit v1.9.1