From c832c7f5d6f8c015d609e044e902e070da5240b0 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期日, 24 九月 2023 14:22:57 +0800
Subject: [PATCH] 拣货单
---
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 26
src/main/webapp/static/js/agvPakStore/stockAdjust.js | 14
src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java | 21
src/main/webapp/views/mat/mat.html | 55
src/main/webapp/views/picking/picking.html | 228 +++
src/main/java/com/zy/asrs/controller/AgvWorkController.java | 8
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 44
src/main/webapp/views/agvPakStore/stockAdjust.html | 2
src/main/java/com/zy/asrs/service/impl/ManLocDetTemplServiceImpl.java | 12
src/main/java/com/zy/asrs/controller/ManPakOutController.java | 443 ++++++
src/main/java/com/zy/asrs/service/AgvLocDetlService.java | 5
src/main/java/com/zy/asrs/entity/param/NodePakoutParam.java | 17
src/main/java/com/zy/asrs/utils/Utils.java | 16
src/main/webapp/static/js/order/out.js | 2
src/main/java/com/zy/asrs/service/ManPakOutService.java | 11
src/main/java/com/zy/asrs/mapper/ManLocDetlTempMapper.java | 12
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 139 ++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 138 +
src/main/webapp/static/js/picking/pickingOrder.js | 497 +++++++
src/main/java/com/zy/asrs/controller/OutController.java | 122 +
src/main/java/com/zy/asrs/service/AgvWorkService.java | 6
src/main/webapp/static/js/manLocDetl/manLocDetlTemp.js | 550 ++++++++
src/main/java/com/zy/asrs/service/MobileService.java | 3
src/main/webapp/views/manLocDetl/manLocDetlTemp.html | 111 +
src/main/webapp/static/js/picking/picking.js | 362 +++++
src/main/java/com/zy/asrs/controller/ManLocDetlController.java | 1
src/main/java/com/zy/asrs/entity/ManLocDetlTemp.java | 346 +++++
src/main/webapp/static/js/pakStore/stockAdjust.js | 3
src/main/webapp/views/agvPakStore/pakStore.html | 2
src/main/webapp/views/picking/pickingOrder.html | 157 ++
src/main/java/com/zy/asrs/entity/ManPakOut.java | 280 ++++
src/main/webapp/static/js/manLocDetl/manLocDetl.js | 40
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 3
src/main/java/com/zy/asrs/controller/ManLocDetlTempController.java | 134 +
src/main/java/com/zy/asrs/controller/MobileController.java | 72
src/main/java/com/zy/common/model/LocDto.java | 2
src/main/resources/mapper/ManLocDetlMapper.xml | 1
src/main/webapp/views/manLocDetl/manLocDetl.html | 99
src/main/java/com/zy/asrs/controller/AgvLocMastController.java | 11
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 17
src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java | 21
src/main/webapp/static/js/order/order.js | 12
src/main/java/com/zy/asrs/service/ManLocDetlService.java | 3
src/main/java/com/zy/asrs/service/ManLocDetlTempService.java | 8
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 9
src/main/resources/application.yml | 4
46 files changed, 3,864 insertions(+), 205 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
index e287d77..28a5e7b 100644
--- a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
@@ -17,10 +17,7 @@
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@@ -113,6 +110,12 @@
return R.ok();
}
+ @RequestMapping(value = "/locMast/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(agvLockMastService.selectById(String.valueOf(id)));
+ }
+
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());
diff --git a/src/main/java/com/zy/asrs/controller/AgvWorkController.java b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
index 67dcb26..0e7637e 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWorkController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
@@ -4,9 +4,11 @@
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.zy.asrs.entity.AgvBasDevp;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.service.AgvWorkService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -30,6 +32,12 @@
workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
//return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
return R.ok("鐢熸垚鍏ュ簱宸ヤ綔妗f垚鍔�");
+ }
+ @RequestMapping("/locDdetl/adjust/start")
+ @ManagerAuth(memo = "搴撳瓨璋冩暣")
+ public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) {
+ workService.adjustLocDetl(param, getUserId());
+ return R.ok("搴撳瓨璋冩暣鎴愬姛");
}
}
diff --git a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
index 2c091db..85bc07c 100644
--- a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
@@ -54,6 +54,7 @@
param.remove("update_time");
}
}
+
Page<ManLocDetl> page = manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class));
return R.ok(page);
}
diff --git a/src/main/java/com/zy/asrs/controller/ManLocDetlTempController.java b/src/main/java/com/zy/asrs/controller/ManLocDetlTempController.java
new file mode 100644
index 0000000..ed8d0eb
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/ManLocDetlTempController.java
@@ -0,0 +1,134 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.ManLocDetlTemp;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
+import com.zy.asrs.service.ManLocDetlTempService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/temp")
+public class ManLocDetlTempController extends BaseController {
+
+ @Autowired
+ private ManLocDetlTempService manLocDetlTempService;
+
+ @RequestMapping(value = "/manLocDetl/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){
+
+
+
+ EntityWrapper<ManLocDetlTemp> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+
+ Page<ManLocDetlTemp> page = manLocDetlTempService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok(page);
+ }
+
+
+ @RequestMapping("/manLocDetl/list")
+ public R outList(@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){
+
+ //Page<ManLocDetlTemp> manLocDetlPage = toPage(curr, limit, param, ManLocDetlTemp.class);
+ //Page<ManLocDetlTemp> outPage = manLocDetlTempService.getOutPage(manLocDetlPage);
+// Page<ManLocDetl> page = manLocDetlService.getPage(manLocDetlPage);
+ return R.ok();
+ }
+
+ @RequestMapping("/manLocDetl/adjust/start")
+ @ManagerAuth(memo = "搴撳瓨璋冩暣")
+ public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) {
+ //manLocDetlTempService.adjustLocDetl(param, getUserId(),getUser());
+ return R.ok("搴撳瓨璋冩暣鎴愬姛");
+ }
+
+ @RequestMapping(value = "/manLocDetl/asrsAndSaas/list")
+ @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,
+ @RequestParam Map<String, Object> param){
+
+// Page<ManLocDetl> manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class);
+// Page<ManLocDetl> all = manLocDetlService.selectAllPage(manLocDetlPage);
+// return R.ok().add(all);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/manLocDetlTemp/export/auth")
+ @ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
+ public synchronized R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<ManLocDetlTemp> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
+ String row = "";
+ if (map.get("row") != null) {
+ String chooseRow = (String) map.get("row");
+ if (chooseRow.length() == 1) {
+ row = "0" + chooseRow;
+ map.remove("row");
+ }else {
+ row = chooseRow;
+ map.remove("row");
+ }
+ }
+ convert(map, wrapper);
+ if (!row.equals("")){
+ wrapper.and()
+ .where("loc_no like '" +row +"%'");
+ }
+ List<ManLocDetlTemp> list = manLocDetlTempService.selectList(wrapper);
+ list.forEach(m -> {
+ m.setMatnr(m.getMatnr() + " ");
+ });
+
+ return R.ok(exportSupport(list, fields));
+ }
+
+
+ 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)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ if (entry.getKey().equals("locNo")) {
+ wrapper.eq("loc_no", String.valueOf(entry.getValue()));
+ } else {
+ wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+ }
+ }
+ }
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/ManPakOutController.java b/src/main/java/com/zy/asrs/controller/ManPakOutController.java
new file mode 100644
index 0000000..27b0dca
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/ManPakOutController.java
@@ -0,0 +1,443 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.*;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.OrderDomainParam;
+import com.zy.asrs.service.*;
+import com.zy.common.CodeRes;
+import com.zy.common.config.AdminInterceptor;
+import com.zy.common.utils.BarcodeUtils;
+import com.zy.common.utils.QrCode;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class ManPakOutController extends BaseController {
+ @Autowired
+ private ManPakOutService manPakOutService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private ManLocDetlService manLocDetlService;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private DocTypeService docTypeService;
+
+ @RequestMapping(value = "/ManPakOut/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){
+ EntityWrapper<ManPakOut> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ wrapper.orderBy("create_time",false);
+ }
+ return R.ok(manPakOutService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ @RequestMapping(value = "/ManPakOut/detailed/auth")
+ //@ManagerAuth
+ public R detailed(@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<ManPakOut> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ wrapper.orderBy("create_time",true);
+ }
+ wrapper.isNotNull("name");
+
+ Page<ManPakOut> manPakOutPage = manPakOutService.selectPage(new Page<>(curr, limit), wrapper);
+ manPakOutPage.getRecords().forEach(manPakOut -> {
+ if(manPakOut.getStatus() == 1){
+
+ }
+ });
+ return R.ok(manPakOutPage);
+ }
+
+ 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)){
+ 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.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/ManPakOut/add/auth")
+ @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�")
+ @Transactional
+ public R manPakOutAdd(@RequestBody OrderDomainParam param){
+ if (Cools.isEmpty(param)){
+ return R.error("鏁版嵁寮傚父");
+ }
+ if (!Cools.isEmpty(param.getOrderNo())){
+ Order order = orderService.selectOne(new EntityWrapper<Order>()
+ .eq("order_no", param.getOrderNo())
+ );
+ if (Cools.isEmpty(order)){
+ return R.error("鍗曟嵁涓嶅瓨鍦�");
+ }
+ List<OrderDetl> orderDetls =orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+ .eq("order_no", param.getOrderNo())
+ );
+ if (Cools.isEmpty(orderDetls)){
+ return R.error("鍗曟嵁鏄庣粏涓虹┖");
+ }
+ for (OrderDetl orderDetl : orderDetls){
+ List<ManLocDetl> manLocDetls=null;
+ try{
+ if (Cools.isEmpty(orderDetl.getBatch())){
+ manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>()
+ .eq("matnr",orderDetl.getMatnr())
+ );
+ }else {
+ manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>()
+ .eq("matnr",orderDetl.getMatnr())
+ .eq("batch",orderDetl.getBatch())
+ );
+ }
+ }catch (Exception e){
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+
+ if (!Cools.isEmpty(manLocDetls)){
+ for (ManLocDetl manLocDetl:manLocDetls){
+ Double statusAnfme = 0.0;
+ if (Cools.isEmpty(manLocDetl.getStatus())){
+ manLocDetl.setStatus(1);
+ }
+ try{
+ if (manLocDetl.getStatus$().equals("绂佺敤")){
+ if (Cools.isEmpty(manLocDetl.getBatch())){
+ List<ManPakOut> manPakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>()
+ .eq("loc_no", manLocDetl.getLocNo())
+ .eq("matnr", manLocDetl.getMatnr())
+ .eq("status",0)
+ );
+ if (!Cools.isEmpty(manPakOuts)){
+ for (ManPakOut manPakOut:manPakOuts){
+ statusAnfme=statusAnfme+manPakOut.getAnfme();
+ }
+ }
+ }else {
+ List<ManPakOut> manPakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>()
+ .eq("loc_no", manLocDetl.getLocNo())
+ .eq("matnr", manLocDetl.getMatnr())
+ .eq("batch",manLocDetl.getBatch())
+ .eq("status",0)
+ );
+ if (!Cools.isEmpty(manPakOuts)){
+ for (ManPakOut manPakOut:manPakOuts){
+ statusAnfme=statusAnfme+manPakOut.getAnfme();
+ }
+ }
+ }
+ }
+ }catch (Exception e){
+ return R.error("鏌ヨ搴撳瓨绂佺敤鏁伴噺澶辫触");
+ }
+ Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>()
+ .eq("loc_no", manLocDetl.getLocNo())
+ .eq("matnr", manLocDetl.getMatnr());
+ if (orderDetl.getAnfme() > manLocDetl.getAnfme()-statusAnfme){
+ if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
+ manLocDetl.setStatus(0);
+ try{
+ if (Cools.isEmpty(manLocDetl.getBatch())){
+ manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
+ }else {
+ manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
+ }
+ }catch (Exception e){
+ return R.error("鏇存柊搴撳瓨澶辫触");
+ }
+ orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
+ }else {
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+ }else if (orderDetl.getAnfme()-manLocDetl.getAnfme()-statusAnfme==0){
+ if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
+ manLocDetl.setStatus(0);
+ try{
+ if (Cools.isEmpty(manLocDetl.getBatch())){
+ manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
+ }else {
+ manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
+ }
+ }catch (Exception e){
+ return R.error("鏇存柊搴撳瓨澶辫触");
+ }
+ orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
+ }else {
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+ }else if (orderDetl.getAnfme()<manLocDetl.getAnfme()-statusAnfme){
+ Double a=manLocDetl.getAnfme();
+ manLocDetl.setAnfme(orderDetl.getAnfme());
+ if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
+ orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
+ manLocDetl.setStatus(0);
+ manLocDetl.setAnfme(a);
+ try{
+ if (Cools.isEmpty(manLocDetl.getBatch())){
+ manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
+ }else {
+ manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
+ }
+ }catch (Exception e){
+ return R.error("鏇存柊搴撳瓨澶辫触");
+ }
+
+ }else {
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+ }else {
+ return R.error("绯荤粺鍑洪敊,璇疯仈绯荤鐞嗗憳");
+ }
+ if (orderDetl.getAnfme()==0){
+ break;
+ }
+ }
+ if (orderDetl.getAnfme()!=0){
+ ManLocDetl manLocDetl=new ManLocDetl();
+ manLocDetl.setAnfme(0.0);
+ manLocDetl.setMatnr(orderDetl.getMatnr());
+ manLocDetl.setMaktx(orderDetl.getMaktx());
+ manLocDetl.setMemo(orderDetl.getMemo()+"搴撳瓨涓嶈冻");
+ if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
+ continue;
+ }else {
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+ }
+ }else {
+ ManLocDetl manLocDetl=new ManLocDetl();
+ manLocDetl.setAnfme(0.0);
+ manLocDetl.setMatnr(orderDetl.getMatnr());
+ manLocDetl.setMaktx(orderDetl.getMaktx());
+ manLocDetl.setMemo(orderDetl.getMemo()+"鏃犲簱瀛�");
+ if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
+ continue;
+ }else {
+ return R.error("娣诲姞鎷h揣鍗曞け璐�");
+ }
+ }
+
+
+ }
+ orderService.updateSettle(order.getId(),(long)2,null);
+ }else {
+ return R.error("鍗曟嵁缂栧彿寮傚父");
+ }
+ return R.ok("鎷h揣鍗曟坊鍔犳垚鍔�");
+ }
+ private R addPakOUT(ManLocDetl manLocDetl,String OrderNo){
+ ManPakOut manPakOut=new ManPakOut();
+ manPakOut.setWrkNo(OrderNo+"-"+System.currentTimeMillis());
+ manPakOut.setWrkSts((long)1);
+ manPakOut.setAnfme(manLocDetl.getAnfme());
+ manPakOut.setLocNo(manLocDetl.getLocNo());
+ manPakOut.setNodeId(manLocDetl.getNodeId());
+ manPakOut.setMatnr(manLocDetl.getMatnr());
+ manPakOut.setMaktx(manLocDetl.getMaktx());
+ manPakOut.setSpecs(manLocDetl.getSpecs());
+ manPakOut.setUnit(manLocDetl.getUnit());
+ manPakOut.setBarcode(manLocDetl.getBarcode());
+ manPakOut.setDocNum(OrderNo);
+ manPakOut.setStatus(0);
+ manPakOut.setCreateTime(new Date());
+ if (!Cools.isEmpty(manLocDetl.getBatch())){
+ manPakOut.setBatch(manLocDetl.getBatch());
+ manPakOut.setUpdateTime(new Date());
+ }else {
+ manPakOut.setUpdateTime(manLocDetl.getModiTime());//鐢ㄤ簬璇嗗埆璐х墿
+ }
+
+ manPakOut.setMemo(manLocDetl.getMemo());
+ if (Cools.isEmpty(manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num",OrderNo)))){
+ manPakOut.setName(manLocDetl.getMaktx());
+ }
+ try{
+ if (!manPakOutService.insert(manPakOut)){
+ return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }catch (Exception e){
+ return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ return R.ok();
+
+ }
+
+ @RequestMapping("/manPakOut/finish")
+ public R finish(@RequestBody ManPakOut manPakOut){
+ Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>()
+ .eq("loc_no", manPakOut.getLocNo())
+ .eq("matnr", manPakOut.getMatnr());
+ try{
+ if (Cools.isEmpty(manPakOut.getBatch())){
+ List<ManLocDetl> manLocDetls = manLocDetlService.selectList(wrapper);
+ Double anfme=manPakOut.getAnfme();
+ for (ManLocDetl manLocDetl:manLocDetls){
+ if (anfme<manLocDetl.getAnfme()){
+ manLocDetl.setAnfme(manLocDetl.getAnfme()-anfme);
+ manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
+ anfme=0.0;
+ }else if (anfme>=manLocDetl.getAnfme()){
+ manLocDetlService.delete(wrapper.eq("batch",manLocDetl.getBatch()));
+ anfme=anfme-manLocDetl.getAnfme();
+ }
+ if (anfme==0.0){
+ break;
+ }
+ }
+ }else {
+ ManLocDetl manLocDetl = manLocDetlService.selectOne(wrapper.eq("batch", manPakOut.getBatch()));
+ if (manPakOut.getAnfme()<manLocDetl.getAnfme()){
+ manLocDetl.setAnfme(manLocDetl.getAnfme()-manPakOut.getAnfme());
+ manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
+ }else if (manPakOut.getAnfme()-manLocDetl.getAnfme()==0){
+ manLocDetlService.delete(wrapper.eq("batch",manLocDetl.getBatch()));
+ }
+ }
+ }catch (Exception e){
+ return R.error("鏇存柊搴撳瓨鏁伴噺澶辫触");
+ }
+
+
+ ManPakOut out = Cools.isEmpty(manPakOut.getBatch())? manPakOutService.selectOne(new EntityWrapper<ManPakOut>()
+ .eq("wrk_no", manPakOut.getWrkNo())
+ .eq("matnr", manPakOut.getMatnr()))
+ :manPakOutService.selectOne(new EntityWrapper<ManPakOut>()
+ .eq("wrk_no", manPakOut.getWrkNo())
+ .eq("matnr", manPakOut.getMatnr())
+ .eq("batch",manPakOut.getBatch()));
+ out.setWrkSts(manPakOut.getWrkSts());
+ out.setZpallet(manPakOut.getZpallet());
+ out.setAnfme(manPakOut.getAnfme());
+ out.setNodeId(manPakOut.getNodeId());
+ out.setLocNo(manPakOut.getLocNo());
+ out.setMatnr(manPakOut.getMatnr());
+ out.setMaktx(manPakOut.getMaktx());
+ out.setBatch(manPakOut.getBatch());
+ out.setStatus(manPakOut.getStatus());
+ boolean update =Cools.isEmpty(manPakOut.getBatch())? manPakOutService.update(out, new EntityWrapper<ManPakOut>()
+ .eq("wrk_no", manPakOut.getWrkNo())
+ .eq("matnr", manPakOut.getMatnr()))
+ :manPakOutService.update(out, new EntityWrapper<ManPakOut>()
+ .eq("wrk_no", manPakOut.getWrkNo())
+ .eq("matnr", manPakOut.getMatnr())
+ .eq("batch",manPakOut.getBatch()));
+ try {
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", manPakOut.getDocNum()));
+ List<ManPakOut> pakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", order.getOrderNo()));
+ if (Cools.isEmpty(pakOuts)){
+ return R.error("鏌ヨ鎷h揣鍗曟槑缁嗗け璐�");
+ }else {
+ Long settle = order.getSettle();
+ for (ManPakOut pakOut:pakOuts){
+ if (pakOut.getStatus()==0 || pakOut.getStatus()==8){
+ order.setSettle(settle);
+ break;
+ }else {
+ order.setSettle(4L);
+ }
+ }
+ }
+ orderService.updateSettle(order.getId(),order.getSettle(),(long)9527);
+ }catch (Exception e){
+ return R.error("鏇存柊璁㈠崟鐘舵�佸け璐�");
+ }
+ return update? R.ok("鏇存柊鎴愬姛") : R.error("鏇存柊澶辫触");
+ }
+
+ @RequestMapping("/manPakOut/notIssued")
+ public R notIssued(){
+ List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 1L).or().eq("settle", 2L));
+ List<Order> orders1=new ArrayList<Order>();
+ try {
+ for (Order order:orders){
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if (docType.getPakout()==1){
+ orders1.add(order);
+ }
+ }
+ }catch (Exception e){
+ return R.error("鑾峰彇璁㈠崟鐘舵�佸け璐�");
+ }
+ return R.ok(orders1);
+ }
+
+ public static void main(String[] args) {
+ ManPakOutService bean = SpringUtils.getBean(ManPakOutService.class);
+ ManPakOut out = bean.selectOne(null);
+ System.out.println("JSON.toJSONString(out) = " + JSON.toJSONString(out));
+ }
+
+ @RequestMapping(value = "/ManPakOut/print/auth")
+ @ManagerAuth(memo = "璁㈠崟缂栫爜鎵撳嵃")
+ public R manPakOutPrint(@RequestParam(value = "param[]") String[] param) {
+ if(Cools.isEmpty(param)) {
+ return R.parse(CodeRes.EMPTY);
+ }
+ List<ManPakOut> res = new ArrayList<>();
+ for (String orderNo : param){
+ res = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", orderNo));
+ }
+ return R.ok().add(res);
+ }
+ @RequestMapping(value = "/ManPakOut/code/auth")
+// @ManagerAuth(memo = "鐗╂枡缂栫爜鏉″舰鐮佽幏鍙�(type:1(鏉″舰鐮�);2(浜岀淮鐮�)")
+ public R manPakOutCodeBarcode(@RequestParam(defaultValue = "2") Integer type
+ , @RequestParam String param
+ , HttpServletResponse response) throws Exception {
+ AdminInterceptor.cors(response);
+ if (Cools.isEmpty(param)){
+ return R.parse(BaseRes.EMPTY);
+ }
+ BufferedImage img;
+ if (type == 1) {
+ img = BarcodeUtils.encode(param);
+ } else {
+ img = QrCode.createImg(param);
+ }
+ if (!ImageIO.write(img, "jpg", response.getOutputStream())) {
+ throw new IOException("Could not write an image of format jpg");
+ }
+ response.getOutputStream().flush();
+ response.getOutputStream().close();
+ return R.ok();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 1d05c39..bae8839 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -8,10 +8,13 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.NodePakoutParam;
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.service.*;
import com.zy.common.model.WrkDto;
import com.zy.common.web.BaseController;
+import com.zy.system.entity.User;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
@@ -48,7 +51,11 @@
@Autowired
private PackService packService;
@Autowired
- private ManLocDetlService manLocDetlService;
+ private ManLocDetlTempService manLocDetlTempService;
+ @Autowired
+ private MatService matService;
+ @Autowired
+ private WaitPakinService waitPakinService;
// 缁勬墭 ----------------------------------------------------------------------------------------------------
@@ -90,8 +97,8 @@
combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
combMat.setMaktx(orderDetl.getMaktx());
combMat.setSpecs(orderDetl.getSpecs());
- combMat.setCsocode(orderDetl.getColor());
- combMat.setIsoseq(orderDetl.getOrigin());
+ combMat.setCsocode(orderDetl.getThreeCode());
+ combMat.setIsoseq(orderDetl.getDeadTime());
combMats.add(combMat);
}
combParam.setCombMats(combMats);
@@ -327,25 +334,74 @@
*/
@RequestMapping("/node/recommend/loc")
@ManagerAuth(memo = "搴撲綅鎺ㄨ崘")
- public R recommendNodeLoc(){
+ public R recommendNodeLoc(@RequestBody HashMap<String,String> param){
+ String zpallet = param.get("zpallet");
- return R.ok();
+ return R.ok("DT-C-010202").add(waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet",zpallet)));
}
+
/*
骞冲簱 璁㈠崟涓婃灦
*/
@RequestMapping("/node/puttway")
- @ManagerAuth(memo = "璁㈠崟涓婃灦")
+ //@ManagerAuth(memo = "璁㈠崟涓婃灦")
public R putway(@RequestBody HashMap<String,String> params){
String zpallet = params.get("zpallet");
String locNo = params.get("locNo");
- mobileService.nodePutway(zpallet,locNo,getUser());
+ mobileService.nodePutway(zpallet,locNo,new User());
+
+ return R.ok("璁㈠崟涓婃灦鎴愬姛");
+ }
+
+ /*
+ 骞冲簱 璁㈠崟涓嬫灦
+ */
+ @RequestMapping("/node/pakout")
+ public R nodePakout(@RequestBody NodePakoutParam param){
- return R.ok();
+ mobileService.nodePakout(param,new User());
+
+ return R.ok("璁㈠崟涓嬫灦鎴愬姛");
+ }
+
+ /*
+ 骞冲簱涓存椂涓婃灦
+ */
+ @RequestMapping("/node/putway1")
+ public R putway1(@RequestBody CombParam combParam){
+ Date now = new Date();
+ List<CombParam.CombMat> combMats = combParam.getCombMats();
+ combMats.forEach(combMat -> {
+ if(Cools.isEmpty(combMat.getBatch())){
+ combMat.setBatch("-1");
+ }
+ ManLocDetlTemp manLocDetlTemp = manLocDetlTempService.selectOne(new EntityWrapper<ManLocDetlTemp>()
+ .eq("matnr", combMat.getMatnr())
+ .eq("batch",combMat.getBatch()));
+ if(Cools.isEmpty(manLocDetlTemp)){
+ manLocDetlTemp = new ManLocDetlTemp();
+ Mat mat = matService.selectByMatnr(combMat.getMatnr());
+ BeanUtils.copyProperties(mat,manLocDetlTemp);
+ manLocDetlTemp.setLocNo("A-010101");
+ manLocDetlTemp.setAnfme(combMat.getAnfme());
+ manLocDetlTemp.setBatch(combMat.getBatch());
+ manLocDetlTemp.setCreateTime(now);
+ manLocDetlTemp.setModiTime(now);
+ manLocDetlTempService.insert(manLocDetlTemp);
+ }else {
+ manLocDetlTemp.setAnfme(manLocDetlTemp.getAnfme()+combMat.getAnfme());
+ manLocDetlTempService.update(manLocDetlTemp,new EntityWrapper<ManLocDetlTemp>()
+ .eq("matnr", combMat.getMatnr())
+ .eq("batch",combMat.getBatch()));
+ }
+
+ });
+
+ return R.ok("涓婃灦鎴愬姛");
}
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index efaaee0..f851843 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -17,9 +17,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -51,6 +49,10 @@
private AgvBasDevpService agvBasDevpService;
@Autowired
private AgvWorkService agvWorkService;
+ @Autowired
+ private ManLocDetlService manLocDetlService;
+ @Autowired
+ private ManPakOutService manPakOutService;
@Autowired
private AgvLocDetlService agvLocDetlService;
@@ -75,6 +77,9 @@
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
if (issued <= 0.0D) { continue; }
+ //浠庡钩搴撳鎵�
+ issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+
//鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
@@ -89,44 +94,6 @@
}
return R.ok().add(locDtoList);
- /*
- if (Cools.isEmpty(ids)) {
- return R.parse(BaseRes.PARAM);
- }
- List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
- List<LocDto> locDtos = new ArrayList<>();
-
- Set<String> exist = new HashSet<>();
-
- for (OrderDetl orderDetl : orderDetls) {
- double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
- if (issued <= 0.0D) { continue; }
- List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
- for (LocDetl locDetl : locDetls) {
- if (issued > 0) {
-// LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-// issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
- locDetl.getAnfme());
-// int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103;
- int ioType = 101;
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
- locDto.setStaNos(staNos);
- locDtos.add(locDto);
- exist.add(locDetl.getLocNo());
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- } else {
- break;
- }
- }
- if (issued > 0) {
- LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
- locDto.setLack(Boolean.TRUE);
- locDtos.add(locDto);
- }
- }
- return R.ok().add(locDtos); */
}
@PostMapping("/out/pakout/auth")
@@ -350,6 +317,10 @@
if (locDto.isLack()) { continue; }
//AGV搴�
if(!Cools.isEmpty(locDto.getAgvStaNos())){
+ //骞冲簱
+ if("鏃犻渶绔欑偣".equals(locDto.getAgvStaNo())){
+ generateManPakout(locDto);
+ }
generateTaskDtoForAgv(locDto,agvTaskDtos);
//鍥涢」搴�
@@ -406,6 +377,75 @@
}
/*
+ 鐢熸垚骞冲簱鎷h揣鍗�
+ */
+ private void generateManPakout(LocDto locDto){
+ ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch());
+ if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>manLocDetl.getAnfme())) {
+ manLocDetl.setStatus(0);
+ manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("loc_no", manLocDetl.getLocNo()).eq("matnr",manLocDetl.getMatnr()));
+ if (addPakOUT(locDto).equals(R.ok())) {
+ Order order = orderService.selectByNo(locDto.getOrderNo());
+ if (Cools.isEmpty(order)){
+ throw new CoolException("鏌ヨ璁㈠崟澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo());
+ }
+ if (order.getSettle()==1){
+ if (!orderService.updateSettle(order.getId(),2L,null)){
+ throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐ワ紝璇疯仈绯荤鐞嗗憳"+locDto.getOrderNo());
+ }
+ }
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr()));
+ if (Cools.isEmpty(orderDetl)){
+ throw new CoolException("鏌ヨ璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr());
+ }
+ orderDetl.setQty(orderDetl.getQty() + locDto.getAnfme());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr());
+ }
+ }
+ }else {
+ throw new CoolException("搴撳瓨涓嶈冻");
+ }
+ }
+
+ private R addPakOUT(LocDto locDto){
+ ManPakOut manPakOut=new ManPakOut();
+ manPakOut.setWrkNo(locDto.getOrderNo()+"-"+System.currentTimeMillis());
+ manPakOut.setWrkSts((long)1);
+ manPakOut.setAnfme(locDto.getAnfme());
+ manPakOut.setLocNo(locDto.getLocNo());
+ manPakOut.setMatnr(locDto.getMatnr());
+ manPakOut.setMaktx(locDto.getMaktx());
+ manPakOut.setDocNum(locDto.getOrderNo());
+ manPakOut.setCount(0.0);
+ manPakOut.setStatus(0);
+ manPakOut.setCreateTime(new Date());
+ manPakOut.setBatch(locDto.getBatch());
+ manPakOut.setUpdateTime(new Date());
+ manPakOut.setUuid(UUID.randomUUID().toString());
+
+ manPakOut.setContainerCode(locDto.getContainerCode());
+ manPakOut.setCsocode(locDto.getCsocode());
+ manPakOut.setIsoseq(locDto.getIsoseq());
+
+ ManPakOut manPakOutExist = manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num", locDto.getOrderNo()));
+ if (Cools.isEmpty(manPakOutExist)){
+ manPakOut.setName(locDto.getMaktx());
+ }else{
+ manPakOut.setUuid(manPakOutExist.getUuid());
+ }
+ try{
+ if (!manPakOutService.insert(manPakOut)){
+ return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }catch (Exception e){
+ return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ return R.ok();
+
+ }
+
+ /*
璁㈠崟棰勬牎楠� ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺
*/
private List<OrderDto> orderPreVerification(List<LocDto> locDtos){
diff --git a/src/main/java/com/zy/asrs/entity/ManLocDetlTemp.java b/src/main/java/com/zy/asrs/entity/ManLocDetlTemp.java
new file mode 100644
index 0000000..6a99e9e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/ManLocDetlTemp.java
@@ -0,0 +1,346 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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.system.entity.Host;
+import com.zy.system.entity.User;
+import com.zy.system.service.HostService;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("man_loc_detl_temp")
+public class ManLocDetlTemp implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鎵�灞為」鐩�
+ */
+ @ApiModelProperty(value= "鎵�灞為」鐩�")
+ @TableField("host_id")
+ private Long hostId;
+
+ /**
+ * 璐т綅缂栧彿
+ */
+ @ApiModelProperty(value= "璐т綅缂栧彿")
+ @TableField("loc_no")
+ private String locNo;
+
+ /**
+ * 鎵�灞炶揣浣�
+ */
+ @ApiModelProperty(value= "鎵�灞炶揣浣�")
+ @TableField("node_id")
+ private Long nodeId;
+
+ /**
+ * 鎵樼洏鐮�
+ */
+ @ApiModelProperty(value= "鎵樼洏鐮�")
+ private String zpallet;
+
+ /**
+ * 搴撳瓨浣欓噺
+ */
+ @ApiModelProperty(value= "搴撳瓨浣欓噺")
+ @ExcelProperty(value = "搴撳瓨鎬婚噺")
+ private Double anfme;
+
+ /**
+ * 鍟嗗搧缂栧彿
+ */
+ @ApiModelProperty(value= "鍟嗗搧缂栧彿")
+ @TableId(value = "matnr", type = IdType.INPUT)
+ @ExcelProperty(value = "鍟嗗搧缂栧彿")
+ private String matnr;
+
+ /**
+ * 鍟嗗搧鍚嶇О
+ */
+ @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
+ @ExcelProperty(value = "鍟嗗搧鍚嶇О")
+ private String maktx;
+
+ /**
+ * 鍚嶇О
+ */
+ @ApiModelProperty(value= "鍚嶇О")
+ private String name;
+
+ /**
+ * 瑙勬牸
+ */
+ @ApiModelProperty(value= "瑙勬牸")
+ @ExcelProperty(value = "瑙勬牸")
+ private String specs;
+
+ /**
+ * 鍨嬪彿
+ */
+ @ApiModelProperty(value= "鍨嬪彿")
+ private String model;
+
+ /**
+ * 鎵瑰彿
+ */
+ @ApiModelProperty(value= "鎵瑰彿")
+ @TableId(value = "batch", type = IdType.INPUT)
+ private String batch;
+
+ /**
+ * 鍗曚綅
+ */
+ @ApiModelProperty(value= "鍗曚綅")
+ @ExcelProperty(value = "鍗曚綅")
+ private String unit;
+
+ /**
+ * SKC
+ */
+ @ApiModelProperty(value= "SKC")
+ @ExcelProperty(value = "SKC")
+ private String barcode;
+
+ /**
+ * 鍗曟嵁绫诲瀷
+ */
+ @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
+ @TableField("doc_id")
+ private Long docId;
+
+ /**
+ * 鍗曟嵁缂栧彿
+ */
+ @ApiModelProperty(value= "鍗曟嵁缂栧彿")
+ @TableField("doc_num")
+ private String docNum;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
+ @TableField("cust_name")
+ private String custName;
+
+ /**
+ * 鍝侀」鏁�
+ */
+ @ApiModelProperty(value= "鍝侀」鏁�")
+ @TableField("item_num")
+ private Integer itemNum;
+
+ /**
+ * 鏁伴噺
+ */
+ @ApiModelProperty(value= "鏁伴噺")
+ private Integer count;
+
+
+ /**
+ * 鍗曚环
+ */
+ @ApiModelProperty(value= "鍗曚环")
+ private Double price;
+
+ /**
+ * 閲嶉噺
+ */
+ @ApiModelProperty(value= "閲嶉噺")
+ private Double weight;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ @TableField("create_by")
+ private Long createBy;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("update_by")
+ private Long updateBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("modi_time")
+ private Date modiTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ /**
+ * 鎷ユ湁鑰�
+ */
+ @ApiModelProperty(value= "鎷ユ湁鑰� 1: 鏉板厠 ")
+ private Integer owner;
+
+ /**
+ * 璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�
+ */
+ @ApiModelProperty(value= "璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�")
+ private Integer payment;
+
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("real_anfme")
+ private Date realAnfme;
+
+ @ApiModelProperty(value= "璁㈠崟鍙�")
+ @TableField("order_no")
+ private String orderNo;
+
+ @TableField("container_code")
+ private String containerCode;
+
+ private String csocode;
+
+ private String isoseq;
+
+// LocDetl locDetl = new LocDetl(
+// null, // 璐т綅缂栧彿[闈炵┖]
+// null, // 鎵�灞炶揣浣�
+// null, // 鎵樼洏鐮�
+// null, // 搴撳瓨浣欓噺[闈炵┖]
+// null, // 鍟嗗搧缂栧彿[闈炵┖]
+// null, // 鍟嗗搧鍚嶇О
+// null, // 鍚嶇О
+// null, // 瑙勬牸
+// null, // 鍨嬪彿
+// null, // 鎵瑰彿
+// null, // 鍗曚綅
+// null, // SKC
+// null, // 鍗曟嵁绫诲瀷
+// null, // 鍗曟嵁缂栧彿
+// null, // 瀹㈡埛鍚嶇О
+// null, // 鍝侀」鏁�
+// null, // 鏁伴噺
+// null, // 閲嶉噺
+// null, // 鐘舵��
+// null, // 娣诲姞浜哄憳
+// null, // 娣诲姞鏃堕棿
+// null, // 淇敼浜哄憳
+// null, // 淇敼鏃堕棿
+// null // 澶囨敞
+// );
+
+// public String getOwner$(){
+// LocOwnerService service = SpringUtils.getBean(LocOwnerService.class);
+// LocOwner locOwner = service.selectById(this.owner);
+// if (!Cools.isEmpty(locOwner)){
+// return String.valueOf(locOwner.getOwner());
+// }
+// return null;
+// }
+
+ public String getPayment$(){
+ if (null == this.payment){ return null; }
+ switch (this.payment){
+ case 1:
+ return "浠撳偍";
+ case 0:
+ return "浠i噰";
+ default:
+ return String.valueOf(this.payment);
+ }
+ }
+
+ public String getHostId$(){
+ HostService service = SpringUtils.getBean(HostService.class);
+ Host host = service.selectById(this.hostId);
+ if (!Cools.isEmpty(host)){
+ return String.valueOf(host.getName());
+ }
+ return null;
+ }
+
+ public Long getNodeId() {
+ return nodeId;
+ }
+
+// public String getNodeId$(){
+// NodeService service = SpringUtils.getBean(NodeService.class);
+// Node node = service.selectById(this.nodeId);
+// if (!Cools.isEmpty(node)){
+// return String.valueOf(node.getName());
+// }
+// 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$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.createBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ 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.getNickname());
+ }
+ return null;
+ }
+
+ public String getModiTime$(){
+ if (Cools.isEmpty(this.modiTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+ }
+
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/ManPakOut.java b/src/main/java/com/zy/asrs/entity/ManPakOut.java
new file mode 100644
index 0000000..7afe93d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/ManPakOut.java
@@ -0,0 +1,280 @@
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("man_pakout")
+public class ManPakOut {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 浠诲姟鍙�
+ */
+ @ApiModelProperty(value= "浠诲姟鍙�")
+ @TableId(value = "wrk_no", type = IdType.INPUT)
+ @TableField("wrk_no")
+ private String wrkNo;
+
+ /**
+ * 宸ヤ綔鐘舵��
+ */
+ @ApiModelProperty(value= "宸ヤ綔鐘舵��")
+ @TableField("wrk_sts")
+ private Long wrkSts;
+
+ /**
+ * 鎵樼洏鍙�
+ */
+ @ApiModelProperty(value= "鎵樼洏鍙�")
+ private String zpallet;
+
+ /**
+ * 鍑哄簱鏁伴噺
+ */
+ @ApiModelProperty(value= "鍑哄簱鏁伴噺")
+ private Double anfme;
+
+ /**
+ * 鍏宠仈璐т綅
+ */
+ @ApiModelProperty(value= "鍏宠仈璐т綅")
+ @TableField("node_id")
+ private Long nodeId;
+
+ /**
+ * 璐т綅
+ */
+ @ApiModelProperty(value= "璐т綅")
+ @TableField("loc_no")
+ private String locNo;
+
+ /**
+ * 鍟嗗搧缂栫爜
+ */
+ @ApiModelProperty(value= "鍟嗗搧缂栫爜")
+ private String matnr;
+
+ /**
+ * 鍟嗗搧鍚嶇О
+ */
+ @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
+ private String maktx;
+
+ /**
+ * 鍚嶇О
+ */
+ @ApiModelProperty(value= "鍚嶇О")
+ private String name;
+
+ /**
+ * 瑙勬牸
+ */
+ @ApiModelProperty(value= "瑙勬牸")
+ private String specs;
+
+ /**
+ * 鍨嬪彿
+ */
+ @ApiModelProperty(value= "鍨嬪彿")
+ private String model;
+
+ /**
+ * 鎵瑰彿
+ */
+ @ApiModelProperty(value= "鎵瑰彿")
+ private String batch;
+
+ /**
+ * 鍗曚綅
+ */
+ @ApiModelProperty(value= "鍗曚綅")
+ private String unit;
+
+ /**
+ * 璐х墿鏉$爜
+ */
+ @ApiModelProperty(value= "璐х墿鏉$爜")
+ private String barcode;
+
+ /**
+ * 鍗曟嵁绫诲瀷
+ */
+ @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
+ @TableField("doc_id")
+ private Long docId;
+
+ /**
+ * 鍗曟嵁缂栧彿
+ */
+ @ApiModelProperty(value= "鍗曟嵁缂栧彿")
+ @TableField("doc_num")
+ private String docNum;
+
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
+ @TableField("cust_name")
+ private String custName;
+
+ /**
+ * 鍝侀」鏁�
+ */
+ @ApiModelProperty(value= "鍝侀」鏁�")
+ @TableField("item_num")
+ private Integer itemNum;
+
+ /**
+ * 鏁伴噺
+ */
+ @ApiModelProperty(value= "鏁伴噺")
+ private Double count;
+
+ /**
+ * 閲嶉噺
+ */
+ @ApiModelProperty(value= "閲嶉噺")
+ private Double weight;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ @TableField("create_by")
+ private Long createBy;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ private Date createTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("update_by")
+ private Long updateBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("update_time")
+ private Date updateTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ /**
+ * 鎷ユ湁鑰�
+ */
+ @ApiModelProperty(value= "鎷ユ湁鑰� 1: 鏉板厠 ")
+ private Integer owner;
+
+ /**
+ * 璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�
+ */
+ @ApiModelProperty(value= "璐х墿褰㈡��:0锛氫唬閲囥��1锛氫粨鍌�")
+ private Integer payment;
+
+ /**
+ * uuid鏃堕棿鎴�
+ */
+ @ApiModelProperty(value= "uuid")
+ @TableId(value = "uuid", type = IdType.ID_WORKER_STR)
+ @TableField("uuid")
+ private String uuid;
+
+ //鏂欑鐮�
+ private String containerCode;
+ //閿�鍞鍗曞彿
+ private String csocode;
+ //閿�鍞鍗曡鍙�
+ private String isoseq;
+
+// public String getOwner$(){
+// LocOwnerService service = SpringUtils.getBean(LocOwnerService.class);
+// LocOwner locOwner = service.selectById(this.owner);
+// if (!Cools.isEmpty(locOwner)){
+// return String.valueOf(locOwner.getOwner());
+// }
+// return null;
+// }
+
+ public String getPayment$(){
+ if (null == this.payment){ return null; }
+ switch (this.payment){
+ case 1:
+ return "宸插嚭搴�";
+ case 0:
+ return "鏈嚭搴�";
+ case 8:
+ return "鏈畬鍏ㄥ嚭搴�";
+ case 9:
+ return "鍏ㄩ儴瀹屾垚鍑哄簱";
+ default:
+ return String.valueOf(this.payment);
+ }
+// switch (this.payment){
+// case 1:
+// return "浠撳偍";
+// case 0:
+// return "浠i噰";
+// default:
+// return String.valueOf(this.payment);
+// }
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "宸插嚭搴�";
+ case 0:
+ return "鏈嚭搴�";
+ case 8:
+ return "鏈畬鍏ㄥ嚭搴�";
+ case 9:
+ return "鍏ㄩ儴瀹屾垚鍑哄簱";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/NodePakoutParam.java b/src/main/java/com/zy/asrs/entity/param/NodePakoutParam.java
new file mode 100644
index 0000000..d1facae
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/NodePakoutParam.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class NodePakoutParam {
+ private String orderNo;
+ private String containerCode;
+ private Double anfme;
+ private String locNo;
+ private String matnr;
+ //閿�鍞鍗曞彿
+ private String csocode;
+ //閿�鍞鍗曡鍙�
+ private String isoseq;
+ private String wrkNo;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlTempMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlTempMapper.java
new file mode 100644
index 0000000..96b05de
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlTempMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.ManLocDetlTemp;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ManLocDetlTempMapper extends BaseMapper<ManLocDetlTemp> {
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java b/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
new file mode 100644
index 0000000..2a7f7f4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.ManPakOut;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ManPakOutMapper extends BaseMapper<ManPakOut> {
+
+ @Update("UPDATE man_pakout SET payment = ${status} WHERE doc_num = '${orderNo}' AND name IS NOT NULL")
+ void updateAllStatus(@Param("orderNo")String orderNo, @Param("status")int status);
+
+ @Select("SELECT * FROM man_pakout WHERE doc_num = '${orderNo}' AND name IS NOT NULL")
+ ManPakOut selectByOrderWithName(@Param("orderNo")String orderNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
index 301da48..6c7550f 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
@@ -23,4 +23,9 @@
List<AgvLocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo);
+ /**
+ * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
+ */
+ boolean updateAnfme(Double anfme, String locNo, String matnr, String batch);
+
}
diff --git a/src/main/java/com/zy/asrs/service/AgvWorkService.java b/src/main/java/com/zy/asrs/service/AgvWorkService.java
index 3379e72..cdc2396 100644
--- a/src/main/java/com/zy/asrs/service/AgvWorkService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWorkService.java
@@ -3,6 +3,7 @@
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.entity.AgvWrkMast;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.common.model.StartupDto;
import com.zy.common.model.TaskDto;
@@ -43,4 +44,9 @@
void emptyPlateOut(EmptyPlateOutParam param, Long userId);
+ /**
+ * 搴撳瓨鏄庣粏璋冩暣
+ */
+ void adjustLocDetl(LocDetlAdjustParam param, Long userId);
+
}
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
index 2cbf39f..ba601f3 100644
--- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -5,6 +5,7 @@
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.result.StockVo;
+import com.zy.common.model.LocDto;
import com.zy.system.entity.User;
import java.util.List;
@@ -69,4 +70,6 @@
int increase(Double anfme,String locNo, String matnr,String batch,Double weight);
+ double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq);
+
}
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlTempService.java b/src/main/java/com/zy/asrs/service/ManLocDetlTempService.java
new file mode 100644
index 0000000..4cbfb60
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlTempService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.ManLocDetlTemp;
+
+public interface ManLocDetlTempService extends IService<ManLocDetlTemp> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/ManPakOutService.java b/src/main/java/com/zy/asrs/service/ManPakOutService.java
new file mode 100644
index 0000000..cfbfcc6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/ManPakOutService.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.ManPakOut;
+
+public interface ManPakOutService extends IService<ManPakOut> {
+ void updateAllStatus(String orderNo,int status);
+
+ ManPakOut selectByOrderWithName(String orderNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index a5e1182..72e8cd3 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -2,6 +2,7 @@
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.NodePakoutParam;
import com.zy.system.entity.User;
public interface MobileService {
@@ -19,4 +20,6 @@
void packComb(CombParam param, Long userId);
void nodePutway(String zpallet, String locNo, User user);
+
+ void nodePakout(NodePakoutParam param, User user);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index c55a5d6..bf76e41 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -52,17 +52,6 @@
wapperSetCondition(wrapper,"three_code",csocode);
wapperSetCondition(wrapper,"dead_time",isoseq);
-// if(Cools.isEmpty(batch)){
-// wrapper.isNull("batch");
-// }else {
-// wrapper.eq("batch",batch);
-// }
-// if(!Cools.isEmpty(csocode)){
-// wrapper.eq("three_code",csocode);
-// }
-// if(Cools.isEmpty(isoseq)){
-// wrapper.eq("dead_time",isoseq);
-// }
List<AgvLocDetl> agvLocDetls = this.selectList(wrapper);
for (AgvLocDetl agvLocDetl: agvLocDetls) {
@@ -78,7 +67,9 @@
//int ioType = anfme > issued ? 101 : 103;
anfme = anfme > issued ? issued : anfme;
LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNo, anfme);
-
+ locDto.setCsocode(csocode);
+ locDto.setIsoseq(isoseq);
+ locDto.setContainerCode(agvLocDetl.getZpallet());
//褰撳墠搴撲綅鎵�澶勬ゼ灞�
int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]);
locDto.setAgvStaNos(queryAgvStaNosByFloor(floor));
@@ -139,6 +130,17 @@
return this.selectList(wrapper);
}
+ public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch) {
+ if (anfme <= 0) {
+ return this.delete(new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).eq("loc_no", locNo));
+ } else {
+ AgvLocDetl agvLocDetl = this.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("matnr", matnr));
+ agvLocDetl.setAnfme(anfme);
+ return this.update(agvLocDetl,new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("matnr", matnr));
+ //return baseMapper.updateAnfme(anfme, locNo, matnr, batch) > 0;
+ }
+ }
+
private List<String> queryAgvStaNosByFloor(int floor){
List<String> agvStaNos = new ArrayList<>();
if(floor == 1){
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 75991c2..e7b35ac 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -6,6 +6,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
+import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
@@ -21,7 +22,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
+import java.util.UUID;
/**
* Created by vincent on 2020/6/11
@@ -55,6 +58,8 @@
private OrderService orderService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private AdjDetlService adjDetlService;
/*
@@ -296,6 +301,140 @@
});
}
+ @Transactional
+ public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
+ param.integrate();
+ AgvLocMast locMast = agvLocMastService.selectById(param.getLocNo());
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("搴撲綅涓嶅瓨鍦�");
+ }
+ if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) {
+ throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$());
+ }
+
+ Date now = new Date();
+ List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", param.getLocNo()));
+
+ List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
+
+ // 淇敼鏁伴噺
+ Iterator<AgvLocDetl> iterator = locDetls.iterator();
+ while (iterator.hasNext()) {
+ AgvLocDetl locDetl = iterator.next();
+
+ Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator();
+ while (iterator1.hasNext()) {
+ LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next();
+ if (adjust.getCount() == 0) { continue; }
+ if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) {
+ if (!locDetl.getAnfme().equals(adjust.getCount())) {
+ // todo 鐩樼偣璁板綍
+ // 淇敼搴撳瓨
+ if (!agvLocDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�");
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+
+ UUID uuid = UUID.randomUUID();
+ adjDetl.setOrderNo(uuid.toString());
+ adjDetl.setCsocode(locDetl.getThreeCode());
+ adjDetl.setIsoseq(locDetl.getDeadTime());
+
+ adjDetlService.save(adjDetl, userId);
+ }
+ iterator.remove();
+ iterator1.remove();
+ }
+ }
+ }
+
+ // 鍒犻櫎搴撳瓨
+ for (AgvLocDetl locDetl : locDetls) {
+ // todo 鐩樼偣璁板綍
+ if (!agvLocDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+ throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(0.0D);
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+
+ adjDetlService.save(adjDetl, userId);
+ }
+
+ // 娣诲姞搴撳瓨
+ for (LocDetlAdjustParam.LocDetlAdjust adjust : list) {
+ if (adjust.getCount() == 0.0D) { continue; }
+ Mat mat = matService.selectByMatnr(adjust.getMatnr());
+ AgvLocDetl locDetl = new AgvLocDetl();
+ locDetl.sync(mat);
+ locDetl.setBatch(adjust.getBatch());
+ locDetl.setLocNo(locMast.getLocNo());
+ locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
+ locDetl.setModiTime(now);
+ locDetl.setAppeUser(userId);
+ locDetl.setAppeTime(now);
+ locDetl.setThreeCode(adjust.getThreeCode());
+ locDetl.setDeadTime(adjust.getDeadTime());
+ if (!agvLocDetlService.insert(locDetl)) {
+ throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
+ }
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locMast.getLocNo());
+ adjDetl.setMatnr(adjust.getMatnr());
+ adjDetl.setBatch(adjust.getBatch());
+ adjDetl.setOriQty(0.0D);
+ adjDetl.setAdjQty(adjust.getCount());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(userId);
+
+ UUID uuid = UUID.randomUUID();
+ adjDetl.setOrderNo(uuid.toString());
+ adjDetl.setCsocode(locDetl.getThreeCode());
+ adjDetl.setIsoseq(locDetl.getDeadTime());
+
+ adjDetlService.save(adjDetl, userId);
+ }
+ // 淇敼搴撲綅鐘舵��
+ int count = agvLocDetlService.selectCount(new EntityWrapper<AgvLocDetl>().eq("loc_no", locMast.getLocNo()));
+ if (locMast.getLocSts().equals("F")) {
+ if (count == 0) {
+ locMast.setLocSts("D");
+ }
+ }
+ if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
+ if (count > 0) {
+ locMast.setLocSts("F");
+ }
+ }
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!agvLocMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 8ceecf8..a6f231a 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -125,6 +125,9 @@
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
locDto.setStaNos(staNos);
+ locDto.setCsocode(csocode);
+ locDto.setIsoseq(isoseq);
+ locDto.setContainerCode(locDetl.getSuppCode());
locDtoList.add(locDto);
// 鍓╀綑寰呭嚭鏁伴噺閫掑噺
issued = issued - locDetl.getAnfme();
diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetTemplServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetTemplServiceImpl.java
new file mode 100644
index 0000000..e54e13d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetTemplServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.ManLocDetlTemp;
+import com.zy.asrs.mapper.ManLocDetlTempMapper;
+import com.zy.asrs.service.ManLocDetlTempService;
+import org.springframework.stereotype.Service;
+
+@Service("manLocDetlTempService")
+public class ManLocDetTemplServiceImpl extends ServiceImpl<ManLocDetlTempMapper, ManLocDetlTemp> implements ManLocDetlTempService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
index c9af0a1..01ada7a 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -1,8 +1,10 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Mat;
@@ -15,15 +17,13 @@
import com.zy.asrs.service.NodeService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.utils.SaasUtils;
+import com.zy.common.model.LocDto;
import com.zy.system.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
@Service("manLocDetlService")
public class ManLocDetlServiceImpl extends ServiceImpl<ManLocDetlMapper, ManLocDetl> implements ManLocDetlService {
@@ -200,4 +200,40 @@
return baseMapper.increase(anfme,locNo,matnr,batch,weight);
}
+ public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) {
+ Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>().eq("matnr", matnr).orderBy("modi_time");
+ wrapper.eq("status",1);
+ wapperSetCondition(wrapper,"batch",batch);
+ wapperSetCondition(wrapper,"csocode",csocode);
+ wapperSetCondition(wrapper,"isoseq",isoseq);
+
+ List<ManLocDetl> manLocDetls = this.selectList(wrapper);
+ for (ManLocDetl manLocDetl : manLocDetls){
+ if(issued > 0) {
+ double anfme = manLocDetl.getAnfme();
+ anfme = anfme > issued ? issued : anfme;
+ LocDto locDto = new LocDto(manLocDetl.getLocNo(), manLocDetl.getMatnr(), manLocDetl.getMaktx(), manLocDetl.getBatch(), orderNo, anfme);
+ locDto.setCsocode(csocode);
+ locDto.setIsoseq(isoseq);
+ locDto.setContainerCode(manLocDetl.getContainerCode());
+ List<String> stationList = new ArrayList<>();
+ stationList.add("鏃犻渶绔欑偣");
+ locDto.setAgvStaNos(stationList);
+
+ locDtoList.add(locDto);
+ issued -= anfme;
+ }
+ }
+
+ return issued;
+ }
+
+ private void wapperSetCondition(Wrapper wrapper,String column, String condition){
+ if(Cools.isEmpty(condition)){
+ wrapper.isNull(column);
+ }else {
+ wrapper.eq(column,condition);
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java
new file mode 100644
index 0000000..d0cfc70
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.ManPakOut;
+import com.zy.asrs.mapper.ManPakOutMapper;
+import com.zy.asrs.service.ManPakOutService;
+import org.springframework.stereotype.Service;
+
+@Service("manPakOutService")
+public class ManPakOutServiceImpl extends ServiceImpl<ManPakOutMapper, ManPakOut> implements ManPakOutService {
+
+
+ public void updateAllStatus(String orderNo, int status) {
+ this.baseMapper.updateAllStatus(orderNo,status);
+ }
+
+ @Override
+ public ManPakOut selectByOrderWithName(String orderNo) {
+ return this.baseMapper.selectByOrderWithName(orderNo);
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index fd8233c..bb12713 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -3,20 +3,20 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.NodePakoutParam;
import com.zy.asrs.entity.param.OpenOrderPakinParam;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkLogHandler;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.SaasUtils;
+import com.zy.asrs.utils.Utils;
import com.zy.common.constant.MesConstant;
import com.zy.common.entity.Parameter;
import com.zy.common.model.DetlDto;
@@ -70,6 +70,10 @@
private ManLocDetlService manLocDetlService;
@Autowired
private WaitPakinLogService waitPakinLogService;
+ @Autowired
+ private NodeService nodeService;
+ @Autowired
+ private ManPakOutService manPakOutService;
@Override
@Transactional
@@ -446,14 +450,18 @@
//澧炲姞骞冲簱搴撳瓨
List<WaitPakin> waitPakinList = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", zpallet));
- waitPakinList.forEach(waitPakin -> {
+ if(Cools.isEmpty(waitPakinList)){
+ throw new CoolException("璇ユ墭鐩樼爜鏈粍鎵�");
+ }
+
+ waitPakinList.forEach(waitPakin -> {
//鏂欐兂鐮�
String containerCode = waitPakin.getSuppCode();
//濡傛灉褰撳墠鏂欐兂鐮佸凡瀛樺湪锛屽垯淇敼璇ユ枡鎯崇殑鐗╂枡鏁伴噺
ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>().eq("container_code", containerCode));
if(Cools.isEmpty(manLocDetl)){
- saveManlocDetl(manLocDetl,waitPakin,now,locNo);
+ saveManlocDetl(waitPakin,now,locNo);
}else{
if(Cools.eq(manLocDetl.getMatnr(),waitPakin.getMatnr())
&& Cools.eq(manLocDetl.getCsocode(),waitPakin.getThreeCode())
@@ -463,7 +471,7 @@
.eq("loc_no",manLocDetl.getLocNo())
.eq("container_code",manLocDetl.getContainerCode()));
}else{
- saveManlocDetl(manLocDetl,waitPakin,now,locNo);
+ saveManlocDetl(waitPakin,now,locNo);
}
}
//鐢熸垚骞冲簱鍏ュ嚭搴撴棩蹇�
@@ -475,18 +483,130 @@
//鍒犻櫎鍏ュ簱閫氱煡妗�
waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", zpallet));
+ orderService.checkComplete(waitPakinList.get(0).getOrderNo());
+
+
}
- private void saveManlocDetl(ManLocDetl manLocDetl, WaitPakin waitPakin, Date now, String locNo){
- manLocDetl = new ManLocDetl();
+ @Transactional
+ public void nodePakout(NodePakoutParam param, User user) {
+ Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", param.getLocNo()));
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo()));
+ if (Cools.isEmpty(node, order)) {
+ throw new CoolException("鍙傛暟涓虹┖");
+ }
+ //鏌ヨ褰撳墠鐗╂枡鐨勮鍗曡鎯�
+ Wrapper<OrderDetl> orderDetlWrapper = new EntityWrapper<OrderDetl>().eq("order_no", param.getOrderNo()).eq(false, "status", 1);
+ Utils.wapperSetCondition(orderDetlWrapper,"three_code",param.getCsocode());
+ Utils.wapperSetCondition(orderDetlWrapper,"dead_time",param.getIsoseq());
+ Utils.wapperSetCondition(orderDetlWrapper,"matnr",param.getMatnr());
+
+ //Utils.confirmOnlyMat(orderDetlWrapper,param.getMatnr(),param.getCsocode(),param.getIsoseq());
+ OrderDetl orderDetl = orderDetlService.selectOne(orderDetlWrapper);
+ //鏌ヨ褰撳墠鎷h揣鍗曚俊鎭�
+ Wrapper<ManPakOut> manPakOutWrapper = new EntityWrapper<ManPakOut>().eq("wrk_no", param.getWrkNo());
+ ManPakOut manPakOut = manPakOutService.selectOne(manPakOutWrapper);
+ if(Cools.isEmpty(manPakOut) || manPakOut.getStatus() == 1){
+ throw new CoolException("褰撳墠鎷h揣鐮佸凡缁忓畬鎴愭嫞璐�");
+ }
+ //鏌ヨ搴撳瓨淇℃伅
+ Wrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<ManLocDetl>().eq("loc_no", param.getLocNo());
+ Utils.confirmOnlyMat(manLocDetlWrapper,param.getMatnr(),param.getCsocode(),param.getIsoseq());
+ ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper);
+
+ //鏍规嵁瀹為檯鍑哄簱鏁伴噺鎵e噺搴撳瓨
+ if(Double.doubleToLongBits(param.getAnfme()) != Double.doubleToLongBits(manPakOut.getAnfme())){
+ if(param.getAnfme() > manLocDetl.getAnfme() || (param.getAnfme() - manPakOut.getAnfme()) > (orderDetl.getAnfme() - orderDetl.getQty())){
+ throw new CoolException("鍑哄簱鏁伴噺涓嶅緱澶т簬璁㈠崟鏁伴噺鎴栬�呭簱瀛樻暟閲�");
+ }
+ //鏍规嵁瀹為檯鍑哄簱鏁伴噺鍥炲啓鎷h揣鍗�
+ manPakOut.setCount(param.getAnfme());
+ if(manPakOut.getCount() < manPakOut.getAnfme()){
+ manPakOut.setStatus(8);
+ }
+ //鏍规嵁瀹為檯鍑哄簱鏁伴噺鍥炲啓璁㈠崟璇︽儏
+ orderDetl.setQty(orderDetl.getQty() - (param.getAnfme()-manPakOut.getAnfme()));
+ orderDetlService.update(orderDetl,orderDetlWrapper);
+
+ }else {
+ manPakOut.setCount(param.getAnfme());
+ manPakOut.setStatus(1);
+ }
+
+ manPakOutService.update(manPakOut,manPakOutWrapper);
+ //妫�鏌ヨ璁㈠崟涓嬬殑鎷h揣鍗曟槸鍚﹀凡缁忓叏閮ㄥ嚭搴�
+ int status = checkManPakoutByOrder(param.getOrderNo());
+ manPakOutService.updateAllStatus(param.getOrderNo(),status);
+
+
+ //淇敼搴撳瓨
+ manLocDetl.setAnfme(manLocDetl.getAnfme()-manPakOut.getCount());
+ if (manLocDetl.getAnfme() == 0 ){
+ manLocDetlService.delete(manLocDetlWrapper);
+ }else{
+ manLocDetl.setStatus(1);
+ manLocDetlService.update(manLocDetl,manLocDetlWrapper);
+ }
+ SaasUtils.insertLog(1,manLocDetl.getLocNo(),manLocDetl.getMatnr(), manLocDetl.getAnfme(),user.getUsername());
+ manLocDetl.setStatus(1);
+ manLocDetlService.update(manLocDetl,manLocDetlWrapper);
+
+ //妫�娴嬭鍗曟槸鍚﹀畬鎴�
+ orderService.checkComplete(param.getOrderNo());
+
+
+
+ }
+
+ private void saveManlocDetl(WaitPakin waitPakin, Date now, String locNo){
+
+ Node node = nodeService.selectOne(new EntityWrapper<Node>()
+ .eq("name", locNo));
+
+ ManLocDetl manLocDetl = new ManLocDetl();
BeanUtils.copyProperties(waitPakin,manLocDetl);
+ manLocDetl.setNodeId(node.getId());
manLocDetl.setContainerCode(waitPakin.getSuppCode());
manLocDetl.setCsocode(waitPakin.getThreeCode());
manLocDetl.setIsoseq(waitPakin.getDeadTime());
manLocDetl.setCreateTime(now);
manLocDetl.setModiTime(now);
manLocDetl.setLocNo(locNo);
+ manLocDetl.setStatus(1);
manLocDetlService.insert(manLocDetl);
}
+ private int checkManPakoutByOrder(String orderNo){
+ int status = 0;
+ List<ManPakOut> manPakOutList = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", orderNo));
+
+ for(int i=0; i<manPakOutList.size(); i++){
+ if(i == 0){
+ status = manPakOutList.get(i).getStatus();
+ }else {
+ if(manPakOutList.get(i).getStatus() != status){
+ status = 8;
+ }
+ }
+ }
+
+ return status;
+
+
+
+ }
+
+ public static void main(String[] args) {
+ ManPakOut m = new ManPakOut();
+ m.setAnfme(1.0);
+ NodePakoutParam n = new NodePakoutParam();
+ n.setAnfme(1.0);
+
+ double a = 1.0;
+ double b = 1.0;
+ System.out.println(m.getAnfme() == n.getAnfme());
+ System.out.println(a == b);
+ System.out.println(Double.doubleToLongBits(m.getAnfme()) == Double.doubleToLongBits(n.getAnfme()));
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index cbb903c..9a03e7f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -800,13 +800,16 @@
//od.setAnfme(toString(odParam.get("iQuantity")));
//琛屽彿
//od.setBrand(odParam.get("irowno").toString());
- od.setBrand(toString(odParam.get("irowno")));
+ //od.setBrand(toString(odParam.get("irowno")));
+ od.setManu(toString(odParam.get("irowno")));
//閿�鍞鍗曞彿
//od.setColor(odParam.get("csocode").toString());
- od.setColor(toString(odParam.get("csocode")));
+ //od.setColor(toString(odParam.get("csocode")));
+ od.setThreeCode(toString(odParam.get("csocode")));
//閿�鍞鍗曡鍙�
//od.setOrigin(odParam.get("isoseq").toString());
- od.setOrigin(toString(odParam.get("isoseq")));
+ //od.setOrigin(toString(odParam.get("isoseq")));
+ od.setDeadTime(toString(odParam.get("isoseq")));
od.setStatus(1);
od.setQty(0.0D);
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 4c492ce..0f56ff6 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -51,6 +51,10 @@
private ErpService erpService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private WaitPakinService waitPakinService;
+ @Autowired
+ private ManPakOutService manPakOutService;
@Value("${u8.url}")
private String url;
@@ -96,9 +100,15 @@
}
}
// 濡傛灉 浣滀笟鏁伴噺绛変簬鍗曟嵁鎬绘暟閲� && 宸ヤ綔鏄庣粏妗d腑鏃犺鍗曟嵁鐨勬暟鎹� && AGV宸ヤ綔鏄庣粏妗d腑鏃犺鍗曟嵁鐨勬暟鎹�
- if (complete
- && wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1
- && agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no",orderNo)) < 1) {
+ boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)) < 1;
+ boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().eq("order_no",orderNo)) < 1;
+ boolean waitPakinExist = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",orderNo)) < 1;
+
+ ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
+
+ boolean manPakoutExist = Cools.isEmpty(manPakOut) || manPakOut.getPayment() == 1;
+ if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
+
// 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
// DocType docType = docTypeService.selectById(order.getDocType());
// if (null != docType && docType.getPakout() == 1) {
@@ -123,7 +133,6 @@
// }
// }
// }
-
if (!this.updateSettle(order.getId(), 4L, null)) {
throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 536e36d..fb9d3a1 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,6 +1,7 @@
package com.zy.asrs.utils;
import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Arith;
import com.core.common.Cools;
import com.zy.common.properties.SlaveProperties;
@@ -8,7 +9,6 @@
import java.text.DecimalFormat;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -385,4 +385,18 @@
return null;
}
+ public static void wapperSetCondition(Wrapper wrapper, String column, String condition){
+ if(Cools.isEmpty(condition)){
+ wrapper.isNull(column);
+ }else {
+ wrapper.eq(column,condition);
+ }
+ }
+
+ public static void confirmOnlyMat(Wrapper wrapper, String matnr, String csocode, String isoseq){
+ wapperSetCondition(wrapper,"matnr",matnr);
+ wapperSetCondition(wrapper,"csocode",csocode);
+ wapperSetCondition(wrapper,"isoseq",isoseq);
+ }
+
}
diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java
index 7a341df..5159b73 100644
--- a/src/main/java/com/zy/common/model/LocDto.java
+++ b/src/main/java/com/zy/common/model/LocDto.java
@@ -41,7 +41,7 @@
//閿�鍞鍗曡鍙�
private String isoseq;
- //鏂欐兂鐮�
+ //鏂欑鐮�
private String containerCode;
public LocDto() {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 264e07c..d84dd0c 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,8 +10,8 @@
enabled: false
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
- #url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
+ #url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
+ url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
username: sa
password: sa@123
mvc:
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index 395c9db..76e1bff 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -34,6 +34,7 @@
<result column="payment" property="payment" />
<result column="real_anfme" property="realAnfme" />
<result column="order_no" property="orderNo" />
+ <result column="container_code" property="containerCode" />
</resultMap>
<sql id="locDetlCondition">
diff --git a/src/main/webapp/static/js/agvPakStore/stockAdjust.js b/src/main/webapp/static/js/agvPakStore/stockAdjust.js
index 52d8db1..db7ed09 100644
--- a/src/main/webapp/static/js/agvPakStore/stockAdjust.js
+++ b/src/main/webapp/static/js/agvPakStore/stockAdjust.js
@@ -7,10 +7,16 @@
var cols = [
{fixed: 'left', field: 'count', title: '瀹為檯鏁伴噺', align: 'center', edit:'text', width: 120, style:'color: blue;font-weight: bold'}
,{field: 'anfme', align: 'center',title: '鏁伴噺'}
- ,{field: 'batch', align: 'center',title: '搴忓垪鐮侊紙缂栬緫锛�', edit: true, style: 'font-weight:bold'}
+ ,{field: 'batch', align: 'center',title: '搴忓垪鐮�', edit: true, style: 'font-weight:bold'}
+ ,{field: 'threeCode', align: 'center',title: '閿�鍞鍗曞彿', edit: true, style: 'font-weight:bold'}
+ ,{field: 'deadTime', align: 'center',title: '閿�鍞鍗曡鍙�', edit: true, style: 'font-weight:bold'}
+ ,{field: 'suppCode', align: 'center',title: '鏂欑鐮�', edit: false, style: 'font-weight:bold'}
];
+ arrRemove(detlCols, "field", "zpallet");
arrRemove(detlCols, "field", "anfme");
arrRemove(detlCols, "field", "batch");
+ arrRemove(detlCols, "field", "threeCode");
+ arrRemove(detlCols, "field", "deadTime");
cols.push.apply(cols, detlCols);
cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:80})
return cols;
@@ -87,7 +93,7 @@
}
layer.confirm('纭畾璋冩暣'+currLocNo+'搴撲綅鐨勬槑缁嗗悧锛�', {shadeClose: true}, function(){
$.ajax({
- url: baseUrl+"/locDdetl/adjust/start",
+ url: baseUrl+"/agv/locDdetl/adjust/start",
headers: {'token': localStorage.getItem('token')},
data: JSON.stringify({
locNo: currLocNo,
@@ -141,7 +147,7 @@
});
function init(locNo) {
- http.post(baseUrl + "/locDetl/list/auth", {locNo: locNo,limit: 1000}, function (res) {
+ http.post(baseUrl + "/agv/locDetl/list/auth", {locNo: locNo,limit: 1000}, function (res) {
matCodeData = [];
matCodeData = res.data.records;
for (var i = 0; i<matCodeData.length; i++) {
@@ -167,7 +173,7 @@
// 搴撲綅鎻愮ず妗�
function locTips(retrieve, locNo) {
if (retrieve) {
- http.post(baseUrl+"/locMast/"+locNo+"/auth", null, function (res) {
+ http.post(baseUrl+"/agv/locMast/"+locNo+"/auth", null, function (res) {
let data = res.data;
if (data != null) {
$(".retrieve").show();
diff --git a/src/main/webapp/static/js/manLocDetl/manLocDetl.js b/src/main/webapp/static/js/manLocDetl/manLocDetl.js
index e1d3c38..3ebc57b 100644
--- a/src/main/webapp/static/js/manLocDetl/manLocDetl.js
+++ b/src/main/webapp/static/js/manLocDetl/manLocDetl.js
@@ -2,13 +2,14 @@
function getCol() {
var cols = [
{field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
- ,{field: 'suppCode', align: 'center',title: '鏂欐兂鐮�', sort:true}
+ ,{field: 'containerCode', align: 'center',title: '鏂欐兂鐮�', sort:true}
,{field: 'matnr', align: 'center',title: '瀛樿揣缂栫爜', sort:true}
,{field: 'maktx', align: 'center',title: '瀛樿揣鍚嶇О', sort:true}
,{field: 'docNum', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
,{field: 'anfme', align: 'center',title: '鏁伴噺'}
- ,{field: 'threeCode', align: 'center',title: '閿�鍞鍗曞彿'}
- ,{field: 'dead_time', align: 'center',title: '閿�鍞鍗曡鍙�'}
+ ,{field: 'csocode', align: 'center',title: '閿�鍞鍗曞彿'}
+ ,{field: 'isoseq', align: 'center',title: '閿�鍞鍗曡鍙�'}
+ ,{field: 'zpallet', align: 'center',title: '鎵樼洏鐮�', hide: false}
,{field: 'specs', align: 'center',title: '瑙勬牸鍨嬪彿', hide: false}
,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: false}
,{field: 'brand', align: 'center',title: '瀛樿揣鍒嗙被缂栫爜', hide: true}
@@ -20,39 +21,6 @@
,{field: 'supp', align: 'center',title: '寤烘。浜�', hide: true}
,{field: 'dInvCreateDatetime', align: 'center',title: '寤烘。鏃ユ湡', hide: true}
- // ,{field: 'specs', align: 'center',title: '瑙勬牸'}
- // ,{field: 'weight', align: 'center',title: '搴撲綅鎬婚噸閲�', hide: false}
- //
- // ,{field: 'batch', align: 'center',title: '鎵瑰彿', width: 300, sort:true, hide: true}
- // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
- // ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
- // ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
- // ,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
- // ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
- // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
- // ,{field: 'price', align: 'center',title: '鍗曚环', hide: true}
- // ,{field: 'sku', align: 'center',title: 'sku', hide: true}
- // ,{field: 'units', align: 'center',title: '鍗曚綅閲�', hide: true}
- // ,{field: 'barcode', align: 'center',title: '鏉$爜', hide: true}
- // ,{field: 'origin', align: 'center',title: '浜у湴', hide: true}
- // ,{field: 'manu', align: 'center',title: '鍘傚', hide: true}
- // ,{field: 'manuDate', align: 'center',title: '鐢熶骇鏃ユ湡', hide: true}
- // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�', hide: true}
- // ,{field: 'safeQty', align: 'center',title: '瀹夊叏搴撳瓨閲�', hide: true}
- // ,{field: 'length', align: 'center',title: '鍗曠姣涢噸', hide: true}
- // ,{field: 'volume', align: 'center',title: '鍗曠浣撶Н', hide: true}
- // ,{field: 'threeCode', align: 'center',title: '绠卞瓙灏哄', hide: true}
- // ,{field: 'supp', align: 'center',title: '渚涘簲鍟�', hide: true}
- // ,{field: 'suppCode', align: 'center',title: '渚涘簲鍟嗙紪鐮�', hide: true}
- // ,{field: 'beBatch$', align: 'center',title: '鏄惁鎵规', hide: true}
- // ,{field: 'deadTime', align: 'center',title: '淇濊川鏈�', hide: true}
- // ,{field: 'deadWarn', align: 'center',title: '棰勮澶╂暟', hide: true}
- // ,{field: 'source$', align: 'center',title: '鍒惰喘', hide: true}
- // ,{field: 'check$', align: 'center',title: '瑕佹眰妫�楠�', hide: true}
- // ,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�', hide: true}
- // ,{field: 'owner$', align: 'center',title: '璐т富', hide: false}
- // ,{field: 'status$', align: 'center',title: '鏄庣粏閿�', hide: false}
- // ,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��', hide: false}
];
diff --git a/src/main/webapp/static/js/manLocDetl/manLocDetlTemp.js b/src/main/webapp/static/js/manLocDetl/manLocDetlTemp.js
new file mode 100644
index 0000000..3d2f0bf
--- /dev/null
+++ b/src/main/webapp/static/js/manLocDetl/manLocDetlTemp.js
@@ -0,0 +1,550 @@
+var pageCurr;
+function getCol() {
+ var cols = [
+ {field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
+ //,{field: 'containerCode', align: 'center',title: '鏂欑鐮�', sort:true}
+ ,{field: 'matnr', align: 'center',title: '瀛樿揣缂栫爜', sort:true}
+ ,{field: 'maktx', align: 'center',title: '瀛樿揣鍚嶇О', sort:true}
+ //,{field: 'docNum', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'csocode', align: 'center',title: '閿�鍞鍗曞彿'}
+ // ,{field: 'isoseq', align: 'center',title: '閿�鍞鍗曡鍙�'}
+ //,{field: 'zpallet', align: 'center',title: '鎵樼洏鐮�', hide: false}
+ ,{field: 'batch', align: 'center',title: '杞︽', hide: false}
+ ,{field: 'specs', align: 'center',title: '瑙勬牸鍨嬪彿', hide: false}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: false}
+ ,{field: 'brand', align: 'center',title: '瀛樿揣鍒嗙被缂栫爜', hide: true}
+ ,{field: 'color', align: 'center',title: '瀛樿揣鍒嗙被鍚嶇О', hide: true}
+ ,{field: 'unit', align: 'center',title: '璁¢噺鍗曚綅', hide: true}
+ ,{field: 'price', align: 'center',title: '杩涢」绋�', hide: true}
+ ,{field: 'units', align: 'center',title: '閿�椤圭◣', hide: true}
+ ,{field: 'dsDate', align: 'center',title: '鍚敤鏃ユ湡', hide: true}
+ ,{field: 'supp', align: 'center',title: '寤烘。浜�', hide: true}
+ ,{field: 'dInvCreateDatetime', align: 'center',title: '寤烘。鏃ユ湡', hide: true}
+ ];
+
+ // cols.push.apply(cols, detlCols);
+ cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',hide: true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ )
+ return cols;
+}
+
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locDetl',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/temp/manLocDetl/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ console.log(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();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(locDetl)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(locDetl)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/locDetl/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'locDetl': exportData,
+ 'fields': fields
+ };
+ var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl+"/temp/manLocDetlTemp/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(locDetl)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#locNo,#matnr', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ case 'locNo':
+ var param = top.reObject(data).locNo;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '搴撲綅鍙疯鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../locMast/locMast_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/locMast/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼浜哄憳璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涘缓鑰呰鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ locNo: $('#locNo').val(),
+ matnr: $('#matnr').val(),
+ lgnum: $('#lgnum').val(),
+ tbnum: $('#tbnum').val(),
+ tbpos: $('#tbpos').val(),
+ zmatid: $('#zmatid').val(),
+ maktx: $('#maktx').val(),
+ werks: $('#werks').val(),
+ anfme: $('#anfme').val(),
+ altme: $('#altme').val(),
+ zpallet: $('#zpallet').val(),
+ bname: $('#bname').val(),
+ memo: $('#memo').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/locDetl/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+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
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 88dd47d..f61c83d 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -155,9 +155,9 @@
// {field: 'color', title: '棰滆壊'},
{field: 'specs', title: '瑙勬牸鍨嬪彿'},
{field: 'unit', title: '璁¢噺鍗曚綅'},
- {field: 'brand', title: '琛屽彿'},
- {field: 'color', title: '閿�鍞鍗曞彿'},
- {field: 'origin', title: '閿�鍞鍗曡鍙�'},
+ {field: 'manu', title: '琛屽彿'},
+ {field: 'threeCode', title: '閿�鍞鍗曞彿'},
+ {field: 'deadTime', title: '閿�鍞鍗曡鍙�'},
{field: 'itemNum', title: '琛屽敮涓�鏍囪瘑'}
]],
request: {
@@ -252,11 +252,13 @@
cellMinWidth: 100,
cols: [[
{type: 'numbers', title: '#'},
- {field: 'matnr', title: '鐗╂枡鍙�', width: 160},
- {field: 'maktx', title: '鐗╂枡鍚嶇О', width: 200},
+ {field: 'matnr', title: '瀛樿揣缂栫爜', width: 160},
+ {field: 'maktx', title: '瀛樿揣鍚嶇О', width: 200},
{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: true, minWidth: 110, width: 110},
+ {field: 'deadTime', title: '閿�鍞鍗曡鍙�(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
// {field: 'inQty', title: '宸插叆搴撻噺', minWidth: 100, width: 100},
// {field: 'unit', title: '鍗曚綅', width: 80},
{field: 'memo', title: '澶囨敞' , edit: true},
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index bfe89c1..ac322ac 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -39,6 +39,8 @@
// ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
// ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'color', align: 'center',title: '閿�鍞鍗曞彿'}
+ ,{field: 'origin', align: 'center',title: '閿�鍞鍗曡鍙�'}
// ,{field: 'name', align: 'center',title: '鍚嶇О'}
// ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
diff --git a/src/main/webapp/static/js/pakStore/stockAdjust.js b/src/main/webapp/static/js/pakStore/stockAdjust.js
index f6be988..d51a7b8 100644
--- a/src/main/webapp/static/js/pakStore/stockAdjust.js
+++ b/src/main/webapp/static/js/pakStore/stockAdjust.js
@@ -10,12 +10,13 @@
,{field: 'batch', align: 'center',title: '搴忓垪鐮�', edit: true, style: 'font-weight:bold'}
,{field: 'threeCode', align: 'center',title: '閿�鍞鍗曞彿', edit: true, style: 'font-weight:bold'}
,{field: 'deadTime', align: 'center',title: '閿�鍞鍗曡鍙�', edit: true, style: 'font-weight:bold'}
+ ,{field: 'suppCode', align: 'center',title: '鏂欑鐮�', edit: false, style: 'font-weight:bold'}
];
arrRemove(detlCols, "field", "zpallet");
arrRemove(detlCols, "field", "anfme");
arrRemove(detlCols, "field", "batch");
arrRemove(detlCols, "field", "threeCode");
- arrRemove(detlCols, "field", "dead_time");
+ arrRemove(detlCols, "field", "deadTime");
cols.push.apply(cols, detlCols);
cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:80})
return cols;
diff --git a/src/main/webapp/static/js/picking/picking.js b/src/main/webapp/static/js/picking/picking.js
new file mode 100644
index 0000000..f3cb76c
--- /dev/null
+++ b/src/main/webapp/static/js/picking/picking.js
@@ -0,0 +1,362 @@
+var pageCurr;
+var printMatCodeNos = [];
+var ordernoo = "123";
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin', 'layer'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#saasLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/ManPakOut/detailed/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ // toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ // {type: 'checkbox'}
+ {type: 'numbers'}
+ ,{field: 'wrkNo', align: 'center',title: 'id', hide:true}
+ ,{field: 'docNum',title: '鎷h揣鍗曞彿' }
+ ,{align: 'center', title: '浜岀淮鐮�', toolbar: '#operate', width: 200 , hide:true}
+ ,{align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}
+ ,{field: 'payment$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'owner$', align: 'center',title: '璐т富'}
+ // ,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��'}
+ // ,{field: 'custName', align: 'center',title: '瀹㈡埛鍚嶇О', width: 160}
+ ,{field: 'createTime$', align: 'center',title: '鎿嶄綔鏃堕棿'}
+ ,{align: 'center', title: '鎿嶄綔', toolbar: '#operate'}
+
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ console.log(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();
+
+ var index = -1;
+ $("[data-field='status$']").children().each(function () {
+ index++;
+ if ($(this).text() === '鏈嚭搴�') {
+ $('tr').eq(index).css("color", 'red');
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(saasLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(saasLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case "btnPrint":
+ btnPrint(data.wrkNo, data.docNum, 4);
+ break;
+ case "wrkTrace":
+ btnPrint(data.wrkNo, data.docNum, 4);
+ break;
+ case "btnPrint2":
+ btnPrint2(data.wrkNo, data.docNum, 4);
+ break;
+ case "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: '1200px',
+ offset: [top + 'px', (left - 450 + $a.outerWidth()) + 'px'],
+ shade: .01,
+ shadeClose: true,
+ fixed: false,
+ content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
+ success: function (layero) {
+ table.render({
+ id:'lookSSXMTable',
+ elem: '#lookSSXMTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/ManPakOut/list/auth',
+ where: {
+ doc_num: data.docNum,
+ uuid: data.uuid
+ },
+ page: true,
+ cellMinWidth: 100,
+ cols: [[
+ {type: 'numbers'}
+ ,{field: 'id', align: 'center',title: 'id', hide:true}
+ ,{field: 'docNum', align: 'center',title: '鎷h揣鍗曞彿'}
+ //,{field: 'uuid', align: 'center',title: 'uuid'}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅'}
+ ,{field: 'matnr', align: 'center',title: '瀛樿揣缂栫爜'}
+ ,{field: 'maktx', align: 'center',title: '瀛樿揣鍚嶇О'}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'containerCode', align: 'center',title: '鏂欑鐮�'}
+ ,{field: 'csocode', align: 'center',title: '閿�鍞鍗曞彿'}
+ ,{field: 'isoseq', align: 'center',title: '閿�鍞鍗曡鍙�'}
+ //,{field: 'owner$', align: 'center',title: '璐т富'}
+ //,{field: 'payment$', align: 'center',title: '璐х墿褰㈡��'}
+ //,{field: 'owner', align: 'center',title: '璐т富', hide:true}
+ //,{field: 'payment', align: 'center',title: '璐х墿褰㈡��', hide:true}
+ ,{field: 'createTime$', align: 'center',title: '鎿嶄綔鏃堕棿'}
+ ,{field: 'count', align: 'center',title: '瀹屾垚鏁�'}
+ ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{field: 'createBy', align: 'center',title: '', hide:true}
+ ]],
+ 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) {
+
+ $(layero).find('.layui-table-view').css('margin', '0');
+
+ var index = 1;
+ $("[data-field='status$']").children().each(function () {
+ index++;
+ if ($(this).text() === '鏈嚭搴�') {
+ $('tr').eq(index).css("color", 'red');
+ }
+ });
+
+
+ },
+ size: ''
+ });
+ }
+ });
+ }
+ });
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '#ioTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['ioTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+ // 鎵撳嵃
+ function btnPrint(orderId, orderNo, settle) {
+ printMatCodeNos.push(orderNo)
+ var templateNo = 3;
+ $.ajax({
+ url: baseUrl+"/pakOut/print/auth",
+ // url: baseUrl+"/pakOut/show",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: printMatCodeNos},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ for (let i=0;i<res.data.length;i++){
+ var templateDom = $("#templatePreview"+templateNo);
+ var className = templateDom.attr("class");
+ if (className === 'template-barcode') {
+ res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1¶m="+res.data[i].docNum;
+ } else {
+ res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+res.data[i].docNum;
+ }
+ }
+
+
+ var tpl = templateDom.html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ var box = $("#box");
+ box.html(html);
+ box.show();
+ var imgUrl;
+ // console.log(res.data[0]);
+ for (let i=0;i<res.data.length;i++){
+ if (res.data[i].docNum === orderNo){
+ imgUrl = res.data[i]["barcodeUrl"];
+ }
+
+ }
+
+ var img = '<img className="template-code template-qrcode" src='+imgUrl+' height="80%">'
+ layer.open({
+ type: 1,
+ title: "鎷h揣鍗�",
+ area: '150px',
+ content: img
+ })
+
+ // box.print({mediaPrint:true});
+ // box.hide();
+
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+
+ function btnPrint2(orderId, orderNo, settle) {
+ console.log(orderId);
+ console.log(orderNo);
+ console.log(settle);
+ printMatCodeNos.push(orderNo);
+ var templateNo = 4;
+ $.ajax({
+ url: baseUrl + "/ManPakOut/print/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: printMatCodeNos},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ layer.closeAll();
+ var json = res;
+
+ json.docNum = orderNo;
+ console.log("json"+json);
+ let sum = 0;
+
+ for (let i = 0; i < res.data.length; i++){
+ sum += res.data[i].anfme;
+ console.log("sum:"+res.data.anfme);
+
+ }
+ json.anfmeSum = sum;
+ var barcodeUrl = baseUrl + "/ManPakOut/code/auth?type=1¶m=" + res.data[0].docNum;
+ console.log("barcodeUrl:"+barcodeUrl);
+ json.barcodeUrl = barcodeUrl;
+ for (let i = 0; i < json.data.length; i++) {
+ var templateDom = $("#templatePreview" + templateNo);
+ var className = templateDom.attr("class");
+
+ if (className === 'template-barcode') {
+ json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"
+ +json.data[i].matnr+";"
+ +json.data[i].maktx+";"
+ +json.data[i].anfme+";"
+ +json.data[i].locNo+";"
+ +json.data[i].containerCode+";"
+ +json.data[i].csocode+";"
+ +json.data[i].isoseq+";"
+ +json.data[i].wrkNo+";");
+ } else {
+ json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"
+ +json.data[i].matnr+";"
+ +json.data[i].maktx+";"
+ +json.data[i].anfme+";"
+ +json.data[i].locNo+";"
+ +json.data[i].containerCode+";"
+ +json.data[i].csocode+";"
+ +json.data[i].isoseq+";"
+ +json.data[i].wrkNo+";");
+ }
+ }
+ var tpl = templateDom.html();
+ var template = Handlebars.compile(tpl);
+ var html = template(json);
+ var box = $("#box");
+ box.html(html);
+ box.show();
+ box.print({mediaPrint: true});
+ box.hide();
+ } else if (json.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(json.msg)
+ }
+ }
+ })
+ }
+
+
+
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/picking/pickingOrder.js b/src/main/webapp/static/js/picking/pickingOrder.js
new file mode 100644
index 0000000..df11673
--- /dev/null
+++ b/src/main/webapp/static/js/picking/pickingOrder.js
@@ -0,0 +1,497 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['layer','table','laydate', 'form', 'admin', 'xmSelect'], 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 xmSelect = layui.xmSelect;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#saasLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/order/picking/head/page/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ // toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'numbers'},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
+ {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
+ {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
+ {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
+ {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
+ {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
+ {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 380}
+ ]],
+ 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();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(saasLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(saasLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case "edit":
+ console.log("淇敼");
+ showEditModel(data);
+ break;
+ case "del":
+ console.log("鍒犻櫎");
+ doDel(data.id);
+ break;
+ case "complete":
+ console.log("瀹岀粨");
+ break;
+ case "btnPrint":
+ console.log("鎵撳嵃");
+ break;
+ case "manPrint":
+ addPakOut(data.orderNo);
+ break;
+ case "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: '820px',
+ 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: 160},
+ {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
+ {field: 'batch', title: '鎵瑰彿'},
+ {field: 'anfme', title: '鏁伴噺'},
+ // {field: 'workQty', title: '浣滀笟鏁伴噺'},
+ {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
+ {field: 'specs', 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: ''
+ });
+ }
+ });
+ break;
+ }
+ });
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 娣诲姞
+ $("#orderAddBtn").click(function () {
+ showEditModel();
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '#ioTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['ioTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+ // 鐢熸垚鎷h揣鍗�
+ function addPakOut(expTpe) {
+ $.ajax({
+ url: baseUrl+"/ManPakOut/add/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify({
+ docType: Number(20),
+ orderNo: expTpe,
+ }),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ layer.msg("鐢熸垚鎷h揣鍗曪細ok");
+ } else if (res.code === 403){
+ layer.msg("鐢熸垚鎷h揣鍗曪細403");
+ }else {
+ layer.msg("鐢熸垚鎷h揣鍗曪細???");
+ }
+
+ }
+ })
+ }
+ // 鍒犻櫎鍗曟嵁
+ function doDel(orderId) {
+ console.log(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){
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+
+ // 鏄剧ず琛ㄥ崟寮圭獥
+ function showEditModel(expTpe) {
+ admin.open({
+ type: 1,
+ title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁',
+ content: $('#editDialog').html(),
+ area: '1300px',
+ 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;
+ }
+ if (nList[xi].anfme < nList[xi].workQty){
+ 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(20),
+ 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,
+ cols: [[
+ {type: 'numbers', title: '#'},
+ {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
+ {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200},
+ {field: 'batch', title: '鎵瑰彿', edit: true},
+ {field: 'specs', title: '瑙勬牸'},
+ {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+ {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100},
+ {field: 'owner$', title: '璐т富', minWidth: 100, width: 100},
+ {field: 'payment$', 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) {
+ $(layero).find('.layui-table-view').css('margin', '0');
+ },
+ 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') {
+ if(data.workQty > 0){
+ layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2});
+ return;
+ }
+ 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}});
+ });
+ }
+ });
+ // 鏄庣粏鏁版嵁淇敼
+ table.on('edit(formSSXMTable)', function (obj) {
+ let index = obj.tr.attr("data-index");
+ 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});
+ // data[obj.field] = 0;
+ // insTbSSXM.reload({data: xxDataList});
+ return false;
+ }
+ if(obj.value < data.workQty){
+ layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2});
+ // data[obj.field] = 0;
+ // insTbSSXM.reload({data: xxDataList});
+ 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');
+ }
+ });
+ }
+
+ }
+ });
+ }
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
+
+
diff --git a/src/main/webapp/views/agvPakStore/pakStore.html b/src/main/webapp/views/agvPakStore/pakStore.html
index 820bbee..87bb1d1 100644
--- a/src/main/webapp/views/agvPakStore/pakStore.html
+++ b/src/main/webapp/views/agvPakStore/pakStore.html
@@ -121,7 +121,7 @@
<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/handlebars/handlebars-v4.5.3.js"></script>
-<script type="text/javascript" src="../../static/js/pakStore/pakStore.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/agvPakStore/pakStore.js" charset="utf-8"></script>
<script type="text/template" id="putSiteSelectTemplate">
{{#each data}}
diff --git a/src/main/webapp/views/agvPakStore/stockAdjust.html b/src/main/webapp/views/agvPakStore/stockAdjust.html
index bd758e9..a955381 100644
--- a/src/main/webapp/views/agvPakStore/stockAdjust.html
+++ b/src/main/webapp/views/agvPakStore/stockAdjust.html
@@ -126,7 +126,7 @@
<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/handlebars/handlebars-v4.5.3.js"></script>
-<script type="text/javascript" src="../../static/js/pakStore/stockAdjust.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/agvPakStore/stockAdjust.js" charset="utf-8"></script>
</body>
</html>
diff --git a/src/main/webapp/views/manLocDetl/manLocDetl.html b/src/main/webapp/views/manLocDetl/manLocDetl.html
index 60039c9..7da6e76 100644
--- a/src/main/webapp/views/manLocDetl/manLocDetl.html
+++ b/src/main/webapp/views/manLocDetl/manLocDetl.html
@@ -40,73 +40,48 @@
</head>
<body>
-<div class="layui-fluid">
- <!-- 宸� -->
- <div class="layui-row layui-col-space15">
- <div class="layui-col-md3">
- <div class="layui-card">
- <div class="layui-card-body" style="padding: 10px;">
- <!-- 鏍戝伐鍏锋爮 -->
- <div class="layui-form toolbar" id="organizationTreeBar">
- <div class="layui-inline" style="max-width: 200px;">
- <input id="condition" onkeyup="findData(this)" type="text" class="layui-input" placeholder="璇疯緭鍏ュ叧閿瓧" autocomplete="off">
- </div>
- <div class="layui-inline">
- <button class="layui-btn icon-btn layui-btn-sm" id="treeReset" style="padding: 0 10px;">
- <i class="layui-icon layui-icon-close"></i>
- </button>
- </div>
+<!-- 鍙� -->
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
+ <div id="search-box" class="layui-form toolbar" style="padding-top: 5px">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">璐т綅:</label>
+ <div class="layui-input-inline">
+ <input name="loc_no" style="width: 120px" class="layui-input" placeholder="杈撳叆璐т綅"/>
</div>
- <!-- 鏍� -->
- <div class="layui-form toolbar" id="organizationTree"></div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧缂栧彿:</label>
+ <div class="layui-input-inline">
+ <input name="matnr" style="width: 120px" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧鍚嶇О:</label>
+ <div class="layui-input-inline">
+ <input name="maktx" style="width: 120px" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鎵樼洏鐮�:</label>
+ <div class="layui-input-inline">
+ <input name="zpallet" style="width: 120px" class="layui-input" placeholder="杈撳叆鎵樼洏鐮�"/>
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
</div>
</div>
- </div>
- <!-- 鍙� -->
- <div class="layui-col-md9">
- <div class="layui-card">
- <div class="layui-card-body" style="padding: 10px;">
- <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
- <div id="search-box" class="layui-form toolbar" style="padding-top: 5px">
- <div class="layui-inline">
- <label class="layui-form-label" style="padding: 8px 15px 8px 15px">璐т綅:</label>
- <div class="layui-input-inline">
- <input name="loc_no" style="width: 120px" class="layui-input" placeholder="杈撳叆璐т綅"/>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧缂栧彿:</label>
- <div class="layui-input-inline">
- <input name="matnr" style="width: 120px" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鍟嗗搧鍚嶇О:</label>
- <div class="layui-input-inline">
- <input name="maktx" style="width: 120px" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鎵樼洏鐮�:</label>
- <div class="layui-input-inline">
- <input name="zpallet" style="width: 120px" class="layui-input" placeholder="杈撳叆鎵樼洏鐮�"/>
- </div>
- </div>
- <div class="layui-inline"> 
- <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
- <i class="layui-icon"></i>鎼滅储
- </button>
- <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
- <i class="layui-icon"></i>閲嶇疆
- </button>
- </div>
- </div>
- <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
- </div>
- </div>
+ <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
</div>
</div>
-</div>
+
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
diff --git a/src/main/webapp/views/manLocDetl/manLocDetlTemp.html b/src/main/webapp/views/manLocDetl/manLocDetlTemp.html
new file mode 100644
index 0000000..894fe53
--- /dev/null
+++ b/src/main/webapp/views/manLocDetl/manLocDetlTemp.html
@@ -0,0 +1,111 @@
+<!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/tree.css" media="all">
+ <style>
+ body {
+ color: #595959;
+ background-color: #f5f7f9;
+ }
+ .layui-fluid {
+ padding: 15px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ /*margin: 15px 0 35px 0;*/
+ width: 100%;
+ border-width: 1px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ height: calc(100vh - 160px);
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ margin: 0;
+ }
+ #search-box {
+ padding: 30px 30px 10px 0px;
+ margin-left: 0px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ height: 100%;
+ }
+ </style>
+</head>
+<body>
+
+<!-- 鍙� -->
+<div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
+ <div id="search-box" class="layui-form toolbar" style="padding-top: 5px">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">瀛樿揣缂栫爜:</label>
+ <div class="layui-input-inline">
+ <input name="matnr" style="width: 120px" class="layui-input" placeholder="杈撳叆瀛樿揣缂栫爜"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">瀛樿揣鍚嶇О:</label>
+ <div class="layui-input-inline">
+ <input name="maktx" style="width: 120px" class="layui-input" placeholder="杈撳叆瀛樿揣鍚嶇О"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">杞︽:</label>
+ <div class="layui-input-inline">
+ <input name="batch" style="width: 120px" class="layui-input" placeholder="杈撳叆杞︽鍙�"/>
+ </div>
+ </div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
+ </div>
+</div>
+
+
+<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;margin-right: -10px">瀵煎嚭</button>
+ </div>
+</script>
+<script type="text/html" id="locNoTpl">
+ <span name="locNo" class="layui-badge layui-badge-gray">{{d.locNo}}</span>
+</script>
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+ <!-- <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>-->
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.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/manLocDetl/manLocDetlTemp.js" charset="utf-8"></script>
+<!--<script type="text/javascript" src="../../static/js/tagTree.js" charset="utf-8"></script>-->
+<script type="text/javascript" src="../../static/js/nodeTree.js" charset="utf-8"></script>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/mat/mat.html b/src/main/webapp/views/mat/mat.html
index 7103755..f5fba90 100644
--- a/src/main/webapp/views/mat/mat.html
+++ b/src/main/webapp/views/mat/mat.html
@@ -192,9 +192,9 @@
</div>
<div class="layui-form-item">
- <label class="layui-form-label layui-form-required">鍟嗗搧鍚嶇О</label>
+ <label class="layui-form-label layui-form-required">瀛樿揣鍚嶇О</label>
<div class="layui-input-block">
- <input name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ <input name="maktx" placeholder="璇疯緭鍏ュ瓨璐у悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
</div>
</div>
<div class="layui-form-item">
@@ -207,6 +207,24 @@
<label class="layui-form-label">搴撻緞涓婇檺(澶�)</label>
<div class="layui-input-block">
<input name="storeMaxDate" placeholder="搴撻緞涓婇檺(澶�)" type="number" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀛樿揣鍒嗙被缂栫爜</label>
+ <div class="layui-input-block">
+ <input name="brand" placeholder="璇疯緭鍏ュ瓨璐у垎绫荤紪鐮�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">璁¢噺鍗曚綅</label>
+ <div class="layui-input-block">
+ <input name="unit" placeholder="璇疯緭鍏ヨ閲忓崟浣�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">杩涢」绋�</label>
+ <div class="layui-input-block">
+ <input name="price" placeholder="璇疯緭鍏ヨ繘椤圭◣" class="layui-input">
</div>
</div>
<div class="layui-form-item">
@@ -223,16 +241,16 @@
<div class="layui-col-md6">
<div class="layui-form-item">
- <label class="layui-form-label layui-form-required">鍟嗗搧缂栧彿</label>
+ <label class="layui-form-label layui-form-required">瀛樿揣缂栫爜</label>
<div class="layui-input-block">
- <input id="matnr" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鍙�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ <input id="matnr" name="matnr" placeholder="璇疯緭鍏ュ瓨璐х紪鐮�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
</div>
</div>
<div class="layui-form-item">
- <label class="layui-form-label">瑙勬牸</label>
+ <label class="layui-form-label">瑙勬牸鍨嬪彿</label>
<div class="layui-input-block">
- <input name="specs" placeholder="璇疯緭鍏ヨ鏍�" class="layui-input">
+ <input name="specs" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" class="layui-input">
</div>
</div>
@@ -242,7 +260,32 @@
<input name="storeMin" placeholder="搴撳瓨涓嬮檺" type="number" class="layui-input">
</div>
</div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">閫氱敤鍨嬪彿</label>
+ <div class="layui-input-block">
+ <input name="model" placeholder="璇疯緭鍏ュ娉�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀛樿揣鍒嗙被鍚嶇О</label>
+ <div class="layui-input-block">
+ <input name="color" placeholder="璇疯緭鍏ュ娉�" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">閿�椤圭◣</label>
+ <div class="layui-input-block">
+ <input name="units" placeholder="璇疯緭鍏ラ攢椤圭◣" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寤烘。浜�</label>
+ <div class="layui-input-block">
+ <input name="supp" placeholder="璇疯緭鍏ュ缓妗d汉" class="layui-input">
+ </div>
+ </div>
<div class="layui-form-item">
<label class="layui-form-label">澶囨敞</label>
diff --git a/src/main/webapp/views/picking/picking.html b/src/main/webapp/views/picking/picking.html
new file mode 100644
index 0000000..73450c5
--- /dev/null
+++ b/src/main/webapp/views/picking/picking.html
@@ -0,0 +1,228 @@
+<!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">
+ <style>
+ .contain td {
+ border: 1px solid #000;
+ /*font-family: 榛戜綋;*/
+ /*font-weight: bold;*/
+ /*color: #000000;*/
+ }
+ </style>
+</head>
+<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/js/jquery/jQuery.print.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/picking/picking.js" charset="utf-8"></script>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <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">鎷h揣鍗曞彿:</label>
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="doc_num" placeholder="鎷h揣鍗曞彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="saasLog" lay-filter="saasLog"></table>
+ </div>
+ </div>
+</div>
+
+
+</body>
+<!-- 琛ㄦ牸鎿嶄綔鍒� -->
+<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="operate">
+ {{# if (d.settle == 0 || d.settle == 1) { }}
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a>
+ {{# } }}
+ {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 21 || d.docType == 11 || d.docType == 12)) { }}
+ {{# } }}
+ {{# 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-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint2">鎵撳嵃</a>
+ <!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="btnPrint"><img src="../../static/image/nav/fn_3.png" alt="浜岀淮鐮�"></a>
+-->
+</script>
+
+<script type="text/html" id="orderNoTpl">
+ {{d.docNum}}
+<!-- {{# 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>
+<!-- 鎵撳嵃鎿嶄綔寮圭獥 -->
+<div id="printDataDiv" style="display: none;padding: 20px">
+ <div class="layui-form" style="text-align: center">
+ <hr>
+ <!--鍗曢�夋-->
+ <div class="layui-form-item" style="display: inline-block; margin-bottom: 10px">
+ <input type="radio" name="selectTemplate" value="3" title="妯℃澘涓�" lay-filter="selectTemplateRadio" checked="">
+ </div>
+ <fieldset class="layui-elem-field site-demo-button" style="margin-top: 30px;text-align: left;">
+ <legend>鎵撳嵃棰勮</legend>
+ <div id="template-container" style="margin: 20px;text-align: center">
+ <!-- 棰勮鍥� 3 -->
+ <div id="template-preview-3" class="template-preview" style="display: inline-block">
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ </table>
+ </div>
+ </div>
+ </fieldset>
+ </div>
+</div>
+<div id="box" style="display: block"></div>
+
+<script type="text/template" id="docTypeTpl">
+ <option value="">閫夋嫨绫诲瀷</option>
+ {{#each records}}
+ <option value="{{docId}}">{{docName}}</option>
+ {{/each}}
+</script>
+<!-- 鍒濆鍖栨墦鍗版ā鏉跨殑鏉″舰鐮� -->
+<script type="text/javascript">
+ $('.template-qrcode').attr("src", baseUrl+"/ManPakOut/code/auth?type=2¶m=123");
+</script>
+<!-- 妯℃澘寮曟搸 -->
+<!-- 妯℃澘3 -->
+<script type="text/template" id="templatePreview3" class="template-qrcode">
+ {{#each data}}
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <thead></thead>
+ <tbody>
+ <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" height="80%">
+<!-- <img class="template-code template-qrcode" src="{{res.data}}" height="80%">-->
+ </tbody>
+ </table>
+ {{/each}}
+</script>
+
+<div id="qrcode" style="display: none;padding: 20px">
+ {{#each result}}
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <thead></thead>
+ <tbody>
+ <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" height="80%">
+ <!-- <img class="template-code template-qrcode" src="{{res.data}}" height="80%">-->
+ </tbody>
+ </table>
+ {{/each}}
+</div>
+
+
+<!-- 妯℃澘寮曟搸 -->
+<!-- 妯℃澘4 -->
+<script type="text/template" id="templatePreview4" class="template-qrcode">
+
+ <div style="width: 100%;border-bottom: #0C0C0C solid 2px;margin-bottom: 20px;">
+ <div style="height: 60px;text-align: center;line-height: 60px;font-size: 30px;">鎷h揣鍗�</div>
+ <div style="height: 90px;text-align: center;line-height: 90px;">
+ <img class="template-code template-qrcode" src="{{barcodeUrl}}" width="300">
+ </div>
+ <div style="height: 50px;text-align: center;font-size: 25px;">{{docNum}}</div>
+ <div style="height: 40px;text-align: left;line-height: 40px;font-size: 20px;">鍑哄簱鍗曞彿锛歿{docNum}}</div>
+ <div style="height: 40px;text-align: left;line-height: 40px;font-size: 20px;">鎬绘暟閲忥細{{anfmeSum}}</div>
+ </div>
+ {{#each data}}
+ <table width="100%" style="border:0;border-bottom:#0C0C0C solid 2px; margin-bottom:20px;padding:0;overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 25px;font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 鏂欏彿:
+ </td>
+ <td>
+ {{this.matnr}}
+ </td>
+ <td align="left" scope="col" colspan="1" rowspan="4">
+ <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="100px">
+ </td>
+ </tr>
+ <tr style="height: 25px;font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 鍟嗗搧鍚�:
+ </td>
+ <td>
+ {{this.maktx}}
+ </td>
+ </tr>
+ <tr style="height: 25px; font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 鎷h揣鏁伴噺:
+ </td>
+ <td>
+ {{this.anfme}}
+ </td>
+ </tr>
+ <tr style="height: 30px; font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 搴撲綅:
+ </td>
+ <td align="left" scope="col" colspan="1">
+ {{this.locNo}}
+ </td>
+ </tr>
+ <tr style="height: 30px; font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 鏂欑鐮�:
+ </td>
+ <td align="left" scope="col" colspan="1">
+ {{this.containerCode}}
+ </td>
+ </tr>
+ <tr style="height: 30px; font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 閿�鍞鍗曞彿:
+ </td>
+ <td align="left" scope="col" colspan="1">
+ {{this.csocode}}
+ </td>
+ </tr>
+ <tr style="height: 30px; font-size: 15px;">
+ <td align="left" scope="col" colspan="1" style="width: 100px;">
+ 閿�鍞鍗曡鍙�:
+ </td>
+ <td align="left" scope="col" colspan="1">
+ {{this.isoseq}}
+ </td>
+ </tr>
+ </table>
+ {{/each}}
+</script>
+
+
+</html>
+
diff --git a/src/main/webapp/views/picking/pickingOrder.html b/src/main/webapp/views/picking/pickingOrder.html
new file mode 100644
index 0000000..c467b21
--- /dev/null
+++ b/src/main/webapp/views/picking/pickingOrder.html
@@ -0,0 +1,157 @@
+<!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">
+ <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>
+<!-- <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>-->
+ <style>
+ .wrk-trace {
+ color: green;
+ cursor: pointer;
+ margin-left: 6px;
+ font-size: 18px;
+ }
+ </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <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="order_no" placeholder="鍗曟嵁缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ <button id="orderAddBtn" class="layui-btn icon-btn btn-add"><i class="layui-icon"></i>娣诲姞
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="saasLog" lay-filter="saasLog"></table>
+ </div>
+ </div>
+</div>
+
+<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/js/jquery/jQuery.print.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/echarts/echarts.min.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/picking/pickingOrder.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄦ牸鎿嶄綔鍒� -->
+<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="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" style="display: none" value="骞冲簱鎷h揣鍗�">
+ <input id="docType$" name="docType$" value="骞冲簱鎷h揣鍗�" class="layui-input cool-auto-complete-div" onclick="autoShow(20)" placeholder="骞冲簱鎷h揣鍗�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
+ </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="operate">
+ {{# if (d.settle == 0 || d.settle == 1) { }}
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</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-border-blue layui-btn-xs btn-complete" lay-event="manPrint">鐢熸垚鎷h揣鍗�</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-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint">鎵撳嵃</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>
+</html>
+
--
Gitblit v1.9.1