From e6ec6cd0e0fab11bf79f052be352a66db2dd51d3 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期二, 26 十一月 2024 13:18:54 +0800 Subject: [PATCH] 项目搭建完成 --- src/main/resources/mapper/LocMastMapper.xml | 3 src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 2 src/main/java/com/zy/common/web/WcsController.java | 23 pom.xml | 2 src/main/java/com/zy/asrs/controller/WorkController.java | 14 src/main/webapp/static/js/nodeLoc/nodeLoc.js | 490 ++++++++++++++++++++++++++++ src/main/webapp/views/saasLog/saasLog.html | 9 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 21 src/main/webapp/views/index.html | 2 src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 9 src/main/webapp/views/nodeLoc/nodeLoc.html | 2 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 36 + src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java | 20 src/main/webapp/static/js/common.js | 2 src/main/webapp/static/js/nodeLoc/nodeLocTree.js | 86 +++++ src/main/java/com/zy/common/service/CommonService.java | 80 ++++ src/main/java/com/zy/asrs/service/MobileService.java | 4 src/main/java/com/zy/asrs/utils/SaasUtils.java | 5 src/main/java/com/zy/asrs/service/WorkService.java | 4 src/main/webapp/views/report/locDetl.html | 2 src/main/java/com/zy/asrs/controller/LocDetlController.java | 18 src/main/resources/mapper/WrkMastMapper.xml | 2 src/main/webapp/static/js/manLocDetl/manLocDetl.js | 8 src/main/java/com/zy/asrs/controller/MobileController.java | 7 src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | 10 src/main/java/com/zy/common/model/LocTypeDto.java | 16 src/main/resources/mapper/ManLocDetlMapper.xml | 33 + /dev/null | 0 src/main/java/com/zy/asrs/controller/NodeController.java | 9 src/main/java/com/zy/asrs/entity/LocDetl.java | 2 src/main/resources/license.lic | 0 src/main/resources/mapper/BasDevpMapper.xml | 2 src/main/webapp/views/login.html | 2 src/main/resources/application.yml | 10 src/main/webapp/static/image/logo.png | 0 src/main/java/com/zy/asrs/controller/ReportQueryController.java | 79 ++++ 36 files changed, 914 insertions(+), 100 deletions(-) diff --git a/license.lic b/license.lic deleted file mode 100644 index 002dd39..0000000 --- a/license.lic +++ /dev/null Binary files differ diff --git a/pom.xml b/pom.xml index 6151db3..f179871 100644 --- a/pom.xml +++ b/pom.xml @@ -115,7 +115,7 @@ </dependencies> <build> - <finalName>wms</finalName> + <finalName>jsjwms</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java index 6eba1f6..6d1dd99 100644 --- a/src/main/java/com/zy/asrs/controller/LocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java @@ -13,16 +13,16 @@ import com.core.common.DateUtils; import com.core.common.R; import com.zy.asrs.entity.LocDetl; -import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.Mat; import com.zy.asrs.mapper.LocDetlMapper; +import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.LocDetlService; -import com.zy.asrs.service.ManLocDetlService; import com.zy.asrs.service.MatService; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; @@ -38,6 +38,9 @@ private LocDetlMapper locDetlMapper; @Autowired private MatService matService; + + @Resource + private ManLocDetlMapper manLocDetlMapper; @RequestMapping(value = "/locDetl/update") public R update1() { @@ -98,6 +101,17 @@ @RequestParam(required = false)String orderByType, @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ + String locNo = (String) param.get("loc_no"); + if (!Cools.isEmpty(locNo)) { + // 鍒ゆ柇鏄惁鏄钩搴撳湪搴撳簱瀛� + if (locNo.startsWith("09") || locNo.startsWith("10")) { + List<LocDetl> locDetls = manLocDetlMapper.selectLocDetlByLocNo(locNo); + Page<LocDetl> page = new Page<>(); + page.setRecords(locDetls); + page.setTotal(locDetls.size()); + return R.ok(page); + } + } // String row = ""; EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); // if (param.get("row") != null) { diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 639e1d4..88f3b53 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; @@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.*; import java.util.*; -import java.util.List; /** * 绉诲姩绔帴鍙f帶鍒跺櫒 @@ -63,14 +61,15 @@ @RequestMapping("/mat/onSale/auth") @ManagerAuth public R matOnSale(@RequestBody CombParam combParam){ - mobileService.onSale(combParam); + mobileService.onSale(combParam, getUserId()); return R.ok("涓婃灦鎴愬姛"); } + // 鍟嗗搧涓嬫灦 @RequestMapping("/mat/offSale/auth") //@ManagerAuth public R matOffSale(@RequestBody OffSaleParam offSaleParam){ - mobileService.offSale(offSaleParam); + mobileService.offSale(offSaleParam, getUserId()); return R.ok("涓嬫灦鎴愬姛"); } diff --git a/src/main/java/com/zy/asrs/controller/NodeController.java b/src/main/java/com/zy/asrs/controller/NodeController.java index 6ae3b3c..b08ace1 100644 --- a/src/main/java/com/zy/asrs/controller/NodeController.java +++ b/src/main/java/com/zy/asrs/controller/NodeController.java @@ -13,7 +13,6 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; -import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.Node; import com.zy.asrs.entity.param.InitPakoutParam; import com.zy.asrs.entity.param.PakinParam; @@ -34,8 +33,6 @@ import java.io.IOException; import java.net.URLEncoder; import java.util.*; - -import static jdk.nashorn.api.scripting.ScriptUtils.convert; @RestController public class NodeController extends BaseController { @@ -65,7 +62,11 @@ convert(param, wrapper); hostEq(wrapper); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} - return R.ok(nodeService.selectPage(new Page<>(curr, limit), wrapper)); + Page<Node> nodePage = nodeService.selectPage(new Page<>(curr, limit), wrapper); + if (nodePage.getRecords().isEmpty()) { + nodePage = nodeService.selectPage(new Page<>(curr, limit), new EntityWrapper<Node>().eq("id",param.get("parent_id"))); + } + return R.ok(nodePage); } @RequestMapping(value = "/node/list/tree/auth") diff --git a/src/main/java/com/zy/asrs/controller/ReportQueryController.java b/src/main/java/com/zy/asrs/controller/ReportQueryController.java index cd42ffc..7944eb3 100644 --- a/src/main/java/com/zy/asrs/controller/ReportQueryController.java +++ b/src/main/java/com/zy/asrs/controller/ReportQueryController.java @@ -6,6 +6,7 @@ import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.*; +import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.mapper.ReportQueryMapper; import com.zy.asrs.service.LocDetlService; import com.zy.common.web.BaseController; @@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -33,6 +35,9 @@ private LocDetlService locDetlService; @Autowired private ReportQueryMapper reportQueryMapper; + + @Resource + private ManLocDetlMapper manLocDetlMapper; //------------------搴撲綅浣跨敤缁熻-------------------------------------- @RequestMapping("/viewStockUseList.action") @@ -91,11 +96,80 @@ //-----------------搴撳瓨MAP鍥�-------------------------------------- @RequestMapping("/viewLocMapList/rows.action") public R queryViewLocMapRows(){ - return R.ok().add(reportQueryMapper.getViewLocRowTotal()); + List<Integer> viewLocRowTotal = reportQueryMapper.getViewLocRowTotal(); + viewLocRowTotal.add(9); + viewLocRowTotal.add(10); + return R.ok().add(viewLocRowTotal); } @RequestMapping("/viewLocMapList.action") - public R queryViewLocMapListByPages(@RequestParam(defaultValue = "1")Integer row){ + public R queryViewLocMapListByPages(@RequestParam(defaultValue = "1")Integer row) { + if (row == 9) { + // 鑾峰彇鎺掔骇鏁版嵁 + // 琛ㄦ牸鏍囬锛氬垪 ===>> 鍗囧簭 +// List<String> bays = new ArrayList<>(); + String[] bays = new String[33]; + for (int i = 1; i <= 32; i ++) { + bays[i] = String.valueOf(i); + } + + // 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁� + bays[0] = ""; + // 琛ㄦ牸琛岋細灞� ====>> 鍊掑簭 + List<String> levs = new ArrayList<>(); + for (int i = 5; i>= 1; i --) { + levs.add(String.valueOf(i)); + } + List<Map<String, Object>> body = new ArrayList<>(); + for (String lev : levs){ + // 鑾峰彇灞傜骇鏁版嵁 +// List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev)); + List<ViewLocMapDto> dtos = manLocDetlMapper.getViewLocBays(String.valueOf(row), lev); + // 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁� + dtos.add(0, new ViewLocMapDto(null ,null, lev)); + Map<String, Object> map = new HashMap<>(); + map.put("loc", dtos); + body.add(map); + } + Map<String, Object> result = new HashMap<>(); + result.put("title", bays); + result.put("body", body); + return R.ok(result); + } else if( row == 10) { + // 鑾峰彇鎺掔骇鏁版嵁 + // 琛ㄦ牸鏍囬锛氬垪 ===>> 鍗囧簭 +// List<String> bays = new ArrayList<>(); + String[] bays = new String[33]; + for (int i = 1; i <= 32; i ++) { + bays[i] = String.valueOf(i); + } + + // 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁� + bays[0] = ""; + // 琛ㄦ牸琛岋細灞� ====>> 鍊掑簭 + List<String> levs = new ArrayList<>(); + for (int i = 5; i>= 1; i --) { + levs.add(String.valueOf(i)); + } + List<Map<String, Object>> body = new ArrayList<>(); + for (String lev : levs){ + // 鑾峰彇灞傜骇鏁版嵁 +// List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev)); + List<ViewLocMapDto> dtos = manLocDetlMapper.getViewLocBays(String.valueOf(row), lev); + // 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁� + dtos.add(0, new ViewLocMapDto(null ,null, lev)); + for (int i = 15;i <= 18; i ++) { + dtos.add(i,new ViewLocMapDto(null ,i, "X")); + } + Map<String, Object> map = new HashMap<>(); + map.put("loc", dtos); + body.add(map); + } + Map<String, Object> result = new HashMap<>(); + result.put("title", bays); + result.put("body", body); + return R.ok(result); + } else { // 鑾峰彇鎺掔骇鏁版嵁 // 琛ㄦ牸鏍囬锛氬垪 ===>> 鍗囧簭 List<String> bays = reportQueryMapper.getViewLocBayCount(row); @@ -118,6 +192,7 @@ result.put("body", body); return R.ok(result); } + } //------------------绔欑偣鏃ュ叆鍑哄簱娆℃暟缁熻-------------------------------------- diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java index 0d8a021..84771a1 100644 --- a/src/main/java/com/zy/asrs/controller/WorkController.java +++ b/src/main/java/com/zy/asrs/controller/WorkController.java @@ -3,14 +3,12 @@ import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.R; -import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.param.FullStoreParam; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.WorkService; -import com.zy.common.model.StartupDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; @@ -163,12 +161,12 @@ return R.ok(); } - @RequestMapping("/create/waitPain/wrkMast/start") - @ManagerAuth(memo = "鐢熸垚浠诲姟") - public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) { - StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId()); - return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo()); - } +// @RequestMapping("/create/waitPain/wrkMast/start") +// @ManagerAuth(memo = "鐢熸垚浠诲姟") +// public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) { +// StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId()); +// return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo()); +// } @RequestMapping("/deal/preHave/start") @ManagerAuth(memo = "鍏堝叆鍝佸鐞�") diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java index 1a68af5..11658d2 100644 --- a/src/main/java/com/zy/asrs/entity/LocDetl.java +++ b/src/main/java/com/zy/asrs/entity/LocDetl.java @@ -251,7 +251,7 @@ public long getStoreDate(){ long timeNow = new Date().getTime(); - long timeCreate = this.appeTime.getTime(); + long timeCreate = new Date().getTime(); return (timeNow - timeCreate) /24/60/60/1000; } diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index 14567e7..dca17b1 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -53,4 +53,13 @@ // LocMast selectLocByLocStsPakInO2(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType); LocMast selectLocByLocStsPakInO2(@Param("crnNo") Integer crnNo,@Param("bay") Integer bay,@Param("lev") Integer lev,@Param("gro") Integer gro,@Param("whsType") Long whsType); + + /** + * + * 鏍规嵁搴撲綅绫诲瀷鏉ユ悳绱㈢┖搴撲綅(绔欑偣鐨勪笉鍚岄檺鍒跺爢鍨涙満) + * @param locType1 0123 + * @param crnNo 鍫嗗灈鏈哄彿 + * @return 搴撲綅闆嗗悎 + */ + List<LocMast> selectLocByTypeToList(@Param("locType1") int locType1,@Param("crnNo") int crnNo); } diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java index 250a289..08cec8f 100644 --- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java @@ -1,7 +1,9 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.ManLocDetl; +import com.zy.asrs.entity.ViewLocMapDto; import com.zy.asrs.entity.result.StockVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -83,4 +85,12 @@ List<ManLocDetl> selectAllPage(Map<String, Object> condition); long selectAllPageSize(Map<String, Object> condition); + + List<ViewLocMapDto> getViewLocBays(@Param("row") String row, @Param("lev") String lev); + + /** + * 鎸夊簱浣嶅彿鏌ヨ骞冲簱搴撳瓨 + * @param locNo 搴撲綅鍙� + */ + List<LocDetl> selectLocDetlByLocNo(@Param("locNo") String locNo); } diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index 6172647..f5d0585 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -20,12 +20,12 @@ /** * 涓婃灦 */ - void onSale(CombParam param); + void onSale(CombParam param,Long userId); /** * 涓嬫灦 */ - void offSale(OffSaleParam param); + void offSale(OffSaleParam param, Long userId); /** * 鐩樼偣 diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java index 99fdc5e..69d72d6 100644 --- a/src/main/java/com/zy/asrs/service/WorkService.java +++ b/src/main/java/com/zy/asrs/service/WorkService.java @@ -1,14 +1,12 @@ package com.zy.asrs.service; import com.zy.asrs.entity.BasDevp; -import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.param.FullStoreParam; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.common.model.LocDetlDto; -import com.zy.common.model.StartupDto; import com.zy.common.model.TaskDto; import com.zy.common.model.enums.IoWorkType; @@ -88,7 +86,7 @@ /** * 閫氱煡妗f墜鍔ㄧ敓鎴愪换鍔� */ - StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId); +// StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId); /** * 閫氱煡妗f墜鍔ㄧ敓鎴愪换鍔� diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java index 1f566fe..90316d8 100644 --- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java @@ -172,7 +172,7 @@ manLocDetl.setUnit(mat.getUnit()); manLocDetl.setBarcode(mat.getBarcode()); manLocDetl.setPrice(mat.getPrice()); - SaasUtils.insertLog(3,manLocDetl.getLocNo(), manLocDetl.getMatnr(),manLocDetl.getAnfme()); + SaasUtils.insertLog(3,manLocDetl.getLocNo(), manLocDetl.getMatnr(),manLocDetl.getAnfme(),userId); this.baseMapper.insert(manLocDetl); } } 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 e37ebd6..3b652a7 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -14,7 +14,7 @@ import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; -import com.zy.common.CodeRes; +import com.zy.asrs.utils.SaasUtils; import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; @@ -204,13 +204,19 @@ // 鍟嗗搧涓婃灦 @Override - public void onSale(CombParam param) { + public void onSale(CombParam param, Long userId) { + Date now = new Date(); // 鑾峰彇搴撲綅鍙� String locno = param.getLocno(); Node node = nodeService.selectByUuid(locno); if (Cools.isEmpty(node)) { throw new CoolException(param.getLocno() + ":搴撲綅涓嶅瓨鍦�"); + } + + String barcode = param.getBarcode(); + if (Cools.isEmpty(barcode)) { + throw new CoolException("鏉$爜涓嶈兘涓虹┖锛�"); } // 鑾峰彇鍟嗗搧鍒楄〃 @@ -222,26 +228,38 @@ if (Cools.isEmpty(combMat.getAnfme()) || combMat.getAnfme()==0){ throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鏁伴噺鏈夎锛�"); } - if (Cools.isEmpty(combMat.getBatch())){ -// throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); - } + ManLocDetl manLocDetl = new ManLocDetl(); manLocDetl.setLocNo(locno); +// manLocDetl.setBarcode(barcode); + manLocDetl.setZpallet(barcode); manLocDetl.setNodeId(node.getId()); manLocDetl.setMaktx(mat.getMaktx()); manLocDetl.setMatnr(mat.getMatnr()); + manLocDetl.setSpecs(mat.getSpecs()); manLocDetl.setBatch(Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch()); manLocDetl.setAnfme(combMat.getAnfme()); + manLocDetl.setCreateBy(userId); + manLocDetl.setCreateTime(now); + manLocDetl.setUpdateBy(userId); manLocDetl.setModiTime(now); if (!manLocDetlService.insert(manLocDetl)) { throw new CoolException("鍟嗗搧涓婃灦澶辫触锛�"); } + + // 鏇存柊搴撲綅鏉$爜 + node.setBarcode(barcode); + node.setUpdateBy(userId); + node.setUpdateTime(now); + nodeService.updateById(node); + SaasUtils.insertLog(0,manLocDetl.getLocNo(), manLocDetl.getMatnr(),combMat.getAnfme(),userId); + } } // 鍟嗗搧涓嬫灦 @Override - public void offSale(OffSaleParam offSaleParam) { + public void offSale(OffSaleParam offSaleParam, Long userId) { ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); if (Cools.isEmpty(manLocDetl)){ throw new CoolException("鏃犳鍟嗗搧锛�"); @@ -250,7 +268,13 @@ if (anfme < 0) { throw new CoolException("鍟嗗搧搴撳瓨涓嶈冻锛�"); } else if (anfme == 0){ + SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),offSaleParam.getAnfme(),userId); manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); + // 娓呯┖搴撲綅鏉$爜 + Node node = nodeService.selectByUuid(offSaleParam.getLocNo()); + node.setUpdateTime(new Date()); + node.setUpdateBy(userId); + node.setBarcode(""); } manLocDetlMapper.updateAnfme0(anfme,manLocDetl.getNodeId()); } diff --git a/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java index bd47225..3399e9b 100644 --- a/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java @@ -12,18 +12,15 @@ import com.zy.asrs.entity.param.InitPakoutParam; import com.zy.asrs.entity.param.MatnrDto; import com.zy.asrs.entity.param.PakinParam; -import com.zy.asrs.entity.result.Pakin; import com.zy.asrs.mapper.NodeMapper; import com.zy.asrs.service.ManLocDetlService; import com.zy.asrs.service.MatService; import com.zy.asrs.service.NodeService; import com.zy.asrs.utils.SaasUtils; -import com.zy.asrs.utils.VersionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.beans.Transient; import java.util.Date; import java.util.List; @@ -70,12 +67,12 @@ @Override public Node selectByUuid(String uuid, Long hostId, Integer type) { - return selectOne(new EntityWrapper<Node>().eq("host_id", hostId).eq("uuid", uuid).eq("type", type)); + return selectOne(new EntityWrapper<Node>().isNull("host_id").eq("uuid", uuid).eq("type", type)); } @Override public Node selectByUuid(String uuid, Long hostId, Integer type, Long parentId) { - return selectOne(new EntityWrapper<Node>().eq("host_id", hostId).eq("uuid", uuid).eq("type", type).eq("parent_id", parentId)); + return selectOne(new EntityWrapper<Node>().isNull("host_id").eq("uuid", uuid).eq("type", type).eq("parent_id", parentId)); } @Override @@ -115,7 +112,7 @@ manLocDetl.setCreateTime(now); manLocDetl.setModiTime(now); manLocDetl.setCreateBy(userId); - SaasUtils.insertLog(0,manLocDetl.getLocNo(),manLocDetl.getMatnr(), manLocDetl.getAnfme()); + SaasUtils.insertLog(0,manLocDetl.getLocNo(),manLocDetl.getMatnr(), manLocDetl.getAnfme(),userId); manLocDetlService.insert(manLocDetl); }else { check.setAnfme(dto.getCount() + check.getAnfme()); @@ -149,17 +146,22 @@ if (manLocDetl.getAnfme() - param.getCount() < 0) { return R.error("鐗╂枡:"+ param.getMatnr() + " 鍦ㄥ簱浣嶄腑鏁伴噺涓嶈冻"); } else if (manLocDetl.getAnfme() - param.getCount() == 0) { - SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount()); + SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),userId); manLocDetlService.delete(new EntityWrapper<ManLocDetl>() .eq("loc_no",node.getUuid()) .eq("matnr",param.getMatnr())); + // 娓呯┖搴撲綅鏉$爜 + node.setBarcode(""); + node.setUpdateBy(userId); + node.setUpdateTime(now); + nodeService.updateById(node); } else { manLocDetl.setAnfme(manLocDetl.getAnfme() - param.getCount()); manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>() .eq("loc_no",node.getUuid()) .eq("matnr",param.getMatnr())); - SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount()); + SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),userId); } } } @@ -187,7 +189,7 @@ source.setLocNo(targetNode.getUuid()); source.setNodeId(targetNode.getId()); - SaasUtils.insertLog(2,source.getLocNo(), source.getMatnr(), source.getAnfme()); + SaasUtils.insertLog(2,source.getLocNo(), source.getMatnr(), source.getAnfme(),userId); manLocDetlService.insert(source); }else { check.setAnfme(check.getAnfme() + source.getAnfme()); 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 3aa9551..efc19ee 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -449,6 +449,9 @@ .eq("stn_no", param.getOutSite()) .eq("crn_no", locMast.getCrnNo()); StaDesc staDesc = staDescService.selectOne(wrapper); + if (staDesc == null) { + throw new CoolException("璺緞涓嶅瓨鍦�"); + } Integer sourceStaNo = staDesc.getCrnStn(); if (Cools.isEmpty(sourceStaNo)) { throw new CoolException("妫�绱㈡簮绔欏け璐�"); @@ -1022,15 +1025,15 @@ } } - @Override - public StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId) { - if (Cools.isEmpty(list)) { - throw new CoolException("鍏ュ簱閫氱煡妗d笉鑳戒负绌�"); - } - LocTypeDto locTypeDto = new LocTypeDto(); - locTypeDto.setLocType1((short) 1); - return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list); - } +// @Override +// public StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId) { +// if (Cools.isEmpty(list)) { +// throw new CoolException("鍏ュ簱閫氱煡妗d笉鑳戒负绌�"); +// } +// LocTypeDto locTypeDto = new LocTypeDto(); +// locTypeDto.setLocType1((short) 1); +// return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list); +// } @Override @Transactional diff --git a/src/main/java/com/zy/asrs/utils/SaasUtils.java b/src/main/java/com/zy/asrs/utils/SaasUtils.java index 555ec87..b2e018f 100644 --- a/src/main/java/com/zy/asrs/utils/SaasUtils.java +++ b/src/main/java/com/zy/asrs/utils/SaasUtils.java @@ -1,14 +1,13 @@ package com.zy.asrs.utils; import com.core.common.SpringUtils; -import com.fasterxml.jackson.databind.util.BeanUtil; import com.zy.system.entity.SaasLog; import com.zy.system.service.SaasLogService; import java.util.Date; public class SaasUtils { - public static void insertLog(Integer type, String locNo, String matnr,Double anfme){ + public static void insertLog(Integer type, String locNo, String matnr,Double anfme, Long userId){ SaasLogService bean = SpringUtils.getBean(SaasLogService.class); SaasLog saasLog = new SaasLog(); saasLog.setType(type); @@ -16,7 +15,7 @@ saasLog.setMatnr(matnr); saasLog.setIoTime(new Date()); saasLog.setAnfme(anfme); - saasLog.setCreateBy(1L); + saasLog.setCreateBy(userId); bean.insert(saasLog); } } diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java index c6630aa..f0bbb7a 100644 --- a/src/main/java/com/zy/common/model/LocTypeDto.java +++ b/src/main/java/com/zy/common/model/LocTypeDto.java @@ -1,6 +1,5 @@ package com.zy.common.model; -import com.alibaba.fastjson.JSON; import com.core.exception.CoolException; import com.zy.asrs.entity.BasDevp; import lombok.Data; @@ -26,15 +25,16 @@ } public LocTypeDto(BasDevp basDevp) { - if (basDevp.getLocType1() == null || basDevp.getLocType1() == 0) { + this.locType1 = basDevp.getLocType1(); + if (basDevp.getLocType1() == null) { throw new CoolException("plc楂樹綆妫�娴嬪紓甯�"); } - if (basDevp.getLocType1() == 1) { - this.locType1 = 1; // 浣庡簱浣� - } else { - this.locType1 = 2; // 楂樺簱浣� - } - log.info(JSON.toJSONString(this)); +// if (basDevp.getLocType1() == 1) { +// this.locType1 = 1; // 浣庡簱浣� +// } else { +// this.locType1 = 2; // 楂樺簱浣� +// } +// log.info(JSON.toJSONString(this)); } } diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 061be6c..33b8dd8 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -3,16 +3,14 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -import com.core.common.Arith; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.result.KeyValueVo; +import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.LocTypeDto; -import com.zy.common.model.Shelves; import com.zy.common.model.StartupDto; import com.zy.common.properties.SlaveProperties; import lombok.extern.slf4j.Slf4j; @@ -20,11 +18,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; +import javax.annotation.Resource; import java.util.List; +import java.util.Optional; /** * 璐ф灦鏍稿績鍔熻兘 @@ -56,6 +52,9 @@ private SlaveProperties slaveProperties; @Autowired private WrkDetlService wrkDetlService; + + @Resource + private LocMastMapper locMastMapper; /** * 鐢熸垚宸ヤ綔鍙� @@ -150,7 +149,72 @@ }catch (Exception e){ log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�",sourceStaNo); } - return null; + throw new CoolException("鑾峰彇搴撲綅寮傚父"); + } + + /** + * 鑾峰彇搴撲綅锛屾澃涓婃澃鐢� + * @param ioType 1鍏ㄦ澘鍏ュ簱锛�10绌烘墭鐩樼粍鍏ュ簱 + * @param sourceSite 婧愮珯鐐� + * @param locType 搴撲綅妫�娴嬩俊鎭� 0绌烘墭1鍒楋紝1涓�灞傦紝2.2-4灞傦紝3.5-9灞� + * @return 鐩爣搴撲綅淇℃伅 + */ + @Transactional + public StartupDto getLocNoRunNew(Integer ioType, Integer sourceSite, Integer locType) { + + // 鏍规嵁鍏ュ簱绫诲瀷鍜屾簮绔欑偣鑾峰彇宸ヤ綔璺緞 + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("type_no", ioType).eq("crn_stn", sourceSite)); + if (staDesc == null) { + throw new CoolException("鑾峰彇宸ヤ綔璺緞寮傚父锛�" + ioType + " , " + sourceSite); + } + + // 瀵绘壘鍒扮殑搴撲綅 + LocMast locMast = null; + + // 鎸夊簱浣嶇被鍨嬭幏鍙栧簱浣� + List<LocMast> locMasts = locMastMapper.selectLocByTypeToList(locType, staDesc.getCrnNo()); + + // todo 濡傛灉褰撳墠绫诲瀷搴撲綅鍓╀綑涓嶅锛屾槸涓�鐩存斁婊★紝杩樻槸鍏煎鍒颁笅涓�绉嶅簱浣嶇被鍨� + // 鑰冭檻绉诲簱闇�瑕佸悓绫诲瀷搴撲綅锛岃繖閲岄檺鍒朵笉鑳芥斁婊★紝鍏煎涓嬩竴绉嶅簱浣嶇被鍨� + if (locMasts.size() <= 4) { + switch (locType) { + case 0: + case 2: + return getLocNoRunNew(ioType, sourceSite, 3); + case 1: + case 3: + throw new CoolException("褰撳墠搴撲綅鍓╀綑鍥涗釜鐢ㄤ簬绉诲簱锛屾棤娉曞崰鐢細" + locType); + default: + } + } + + // 鍏堝彇娣卞簱浣� + Optional<LocMast> first = locMasts.stream().filter(o -> o.getRow1() == 1 || o.getRow1() == 4 || o.getRow1() == 5 || o.getRow1() == 8).findFirst(); + if (first.isPresent()) { + locMast = first.get(); + } else { + // 娣卞簱浣嶉噷闈㈡病鏈変粠娴呭簱浣嶉噷闈㈠彇 + Optional<LocMast> first2 = locMasts.stream().filter(o -> o.getRow1() == 2 || o.getRow1() == 3 || o.getRow1() == 5 || o.getRow1() == 7).findFirst(); + if(first2.isPresent()) { + locMast = first2.get(); + } + } + + if (locMast == null) { + throw new CoolException("娌℃湁鎵惧埌鍚堥�傜┖搴撲綅"); + } + + // 鐢熸垚宸ヤ綔鍙� + int workNo = getWorkNo(0); + // 杩斿洖dto + StartupDto startupDto = new StartupDto(); + startupDto.setWorkNo(workNo); + startupDto.setCrnNo(staDesc.getCrnNo()); + startupDto.setSourceStaNo(staDesc.getStnNo()); + startupDto.setStaNo(sourceSite); + startupDto.setLocNo(locMast.getLocNo()); + + return startupDto; } /** diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index 066530a..41e377a 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; /** * Created by vincent on 2020/10/30 @@ -92,10 +91,10 @@ switch (param.getIoType()) { case 1://婊℃墭鐩樺叆搴� assert waitPakins != null; - dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins); + dto = startupFullPutStore(sourceStaNo, param.getBarcode(), locTypeDto, waitPakins); break; case 10://绌烘墭鐩樺叆搴� - dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode()); + dto = emptyPlateIn(sourceStaNo, locTypeDto, param.getBarcode()); break; default: break; @@ -156,13 +155,14 @@ * 鍏ㄦ澘鍏ュ簱 */ @Transactional - public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) { + public StartupDto startupFullPutStore(BasDevp sourceStaNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) { // 婧愮珯鐐圭姸鎬佹娴� - BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); +// BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� - List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); - List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList()); - StartupDto dto = commonService.getLocNo( 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto); +// List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); +// List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList()); +// StartupDto dto = commonService.getLocNo( 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto); + StartupDto dto = commonService.getLocNoRunNew(1, sourceStaNo.getDevNo(), Integer.valueOf(locTypeDto.getLocType1())); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -233,11 +233,12 @@ } @Transactional - public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) { + public StartupDto emptyPlateIn(BasDevp sourceStaNo, LocTypeDto locTypeDto, String barcode) { // 婧愮珯鐐圭姸鎬佹娴� - BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); +// BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� - StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto); +// StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto); + StartupDto dto = commonService.getLocNoRunNew(10, sourceStaNo.getDevNo(), Integer.valueOf(locTypeDto.getLocType1())); int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 748e521..4aad41e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://127.0.0.1:1433;databasename=phJsJasrs + url: jdbc:sqlserver://127.0.0.1:1433;databasename=jsjasrs username: sa password: sa@123 mvc: @@ -39,7 +39,7 @@ #License鐩稿叧閰嶇疆 license: - subject: phJsJasrs + subject: jsjasrs publicAlias: publicCert storePass: public_zhongyang_123456789 licensePath: license.lic @@ -50,13 +50,13 @@ # 鍙屾繁 doubleDeep: true # 鍙屾繁搴撲綅鎺掑彿 - doubleLocs: 1,4,5,8,9,12,13,16 + doubleLocs: 1,4,5,8 # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� groupCount: 4 # 宸︽繁搴撲綅鎺掑彿 - doubleLocsLeft: 1,5,9,13 + doubleLocsLeft: 1,4 # 鍙虫繁搴撲綅鎺掑彿 - doubleLocsRight: 4,8,12,16 + doubleLocsRight: 5,8 # wms鍙傛暟閰嶇疆 wms-parameter: # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏� diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic index 002dd39..b8f2835 100644 --- a/src/main/resources/license.lic +++ b/src/main/resources/license.lic Binary files differ diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml index 4f6e131..5b274ed 100644 --- a/src/main/resources/mapper/BasDevpMapper.xml +++ b/src/main/resources/mapper/BasDevpMapper.xml @@ -48,7 +48,7 @@ select abd.dev_no from asr_bas_devp abd - left join asr_sta_desc asd on abd.dev_no = asd.stn_no + left join asr_sta_desc asd on abd.dev_no = asd.crn_stn where 1=1 and asd.type_no = #{typeNo} -- and abd.in_enable = 'Y' diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml index 8d918ad..141ec2b 100644 --- a/src/main/resources/mapper/LocMastMapper.xml +++ b/src/main/resources/mapper/LocMastMapper.xml @@ -192,5 +192,8 @@ and gro1 = #{gro} AND loc_sts in ('O') order by row1 </select> + <select id="selectLocByTypeToList" resultType="com.zy.asrs.entity.LocMast"> + select loc_no locNo,loc_type1 locType1,crn_no crnNo,row1 from asr_loc_mast where loc_sts = 'O' and loc_type1 = #{locType1} AND crn_no = #{crnNo} order by lev1,bay1,row1 + </select> </mapper> diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml index 940e46c..5a4b28c 100644 --- a/src/main/resources/mapper/ManLocDetlMapper.xml +++ b/src/main/resources/mapper/ManLocDetlMapper.xml @@ -28,7 +28,7 @@ <result column="create_by" property="createBy" /> <result column="create_time" property="createTime" /> <result column="update_by" property="updateBy" /> - <result column="update_time" property="modiTime" /> + <result column="modi_time" property="modiTime" /> <result column="memo" property="memo" /> </resultMap> @@ -295,6 +295,37 @@ WHERE 1=1 <include refid="locDetlCondition2"></include> </select> + <select id="getViewLocBays" resultType="com.zy.asrs.entity.ViewLocMapDto"> + select + uuid as locNo, + SUBSTRING(uuid, 4, 2) as bay1, + CASE + WHEN barcode = '' THEN 'O' + ELSE 'F' + END AS locSts + from + man_node + where + level = 3 + and parent_name = #{row} + '鎺�' + and SUBSTRING(uuid, 7, 1) = #{lev} + </select> + <select id="selectLocDetlByLocNo" resultType="com.zy.asrs.entity.LocDetl"> + select + loc_no as locNo, + matnr, + maktx, + doc_num as orderNo, + specs, + zpallet, + batch, + anfme, + unit + from + man_loc_detl + where + loc_no = #{locNo} + </select> <update id="updateLocNo0"> diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index e49e71f..cc284f3 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/src/main/resources/mapper/WrkMastMapper.xml @@ -70,7 +70,7 @@ select * from asr_wrk_mast where wrk_sts=5 or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp)) - or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp)) + or (wrk_sts=15 and dateadd(mi,3,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp)) order by io_time,wrk_no asc </select> diff --git a/src/main/webapp/static/image/logo.png b/src/main/webapp/static/image/logo.png index 231c97e..7b00fa9 100644 --- a/src/main/webapp/static/image/logo.png +++ b/src/main/webapp/static/image/logo.png Binary files differ diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js index 054399e..547c43b 100644 --- a/src/main/webapp/static/js/common.js +++ b/src/main/webapp/static/js/common.js @@ -1,4 +1,4 @@ -var baseUrl = "/wms"; +var baseUrl = "/jsjwms"; // 璇︽儏绐楀彛-楂樺害 var detailHeight = '80%'; diff --git a/src/main/webapp/static/js/manLocDetl/manLocDetl.js b/src/main/webapp/static/js/manLocDetl/manLocDetl.js index ff281b0..c906140 100644 --- a/src/main/webapp/static/js/manLocDetl/manLocDetl.js +++ b/src/main/webapp/static/js/manLocDetl/manLocDetl.js @@ -4,11 +4,11 @@ {field: 'locNo', align: 'center',title: '搴撲綅鍙�'}, {field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true} ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true} + ,{field: 'anfme', align: 'center',title: '鏁伴噺'} ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false} ,{field: 'batch', align: 'center',title: '鎵瑰彿', width: 300, sort:true} - ,{field: 'anfme', align: 'center',title: '鏁伴噺'} //,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'} - ,{field: 'specs', align: 'center',title: '閰嶇疆'} + ,{field: 'specs', align: 'center',title: '瑙勬牸'} ,{field: 'model', align: 'center',title: '浠g爜', hide: true} ,{field: 'color', align: 'center',title: '棰滆壊', hide: true} ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true} @@ -38,8 +38,8 @@ ]; // cols.push.apply(cols, detlCols); - cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',hide: true} - ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'} + cols.push({field: 'createBy$', align: 'center',title: '鍒涘缓浜�',hide: true} + ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'} ) return cols; } diff --git a/src/main/webapp/static/js/nodeLoc/nodeLoc.js b/src/main/webapp/static/js/nodeLoc/nodeLoc.js new file mode 100644 index 0000000..77de80b --- /dev/null +++ b/src/main/webapp/static/js/nodeLoc/nodeLoc.js @@ -0,0 +1,490 @@ +var pageCurr; +var printMatCodeNos = []; +var admin; +function getCol() { + var cols = [ + {type: 'checkbox'} + ,{field: 'tagId$', align: 'center',title: '褰掔被', templet: '#tagTpl'} + ]; + 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+'/node/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+'/node/list/auth', + page: true, + limit: 16, + limits: [16, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + height: 'full-105', + cols: [[ + {type: 'checkbox'}, + {field: 'name', align: 'center',title: '搴撲綅鍚�', hide: false}, + {field: 'parentName', align: 'center',title: '搴撳尯', hide: false}, + {field: 'barcode', align: 'center',title: '鎵樼洏鏉$爜', hide: false}, + {field: 'updateTime$', align: 'center',title: '鏇存柊鏃堕棿', hide: false}, + // {field: 'createBy$', align: 'center',title: '鍒涘缓浜�', hide: false}, + // {field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿', hide: false}, + {field: 'type$', align: 'center',title: '绫诲瀷', templet: '#tagTpl', hide: false} + ]], + 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+"/node/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+"/node/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 + "/node/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+"/node/"+(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+"/node/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 + "/node/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 + "/node/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/nodeLoc/nodeLocTree.js b/src/main/webapp/static/js/nodeLoc/nodeLocTree.js new file mode 100644 index 0000000..72b511e --- /dev/null +++ b/src/main/webapp/static/js/nodeLoc/nodeLocTree.js @@ -0,0 +1,86 @@ +var currentTemId; +var currentTemName; +var currentTemSsbm; +var init = false; + +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" // 閰嶇疆妯″潡鎵�鍦ㄧ殑鐩綍 +}).use(['table','laydate', 'form', 'tree', 'xmSelect'], function() { + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var layDate = layui.laydate; + var form = layui.form; + var tree = layui.tree; + var xmSelect = layui.xmSelect; + var selObj, treeData; // 宸︽爲閫変腑鏁版嵁 + + var organizationTree; + window.loadTree = function(condition){ + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/node/tree/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + 'condition': condition + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + layer.close(loadIndex); + // 鏍戝舰鍥� + organizationTree = tree.render({ + elem: '#organizationTree', + id: 'organizationTree', + onlyIconControl: true, + data: res.data, + click: function (obj) { + currentTemId = obj.data.id; + currentTemName = obj.data.title.split(" - ")[0]; + currentTemSsbm = obj.data.title.split(" - ")[1]; + selObj = obj; + $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click'); + $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click'); + tableIns.reload({ + where: {parent_id: obj.data.id}, + page: {curr: 1} + }); + } + }); + treeData = res.data; + if (isEmpty(condition) && init) { + tableIns.reload({ + where: {parent_id: ""}, + page: {curr: 1} + }); + } + if (!init) { + init = true; + } + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg) + } + } + }) + } + loadTree(); + + /* 鏍戝舰鍥鹃噸缃� */ + $('#treeReset').click(function () { + $("#condition").val(""); + loadTree(""); + }) + +}) + +function closeDialog() { + layer.closeAll(); +} + +/* 鏍戝舰鍥炬悳绱� */ +function findData(el) { + var condition = $(el).val(); + loadTree(condition) +} \ No newline at end of file diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html index 868a5bb..d374d0c 100644 --- a/src/main/webapp/views/index.html +++ b/src/main/webapp/views/index.html @@ -6,7 +6,7 @@ <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.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> - <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" /> +<!-- <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" />--> <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/loader.css" media="all"> diff --git a/src/main/webapp/views/login.html b/src/main/webapp/views/login.html index 6fcbd66..c6d0a9a 100644 --- a/src/main/webapp/views/login.html +++ b/src/main/webapp/views/login.html @@ -10,7 +10,7 @@ <meta name="theme-color" content="#111111"> <meta name="msapplication-TileImage" content="/sketch-threejs/img/common/ms_tileimage.png"> <meta name="msapplication-TileColor" content="#111111"> - <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" /> +<!-- <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" />--> <link rel="stylesheet" href="../static/css/font/font-awesome-4.7.0/css/font-awesome.css"> <link rel="stylesheet" href="../static/css/main.min.css"> <link rel="stylesheet" href="../static/css/login.css"> diff --git a/src/main/webapp/views/nodeLoc/nodeLoc.html b/src/main/webapp/views/nodeLoc/nodeLoc.html index 3b14a5c..f7a2690 100644 --- a/src/main/webapp/views/nodeLoc/nodeLoc.html +++ b/src/main/webapp/views/nodeLoc/nodeLoc.html @@ -88,7 +88,7 @@ <div class="layui-inline"> <label class="layui-form-label" style="padding: 8px 15px 8px 15px">搴撳尯:</label> <div class="layui-input-inline"> - <input name="parent_name" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/> + <input name="parent_name" class="layui-input" placeholder="搴撳尯鍚�"/> </div> </div> <div class="layui-inline">  diff --git a/src/main/webapp/views/report/locDetl.html b/src/main/webapp/views/report/locDetl.html index 9e3ee3d..38c00e0 100644 --- a/src/main/webapp/views/report/locDetl.html +++ b/src/main/webapp/views/report/locDetl.html @@ -33,7 +33,7 @@ var pageCur; function getCol() { var cols = [ - {field: 'locNo$', align: 'center',title: '搴撲綅鍙�'} + {field: 'locNo', align: 'center',title: '搴撲綅鍙�'} ]; cols.push.apply(cols, detlCols); return cols; diff --git a/src/main/webapp/views/saasLog/saasLog.html b/src/main/webapp/views/saasLog/saasLog.html index 2211671..d4a5157 100644 --- a/src/main/webapp/views/saasLog/saasLog.html +++ b/src/main/webapp/views/saasLog/saasLog.html @@ -20,9 +20,16 @@ <div class="layui-inline"> <label class="layui-form-label">缂栧彿:</label> <div class="layui-input-inline"> - <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> + <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅" autocomplete="off"> </div> </div> + <div class="layui-inline"> + <label class="layui-form-label">鐗╂枡缂栧彿:</label> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="matnr" placeholder="鐗╂枡缂栧彿" autocomplete="off"> + </div> + </div> + <div class="layui-inline">  <button class="layui-btn icon-btn" lay-filter="search" lay-submit> <i class="layui-icon"></i>鎼滅储 -- Gitblit v1.9.1