From b6c0ffd5380fb4c9b7324298bade1bc0210b565d Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期日, 05 十月 2025 10:32:08 +0800
Subject: [PATCH] 联调
---
src/main/java/com/zy/asrs/service/WorkService.java | 1
src/main/webapp/views/pakStore/clampDetlQuery.html | 254 ++++++++++
src/main/webapp/views/wrkMast/wrkMast.html | 2
src/main/java/com/zy/asrs/service/MatBarcodeService.java | 4
src/main/webapp/views/barcodeMatnr/barcodeMatnr.html | 66 ++
src/main/java/com/zy/asrs/service/impl/MatBarcodeServiceImpl.java | 13
src/main/webapp/views/pakStore/clampOut.html | 132 +++++
src/main/webapp/static/js/pakStore/clampOut.js | 138 +++++
src/main/webapp/static/js/wrkMast/wrkMast.js | 2
src/main/java/com/zy/asrs/controller/WorkController.java | 22
src/main/java/com/zy/asrs/mapper/MatBarcodeMapper.java | 4
src/main/webapp/static/js/barcodeMatnr/barcodeMatnr.js | 489 +++++++++++++++++++
src/main/java/com/zy/asrs/controller/BarcodeMatnrController.java | 68 ++
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 117 ++++
src/main/webapp/views/barcodeMatnr/barcodeMatnr_detail.html | 132 +++++
src/main/java/com/zy/asrs/entity/LocMast.java | 4
16 files changed, 1,446 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/BarcodeMatnrController.java b/src/main/java/com/zy/asrs/controller/BarcodeMatnrController.java
new file mode 100644
index 0000000..bdb26e2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BarcodeMatnrController.java
@@ -0,0 +1,68 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.MatBarcode;
+import com.zy.asrs.service.MatBarcodeService;
+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;
+
+@RequestMapping
+@RestController
+public class BarcodeMatnrController extends BaseController {
+ @Autowired
+ private MatBarcodeService matBarcodeService;
+ /*
+ * 鐗╂枡鎵樼洏缁戝畾鍒嗛〉鏌ヨ
+ * */
+ @RequestMapping(value = "/barcodeMatnr/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){
+ excludeTrash(param);
+ EntityWrapper<MatBarcode> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ else {
+ wrapper.orderBy("modi_time", false);
+ }
+ return R.ok(matBarcodeService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private void convert(Map<String, Object> map, EntityWrapper 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);
+ }
+ }
+ }
+
+ /*
+ * 鐗╂枡鎵樼洏瑙g粦
+ * */
+ @RequestMapping("/barcodeMatnr/matnrLostBarcode")
+ @ManagerAuth(memo = "鐗╂枡鎵樼洏瑙g粦")
+ public R matnrLostBarcode(@RequestBody List<MatBarcode> list) {
+ matBarcodeService.deleteMatBarcode(list);
+ return R.ok();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 5ca0606..ba728eb 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -289,4 +289,26 @@
return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo);
}
+ //骞舵澘鍑哄簱鍑哄簱绔欑偣
+ @RequestMapping("/available/takeClamp/site")
+ @ManagerAuth()
+ public R availableTakeClampSite(){
+ List<Map<String, Object>> result = new ArrayList<>();
+ List<Integer> outSite = basDevpService.getAvailableOutSite(104);
+ for (Integer siteId : outSite) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("siteId", siteId);
+ map.put("desc", siteId + "锛堝苟鏉垮嚭搴撳彛锛�");
+ result.add(map);
+ }
+ return R.ok().add(result);
+ }
+
+ //骞舵澘鍑哄簱
+ @RequestMapping("/locClamp/out/start")
+ @ManagerAuth(memo = "骞舵澘鍑哄簱")
+ public R locClampOutStart(@RequestBody StockOutParam param) {
+ workService.locClampOut(param, getUserId());
+ return R.ok("鍑哄簱鍚姩鎴愬姛");
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index 23d8301..50e91da 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -217,7 +217,11 @@
case 1:
return "浣庡簱浣�";
case 2:
+ return "涓簱浣�";
+ case 5:
return "楂樺簱浣�";
+ case 6:
+ return "瓒呴珮搴撲綅";
default:
return String.valueOf(this.locType1);
}
diff --git a/src/main/java/com/zy/asrs/mapper/MatBarcodeMapper.java b/src/main/java/com/zy/asrs/mapper/MatBarcodeMapper.java
index 358f782..c7ffc5c 100644
--- a/src/main/java/com/zy/asrs/mapper/MatBarcodeMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/MatBarcodeMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.MatBarcode;
+import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -10,4 +11,7 @@
@Repository
public interface MatBarcodeMapper extends BaseMapper<MatBarcode> {
MatBarcode selectByMatnr(@Param("matnr")String matnr);
+
+ @Delete("delete from cust_matnr_barcode where matnr=#{matnr}")
+ void deleteByMatnr(String matnr);
}
diff --git a/src/main/java/com/zy/asrs/service/MatBarcodeService.java b/src/main/java/com/zy/asrs/service/MatBarcodeService.java
index 5569ece..2fd37e7 100644
--- a/src/main/java/com/zy/asrs/service/MatBarcodeService.java
+++ b/src/main/java/com/zy/asrs/service/MatBarcodeService.java
@@ -4,7 +4,11 @@
import com.zy.asrs.entity.MatBarcode;
import org.springframework.stereotype.Service;
+import java.util.List;
+
@Service
public interface MatBarcodeService extends IService<MatBarcode> {
MatBarcode selectbyMatnr(String matnr);
+
+ void deleteMatBarcode(List<MatBarcode> list);
}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 9e8cbf1..d7f2dbc 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -111,4 +111,5 @@
void turnMatLocDetl(EmptyPlateOutParam param, Long userId);
+ void locClampOut(StockOutParam param, Long userId);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MatBarcodeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MatBarcodeServiceImpl.java
index e81aacc..52f2dd5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MatBarcodeServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MatBarcodeServiceImpl.java
@@ -4,12 +4,25 @@
import com.zy.asrs.entity.MatBarcode;
import com.zy.asrs.mapper.MatBarcodeMapper;
import com.zy.asrs.service.MatBarcodeService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
@Service("MatBarcodeService")
public class MatBarcodeServiceImpl extends ServiceImpl<MatBarcodeMapper, MatBarcode> implements MatBarcodeService {
+ @Autowired
+ private MatBarcodeMapper matBarcodeMapper;
@Override
public MatBarcode selectbyMatnr(String matnr) {
return this.baseMapper.selectByMatnr(matnr);
}
+
+ @Override
+ public void deleteMatBarcode(List<MatBarcode> list) {
+ for (MatBarcode matBarcode : list) {
+ matBarcodeMapper.deleteByMatnr(matBarcode.getMatnr());
+ }
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index fb18b89..5833612 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1259,4 +1259,121 @@
}
}
+ @Override
+ public void locClampOut(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+ if (locMast.getLocSts().equals("F")) {
+ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+ clampOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+ } else {
+ throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+ }
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+ }
+ }
+
+
+ @Transactional
+ public void clampOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
+ Date now = new Date();
+ // 鍚堝苟鍚岀被椤�
+ Set<String> locNos = new HashSet<>();
+ List<OutLocDto> dtos = new ArrayList<>();
+ for (LocDetlDto locDetlDto : locDetlDtos) {
+ String locNo = locDetlDto.getLocDetl().getLocNo();
+ if (locNos.contains(locNo)) {
+ for (OutLocDto dto : dtos) {
+ if (dto.getLocNo().equals(locNo)) {
+ dto.getLocDetlDtos().add(locDetlDto);
+ break;
+ }
+ }
+ } else {
+ locNos.add(locNo);
+ dtos.add(new OutLocDto(locNo, locDetlDto));
+ }
+ }
+ Integer ioType = null;
+ // 鐢熸垚宸ヤ綔妗�
+ for (OutLocDto dto : dtos) {
+ ioType = 104;
+ assert ioType != null;
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+
+ Integer outSta = staNo.getDevNo();
+ // 鑾峰彇璺緞
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
+ wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ if (detlDto.getCount() == null || detlDto.getCount() <= 0.0D) {
+ continue;
+ }
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(detlDto.getLocDetl());
+ wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ Double anfme = ioType == 101 ? detlDto.getLocDetl().getAnfme() : detlDto.getCount();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType == 101 ? "R" : "P");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + dto.getLocNo());
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ }
+ }
}
diff --git a/src/main/webapp/static/js/barcodeMatnr/barcodeMatnr.js b/src/main/webapp/static/js/barcodeMatnr/barcodeMatnr.js
new file mode 100644
index 0000000..10a4ea0
--- /dev/null
+++ b/src/main/webapp/static/js/barcodeMatnr/barcodeMatnr.js
@@ -0,0 +1,489 @@
+var pageCurr;
+function getCol() {
+ var cols = [ {type: 'checkbox'} ];
+ cols.push.apply(cols, detlCols);
+ cols.push(
+ // {field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
+ // ,{field: 'status', align: 'center',title: '鏁版嵁鐘舵��', templet:function(row){
+ // var html = "<input value='status' type='checkbox' lay-skin='switch' lay-text='姝e父|閿佸畾'' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.status === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }, hide: true}
+ // ,{field: 'ioStatus', align: 'center',title: '鍏ュ嚭鐘舵��', templet:function(row){
+ // var html = "<input value='ioStatus' type='checkbox' lay-skin='switch' lay-text='鍏ュ簱涓瓅寰呭叆搴�' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.ioStatus === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }}
+ {field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true},
+ {field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true})
+ return cols;
+}
+
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'tableMerge'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var tableMerge = layui.tableMerge;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#waitPakin',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/barcodeMatnr/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) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ // tableMerge.render(this);
+ 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(locMast)', 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(waitPakin)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addWrk':
+ if (checkStatus.data.length === 0){
+ layer.msg('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�', {icon: 2});
+ } else {
+ layer.confirm('纭畾璇ョ墿鏂欎笌鎵樼洏瑙g粦鍚�', function(){
+ $.ajax({
+ url: baseUrl+"/barcodeMatnr/matnrLostBarcode",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(checkStatus.data),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ layer.msg(res.msg, {icon: 1})
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '缁戝畾',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ content: 'barcodeMatnr_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 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/waitPakin/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 = {
+ 'waitPakin': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/waitPakin/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.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(waitPakin)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: 'waitPakin_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],
+ content: 'waitPakin_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('#id', 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 '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: true,
+ 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){
+ top.location.href = baseUrl+"/";
+ }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: true,
+ 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){
+ top.location.href = baseUrl+"/";
+ }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(),
+ id: $('#id').val(),
+ barcode: $('#barcode').val(),
+ matnr: $('#matnr').val(),
+ maktx: $('#maktx').val(),
+ anfme: $('#anfme').val(),
+ unit: $('#unit').val(),
+ status: $('#status').val(),
+ memo: $('#memo').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ modiUser: $('#modiUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/waitPakin/"+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();
+ }
+ }
+ }
+ }
+};
\ No newline at end of file
diff --git a/src/main/webapp/static/js/pakStore/clampOut.js b/src/main/webapp/static/js/pakStore/clampOut.js
new file mode 100644
index 0000000..4bd49aa
--- /dev/null
+++ b/src/main/webapp/static/js/pakStore/clampOut.js
@@ -0,0 +1,138 @@
+var locDetlLayerIdx;
+var tableIns;
+var locDetlData = [];
+function getCol() {
+ var cols = [
+ {field: 'locNo', align: 'center',title: '搴撲綅鍙�', merge: true, style: 'font-weight: bold'}
+ ];
+ cols.push.apply(cols, detlCols);
+ return cols;
+}
+
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin', 'tableMerge'], 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 tableMerge = layui.tableMerge;
+
+ tableIns = table.render({
+ elem: '#chooseData',
+ headers: {token: localStorage.getItem('token')},
+ data: [],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ done: function(res, curr, count) {
+ tableMerge.render(this);
+ limit();
+ getOutBound();
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(chooseData)', function (obj) {
+ switch (obj.event) {
+ case 'outbound':
+ if (locDetlData.length === 0){
+ layer.msg('璇峰厛娣诲姞鐩樼偣搴撳瓨', {icon: 2});
+ } else {
+ var staNo = $("#staNoSelect").val();
+ if (staNo === "" || staNo === null){
+ layer.msg("璇烽�夋嫨鐩樼偣绔�", {icon: 2});
+ return;
+ }
+ let param = {
+ outSite: staNo,
+ locDetls: locDetlData
+ }
+ $.ajax({
+ url: baseUrl+"/locClamp/out/start",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ locDetlData = [];
+ tableIns.reload({data: locDetlData});
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+ break;
+ }
+ });
+
+ // 鑾峰彇鍑哄簱鍙�
+ function getOutBound(){
+ $.ajax({
+ url: baseUrl+"/available/take/check/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ var tpl = $("#takeSiteSelectTemplate").html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $('#staNoSelect').append(html);
+ form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+
+ $(document).on('click','#mat-query', function () {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ locDetlLayerIdx = layer.open({
+ type: 2,
+ title: false,
+ closeBtn: false,
+ maxmin: false,
+ area: ['90%', '85%'],
+ shadeClose: true,
+ content: 'clampDetlQuery.html',
+ success: function(layero, index){
+ layer.close(loadIndex);
+ }
+ });
+ })
+
+})
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+function addTableData(data) {
+ for (let i=0;i<data.length;i++){
+ let pass = false;
+ for (let j=0;j<locDetlData.length;j++){
+ if (data[i].matnr === locDetlData[j].matnr && data[i].batch === locDetlData[j].batch && data[i].locNo$ === locDetlData[j].locNo$) {
+ pass = true;
+ break;
+ }
+ }
+ if (pass) {
+ data.splice(i--, 1);
+ } else {
+ data[i]["count"] = data[i]["anfme"];
+ }
+
+ }
+ locDetlData.push.apply(locDetlData, data);
+ tableIns.reload({data: locDetlData});
+ layer.close(locDetlLayerIdx);
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index 181419e..0ae362f 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -31,7 +31,7 @@
,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
,{field: 'barcode', align: 'center',title: '鏉$爜'}
- ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
+ ,{field: 'pltType', align: 'center',title: '宸ヤ綅鍙�'}
,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}
// ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
// var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
diff --git a/src/main/webapp/views/barcodeMatnr/barcodeMatnr.html b/src/main/webapp/views/barcodeMatnr/barcodeMatnr.html
new file mode 100644
index 0000000..8a20ffc
--- /dev/null
+++ b/src/main/webapp/views/barcodeMatnr/barcodeMatnr.html
@@ -0,0 +1,66 @@
+<!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/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鏉$爜" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ </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 id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="waitPakin" lay-filter="waitPakin"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-wrk" lay-event="addWrk">瑙g粦</button>
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">缁戝畾</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="">瀵煎嚭</button>
+ </div>
+</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/barcodeMatnr/barcodeMatnr.js" charset="utf-8"></script>
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/barcodeMatnr/barcodeMatnr_detail.html b/src/main/webapp/views/barcodeMatnr/barcodeMatnr_detail.html
new file mode 100644
index 0000000..8258e5c
--- /dev/null
+++ b/src/main/webapp/views/barcodeMatnr/barcodeMatnr_detail.html
@@ -0,0 +1,132 @@
+<!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/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <!--
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ -->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'waitPakin')" lay-verify="number" >-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鎵� 鐩� 鐮侊細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="barcode" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鍟嗗搧缂栧彿锛�</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="matnr" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鐗╂枡鎻忚堪锛�</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="maktx" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鏁般��銆�閲忥細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="anfme" class="layui-input" type="text" lay-verify="number" >-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鍗曘��銆�浣嶏細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="unit" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">鐘躲��銆�鎬侊細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="status" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>aitPakin/list-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">澶囥��銆�娉細</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="memo" class="layui-input" type="text">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">淇敼鏃堕棿锛�</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="modiTime$" class="layui-input" type="text" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鍟嗗搧缂栧彿锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="modiUser" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+<!-- <div class="layui-inline" style="width:31%;">-->
+<!-- <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input id="appeTime$" class="layui-input" type="text" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鎵樼洏鐮侊細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="appeUser" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+<!-- <div id="prompt">-->
+<!-- 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>-->
+<!-- </div>-->
+ </form>
+</div>
+</body>
+<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/barcodeMatnr/barcodeMatnr.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/pakStore/clampDetlQuery.html b/src/main/webapp/views/pakStore/clampDetlQuery.html
new file mode 100644
index 0000000..2f5fbdf
--- /dev/null
+++ b/src/main/webapp/views/pakStore/clampDetlQuery.html
@@ -0,0 +1,254 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ body {
+ padding: 0 20px;
+ }
+ .layui-table-box {
+ border-right: 1px solid #9F9F9F;
+ border-left: 1px solid #9F9F9F;
+ }
+
+ #search-box {
+ padding: 30px 0 20px 0;
+ }
+ #search-box .layui-inline:first-child {
+ margin-left: 30px;
+ }
+ #search-box .layui-inline {
+ margin-right: 5px;
+ }
+
+ #data-search-btn {
+ margin-left: 10px;
+ display: inline-block;
+ }
+ #data-search-btn.layui-btn-container .layui-btn {
+ margin-right: 20px;
+ }
+
+ </style>
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
+ <legend>鎼滅储鏍�</legend>
+ <!-- 鎼滅储鏍� -->
+ <div id="search-box" class="layui-form layui-card-header">
+ <!-- <div class="layui-input-inline" style="margin-top: -10px">-->
+ <!-- <select id="crnNo" name="crnNo">-->
+ <!-- <option value="" style="display: none">璇烽�夋嫨宸烽亾</option>-->
+ <!-- <option value="1">1鍙�</option>-->
+ <!-- <option value="2">2鍙�</option>-->
+ <!-- <option value="3">3鍙�</option>-->
+ <!-- <option value="4">4鍙�</option>-->
+ <!-- </select>-->
+ <!-- </div>-->
+ <div class="layui-inline">
+<!-- <div class="layui-input-inline cool-auto-complete">-->
+<!-- <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">-->
+<!-- <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍫嗗灈鏈哄彿" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ </div>
+ </div>
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">-->
+<!-- </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">-->
+ <!-- <div class="layui-input-inline">-->
+ <!-- <input class="layui-input" type="text" name="sPgNO" placeholder="娲惧伐鍗曞彿" autocomplete="off">-->
+ <!-- </div>-->
+ <!-- </div>-->
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="outOrderNo" placeholder="鍚堝悓鍙�" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鏉$爜" autocomplete="off">
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+ </div>
+</fieldset>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">鎻愬彇</button>
+ </div>
+</script>
+
+<div class="layui-form">
+ <table class="layui-hide" id="stockOut" lay-filter="stockOut"></table>
+</div>
+
+<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/handlebars/handlebars-v4.5.3.js"></script>
+
+</body>
+<script>
+
+ function getCol() {
+ let cols = [
+ {type: 'checkbox', merge: ['locNo']}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�', merge: true, style: 'font-weight: bold'}
+ ];
+ cols.push.apply(cols, detlCols);
+ cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide: true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'})
+ return cols;
+ }
+
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).use(['table','laydate', 'form', 'admin', 'tableMerge'], 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 tableMerge = layui.tableMerge;
+
+ // 鏁版嵁娓叉煋
+ locDetlTableIns = table.render({
+ elem: '#stockOut',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/stock/out/list/auth',
+ page: true,
+ limit: 20,
+ limits: [20, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ 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) {
+ tableMerge.render(this);
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(stockOut)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ var data = checkStatus.data;
+ switch(obj.event) {
+ case 'confirm':
+ if (data.length === 0){
+ layer.msg("璇烽�夋嫨鏁版嵁", {icon: 2});
+ return;
+ }
+ let locNos = [];
+ data.forEach(function(elem) {
+ locNos.push(elem.locNo);
+ });
+ $.ajax({
+ url: baseUrl+"/locDetl/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {locNos:locNos},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ data = res.data;
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ parent.addTableData(data);
+ break;
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ tableReload();
+ });
+
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ })
+
+ function tableReload() {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ locDetlTableIns.reload({
+ where: searchData
+ });
+ }
+
+</script>
+</html>
+
diff --git a/src/main/webapp/views/pakStore/clampOut.html b/src/main/webapp/views/pakStore/clampOut.html
new file mode 100644
index 0000000..fab3d47
--- /dev/null
+++ b/src/main/webapp/views/pakStore/clampOut.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ html {
+ height: 100%;
+ padding: 10px;
+ background-color: #f1f1f1;
+ box-sizing: border-box;
+ }
+ body {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 3px rgba(0,0,0,.3);
+ }
+ #staNoSpan {
+ text-align: center;
+ display: inline-block;
+ width: 100px;
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-form-select {
+ display: inline-block;
+ width: 150px;
+ height: 30px;
+ }
+ .layui-btn-container .layui-form-select.layui-form-selected {
+ display: inline-block;
+ width: 150px;
+ }
+ .layui-btn-container .layui-select-title input {
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-anim.layui-anim-upbit dd {
+ font-size: 13px;
+ }
+
+ #btn-outbound {
+ margin-left: 60px;
+ }
+
+ /*----------------------------------*/
+ .function-area {
+ padding: 20px 50px;
+ }
+ .function-btn {
+ font-size: 16px;
+ padding: 1px 2px;
+ width: 100px;
+ height: 50px;
+ border-color: #2b425b;
+ border-radius: 4px;
+ border-width: 2px;
+ background: none;
+ border-style: solid;
+ transition: 0.4s;
+ cursor: pointer;
+ letter-spacing: 1.5px;
+ }
+ .function-btn:hover {
+ background-color: #2b425b;
+ color: #fff;
+ }
+
+ /*#mat-query {*/
+ /* display: none;*/
+ /*}*/
+ #btn-outbound {
+ display: none;
+ }
+ </style>
+</head>
+<body style="padding-bottom: 30px">
+
+<!-- 鍔熻兘鍖� -->
+<div class="function-area">
+ <button id="mat-query" class="function-btn">鎻愬彇搴撳瓨</button>
+</div>
+
+<hr>
+
+<!-- 琛ㄦ牸 -->
+<div style="padding-bottom: 5px; margin-bottom: 45px">
+
+ <!-- 澶撮儴 -->
+ <script type="text/html" id="toolbar">
+ <div class="layui-form">
+ <div class="layui-btn-container">
+ <!-- 1.閫夋嫨鍑哄簱鍙� -->
+ <span id="staNoSpan">鐩樼偣绔欙細</span>
+ <select id="staNoSelect" lay-verify="required">
+ <option value="">璇烽�夋嫨绔欑偣</option>
+ </select>
+ <!-- 2.鍚姩鍑哄簱 -->
+ <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">骞舵澘鍑哄簱</button>
+ </div>
+ </div>
+ </script>
+
+ <!-- 琛� -->
+ <script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+ </script>
+
+ <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+</div>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{this}}">{{this}}</option>
+ {{/each}}
+</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/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/clampOut.js" charset="utf-8"></script>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/wrkMast/wrkMast.html b/src/main/webapp/views/wrkMast/wrkMast.html
index 6fc48be..67b2ce2 100644
--- a/src/main/webapp/views/wrkMast/wrkMast.html
+++ b/src/main/webapp/views/wrkMast/wrkMast.html
@@ -135,7 +135,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/wrkMast/wrkMast.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/wrkMast/wrkMast.js?v=1" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
--
Gitblit v1.9.1