From 419c6a9b87b37be567a581d6a80d7e3f505d84e9 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期一, 23 六月 2025 13:39:04 +0800 Subject: [PATCH] #新增空箱入库功能,界面等修改 --- src/main/java/com/zy/asrs/controller/LocDetlController.java | 31 + src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 2 src/main/webapp/views/pakStore/locDetlQuery.html | 15 src/main/java/com/zy/asrs/controller/MobileController.java | 13 src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java | 6 src/main/webapp/static/js/locDetl/locDetl.js | 4 src/main/java/com/zy/asrs/entity/param/BoxInParam.java | 13 src/main/webapp/static/js/mat/boxMat.js | 482 ++++++++++++++++ src/main/webapp/views/mat/boxMat.html | 444 ++++++++++++++ src/main/webapp/static/js/pakStore/boxOut.js | 180 ++++++ src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 12 src/main/java/com/zy/asrs/mapper/MatMapper.java | 3 src/main/resources/mapper/MatMapper.xml | 38 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 120 +++ src/main/webapp/views/pakStore/boxQuery.html | 243 ++++++++ src/main/java/com/zy/asrs/controller/MatController.java | 27 src/main/webapp/views/pakStore/boxOut.html | 132 ++++ src/main/java/com/zy/asrs/service/MatService.java | 3 src/main/java/com/zy/asrs/service/MobileService.java | 7 19 files changed, 1,755 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java index 9639102..952ed10 100644 --- a/src/main/java/com/zy/asrs/controller/LocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java @@ -85,6 +85,15 @@ return R.ok(locDetls); } + @PostMapping("/getBoxLocDateByLocNo") + @ManagerAuth(memo = "鏍规嵁鍖呰缁勫彿鎻愬彇涓�鏁寸搴撳瓨") + public R getBoxLocDateByLocNo(@RequestBody List<String> packageNoList) { + + List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<LocDetl>().in("loc_no", packageNoList)); + + return R.ok(locDetls); + } + @Transactional(rollbackFor = Exception.class) public void importLocData1(MultipartFile multipartFile) throws IOException { EasyExcel.read(multipartFile.getInputStream(), LocMat.class, @@ -148,6 +157,28 @@ return R.ok(stockOut); } + @RequestMapping(value = "/stock/boxOut/list/auth") + @ManagerAuth + public R boxOut(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam Map<String, Object> param){ + if (!Cools.isEmpty(param.get("modi_time"))){ + String val = String.valueOf(param.get("modi_time")); + if (val.contains(RANGE_TIME_LINK)) { + String[] dates = val.split(RANGE_TIME_LINK); + param.put("startTime", DateUtils.convert(dates[0])); + param.put("endTime", DateUtils.convert(dates[1])); + param.remove("modi_time"); + } + } + param.put("matnr","绌虹"); + Page<LocDetl> stockOut = locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class)); + if (stockOut.getRecords().size()==0){ + stockOut = locDetlService.getStockOut(toPage(1, limit, param, LocDetl.class)); + } + return R.ok(stockOut); + } + @RequestMapping(value = "/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂 @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java index 9c53503..7f6de8b 100644 --- a/src/main/java/com/zy/asrs/controller/MatController.java +++ b/src/main/java/com/zy/asrs/controller/MatController.java @@ -105,6 +105,33 @@ } + @RequestMapping(value = "/boxMat/list/auth") + @ManagerAuth + public R listBox(@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) { + + Object tagIdObj = param.get("tag_id"); + if (Cools.isEmpty(tagIdObj)) { + tagIdObj = getOriginTag().getId(); + } + + String tagId = String.valueOf(tagIdObj); + + + + return R.ok(matService.getPage( + new Page<>(curr, limit), + tagId, + param.get("matnr"), + param.get("memo") + )); + } + + + private void convert(Map<String, Object> map, EntityWrapper 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/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 96b3c97..136a38d 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -598,6 +598,19 @@ return mobileService.pdaFxprk(param, getUserId()); } + @PostMapping("/pdaBoxIn") + @ManagerAuth(memo = "pda绌虹鍏ュ簱") + public synchronized R pdaBoxIn(@RequestBody BoxInParam param) { + + return mobileService.pdaBoxIn(param, getUserId()); + } + + @PostMapping("/pdaGetMemo") + @ManagerAuth(memo = "pda鑾峰彇鏈ㄧ璧勬枡") + public synchronized List<Map<String, Object>> pdaGetMemo() { + return mobileService.pdaGetMemo(); + } + @PostMapping("/pdaFhhd") @ManagerAuth(memo = "pda鍙戣揣鏍稿") public synchronized R pdaFhhd(@RequestBody PdaDhhdParam param) { diff --git a/src/main/java/com/zy/asrs/entity/param/BoxInParam.java b/src/main/java/com/zy/asrs/entity/param/BoxInParam.java new file mode 100644 index 0000000..edc3b99 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/BoxInParam.java @@ -0,0 +1,13 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +@Data +public class BoxInParam { + private String barcode; // 鎵樼洏鐮� + private Integer palletizingNo;// 鐮佸灈浣嶇紪鍙� + + private String batch; //灏哄 + private String memo; // 澶囨敞 + private Double anfme; +} diff --git a/src/main/java/com/zy/asrs/mapper/MatMapper.java b/src/main/java/com/zy/asrs/mapper/MatMapper.java index bf12ef8..b3812ba 100644 --- a/src/main/java/com/zy/asrs/mapper/MatMapper.java +++ b/src/main/java/com/zy/asrs/mapper/MatMapper.java @@ -15,7 +15,7 @@ @Repository public interface MatMapper extends BaseMapper<Mat> { - List<Mat> listByPage(Page page, @Param("tagId") String tagId, @Param("matnr") Object matnr, @Param("maktx") Object maktx); + List<Mat> listByPage(Page page, @Param("tagId") String tagId, @Param("matnr") Object matnr, @Param("memo") Object memo); List<Mat> listByPage2(Page page, @Param("tagId") String tagId, @Param("matnr") Object matnr, @Param("maktx") Object maktx, @Param("specs") Object specs); Mat selectByMatnr(@Param("matnr")String matnr); @@ -29,4 +29,5 @@ @Update("update man_mat set origin= #{boxPos},barcode=#{barcode} where brand= #{packageGroupNo}") Integer updateBoxPos(@Param("packageGroupNo") String packageGroupNo, @Param("boxPos") String boxPos,@Param("barcode") String barcode); + List<Map<String, Object>> getBoxMemoMap(@Param("tagIds") List<Integer> tagIds); } diff --git a/src/main/java/com/zy/asrs/service/MatService.java b/src/main/java/com/zy/asrs/service/MatService.java index 59c97b2..47dcef7 100644 --- a/src/main/java/com/zy/asrs/service/MatService.java +++ b/src/main/java/com/zy/asrs/service/MatService.java @@ -8,7 +8,7 @@ public interface MatService extends IService<Mat> { - Page<Mat> getPage(Page page, String tagId, Object matnr, Object maktx); + Page<Mat> getPage(Page page, String tagId, Object matnr,Object memo); Page<Mat> getPage2(Page page, String tagId, Object matnr, Object maktx, Object specs); Mat selectByMatnr(String matnr); @@ -16,4 +16,5 @@ Page<Mat> getMatTurnPage(Page<Mat> page); + } diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index aa10f0c..1c9b78f 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -68,6 +68,11 @@ R pdaFxprk(GwmsGenerateInventoryDto param, Long userId); /** + * pda绌虹鍏ュ簱 + */ + R pdaBoxIn(BoxInParam param, Long userId); + + /** * 鐩樼偣寮傚父鎸夊疄鐗╄皟鏁村簱瀛樹俊鎭� */ R pdtz(PdtzParam param); @@ -76,4 +81,6 @@ * 鍙戣揣鏍稿 */ R pdaFhhd(PdaDhhdParam param,Long userId); + + List<Map<String, Object>> pdaGetMemo(); } diff --git a/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java index f7b239e..2bb6c66 100644 --- a/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java @@ -13,8 +13,8 @@ public class MatServiceImpl extends ServiceImpl<MatMapper, Mat> implements MatService { @Override - public Page<Mat> getPage(Page page, String tagId, Object matnr, Object maktx) { - return page.setRecords(baseMapper.listByPage(page, tagId, matnr, maktx)); + public Page<Mat> getPage(Page page, String tagId, Object matnr, Object memo) { + return page.setRecords(baseMapper.listByPage(page, tagId, matnr, memo)); } @Override public Page<Mat> getPage2(Page page, String tagId, Object matnr, Object maktx, Object specs) { @@ -42,4 +42,6 @@ + + } 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 fc60578..e957894 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -1557,6 +1557,95 @@ return R.ok("鍙嶄慨鍏ュ簱鎴愬姛"); } + @Override + public R pdaBoxIn(BoxInParam param, Long userId) { + + if (Cools.isEmpty(param.getBarcode())) { + throw new CoolException("鏉$爜涓嶈兘涓虹┖锛�" + param.getBarcode()); + } + + int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); + if (zpalletCount > 0) { + throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode()); + } + + int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); + if (barcodeCount > 0) { + throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode()); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short) 1); + int iotype = 1; //绌虹 + + // 鏍规嵁婧愮珯鐐瑰鎵惧簱浣� + StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto, 0); + + int workNo = dto.getWorkNo(); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 + wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(param.getPalletizingNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setAppeUser(userId); + wrkMast.setModiTime(now); + wrkMast.setModiUser(userId); + wrkMastService.insert(wrkMast); + + if (!Cools.isEmpty(param.getBatch())) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setMatnr("绌虹"); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setBatch(param.getBatch()); // 灏哄 + wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鐮� + wrkDetl.setBarcode(param.getBarcode()); + wrkDetl.setMemo(param.getMemo()); //澶囨敞 + wrkDetl.setAnfme(param.getAnfme()); + wrkDetl.setIoTime(now); + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(userId); + wrkDetl.setModiUser(userId); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")) { + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤"); + } + + // 杩斿洖GWCS鐩爣淇℃伅 + openServiceImpl.pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(), "涓�妤肩┖绠卞叆搴撴帹閫乬wcs"); + + return R.ok("绌虹鍏ュ簱鎴愬姛"); + } + private void pushFxrkToMes(GwmsGenerateInventoryDto param) { for (GwmsGenerateInventoryDto.MatList matList : param.getMatList()){ @@ -1929,7 +2018,7 @@ * 璋冩暣搴撳瓨鏄庣粏 */ @Transactional - void insertLocDetl(String locNo, String barcode, List<PdtzParam.MatList> matList) { + public void insertLocDetl(String locNo, String barcode, List<PdtzParam.MatList> matList) { Date now = new Date(); for (PdtzParam.MatList mat : matList) { LocDetl locDetl = new LocDetl(); @@ -2114,4 +2203,33 @@ } return result; } + + @Override + public List<Map<String, Object>> pdaGetMemo() { + List<Integer> tagIds = Arrays.asList(7, 8); + List<Map<String, Object>> raw = matMapper.getBoxMemoMap(tagIds); + + // 鐢� Map<String, List<String>> 鍒嗙粍 + Map<String, List<String>> grouped = new HashMap<>(); + for (Map<String, Object> row : raw) { + String tagId = String.valueOf(row.get("tag_id")); + String memo = String.valueOf(row.get("memo")); + if (memo == null || "null".equalsIgnoreCase(memo)) continue; + + grouped.computeIfAbsent(tagId, k -> new ArrayList<>()).add(memo); + } + + // 杞垚 List<Map<String, Object>> 缁撴瀯杩斿洖 + List<Map<String, Object>> result = new ArrayList<>(); + for (Map.Entry<String, List<String>> entry : grouped.entrySet()) { + Map<String, Object> item = new HashMap<>(); + item.put("tagId", entry.getKey()); + item.put("memos", entry.getValue()); + result.add(item); + } + + return result; + } + + } 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 8ef9e32..eaa13af 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -183,14 +183,20 @@ // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { + LocDetl one = new LocDetl(); // if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo()) + one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo()) .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel())); // selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); - if (null != one) { + if(paramLocDetl.getMatnr().equals("绌虹")){ + one= locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())); + } + if (null != one && !paramLocDetl.getMatnr().equals("绌虹")) { if(!"鍚堟牸".equals(one.getThreeCode())) { throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode() ); } + locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); + }else{ locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); } // } @@ -950,7 +956,7 @@ } // 鍏ュ簱 + 搴撲綅杞Щ if (wrkMast.getIoType() < 60) { - wrkMast.setWrkSts(5L); + wrkMast.setWrkSts(4L); // 鍑哄簱 } else if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107 && wrkMast.getIoType() != 109) { wrkMast.setWrkSts(14L); diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index dbc1353..f549c1b 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -121,7 +121,7 @@ locDetl.setBarcode(wrkMast.getBarcode()); locDetl.setModiTime(now); locDetl.setAppeTime(now); - locDetl.setBatch(""); +// locDetl.setBatch(""); if (!locDetlService.insert(locDetl)) { // exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); diff --git a/src/main/resources/mapper/MatMapper.xml b/src/main/resources/mapper/MatMapper.xml index 09a8d0a..5cc3281 100644 --- a/src/main/resources/mapper/MatMapper.xml +++ b/src/main/resources/mapper/MatMapper.xml @@ -53,23 +53,28 @@ FROM man_mat mm LEFT JOIN man_tag mt ON mm.tag_id = mt.id LEFT JOIN ( - select - matnr, - sum(anfme) as amount - from man_loc_detl - group by matnr - ) as mld on mld.matnr = mm.matnr + SELECT + matnr, + SUM(anfme) AS amount + FROM man_loc_detl + GROUP BY matnr + ) AS mld ON mld.matnr = mm.matnr WHERE 1=1 - and (mm.memo is null or mm.memo != '鎵撳寘涓婄嚎') - AND (CHARINDEX(','+#{tagId}+',', ','+mt.path+',') > 0 OR mt.id = #{tagId}) + <!-- 鉁� 灞忚斀 tag_id = 6 --> + AND mt.id != 6 + + <!-- 鉁� 鍒ゆ柇鏄惁鍦ㄨ矾寰勪腑 or 鏈韩 id 鍖归厤 --> + AND (CHARINDEX(',' + #{tagId} + ',', ',' + mt.path + ',') > 0 OR mt.id = #{tagId}) + <if test="matnr != null and matnr != ''"> - and mm.matnr like concat('%',#{matnr},'%') + AND mm.matnr LIKE CONCAT('%', #{matnr}, '%') </if> - <if test="maktx != null and maktx != ''"> - and mm.maktx like concat('%',#{maktx},'%') + <if test="memo != null and memo != ''"> + AND mm.memo LIKE CONCAT('%', #{memo}, '%') </if> ORDER BY mm.create_time DESC </select> + <select id="listByPage2" resultMap="BaseResultMap"> SELECT @@ -125,6 +130,17 @@ ) t where t.matNo between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) </select> + + <select id="getBoxMemoMap" resultType="map"> + SELECT tag_id, memo + FROM man_mat + WHERE tag_id IN + <foreach item="id" collection="tagIds" open="(" close=")" separator=","> + #{id} + </foreach> + </select> + + <select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer"> select count(1) diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js index a8bc332..8ca490d 100644 --- a/src/main/webapp/static/js/locDetl/locDetl.js +++ b/src/main/webapp/static/js/locDetl/locDetl.js @@ -8,6 +8,8 @@ // ,{field: 'anfme', align: 'center',title: '鏁伴噺',hide: true} ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'} ,{field: 'matnr', align: 'center',title: '瑙勬牸', sort:true,width: 150} + ,{field: 'batch', align: 'center',title: '绌虹灏哄', hide: true} + ,{field: 'memo', align: 'center',title: '绌虹澶囨敞', hide: true} ,{field: 'brand', align: 'center',title: '鍖呰缁勫彿', hide: false,width: 150} ,{field: 'model', align: 'center',title: '鍗峰彿', hide: false,width: 150} ,{field: 'unit', align: 'center',title: '绠卞彿', hide: false,width: 150} @@ -27,6 +29,8 @@ ,{field: 'volume', align: 'center',title: '鍗曠姣涢噸', hide: true} ,{field: 'specs', align: 'center',title: '鎺ュご', hide:true} ,{field: 'deadWarn$', align: 'center',title: '鐞嗚揣鐘舵��', hide: false} + + ,{ field: 'threeCode', align: 'center', diff --git a/src/main/webapp/static/js/mat/boxMat.js b/src/main/webapp/static/js/mat/boxMat.js new file mode 100644 index 0000000..7705d58 --- /dev/null +++ b/src/main/webapp/static/js/mat/boxMat.js @@ -0,0 +1,482 @@ +var pageCurr; +var printMatCodeNos = []; +var admin; +function getCol() { + var cols = [ + {type: 'checkbox'} + ,{field: 'tagId$', align: 'center',title: '褰掔被', templet: '#tagTpl'} + ,{field: 'memo', align: 'center',title: '鏈ㄧ璧勬枡',hide:false} + ]; + // cols.push.apply(cols, matCols); + cols.push( + {fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} + ) + return cols; +} + +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).extend({ + dropdown: 'dropdown/dropdown', +}).use(['table','laydate', 'form', 'treeTable', 'admin', 'xmSelect', 'dropdown', 'element'], function(){ + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var layDate = layui.laydate; + var form = layui.form; + admin = layui.admin; + var treeTable = layui.treeTable; + var xmSelect = layui.xmSelect; + + // 鍟嗗搧鍒嗙被鏁版嵁 + var insTb = treeTable.render({ + elem: '#tag', + url: baseUrl+'/tag/list/auth', + headers: {token: localStorage.getItem('token')}, + tree: { + iconIndex: 2, // 鎶樺彔鍥炬爣鏄剧ず鍦ㄧ鍑犲垪 + isPidData: true, // 鏄惁鏄痠d銆乸id褰㈠紡鏁版嵁 + idName: 'id', // id瀛楁鍚嶇О + pidName: 'parentId' // pid瀛楁鍚嶇О + }, + cols: [], + done: function (data) { + $('.ew-tree-table-box').css('height', '100%'); + insTb.expandAll(); + } + }); + + // 鏁版嵁娓叉煋 + tableIns = table.render({ + elem: '#mat', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/boxMat/list/auth', + page: true, + limit: 16, + limits: [16, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + height: 'full-105', + 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) { + 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(mat)', function (obj) { + var checkStatus = table.checkStatus(obj.config.id); + switch(obj.event) { + case 'addData': + showEditModel() + 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+"/mat/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 = { + 'mat': exportData, + 'fields': fields + }; + $.ajax({ + url: baseUrl+"/mat/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; + // 鎵归噺鎵撳嵃 + case "btnPrintBatch": + printMatCodeNos = []; + var data = checkStatus.data; + if (data.length === 0){ + layer.msg('璇烽�夋嫨鎵撳嵃鏁版嵁'); + } else { + layer.open({ + type: 1, + title: '鎵归噺鎵撳嵃 [鏁伴噺'+ data.length +']', + area: ['500px'], + shadeClose: true, + content: $('#printDataDiv'), + success: function(layero, index){ + for (var i = 0; i<data.length;i++) { + printMatCodeNos.push(data[i].matnr); + } + }, + end: function () { + } + }); + } + break; + } + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(mat)', function(obj){ + var data = obj.data; + switch (obj.event) { + // 鎵撳嵃 + case "btnPrint": + printMatCodeNos = []; + layer.open({ + type: 1, + title: data.matnr + ' [鏁伴噺锛�1]', + area: ['500px'], + shadeClose: true, + content: $('#printDataDiv'), + success: function(layero, index){ + layer.iframeAuto(index); + printMatCodeNos.push(data.matnr); + }, + end: function () { + } + }); + break; + // 缂栬緫 + case 'edit': + showEditModel(data) + break; + } + }); + + /* 鏄剧ず琛ㄥ崟寮圭獥 */ + function showEditModel(mData) { + admin.open({ + type: 1, + area: '600px', + title: (mData ? '淇敼' : '娣诲姞') + '鍟嗗搧', + content: $('#editDialog').html(), + success: function (layero, dIndex) { + // 鍥炴樉琛ㄥ崟鏁版嵁 + form.val('detail', mData); + // 鏂板鑷姩鐢熸垚鍟嗗搧缂栧彿 + if (!mData) { + http.get(baseUrl + "/mat/auto/matnr/auth", null, function (res) { + $('#matnr').val(res.data); + }) + } + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(editSubmit)', function (data) { + console.log(data) + data.field.tagId = insXmSel.getValue('valueStr'); + if (isEmpty(data.field.tagId)) { + layer.msg('鍒嗙被涓嶈兘涓虹┖', {icon: 2}); + return false; + } + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/mat/"+(mData?'update':'add')+"/auth", + headers: {'token': localStorage.getItem('token')}, + data: data.field, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.close(dIndex); + layer.msg(res.msg, {icon: 1}); + $(".layui-laypage-btn")[0].click(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + return false; + }); + // 娓叉煋涓嬫媺鏍� + var insXmSel = xmSelect.render({ + el: '#tagSel', + height: '250px', + data: insTb.options.data, + initValue: mData ? [mData.tagId] : [], + model: {label: {type: 'text'}}, + prop: { + name: 'name', + value: 'id' + }, + radio: true, + clickClose: true, + tree: { + show: true, + indent: 15, + strict: false, + expandedKeys: true + } + }); + // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + } + }); + } + + // 妯℃澘閫夋嫨 + form.on('radio(selectTemplateRadio)', function (data) { + $('.template-preview').hide(); + $('#template-preview-'+data.value).show(); + }); + + // 寮�濮嬫墦鍗� + form.on('submit(doPrint)', function (data) { + var templateNo = data.field.selectTemplate; + $.ajax({ + url: baseUrl+"/mat/print/auth", + 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].matnr; + } else { + res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+res.data[i].matnr; + } + } + var tpl = templateDom.html(); + var template = Handlebars.compile(tpl); + var html = template(res); + var box = $("#box"); + box.html(html);box.show(); + box.print({mediaPrint:true}); + box.hide(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg) + } + } + }) + }); + + // 鎼滅储鏍忔悳绱簨浠� + 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: '#createTime\\$', + type: 'datetime' + }); + layDate.render({ + elem: '#updateTime\\$', + type: 'datetime' + }); + + +}); + +// excel瀵煎叆妯℃澘涓嬭浇 +function excelMouldDownload(){ + layer.load(1, {shade: [0.1,'#fff']}); + location.href = baseUrl + "/mat/excel/import/mould"; + layer.closeAll('loading'); +} + +// excel瀵煎叆 +function importExcel() { + $("#importExcel").trigger("click"); +} +function upload(obj){ + if(!obj.files) { + return; + } + var file = obj.files[0]; + admin.confirm('纭鍚屾 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) { + layer.load(1, {shade: [0.1,'#fff']}); + var url = baseUrl + "/mat/excel/import/auth"; + var form = new FormData(); + form.append("file", file); + xhr = new XMLHttpRequest(); + xhr.open("post", url, true); //post鏂瑰紡锛寀rl涓烘湇鍔″櫒璇锋眰鍦板潃锛宼rue 璇ュ弬鏁拌瀹氳姹傛槸鍚﹀紓姝ュ鐞嗐�� + xhr.setRequestHeader('token', localStorage.getItem('token')); + xhr.onload = uploadComplete; //璇锋眰瀹屾垚 + xhr.onerror = uploadFailed; //璇锋眰澶辫触 + xhr.onloadend = function () { // // 涓婁紶瀹屾垚閲嶇疆鏂囦欢娴� + layer.closeAll('loading'); + $("#importExcel").val(""); + }; + // xhr.upload.onprogress = progressFunction;//銆愪笂浼犺繘搴﹁皟鐢ㄦ柟娉曞疄鐜般�� + xhr.upload.onloadstart = function(){//涓婁紶寮�濮嬫墽琛屾柟娉� + ot = new Date().getTime(); //璁剧疆涓婁紶寮�濮嬫椂闂� + oloaded = 0;//璁剧疆涓婁紶寮�濮嬫椂锛屼互涓婁紶鐨勬枃浠跺ぇ灏忎负0 + }; + xhr.send(form); + }, function(index){ + $("#importExcel").val(""); + }); +} +function uploadComplete(evt) { + var res = JSON.parse(evt.target.responseText); + if(res.code === 200) { + layer.msg(res.msg, {icon: 1}); + loadTree(""); + } else { + layer.msg(res.msg, {icon: 2}); + } +} +function uploadFailed(evt) { + var res = JSON.parse(evt.target.responseText); + layer.msg(res.msg, {icon: 2}); +} + +// excel瀵煎嚭 +function exportExcel() { + +} + + +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 clearFormVal(el) { + $(':input', el) + .val('') + .removeAttr('checked') + .removeAttr('selected'); +} + +$('body').keydown(function () { + if (event.keyCode === 13) { + $("#search").click(); + } +}); diff --git a/src/main/webapp/static/js/pakStore/boxOut.js b/src/main/webapp/static/js/pakStore/boxOut.js new file mode 100644 index 0000000..9377099 --- /dev/null +++ b/src/main/webapp/static/js/pakStore/boxOut.js @@ -0,0 +1,180 @@ +var locDetlLayerIdx; +var locDetlData = []; +var admin; +function getCol() { + var cols = [ + // {field: 'count', align: 'center',title: '鍑哄簱鏁伴噺', edit:'text', width: 130, style:'color: blue;font-weight: bold'}, + {field: 'anfme', align: 'center',title: '鏁伴噺'} + ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'} + ,{field: 'batch', align: 'center',title: '鏈ㄧ灏哄'} + ,{field: 'memo', align: 'center',title: '鏈ㄧ澶囨敞'} + ]; + // cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}) + return cols; +} + +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).use(['table','laydate', 'form', 'admin'], function() { + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var form = layui.form; + admin = layui.admin; + + tableIns = table.render({ + elem: '#chooseData', + headers: {token: localStorage.getItem('token')}, + data: [], + even: true, + toolbar: '#toolbar', + cellMinWidth: 50, + limit: 500, + cols: [getCol()], + done: function(res, curr, count) { + limit(); + getOutBound(); + } + }); + + // 椤甸潰淇敼 + table.on('edit(chooseData)', function (obj) { + let index = obj.tr.attr("data-index"); + let data = locDetlData[index]; + let modify = true; + // if (obj.field === 'count'){ + // let vle = Number(obj.value); + // if (isNaN(vle)) { + // layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2}); + // modify = false; + // } else { + // if (vle <= 0) { + // layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2}); + // modify = false; + // } + // if (vle > Number(data.anfme)) { + // layer.msg("鍑哄簱鏁伴噺涓嶅緱澶т簬搴撳瓨鏁伴噺", {icon: 2}); + // modify = false; + // } + // } + // } + if (modify) { + data[obj.field] = obj.value; + } + tableIns.reload({data: locDetlData}); + }); + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + 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+"/plate/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,done:function (res) {limit();getOutBound();}}); + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }); + } + break; + } + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(chooseData)', function(obj){ + switch (obj.event) { + case 'remove': + let index = obj.tr.attr("data-index"); + locDetlData.splice(index, 1); + tableIns.reload({data: locDetlData}); + break; + } + }); + + // 鑾峰彇鍑哄簱鍙� + function getOutBound(){ + $.ajax({ + url: baseUrl+"/available/take/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: 'boxQuery.html', + success: function(layero, index){ + layer.close(loadIndex); + } + }); + }) + +}) + +// 娣诲姞琛ㄦ牸鏁版嵁 +function addTableData(data) { + let newData = []; + + for (let i = 0; i < data.length; i++) { + let item = data[i]; + let exist = locDetlData.some(old => + (old.locNo$ === item.locNo$ || old.locNo === item.locNo) + ); + + if (!exist) { + item.count = item.anfme; + newData.push(item); + } + } + + locDetlData = locDetlData.concat(newData); + console.log("浼犲叆琛ㄦ牸鏁版嵁闀垮害锛�", locDetlData.length, locDetlData); + tableIns.reload({data: locDetlData}); + layer.close(locDetlLayerIdx); +} + diff --git a/src/main/webapp/views/mat/boxMat.html b/src/main/webapp/views/mat/boxMat.html new file mode 100644 index 0000000..bb8b246 --- /dev/null +++ b/src/main/webapp/views/mat/boxMat.html @@ -0,0 +1,444 @@ +<!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%; + } + + .admin-form { + padding: 25px 30px 0 0 !important; + margin: 0 !important; + } + + /* ------------------------- 鎵撳嵃琛ㄦ牸 ----------------------- */ + .template-preview { + height: 200px; + display: inline-block; + } + .contain td { + border: 1px solid #000; + /*font-family: 榛戜綋;*/ + /*font-weight: bold;*/ + /*color: #000000;*/ + } + </style> +</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> + <!-- 鏍� --> + <div class="layui-form toolbar" id="organizationTree"></div> + </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="name" 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="memo" 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="specs" 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="mat" lay-filter="mat"></table> + </div> + </div> + </div> + </div> +</div> + +<script type="text/html" id="tagTpl"> + <span name="tagId" class="layui-badge layui-badge-gray">{{d.tagId$}}</span> +</script> + +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> +<!-- <button class="layui-btn layui-btn-sm" id="btn-print-batch" lay-event="btnPrintBatch">鎵归噺鎵撳嵃</button>--> + <button class="layui-btn layui-btn-sm layui-btn-normal" id="btn-add" lay-event="addData">鏂板</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> + <!-- 鍟嗗搧/鐗╂枡 鏁版嵁涓績 --> + <div class="dropdown-menu" style="float: right"> +<!-- <button class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm"> 鏁版嵁鍚屾 <i class="layui-icon layui-icon-drop"></i></button>--> + <ul class="dropdown-menu-nav dark"> + <div class="dropdown-anchor"></div> + <li class="title">1st menu</li> +<!-- <li><a onclick="excelMouldDownload()" style="font-size: 12px"><i class="layui-icon layui-icon-template-1"></i>妯℃澘涓嬭浇</a></li>--> +<!-- <li><a onclick="importExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-upload"></i>瀵煎叆 Excel</a></li>--> +<!-- <li style="display: none"><input id="importExcel" type="file" onchange="upload(this)" ></li>--> + <hr> + <li class="title">2nd menu</li> +<!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>瀵煎嚭 Excel</a></li>--> + </ul> + </div> + <!-- <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="operate"> + <a class="layui-btn layui-btn-xs btn-edit layui-btn-primary" lay-event="edit">淇敼</a> +<!-- <button class="layui-btn layui-btn-xs btn-print" lay-event="btnPrint">鎵撳嵃</button>--> +</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/jquery/jQuery.print.js"></script> +<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></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/mat/boxMat.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/tagTree.js" charset="utf-8"></script> + +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="detail" lay-filter="detail" class="layui-form admin-form"> + <input name="id" type="hidden"> + <input name="uuid" type="hidden"> + <input name="nodeId" type="hidden"> + <input name="tag_id" type="hidden"> + <input name="model" type="hidden"> + <input name="name" type="hidden"> + <input name="batch" type="hidden"> + <input name="docId" type="hidden"> + <input name="docNum" type="hidden"> + <input name="custName" type="hidden"> + <input name="itemNum" type="hidden"> + <input name="count" type="hidden"> + <input name="weight" type="hidden"> + <input name="status" type="hidden"> + <input name="createBy" type="hidden"> + <input name="updateTime$" type="hidden"> + <input name="updateBy" type="hidden"> + <div class="layui-row"> + + <div class="layui-col-md6"> + + <div class="layui-form-item"> + <label class="layui-form-label">鍒嗙被</label> + <div class="layui-input-block"> + <div id="tagSel" class="ew-xmselect-tree"></div> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label layui-form-required">鏈ㄧ璧勬枡</label> + <div class="layui-input-block"> + <input name="memo" placeholder="璇疯緭鍏ヨ祫鏂�" class="layui-input" lay-vertype="tips" lay-verify="required" required=""> + </div> + </div> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">閰嶇疆</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="specs" placeholder="璇疯緭鍏ラ厤缃�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">鎬婚噸閲�</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="weight" placeholder="璇疯緭鍏ユ�婚噸閲�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">鍗曠浣撶Н</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="volume" placeholder="璇疯緭鍏ュ崟绠变綋绉�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- </div>--> + +<!-- <div class="layui-col-md6">--> +<!-- <div class="layui-form-item">--> +<!-- <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="">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">瑙勬牸</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="specs" placeholder="璇疯緭鍏ヤ唬鐮�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">澶囨敞</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="memo" placeholder="璇疯緭鍏ュ娉�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">鍗曠姣涢噸</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="length" placeholder="璇疯緭鍏ュ崟绠辨瘺閲�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + +<!-- <div class="layui-form-item">--> +<!-- <label class="layui-form-label">鍗曠浣撶Н</label>--> +<!-- <div class="layui-input-block">--> +<!-- <input name="threeCode" placeholder="璇疯緭鍏ョ瀛愬昂瀵�" class="layui-input">--> +<!-- </div>--> +<!-- </div>--> + + </div> + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> + </form> +</script> + +<!--<!– 鎵撳嵃鎿嶄綔寮圭獥 –>--> +<!--<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="1" title="妯℃澘涓�" lay-filter="selectTemplateRadio" checked="">--> +<!-- <input type="radio" name="selectTemplate" value="2" title="妯℃澘浜�" lay-filter="selectTemplateRadio">--> +<!-- <input type="radio" name="selectTemplate" value="3" title="妯℃澘涓�" lay-filter="selectTemplateRadio">--> +<!-- </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">--> + +<!-- <!– 棰勮鍥� 1 –>--> +<!-- <div id="template-preview-1" class="template-preview" style="display: inline-block">--> +<!-- <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">--> +<!-- <tr style="height: 74px">--> +<!-- <td colspan="3" align="center" scope="col">鍟嗗搧缂栫爜</td>--> +<!-- <td class="barcode" colspan="9" align="center" scope="col">--> +<!-- <img class="template-code template-barcode" src="" width="90%;">--> +<!-- <div style="letter-spacing: 2px;margin-top: 1px; text-align: center;">--> +<!-- <span>xxxxxx</span>--> +<!-- </div>--> +<!-- </td>--> +<!-- </tr>--> +<!-- <tr style="height: 74px">--> +<!-- <td align="center" colspan="3">鍟嗗搧</td>--> +<!-- <td align="center" colspan="5">xxxxxx-xx/xx</td>--> +<!-- <td align="center" colspan="2">澶囨敞</td>--> +<!-- <td align="center" colspan="2">xx</td>--> +<!-- </tr>--> +<!-- </table>--> +<!-- </div>--> + +<!-- <!– 棰勮鍥� 2 –>--> +<!-- <div id="template-preview-2" class="template-preview" style="display: none">--> +<!-- <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">--> +<!-- <tr style="height: 30px">--> +<!-- <td align="center" width="20%">鍟嗗搧</td>--> +<!-- <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>--> +<!-- </tr>--> +<!-- <tr style="height: 30px">--> +<!-- <td align="center" width="20%">澶囨敞</td>--> +<!-- <td align="center" width="80%">xxxxxxxx</td>--> +<!-- </tr>--> +<!-- <tr style="height: 75px;">--> +<!-- <td align="center" colspan="2" width="100%" style="border: none">--> +<!-- <img class="template-code template-barcode" src="" width="80%">--> +<!-- <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">--> +<!-- <span>xxxxxx</span>--> +<!-- </div>--> +<!-- </td>--> +<!-- </tr>--> +<!-- </table>--> +<!-- </div>--> + +<!-- <!– 棰勮鍥� 3 –>--> +<!-- <div id="template-preview-3" class="template-preview" style="display: none">--> +<!-- <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">--> +<!-- <tr style="height: 74px">--> +<!-- <td align="center" scope="col" colspan="1">鍟嗗搧</td>--> +<!-- <td align="center" scope="col" colspan="1" style="">xxxxxx-xx/xx</td>--> +<!-- <td align="center" scope="col" colspan="2" rowspan="2">--> +<!-- <img class="template-code template-qrcode" src="" width="80%">--> +<!-- <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">--> +<!-- <span>xxxxxx</span>--> +<!-- </div>--> +<!-- </td>--> +<!-- </tr>--> +<!-- <tr style="height: 74px">--> +<!-- <td align="center" colspan="1">澶囨敞</td>--> +<!-- <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>--> +<!-- </tr>--> +<!-- </table>--> +<!-- </div>--> +<!-- </div>--> +<!-- </fieldset>--> + +<!-- <button class="layui-btn" id="doPrint" lay-submit lay-filter="doPrint" style="margin-top: 20px">纭畾</button>--> +<!-- </div>--> +<!--</div>--> + +<!--<div id="box" style="display: block"></div>--> + +<!-- 鍒濆鍖栨墦鍗版ā鏉跨殑鏉″舰鐮� --> +<script type="text/javascript"> + $('.template-barcode').attr("src", baseUrl+"/mac/code/auth?type=1¶m=123"); + $('.template-qrcode').attr("src", baseUrl+"/mac/code/auth?type=2¶m=123"); +</script> + +<!-- 妯℃澘寮曟搸 --> +<!-- 妯℃澘1 --> +<script type="text/template" id="templatePreview1" class="template-barcode"> + {{#each data}} + <table class="contain" width="280" style="overflow: hidden;font-size: small;table-layout: fixed;"> + <tr style="height: 74px"> + <td align="center" colspan="3" scope="col">鍟嗗搧缂栫爜</td> + <td align="center" class="barcode" colspan="9" scope="col"> + <img class="template-code" src="{{this.barcodeUrl}}" width="90%"> + <div style="letter-spacing: 2px;margin-top: 1px; text-align: center"> + <span>{{this.matnr}}</span> + </div> + </td> + </tr> + <tr style="height: 74px"> + <td align="center" colspan="3">鍟嗗搧</td> + <td align="center" colspan="5" style="overflow: hidden; white-space: nowrap;text-overflow: ellipsis;">{{this.maktx}}</td> + <td align="center" colspan="2">澶囨敞</td> + <td align="center" colspan="2">{{this.memo}}</td> + </tr> + </table> + {{/each}} +</script> +<!-- 妯℃澘2 --> +<script type="text/template" id="templatePreview2" class="template-barcode"> + {{#each data}} + <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;"> + <tr style="height: 35px"> + <td align="center" width="20%">鍟嗗搧</td> + <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">{{this.maktx}}</td> + </tr> + <tr style="height: 35px"> + <td align="center" width="20%">澶囨敞</td> + <td align="center" width="80%">{{this.memo}}</td> + </tr> + <tr style="height: 79px;"> + <td align="center" colspan="2" width="100%" style="border: none"> + <img class="template-code" src="{{this.barcodeUrl}}" width="80%"> + <div style="letter-spacing: 2px;margin-top: 1px; text-align: center"> + <span>{{this.matnr}}</span> + </div> + </td> + </tr> + </table> + {{/each}} +</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;"> + <tr style="height: 74px" > + <td align="center" scope="col" colspan="1">鍟嗗搧</td> + <td align="center" scope="col" colspan="1" style=" + display: inline-block; + line-height: 20px; + vertical-align: middle; + border: none; + border-top: 1px solid #000; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + "> + {{this.maktx}} + </td> + <td align="center" scope="col" colspan="2" rowspan="2"> + <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="80%"> + <div style="letter-spacing: 1px;margin-top: 1px; text-align: center"> + <span>{{this.matnr}}</span> + </div> + </td> + </tr> + <tr style="height: 74px"> + <td align="center" colspan="1">澶囨敞</td> + <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">{{this.memo}}</td> + </tr> + </table> + {{/each}} +</script> + +</body> +</html> + diff --git a/src/main/webapp/views/pakStore/boxOut.html b/src/main/webapp/views/pakStore/boxOut.html new file mode 100644 index 0000000..1ea8fbf --- /dev/null +++ b/src/main/webapp/views/pakStore/boxOut.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); + padding-bottom: 20px; + } + + #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; + display: none; + } + + /*----------------------------------*/ + .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; + } + </style> +</head> +<body> + +<!-- 鍔熻兘鍖� --> +<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">鍑哄簱鍙o細</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/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/jquery/jQuery.print.js"></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/boxOut.js" charset="utf-8"></script> + +<script type="text/template" id="takeSiteSelectTemplate"> + {{#each data}} + <option value="{{siteId}}">{{desc}}</option> + {{/each}} +</script> +</body> +</html> + diff --git a/src/main/webapp/views/pakStore/boxQuery.html b/src/main/webapp/views/pakStore/boxQuery.html new file mode 100644 index 0000000..b34da5a --- /dev/null +++ b/src/main/webapp/views/pakStore/boxQuery.html @@ -0,0 +1,243 @@ +<!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 { + } + .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> +<div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"> + <span style="font-size: large; font-weight: bold">鎻愬彇搴撳瓨鍟嗗搧</span> +</div> +<!-- 鎼滅储鏍� --> +<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-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="batch" placeholder="灏哄" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="memo" 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" style="display: inline-block"> + <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</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() { + var cols = [ + {type: 'checkbox', merge: ['locNo']} + ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�', merge: true, style: 'font-weight: bold'} + ,{field: 'matnr', align: 'center',title: '鐗╂枡绫诲瀷',style: 'font-weight: bold'} + ,{field: 'batch', align: 'center',title: '鏈ㄧ灏哄',style: 'font-weight: bold'} + ,{field: 'memo', align: 'center',title: '鏈ㄧ澶囨敞',style: 'font-weight: bold'} + ,{field: 'anfme', align: 'center',title: '鏁伴噺',style: 'font-weight: bold'} + + ]; + 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; + var dataSource = [] + + // 鏁版嵁娓叉煋 + locDetlTableIns = table.render({ + elem: '#stockOut', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/stock/boxOut/list/auth', + page: true, + limits: [16, 30, 50, 100, 200, 500], + limit: 16, + even: true, + toolbar: '#toolbar', + cellMinWidth: 50, + cols: [getCol()], + request: { + pageName: 'curr', + pageSize: 'limit', + }, + parseData: function (res) { + dataSource = res.data.records + 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; + var dataList = [] + for (var j = 0; j < data.length; j++) { + var locno = data[j].locNo + for(var i = 0;i < dataSource.length; i++) { + if (dataSource[i].locNo === locno) { + dataList.push(dataSource[i]) + } + } + } + + switch(obj.event) { + case 'confirm': + if (data.length === 0){ + layer.msg("璇烽�夋嫨鏁版嵁"); + return; + } + + const reqDate = [...new Set(dataList.map(obj => obj.locNo))] + $.ajax({ + url: baseUrl+"/getBoxLocDateByLocNo", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify(reqDate), + contentType:'application/json;charset=UTF-8', + dataType:'json', + method: 'POST', + success: function (res) { + if (res.code === 200){ + console.log(res) + parent.addTableData(res.data); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }); + 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/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html index 12616cf..6e7e5b1 100644 --- a/src/main/webapp/views/pakStore/locDetlQuery.html +++ b/src/main/webapp/views/pakStore/locDetlQuery.html @@ -77,6 +77,21 @@ <input class="layui-input" type="text" name="unit" 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="batch" placeholder="灏哄" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="memo" placeholder="澶囨敞" autocomplete="off"> + </div> + </div> <!-- 鏃ユ湡鑼冨洿 --> <div class="layui-inline" style="width: 300px"> <div class="layui-input-inline"> -- Gitblit v1.9.1