From f915165192845acd12aca37fecec6976eb1f870c Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 12 六月 2025 11:02:57 +0800 Subject: [PATCH] 转库出库初步完成,生成单据也成功了;显示需要添加菜单及其权限 --- src/main/java/com/zy/asrs/service/WorkService.java | 2 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 174 ++++++++++- src/main/webapp/static/js/pakStore/stockOutZKCK.js | 183 ++++++++++++ src/main/webapp/views/pakStore/stockOutZKCK.html | 145 +++++++++ src/main/java/com/zy/asrs/controller/WorkController.java | 30 + src/main/webapp/static/js/pakStore/stockOut.js | 1 src/main/webapp/views/order/order.html | 6 /dev/null | 160 ---------- src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java | 24 src/main/java/com/zy/asrs/controller/StoreTypeController.java | 130 +++++-- src/main/webapp/views/pakStore/stockOut.html | 9 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 10 src/main/java/com/zy/asrs/entity/param/StockOutParam.java | 3 13 files changed, 625 insertions(+), 252 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/StoreController.java b/src/main/java/com/zy/asrs/controller/StoreController.java deleted file mode 100644 index 6355af4..0000000 --- a/src/main/java/com/zy/asrs/controller/StoreController.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.zy.asrs.controller; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; -import com.baomidou.mybatisplus.plugins.Page; -import com.core.annotations.ManagerAuth; -import com.core.common.BaseRes; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.common.R; -import com.zy.asrs.entity.BasWrkIotype; -import com.zy.asrs.entity.StoreType; -import com.zy.asrs.service.StoreTypeService; -import com.zy.common.web.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.*; - -@RestController -public class StoreController extends BaseController { - - @Autowired - private StoreTypeService storeTypeService; - - @RequestMapping(value = "/store/{id}/auth") - @ManagerAuth - public R get(@PathVariable("id") Long id) { - return R.ok(storeTypeService.selectById(String.valueOf(id))); - } - - @RequestMapping(value = "/store/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<StoreType> wrapper = new EntityWrapper<>(); - convert(param, wrapper); - if (!Cools.isEmpty(orderByField)) { - wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); - } - return R.ok(storeTypeService.selectPage(new Page<>(curr, limit), wrapper)); - } - - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { - for (Map.Entry<String, Object> entry : map.entrySet()) { - String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)) { - String[] dates = val.split(RANGE_TIME_LINK); - wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); - wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); - } else { - wrapper.like(entry.getKey(), val); - } - } - } - - @RequestMapping(value = "/store/edit/auth") - @ManagerAuth - public R edit(@RequestParam(required = false) String param) { - if (Cools.isEmpty(param)) { - return R.error(); - } - StoreType storeType = storeTypeService.selectById(param); - storeType.setOwn(1); - storeTypeService.updateById(storeType); - return R.ok(); - } - - @RequestMapping(value = "/store/edit2/auth") - @ManagerAuth - public R edit2(@RequestParam(required = false) String param) { - if (Cools.isEmpty(param)) { - return R.error(); - } - StoreType storeType = storeTypeService.selectById(param); - storeType.setOwn(0); - storeTypeService.updateById(storeType); - return R.ok(); - } - - @RequestMapping(value = "/store/add/auth") - @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬫坊鍔�") - public R add(StoreType basWrkIotype) { - basWrkIotype.setUpdateBy(getUserId()); - basWrkIotype.setUpdateTime(new Date()); - basWrkIotype.setCreateBy(getUserId()); - basWrkIotype.setCreateTime(new Date()); - storeTypeService.insert(basWrkIotype); - return R.ok(); - } - - @RequestMapping(value = "/store/update/auth") - @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬩慨鏀�") - public R update(StoreType basWrkIotype) { - if (Cools.isEmpty(basWrkIotype) || null == basWrkIotype.getStoreId()) { - return R.error(); - } - basWrkIotype.setUpdateBy(getUserId()); - basWrkIotype.setUpdateTime(new Date()); - storeTypeService.updateById(basWrkIotype); - return R.ok(); - } - - @RequestMapping(value = "/store/delete/auth") - @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪垹闄�") - public R delete(@RequestParam String param) { - List<StoreType> list = JSONArray.parseArray(param, StoreType.class); - if (Cools.isEmpty(list)) { - return R.error(); - } - for (StoreType entity : list) { - storeTypeService.delete(new EntityWrapper<>(entity)); - } - return R.ok(); - } - - @RequestMapping(value = "/store/export/auth") - @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪鍑�") - public R export(@RequestBody JSONObject param) { - List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); - EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); - Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkIotype")); - convert(map, wrapper); - List<StoreType> list = storeTypeService.selectList(wrapper); - return R.ok(exportSupport(list, fields)); - } - - @RequestMapping(value = "/store/auth") - @ManagerAuth - public R query(String condition) { - EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); - wrapper.like("io_desc", condition); - Page<StoreType> page = storeTypeService.selectPage(new Page<>(0, 20), wrapper); - List<Map<String, Object>> result = new ArrayList<>(); - for (StoreType basWrkIotype : page.getRecords()) { - Map<String, Object> map = new HashMap<>(); - map.put("id", basWrkIotype.getStoreId()); - map.put("value", basWrkIotype.getStoreName()); - result.add(map); - } - return R.ok(result); - } - - @RequestMapping(value = "/store/check/column/auth") - @ManagerAuth - public R query(@RequestBody JSONObject param) { - Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); - if (null != storeTypeService.selectOne(wrapper)) { - return R.parse(BaseRes.REPEAT).add(getComment(BasWrkIotype.class, String.valueOf(param.get("key")))); - } - return R.ok(); - } - -} diff --git a/src/main/java/com/zy/asrs/controller/StoreTypeController.java b/src/main/java/com/zy/asrs/controller/StoreTypeController.java index ab36b61..bbea041 100644 --- a/src/main/java/com/zy/asrs/controller/StoreTypeController.java +++ b/src/main/java/com/zy/asrs/controller/StoreTypeController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -9,7 +10,7 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; -import com.zy.asrs.entity.DocType; +import com.zy.asrs.entity.BasWrkIotype; import com.zy.asrs.entity.StoreType; import com.zy.asrs.service.StoreTypeService; import com.zy.common.web.BaseController; @@ -24,21 +25,21 @@ @Autowired private StoreTypeService storeTypeService; - @RequestMapping(value = "/storeType/{id}/auth") + @RequestMapping(value = "/store/{id}/auth") @ManagerAuth - public R get(@PathVariable("id") String id) { + public R get(@PathVariable("id") Long id) { return R.ok(storeTypeService.selectById(String.valueOf(id))); } - @RequestMapping(value = "/storeType/list/auth") + @RequestMapping(value = "/store/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1") Integer curr, @RequestParam(defaultValue = "10") Integer limit, @RequestParam(required = false) String orderByField, @RequestParam(required = false) String orderByType, @RequestParam Map<String, Object> param) { - EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); excludeTrash(param); + EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); convert(param, wrapper); if (!Cools.isEmpty(orderByField)) { wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); @@ -59,53 +60,107 @@ } } - @RequestMapping(value = "/storeType/add/auth") + @RequestMapping(value = "/store/edit/auth") @ManagerAuth - public R add(StoreType docType) { - docType.setStatus(1); - docType.setCreateBy(getUserId()); - docType.setCreateTime(new Date()); - docType.setUpdateBy(getUserId()); - docType.setUpdateTime(new Date()); - storeTypeService.insert(docType); - return R.ok(); - } - - @RequestMapping(value = "/storeType/update/auth") - @ManagerAuth - public R update(StoreType docType) { - if (Cools.isEmpty(docType) || null == docType.getStoreId()) { + public R edit(@RequestParam(required = false) String param) { + if (Cools.isEmpty(param)) { return R.error(); } - docType.setUpdateBy(getUserId()); - docType.setUpdateTime(new Date()); - storeTypeService.updateById(docType); + StoreType storeType = storeTypeService.selectById(param); + storeType.setOwn(1); + storeTypeService.updateById(storeType); return R.ok(); } - @RequestMapping(value = "/storeType/delete/auth") + @RequestMapping(value = "/store/edit2/auth") @ManagerAuth - public R delete(@RequestParam(value = "ids[]") Long[] ids) { - for (Long id : ids) { - storeTypeService.deleteById(id); + public R edit2(@RequestParam(required = false) String param) { + if (Cools.isEmpty(param)) { + return R.error(); + } + StoreType storeType = storeTypeService.selectById(param); + storeType.setOwn(0); + storeTypeService.updateById(storeType); + return R.ok(); + } + + @RequestMapping(value = "/store/add/auth") + @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬫坊鍔�") + public R add(StoreType basWrkIotype) { + basWrkIotype.setUpdateBy(getUserId()); + basWrkIotype.setUpdateTime(new Date()); + basWrkIotype.setCreateBy(getUserId()); + basWrkIotype.setCreateTime(new Date()); + storeTypeService.insert(basWrkIotype); + return R.ok(); + } + + @RequestMapping(value = "/store/update/auth") + @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬩慨鏀�") + public R update(StoreType basWrkIotype) { + if (Cools.isEmpty(basWrkIotype) || null == basWrkIotype.getStoreId()) { + return R.error(); + } + basWrkIotype.setUpdateBy(getUserId()); + basWrkIotype.setUpdateTime(new Date()); + storeTypeService.updateById(basWrkIotype); + return R.ok(); + } + + @RequestMapping(value = "/store/delete/auth") + @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪垹闄�") + public R delete(@RequestParam String param) { + List<StoreType> list = JSONArray.parseArray(param, StoreType.class); + if (Cools.isEmpty(list)) { + return R.error(); + } + for (StoreType entity : list) { + storeTypeService.delete(new EntityWrapper<>(entity)); } return R.ok(); } - @RequestMapping(value = "/storeType/export/auth") - @ManagerAuth + @RequestMapping(value = "/store/export/auth") + @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪鍑�") public R export(@RequestBody JSONObject param) { - EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); - Map<String, Object> map = excludeTrash(param.getJSONObject("docType")); + EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); + Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkIotype")); convert(map, wrapper); List<StoreType> list = storeTypeService.selectList(wrapper); return R.ok(exportSupport(list, fields)); } - @RequestMapping(value = "/storeTypeQuery/auth") + @RequestMapping(value = "/store/auth") @ManagerAuth public R query(String condition) { + EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); + wrapper.like("io_desc", condition); + Page<StoreType> page = storeTypeService.selectPage(new Page<>(0, 20), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (StoreType basWrkIotype : page.getRecords()) { + Map<String, Object> map = new HashMap<>(); + map.put("id", basWrkIotype.getStoreId()); + map.put("value", basWrkIotype.getStoreName()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/store/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != storeTypeService.selectOne(wrapper)) { + return R.parse(BaseRes.REPEAT).add(getComment(BasWrkIotype.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + + + @RequestMapping(value = "/storeTypeQuery/auth") + @ManagerAuth + public R query3(String condition) { EntityWrapper<StoreType> wrapper = new EntityWrapper<>(); wrapper.like("store_name", condition); wrapper.eq("status", 1); @@ -136,15 +191,4 @@ } return R.ok(result); } - - @RequestMapping(value = "/storeType/check/column/auth") - @ManagerAuth - public R query(@RequestBody JSONObject param) { - Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); - if (null != storeTypeService.selectOne(wrapper)) { - return R.parse(BaseRes.REPEAT).add(getComment(DocType.class, String.valueOf(param.get("key")))); - } - 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 6de7c6e..e55cfd7 100644 --- a/src/main/java/com/zy/asrs/controller/WorkController.java +++ b/src/main/java/com/zy/asrs/controller/WorkController.java @@ -37,19 +37,19 @@ @RequestMapping("/available/put/site") @ManagerAuth() - public R availablePutSite(){ + public R availablePutSite() { return R.ok().add(basDevpService.getAvailableInSite()); } @RequestMapping("/available/empty/put/site") @ManagerAuth() - public R availableEmptyPutSite(){ + public R availableEmptyPutSite() { return R.ok().add(basDevpService.getAvailableEmptyInSite()); } @RequestMapping("/available/take/site") @ManagerAuth() - public R availableTakeSite(){ + public R availableTakeSite() { List<Map<String, Object>> result = new ArrayList<>(); List<Integer> outSite = basDevpService.getAvailableOutSite(101); for (Integer siteId : outSite) { @@ -77,13 +77,13 @@ @RequestMapping("/available/take/check/site") @ManagerAuth() - public R availableTakeCheckSite(){ + public R availableTakeCheckSite() { return R.ok().add(basDevpService.getAvailableOutSite(107)); } @RequestMapping("/available/empty/take/site") @ManagerAuth() - public R availableEmptyTakeSite(){ + public R availableEmptyTakeSite() { return R.ok().add(basDevpService.getAvailableEmptyOutSite()); } @@ -93,14 +93,24 @@ try { String locNo = workService.startupFullPutStore(fullStoreParam, getUserId()); return R.ok("鍏ュ簱鍚姩鎴愬姛").add(locNo); - } catch (Exception e){ - return R.error("鍏ュ簱鍚姩澶辫触==>"+e.getMessage()); + } catch (Exception e) { + return R.error("鍏ュ簱鍚姩澶辫触==>" + e.getMessage()); } } @RequestMapping("/plate/out/start") @ManagerAuth(memo = "鍑哄簱浣滀笟") public R fullStoreTakeStart(@RequestBody StockOutParam param) { + workService.startupFullTakeStore(param, getUserId()); + return R.ok("鍑哄簱鍚姩鎴愬姛"); + } + + @RequestMapping("/plate/out/start/v2") + @ManagerAuth(memo = "鍑哄簱浣滀笟2") + public R fullStoreTakeStartV2(@RequestBody StockOutParam param) { + if (Cools.isEmpty(param.getItemId())) { + return R.error("杞叆浠撳簱涓嶈兘涓虹┖"); + } workService.startupFullTakeStore(param, getUserId()); return R.ok("鍑哄簱鍚姩鎴愬姛"); } @@ -136,10 +146,10 @@ @RequestMapping("/mat/turn/over/out/start") @ManagerAuth(memo = "鍝佸彿绉讳氦") public R turnMatLocDetl(@RequestBody EmptyPlateOutParam param) { - if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(),param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(), param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())) { return R.error("鍙傛暟涓虹┖"); } - if (param.getLocDetls().size()>1){ + if (param.getLocDetls().size() > 1) { return R.error("璇峰崟鏉℃暟鎹慨鏀癸紝璋ㄦ厧鎿嶄綔锛�"); } workService.turnMatLocDetl(param, getUserId()); @@ -156,7 +166,7 @@ @RequestMapping("/hand/control/wrkMast") @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�") public R handControlWrkMast(@RequestParam String workNo, - @RequestParam Integer type){ + @RequestParam Integer type) { if (type == 1) { workService.completeWrkMast(workNo, getUserId()); return R.ok("宸ヤ綔妗e凡瀹屾垚"); diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java index baa0a71..2de9baa 100644 --- a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java +++ b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java @@ -16,6 +16,9 @@ private Integer outSite; // + private String itemId; + + // private String checkId; // 鐗╂枡缂栧彿闆嗗悎 diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java index 0ebeebc..148b496 100644 --- a/src/main/java/com/zy/asrs/service/WorkService.java +++ b/src/main/java/com/zy/asrs/service/WorkService.java @@ -38,7 +38,7 @@ * @param locDetls 寰呭嚭搴撶墿鏂� * @param ioType 鍏ュ嚭搴撶被鍨� */ - void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId,String checkOrderNo); + void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId,String checkOrderNo,String itemId); void stockOut(BasDevp staNo, TaskDto taskDto, Long userId); diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java index 63e04d5..221dee2 100644 --- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java @@ -114,17 +114,19 @@ } break; case "閲囪喘鍒拌揣": - process1 = processCGDH(orderDetls); - List<Object> cg = new ArrayList<>(); - cg.add(process1); - //鍙戦�佽姹� - response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg)); - if (!Cools.isEmpty(response) && response.isSuccess()) { - log.info("閲囪喘鍒拌揣response:{}", response); - step = 10; - } else { - remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); - } + //涓嶉渶瑕佷笂鎶ヤ簡 + step = 10; +// process1 = processCGDH(orderDetls); +// List<Object> cg = new ArrayList<>(); +// cg.add(process1); +// //鍙戦�佽姹� +// response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg)); +// if (!Cools.isEmpty(response) && response.isSuccess()) { +// log.info("閲囪喘鍒拌揣response:{}", response); +// step = 10; +// } else { +// remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100); +// } break; case "杞簱-鍑哄簱": if (step == 1) { 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 93c21e4..fb4a88e 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -189,6 +189,9 @@ public void startupFullTakeStore(StockOutParam param, Long userId) { // 鐩爣绔欑偣鐘舵�佹娴� BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); + if (Cools.isEmpty(param.getItemId())) { + throw new CoolException("鎵�鍏ヤ粨搴撲笉鑳戒负绌�"); + } // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { @@ -208,7 +211,7 @@ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 - stockOut(staNo, locDetlDtos, null, userId, null); + stockOut(staNo, locDetlDtos, null, userId, null, param.getItemId()); } else { throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); } @@ -297,7 +300,7 @@ @Override @Transactional - public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo) { + public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo, String itemId) { Date now = new Date(); // 鍚堝苟鍚岀被椤� Set<String> locNos = new HashSet<>(); @@ -369,6 +372,7 @@ wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); + wrkMast.setPacked(itemId); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo()); } @@ -740,7 +744,7 @@ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); if (locMast.getLocSts().equals("F")) { // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 - stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId()); + stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null); } else { throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); } 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 6eaf9a2..aaa1f36 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; +import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; @@ -42,6 +45,13 @@ private OrderDetlPakoutService orderDetlPakoutService; @Autowired private OrderService orderService; + @Autowired + private StoreTypeService storeTypeService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private DocTypeService docTypeService; + public ReturnT<String> start(WrkMast wrkMast) { // 4.鍏ュ簱瀹屾垚 @@ -204,6 +214,66 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } + + + + // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴� + StoreType storeType = null; + Order order = null; + if (!Cools.isEmpty(wrkMast.getPacked())) { + storeType = storeTypeService.selectById(wrkMast.getPacked()); + if (null != storeType) { + DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱")); + String convert = DateUtils.convert(now, DateUtils.yyyyMMdd); + order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + docType.getDocId(), // 鍗曟嵁绫诲瀷 + storeType.getStoreId(), // 椤圭洰缂栧彿 + storeType.getStoreName(), // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + wrkMast.getAppeUser$(), // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 4, // 鐘舵�� + wrkMast.getAppeUser(), // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + wrkMast.getAppeUser(), // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null, // 澶囨敞 + docType.getPakin() == 1 ? 1 : 2 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); + } + } + + } + + + + + + for (WrkDetl wrkDetl : wrkDetls53) { LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); @@ -443,30 +513,98 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); } - for (WrkDetl wrkDetl : wrkDetls101) { - // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 - //addOrderDetlQty(wrkMast, wrkDetl); - OrderDetlPakout orderDetlPakout; - if (!Cools.isEmpty(wrkDetl.getThreeCode())) { - orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode())); - } else { - orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); - if (orderDetlPakout == null) { - orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); + // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴� + StoreType storeType = null; + Order order = null; + if (!Cools.isEmpty(wrkMast.getPacked())) { + storeType = storeTypeService.selectById(wrkMast.getPacked()); + if (null != storeType) { + DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱")); + String convert = DateUtils.convert(now, DateUtils.yyyyMMdd); + order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + docType.getDocId(), // 鍗曟嵁绫诲瀷 + storeType.getStoreId(), // 椤圭洰缂栧彿 + storeType.getStoreName(), // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + wrkMast.getAppeUser$(), // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 4, // 鐘舵�� + wrkMast.getAppeUser(), // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + wrkMast.getAppeUser(), // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null, // 澶囨敞 + docType.getPakin() == 1 ? 1 : 2 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); } } - try { - if (!Cools.isEmpty(orderDetlPakout)) { - if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) { -// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", -// wrkMast.getWrkNo(), wrkMast.getLocNo()); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + for (WrkDetl wrkDetl : wrkDetls101) { + if (storeType != null) { + OrderDetl orderDetl = new OrderDetl(); + orderDetl.sync(wrkDetl); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(order.getCreateBy()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(order.getCreateBy()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(wrkDetl.getAnfme()); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } else { + // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 + //addOrderDetlQty(wrkMast, wrkDetl); + OrderDetlPakout orderDetlPakout; + if (!Cools.isEmpty(wrkDetl.getThreeCode())) { + orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode())); + } else { + orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); + if (orderDetlPakout == null) { + orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); } } - } catch (Exception ignore) { + + try { + if (!Cools.isEmpty(orderDetlPakout)) { + if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) { +// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", +// wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + } + } catch (Exception ignore) { + } } + } // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁� if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js index d9b2580..333e006 100644 --- a/src/main/webapp/static/js/pakStore/stockOut.js +++ b/src/main/webapp/static/js/pakStore/stockOut.js @@ -71,6 +71,7 @@ layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2}); } else { var staNo = $("#staNoSelect").val(); + var itemId = $("#itemId").val(); if (staNo === "" || staNo === null){ layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2}); return; diff --git a/src/main/webapp/static/js/pakStore/stockOutZKCK.js b/src/main/webapp/static/js/pakStore/stockOutZKCK.js new file mode 100644 index 0000000..75fb7a1 --- /dev/null +++ b/src/main/webapp/static/js/pakStore/stockOutZKCK.js @@ -0,0 +1,183 @@ +var locDetlLayerIdx; +var locDetlData = []; +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: '搴撲綅鍙�'} + ]; + arrRemove(detlCols, 'field', 'anfme'); + cols.push.apply(cols, detlCols); + 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; + var 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(); + var itemId = $("#itemId").val(); + if (staNo === "" || staNo === null){ + layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2}); + return; + } + if (itemId === "" || itemId === null){ + layer.msg("璇烽�夋嫨鍏ュ簱浠撳簱", {icon: 2}); + return; + } + let param = { + outSite: staNo, + itemId: itemId, + locDetls: locDetlData + } + $.ajax({ + url: baseUrl+"/plate/out/start/v2", + 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: 'locDetlQuery.html', + success: function(layero, index){ + layer.close(loadIndex); + } + }); + }) + +}) + +// 娣诲姞琛ㄦ牸鏁版嵁 +function addTableData(data) { + for (var i=0;i<data.length;i++){ + let pass = false; + for (var 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); +} diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html index 88ea115..aaa9ffe 100644 --- a/src/main/webapp/views/order/order.html +++ b/src/main/webapp/views/order/order.html @@ -163,8 +163,8 @@ <div class="layui-form-item"> <label class="layui-form-label">鍑哄簱浠撳簱锛�</label> <div class="layui-input-block cool-auto-complete"> - <input class="layui-input" name="defNumber" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none"> - <input id="cstmr" name="cstmr" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <input class="layui-input" name="defNumber" placeholder="璇疯緭鍏ュ嚭搴撲粨搴�" style="display: none"> + <input id="cstmr" name="cstmr" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ嚭搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="storeTypeQuery2BystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="storeTypeQuery2BystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> @@ -176,7 +176,7 @@ <label class="layui-form-label">鍏ュ簱浠撳簱锛�</label> <div class="layui-input-block cool-auto-complete"> <input class="layui-input" name="itemId" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none"> - <input id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <input id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> <div class="cool-auto-complete-window"> <input class="cool-auto-complete-window-input" data-key="storeTypeQueryBystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))"> <select class="cool-auto-complete-window-select" data-key="storeTypeQueryBystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html index 3e02f19..1906e66 100644 --- a/src/main/webapp/views/pakStore/stockOut.html +++ b/src/main/webapp/views/pakStore/stockOut.html @@ -30,6 +30,7 @@ width: 100px; font-size: 13px; } + .layui-btn-container .layui-form-select { display: inline-block; width: 150px; @@ -94,15 +95,17 @@ <!-- 澶撮儴 --> <script type="text/html" id="toolbar"> <div class="layui-form"> - <div class="layui-btn-container"> + <div class=" layui-inline 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> + + + <!-- 2.鍚姩鍑哄簱 --> + <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button> </div> </script> diff --git a/src/main/webapp/views/pakStore/stockOutZKCK.html b/src/main/webapp/views/pakStore/stockOutZKCK.html new file mode 100644 index 0000000..8a0231b --- /dev/null +++ b/src/main/webapp/views/pakStore/stockOutZKCK.html @@ -0,0 +1,145 @@ +<!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-inline layui-btn-container"> + <!-- 1.閫夋嫨鍑哄簱鍙� --> + <span id="staNoSpan">鍑哄簱鍙o細</span> + <select id="staNoSelect" lay-verify="required"> + <option value="">璇烽�夋嫨绔欑偣</option> + </select> + </div> + + <div class="layui-inline"> + <label style="width: 100px" class="layui-form-label">鍏ュ簱浠撳簱锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="itemId" id="itemId" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none"> + <input style="width: 200px" id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="storeTypeQueryBystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="storeTypeQueryBystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <!-- 2.鍚姩鍑哄簱 --> + <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button> + </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/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/stockOutZKCK.js" charset="utf-8"></script> + +<script type="text/template" id="takeSiteSelectTemplate"> + {{#each data}} + <option value="{{siteId}}">{{desc}}</option> + {{/each}} +</script> +</body> +</html> + -- Gitblit v1.9.1