From f56e004dac74ebcf6638e0b8dc162062f19dbe34 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 06 一月 2025 15:50:02 +0800
Subject: [PATCH] #平库入库完成+库存明细+库存统计
---
src/main/webapp/views/manLocDetl/PLocDetl.html | 77 +
src/main/java/com/zy/asrs/controller/ManLocDetlController.java | 156 ++
src/main/webapp/static/js/manLocDetl/PLocDetl.js | 538 +++++++++
src/main/java/com/zy/asrs/controller/LocDetlController.java | 2
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 78 +
src/main/java/com/zy/asrs/entity/WrkMast.java | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 11
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 7
src/main/webapp/static/js/manLocDetl/PLocDetlStatis.js | 269 ++++
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | 4
src/main/java/com/zy/asrs/entity/ManLocDetl.java | 26
src/main/resources/mapper/ManLocDetlMapper.xml | 22
src/main/webapp/static/js/node/node.js | 373 ++++++
src/main/webapp/views/node/node.html | 322 -----
src/main/webapp/static/js/nodeLoc/nodeLoc.js | 488 +++++++++
src/main/java/com/zy/asrs/controller/NodeController.java | 64 +
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 35
src/main/webapp/views/nodeLoc/nodeLoc.html | 430 +++++++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 103 +
src/main/webapp/views/manLocDetl/PLocDetlStatis.html | 59 +
src/main/java/com/zy/asrs/service/ManLocDetlService.java | 4
src/main/webapp/static/js/nodeLoc/nodeLocTree.js | 86 +
src/main/java/com/zy/asrs/controller/OutController.java | 73 -
src/main/java/com/zy/asrs/service/MobileService.java | 2
24 files changed, 2,827 insertions(+), 404 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 655e6f1..0769dab 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -298,7 +298,7 @@
* @return
*/
@RequestMapping("/locDetl/count")
- public R getAllCount(){
+ public R getAllCount() {
Double sum = locDetlService.sum();
return R.ok(sum);
}
diff --git a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
index 61e94e1..612634e 100644
--- a/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/ManLocDetlController.java
@@ -1,5 +1,8 @@
package com.zy.asrs.controller;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
@@ -8,8 +11,11 @@
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.entity.param.LocDetlAdjustParam;
import com.zy.asrs.service.ManLocDetlService;
+import com.zy.asrs.service.MatService;
+import com.zy.common.utils.RoleUtils;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -17,6 +23,10 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
import java.util.Map;
@RestController
@@ -24,6 +34,93 @@
@Autowired
private ManLocDetlService manLocDetlService;
+ @Autowired
+ private MatService matService;
+
+ @RequestMapping("/manLocDetl/matnr/count")
+ public R getCount(@RequestBody Map<String, String> param){
+ String matnr = param.get("matnr");
+ Double sum = 0.0;
+ if (Cools.isEmpty(matnr)){
+ sum = manLocDetlService.sum();
+ }else {
+ sum = manLocDetlService.getSumAnfme(matnr);
+ }
+
+ return R.ok(sum);
+ }
+
+ @RequestMapping(value = "/manLocDetl/export/auth")
+ @ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
+ String row = "";
+ if (map.get("row") != null) {
+ String chooseRow = (String) map.get("row");
+ if (chooseRow.length() == 1) {
+ row = "0" + chooseRow;
+ map.remove("row");
+ }else {
+ row = chooseRow;
+ map.remove("row");
+ }
+ }
+ convert(map, wrapper);
+ if (!row.equals("")){
+ wrapper.and()
+ .where("loc_no like '" +row +"%'");
+ }
+ List<ManLocDetl> list = manLocDetlService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/manLocDetl/statis/export")
+// @ManagerAuth
+ public void statisExport(HttpServletResponse response) throws IOException {
+ List<ManLocDetl> excel = manLocDetlService.getStockStatisExcel();
+ for (ManLocDetl locDetl : excel) {
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (mat != null) {
+ locDetl.sync(mat);
+ }
+ }
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ String fileName = URLEncoder.encode("骞冲簱搴撳瓨鏄庣粏缁熻鎶ヨ〃", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ EasyExcel.write(response.getOutputStream(), LocDetl.class)
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+ .sheet("琛�1")
+ .doWrite(excel);
+ }
+
+ /**
+ * 鑾峰彇搴撳瓨鎬绘暟
+ * @return
+ */
+ @RequestMapping("/manLocDetl/count")
+ public R getAllCount(){
+ Double sum = manLocDetlService.sum();
+ return R.ok(sum);
+ }
+
+
+ @RequestMapping(value = "/manLocDetl/statis/auth")
+ @ManagerAuth
+ public R statis(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam Map<String, Object> param) {
+ Page<ManLocDetl> stockStatis = manLocDetlService.getStockStatis(toPage(curr, limit, param, ManLocDetl.class));
+ for (ManLocDetl locDetl : stockStatis.getRecords()) {
+ Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+ if (mat != null) {
+ locDetl.sync(mat);
+ }
+ }
+ return R.ok().add(stockStatis);
+ }
@RequestMapping(value = "/manLocDetl/list/auth")
@ManagerAuth
@@ -31,31 +128,16 @@
@RequestParam(defaultValue = "10")Integer limit,
@RequestParam(required = false)String orderByField,
@RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
@RequestParam Map<String, Object> param){
- Long hostId = getHostId();
- if (hostId != null) {
- param.put("host_id", hostId);
- }
- Object nodeId = param.get("node_id");
- if (Cools.isEmpty(nodeId)) {
- nodeId = getOriginNode().getId();
- param.put("node_id", String.valueOf(nodeId));
- }
- Object tagId = param.get("tag_id");
- if (Cools.isEmpty(tagId)) {
- tagId = getOriginTag().getId();
- param.put("tag_id", String.valueOf(tagId));
- }
- if (!Cools.isEmpty(param.get("update_time"))){
- String val = String.valueOf(param.get("update_time"));
- if (val.contains(RANGE_TIME_LINK)) {
- String[] dates = val.split(RANGE_TIME_LINK);
- param.put("startTime", DateUtils.convert(dates[0]));
- param.put("endTime", DateUtils.convert(dates[1]));
- param.remove("update_time");
- }
- }
- return R.ok(manLocDetlService.getPage(toPage(curr, limit, param, ManLocDetl.class)));
+
+ EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(ManLocDetl.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+
+ return R.ok(manLocDetlService.selectPage(new Page<>(curr, limit), wrapper));
}
@@ -79,19 +161,19 @@
return R.ok("搴撳瓨璋冩暣鎴愬姛");
}
- @RequestMapping(value = "/manLocDetl/asrsAndSaas/list")
- @ManagerAuth
- public R list(@RequestParam(defaultValue = "1")Integer curr,
- @RequestParam(defaultValue = "10")Integer limit,
- @RequestParam(required = false)String orderByField,
- @RequestParam(required = false)String orderByType,
- @RequestParam(required = false)String condition,
- @RequestParam Map<String, Object> param){
-
- Page<ManLocDetl> manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class);
- Page<ManLocDetl> all = manLocDetlService.selectAllPage(manLocDetlPage);
- return R.ok().add(all);
- }
+// @RequestMapping(value = "/manLocDetl/asrsAndSaas/list")
+// @ManagerAuth
+// public R list(@RequestParam(defaultValue = "1")Integer curr,
+// @RequestParam(defaultValue = "10")Integer limit,
+// @RequestParam(required = false)String orderByField,
+// @RequestParam(required = false)String orderByType,
+// @RequestParam(required = false)String condition,
+// @RequestParam Map<String, Object> param){
+//
+// Page<ManLocDetl> manLocDetlPage = toPage(curr, limit, param, ManLocDetl.class);
+// Page<ManLocDetl> all = manLocDetlService.selectAllPage(manLocDetlPage);
+// return R.ok().add(all);
+// }
private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
for (Map.Entry<String, Object> entry : map.entrySet()){
String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 95568e0..8986c3f 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -297,6 +297,17 @@
}
+ @RequestMapping("/pingKu/Shelves/auth")
+ @ManagerAuth(memo = "骞冲簱涓婃灦")
+ public R pingKuShelves(@RequestBody CombParam combParam){
+ if (Cools.isEmpty(combParam.getLocno(), combParam.getCombMats())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ mobileService.pingKuShelves(combParam, getUserId());
+
+ return R.ok();
+ }
+
@RequestMapping("/pack/get/auth")
@ManagerAuth
public R packGet(@RequestParam String barcode){
diff --git a/src/main/java/com/zy/asrs/controller/NodeController.java b/src/main/java/com/zy/asrs/controller/NodeController.java
index 6ae3b3c..62a3c53 100644
--- a/src/main/java/com/zy/asrs/controller/NodeController.java
+++ b/src/main/java/com/zy/asrs/controller/NodeController.java
@@ -17,10 +17,12 @@
import com.zy.asrs.entity.Node;
import com.zy.asrs.entity.param.InitPakoutParam;
import com.zy.asrs.entity.param.PakinParam;
+import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.NodeService;
import com.zy.common.entity.NodeExcel;
import com.zy.common.entity.NodeExcelListener;
+import com.zy.common.entity.Parameter;
import com.zy.common.utils.ListUtils;
import com.zy.common.utils.NodeUtils;
import com.zy.common.utils.TreeUtils;
@@ -332,4 +334,66 @@
return R.ok(node);
}
+ @RequestMapping(value = "/node/init/pwd")
+ public R locMastInitPwd(@RequestParam(required = false) String pwd) {
+ if (Cools.isEmpty(pwd)) {
+ return R.error("璇疯緭鍏ュ彛浠�");
+ }
+ return R.ok().add(Parameter.get().getLocMastInitPwd().equals(pwd));
+ }
+
+ @RequestMapping(value = "/node/all/get/loc")
+ public R getarea(){
+ EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>();
+ nodeEntityWrapper.eq("type",2);
+ List<Node> list = nodeService.selectList(nodeEntityWrapper);
+ List<KeyValueVo> keyValueVoList = new ArrayList<>();
+ for (Node node : list){
+ KeyValueVo vo = new KeyValueVo();
+ vo.setName(node.getName());
+ vo.setValue(node.getId());
+ keyValueVoList.add(vo);
+ }
+ return R.ok(keyValueVoList);
+
+ }
+
+ @RequestMapping(value = "/node/init/auth")
+ @ManagerAuth(memo = "骞冲簱搴撲綅鍒濆鍖�")
+ @Transactional
+ public R init(@RequestBody JSONObject param) {
+ String area = param.getString("name");
+ Integer value = param.getInteger("value");
+ Integer num = param.getInteger("startRow");
+ EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>();
+ nodeEntityWrapper.eq("id",value);
+ nodeEntityWrapper.eq("name",area);
+ Node node = nodeService.selectOne(nodeEntityWrapper);
+ String[] string = node.getNamePath().split(",");
+ for (int i = 1; i <= num; i++) {
+ String locNo =area + String.format("%04d", i);
+ String uuid = String.valueOf(System.currentTimeMillis());
+ Date now = new Date();
+ Node node1 = new Node();
+ node1.setUuid(uuid);
+ node1.setName(locNo);
+ node1.setParentId(node.getId());
+ node1.setParentName(node.getName());
+ node1.setType(3);
+ node1.setPath(node.getPath()+","+node.getId());
+ node1.setNamePath(node.getNamePath()+","+node.getName());
+ node1.setLevel(3);
+ node1.setStatus(1);
+ node1.setCreateBy(getUserId());
+ node1.setCreateTime(now);
+ node1.setUpdateBy(getUserId());
+ node1.setUpdateTime(now);
+ if (!nodeService.insert(node1)){
+ return R.error("鏁版嵁鎻掑叆澶辫触");
+ }
+ }
+
+ return R.ok("鍒濆鍖栨垚鍔�");
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index dd68a10..ff2ba02 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -72,66 +72,27 @@
for (OrderDetl orderDetl : orderDetls) {
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
- if (!Cools.isEmpty(amount)) {
- if (amount > issued) {
- return R.error("鏁伴噺楂樹簬鍙嚭搴撴暟閲�");
- }
- issued = amount;
- }
-
if (issued <= 0.0D) { continue; }
List<LocDetl> locDetls = new ArrayList<>();
- locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
+ locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
for (LocDetl locDetl : locDetls) {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
- List<LocMast> locMasts = new ArrayList<>();
- if (locMast.getBay1() >=1 && locMast.getBay1()<=2){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", true));
- }else {
- locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("gro1", locMast.getGro1())
- .eq("crn_no", 7)
- .eq("loc_type1",locMast.getLocType1())
- .orderBy("bay1", false));
- }
- for (LocMast locMast1 : locMasts){
- if (locMast1.getLocSts().equals("F")){
- LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
- .eq("loc_No", locMast1.getLocNo())
- .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
- if (!Cools.isEmpty(locDetl1)) {
- if (issued > 0) {
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
- issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
- List<LocDto.staListDto> maps = new ArrayList<>();
- for (Integer staNo : staNos) {
- LocDto.staListDto staListDto = new LocDto.staListDto();
- staListDto.setStaNo(staNo);
- staListDto.setStaName(Utils.getStaName(staNo));
- maps.add(staListDto);
- }
- locDto.setStaNos(maps);
- locDtos.add(locDto);
- // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
- }else {
- break;
- }
-
-
- }
+ if (issued > 0) {
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+ issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+ List<LocDto.staListDto> maps = new ArrayList<>();
+ for (Integer staNo : staNos) {
+ LocDto.staListDto staListDto = new LocDto.staListDto();
+ staListDto.setStaNo(staNo);
+ staListDto.setStaName(Utils.getStaName(staNo));
+ maps.add(staListDto);
}
+ locDto.setStaNos(maps);
+ locDtos.add(locDto);
+ // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+ issued = issued - locDetl.getAnfme();
+ }else {
+ break;
}
diff --git a/src/main/java/com/zy/asrs/entity/ManLocDetl.java b/src/main/java/com/zy/asrs/entity/ManLocDetl.java
index 62ab257..17522d5 100644
--- a/src/main/java/com/zy/asrs/entity/ManLocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/ManLocDetl.java
@@ -8,6 +8,7 @@
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.NodeService;
+import com.zy.common.utils.Synchro;
import com.zy.system.entity.Host;
import com.zy.system.entity.User;
import com.zy.system.service.HostService;
@@ -202,6 +203,16 @@
@ApiModelProperty(value= "澶囨敞")
private String memo;
+ @ApiModelProperty(value = "棰勭暀1")
+ private String temp1;
+ @ApiModelProperty(value = "棰勭暀2")
+ private String temp2;
+ @ApiModelProperty(value = "棰勭暀3")
+ private String temp3;
+ @ApiModelProperty(value = "棰勭暀4")
+ private String temp4;
+
+
public ManLocDetl() {}
public ManLocDetl(Long hostId, String locNo,Long nodeId,String zpallet,Double anfme,String matnr,String maktx,String name,String specs,String model,String batch,String unit,String barcode,Long docId,String docNum,String custName,Integer itemNum,Integer count,Double weight,Integer status,Long createBy,Date createTime,Long updateBy,Date modiTime,String memo) {
@@ -323,4 +334,19 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
}
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
+ public long getStoreDate(){
+ if (Cools.isEmpty(this.createTime)){
+ this.createTime = new Date();
+ }
+ long timeNow = new Date().getTime();
+ long timeCreate = this.createTime.getTime();
+
+
+ return (timeNow - timeCreate) /24/60/60/1000;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 58a10a6..cac671e 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -371,7 +371,7 @@
if (!Cools.isEmpty(locMast)){
return String.valueOf(locMast.getLocNo());
}
- return null;
+ return this.locNo;
}
public String getStaNo$(){
diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
index 250a289..4eac4f1 100644
--- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -42,7 +42,7 @@
List<ManLocDetl> getStockStatisExcel();
- @Select("select sum(a.anfme) as sum from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr}")
+ @Select("select sum(a.anfme) as sum from man_loc_detl where matnr = #{matnr}")
Double selectSumAnfmeByMatnr(@Param("matnr") String matnr);
List<ManLocDetl> selectPakoutByRule(String matnr);
@@ -60,7 +60,7 @@
List<StockVo> queryStockTotal();
- Integer sum();
+ Double sum();
List<ManLocDetl> unreason();
diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
index 4530bbc..d6761c8 100644
--- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.result.StockVo;
@@ -49,7 +50,7 @@
List<StockVo> queryStockTotal();
- Integer sum();
+ Double sum();
List<ManLocDetl> unreason();
@@ -62,4 +63,5 @@
Page<ManLocDetl> selectAllPage(Page<ManLocDetl> param);
+ List<ManLocDetl> getStockStatisExcel();
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index f9b3707..605f917 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -58,4 +58,6 @@
void pdaAdjust(pdaAdjustParam param, Long userId);
void inventoryUpload(String orderId);
+
+ void pingKuShelves(CombParam combParam, Long userId);
}
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..e6b362b 100644
--- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -110,7 +110,7 @@
* @return
*/
@Override
- public Integer sum() {
+ public Double sum() {
return this.baseMapper.sum();
}
@@ -186,5 +186,8 @@
return param;
}
-
+ @Override
+ public List<ManLocDetl> getStockStatisExcel() {
+ return this.baseMapper.getStockStatisExcel();
+ }
}
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 c2ca4bf..2061981 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1004,6 +1004,109 @@
}
+ @Override
+ @Transactional
+ public void pingKuShelves(CombParam combParam,Long userId) {
+ Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3));
+ if (Cools.isEmpty(node)){
+ throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�");
+ }
+
+ Order order = orderService.selectByNo(combParam.getOrderNo());
+ if (Cools.isEmpty(order) || order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ List<DetlDto> detlDtos = new ArrayList<>();
+
+ for (CombParam.CombMat elem : combParam.getCombMats()) {
+
+
+// param.getCombMats().forEach(elem -> {
+
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
+ if (Cools.isEmpty(orderDetl)) {
+ throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�");
+ }
+ if (elem.getAnfme() > orderDetl.getEnableQty()) {
+ throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ }
+ // 淇敼璁㈠崟浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }
+
+// DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu());
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode()
+ , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4());
+ if (DetlDto.has(detlDtos, detlDto)) {
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ assert one != null;
+ one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+ } else {
+ detlDtos.add(detlDto);
+ }
+// });
+ }
+ int workNo = commonService.getWorkNo(4);
+ Date now = new Date();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(4L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(300); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(12D); // 浼樺厛绾�
+ wrkMast.setLocNo(node.getName());
+ wrkMast.setBarcode(""); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setSheetNo(order.getOrderNo());
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ for (DetlDto detlDto : detlDtos) {
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WrkDetl wrkDetl = new WrkDetl();
+
+ wrkDetl.sync(detlDto);
+ wrkDetl.sync(mat);
+
+ wrkDetl.setOrderNo(order.getOrderNo());
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setManu(detlDto.getMark()); //鏍囪
+ wrkDetl.setOrigin(order.getItemName());//浠撳簱
+ wrkDetl.setSupp(detlDto.getSuppName()); //渚涘簲鍟�
+ wrkDetl.setSku(detlDto.getCustomer()); //瀹㈡埛鍚嶇О
+ wrkDetl.setThreeCode(detlDto.getOrderNo()); //u8鍙戣繃鏉ョ殑璁㈠崟鍙�
+ wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿
+ wrkDetl.setTemp1(detlDto.getTemp1());
+ wrkDetl.setTemp2(detlDto.getTemp2());
+ wrkDetl.setTemp3(detlDto.getTemp3());
+ wrkDetl.setTemp4(detlDto.getTemp4());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ }
+ orderService.updateSettle(order.getId(), 2L, userId);
+
+
+ }
+
public void uploadErp(InventoryErpParam param){
String response = "";
boolean success = false;
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 30e4e23..02af09c 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -976,7 +976,7 @@
locMastService.updateById(locMast);
}
// 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
- } else if (wrkMast.getIoType() >=100) {
+ } else if (wrkMast.getIoType() >=100 && wrkMast.getIoType()<=200) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
@@ -997,6 +997,8 @@
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
+ } else if (wrkMast.getIoType() >=300) {
+
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
@@ -1018,7 +1020,7 @@
}
//鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
- if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
+ if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 300) {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
@@ -1085,18 +1087,25 @@
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
}
- // 淇敼搴撲綅鐘舵��
- LocMast locMast = locMastService.selectById(locNo);
- if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+ if (wrkMast.getIoType() != 300){
+ // 淇敼搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(locNo);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
+ }
+ locMast.setLocSts(locSts);
+ locMast.setModiTime(now);
+ locMast.setModiUser(userId);
+ boolean locMastRes = locMastService.updateById(locMast);
+ if (!wrkMastRes || !locMastRes) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
+ }else {
+ if (!wrkMastRes) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
}
- locMast.setLocSts(locSts);
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- boolean locMastRes = locMastService.updateById(locMast);
- if (!wrkMastRes || !locMastRes) {
- throw new CoolException("淇濆瓨鏁版嵁澶辫触");
- }
+
}
@Override
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 671343c..c665b9c 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,6 +6,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.ManLocDetlServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
@@ -39,6 +40,10 @@
private WaitPakinService waitPakinService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private ManLocDetlService manLocDetlService;
+ @Autowired
+ private NodeService nodeService;
private static final Map<Integer,Integer> sourceSite = new HashMap<>();
static {
@@ -61,14 +66,28 @@
private ReturnT<String> doIn(WrkMast wrkMast){
Date now = new Date();
- LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- try {
+ LocMast locMast = null;
+ Node node = null;
+ if (wrkMast.getIoType() == 300){
+ node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getLocNo()).eq("type",3));
+ if (null == node) {
+// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
+ }
+ assert node != null;
+ }else {
+ locMast = locMastService.selectById(wrkMast.getLocNo());
if (null == locMast) {
// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
}
assert locMast != null;
+ }
+
+ try {
+
switch (wrkMast.getIoType()) {
// 绌烘澘鍏ュ簱
case 10:
@@ -341,6 +360,61 @@
return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
break;
+ case 300:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls300 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls300.isEmpty()) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+ for (WrkDetl wrkDetl:wrkDetls300) {
+
+ ManLocDetl manLocDetl = manLocDetlService.selectItem(node.getName(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (null != manLocDetl) {
+ Double anfme = manLocDetl.getAnfme()+wrkDetl.getAnfme();
+ if (!manLocDetlService.updateAnfme(anfme, locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ } else {
+ manLocDetl = new ManLocDetl();
+ manLocDetl.sync(wrkDetl);
+ manLocDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ manLocDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ manLocDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ manLocDetl.setModiTime(now);
+ manLocDetl.setCreateTime(now);
+ if (!manLocDetlService.insert(manLocDetl)) {
+// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())){
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl==null){
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+ }
+ try {
+ if(!Cools.isEmpty(orderDetl)){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(),wrkDetl.getAnfme())){
+// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞冲簱鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+ }
+
+ }
+
+ break;
default:
break;
}
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index 940e46c..9965e02 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -33,6 +33,17 @@
</resultMap>
+ <sql id="batchSeq">
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </sql>
+
<sql id="locDetlCondition">
<if test="host_id != null and host_id != ''">
and mld.host_id = #{host_id}
@@ -295,6 +306,17 @@
WHERE 1=1
<include refid="locDetlCondition2"></include>
</select>
+ <select id="selectItem" resultMap="BaseResultMap">
+ select top 1 *
+ from man_loc_detl
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ <include refid="batchSeq"></include>
+ </select>
+ <select id="sum" resultType="java.lang.Double">
+ SELECT SUM(anfme) FROM man_loc_detl
+ </select>
<update id="updateLocNo0">
diff --git a/src/main/webapp/static/js/manLocDetl/PLocDetl.js b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
new file mode 100644
index 0000000..5636d0e
--- /dev/null
+++ b/src/main/webapp/static/js/manLocDetl/PLocDetl.js
@@ -0,0 +1,538 @@
+var pageCurr;
+function getCol() {
+ var cols = [
+ {field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
+ ,{field: 'storeDate', align: 'center',title: '搴撻緞(澶�)', sort:true}
+ ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true}
+ ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true}
+ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true}
+ ,{field: 'batch', align: 'center',title: '鎵瑰彿', width: 300, sort:true}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'specs', align: 'center',title: '瑙勬牸'}
+ ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+ ,{field: 'supp', align: 'center',title: '渚涘簲鍟�', hide: true}
+
+
+
+
+
+ ];
+
+ // cols.push.apply(cols, detlCols);
+ cols.push({field: 'modiUser$', align: 'center',title: '淇敼浜哄憳',hide: true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ )
+ return cols;
+}
+
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locDetl',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/manLocDetl/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(locDetl)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(locDetl)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/locDetl/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'locDetl': exportData,
+ 'fields': fields
+ };
+ var loadIndex = layer.msg('姝e湪瀵煎嚭...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl+"/locDetl/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(locDetl)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#locNo,#matnr', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ case 'locNo':
+ var param = top.reObject(data).locNo;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '搴撲綅鍙疯鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../locMast/locMast_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/locMast/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼浜哄憳璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涘缓鑰呰鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ locNo: $('#locNo').val(),
+ matnr: $('#matnr').val(),
+ lgnum: $('#lgnum').val(),
+ tbnum: $('#tbnum').val(),
+ tbpos: $('#tbpos').val(),
+ zmatid: $('#zmatid').val(),
+ maktx: $('#maktx').val(),
+ werks: $('#werks').val(),
+ anfme: $('#anfme').val(),
+ altme: $('#altme').val(),
+ zpallet: $('#zpallet').val(),
+ bname: $('#bname').val(),
+ memo: $('#memo').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/locDetl/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {
+ };
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/manLocDetl/PLocDetlStatis.js b/src/main/webapp/static/js/manLocDetl/PLocDetlStatis.js
new file mode 100644
index 0000000..a48b123
--- /dev/null
+++ b/src/main/webapp/static/js/manLocDetl/PLocDetlStatis.js
@@ -0,0 +1,269 @@
+var pageCurr;
+function getCol() {
+ var cols = [
+ {field: 'anfme', align: 'center',title: '搴撳瓨鏁伴噺', style: 'font-weight: bold'}
+ ];
+ arrRemove(detlCols, "field", "anfme")
+ arrRemove(detlCols, "field", "zpallet")
+ cols.push.apply(cols, detlCols);
+ // cols.push({field: 'anfme', align: 'center',title: '鏁伴噺', style: 'font-weight: bold'}
+ // )
+ return cols;
+}
+
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locDetlStatis',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/manLocDetl/statis/auth',
+ page: true,
+ limit: 20,
+ limits: [20, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ 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';
+ }
+ });
+ /**
+ * 鏄剧ず搴撳瓨鎬绘暟閲�
+ */
+ $.ajax({
+ url: baseUrl+"/manLocDetl/count",
+ headers: {'token': localStorage.getItem('token')},
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ $("#countNum").text(res.data + '涓�');
+ }
+ });
+
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(locDetlStatis)', 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(locDetlStatis)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'exportAll':
+ layer.closeAll();
+ layer.load(1, {shade: [0.1,'#fff']});
+ location.href = baseUrl + "/manLocDetl/statis/export";
+ layer.closeAll('loading');
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'locDetl': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/manLocDetl/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(locDetlStatis)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locDetl_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+
+ }
+ });
+
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+ /**
+ * 鏄剧ず搴撳瓨鎬绘暟閲�
+ */
+ $.ajax({
+ url: baseUrl+"/manLocDetl/matnr/count",
+ headers: {'token': localStorage.getItem('token')},
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ data: JSON.stringify(searchData),
+ success: function (res) {
+ $("#countNum").text(res.data + '涓�');
+ }
+ });
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/node/node.js b/src/main/webapp/static/js/node/node.js
new file mode 100644
index 0000000..ffd99f4
--- /dev/null
+++ b/src/main/webapp/static/js/node/node.js
@@ -0,0 +1,373 @@
+var insTb;
+var admin;
+var areas;
+var matXmSelect;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+ dropdown: 'dropdown/dropdown',
+}).use(['form','treeTable', 'admin', 'xmSelect', 'dropdown', 'element','layer'], function() {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var form = layui.form;
+ admin = layui.admin;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tbDataList = [];
+
+ insTb = treeTable.render({
+ elem: '#node',
+ url: baseUrl+'/node/list/tree/auth',
+ headers: {token: localStorage.getItem('token')},
+ height: 'full-200',
+ toolbar: '#toolbar',
+ treeLinkage:false,
+ tree: {
+ iconIndex: 2, // 鎶樺彔鍥炬爣鏄剧ず鍦ㄧ鍑犲垪
+ isPidData: true, // 鏄惁鏄痠d銆乸id褰㈠紡鏁版嵁
+ idName: 'id', // id瀛楁鍚嶇О
+ pidName: 'parentId' // pid瀛楁鍚嶇О
+ },
+ cols: [[
+ {type: 'checkbox'}
+ // {type: 'numbers'}
+ ,{field: 'name', align: 'left',title: '缂栧彿/鍚嶇О', minWidth: 150}
+ // ,{field: 'uuid', left: 'center',title: '缂栧彿/鍚嶇О', minWidth: 150}
+ ,{field: 'type$', align: 'center',title: '绫诲瀷', templet: '#typeTpl'}
+ // ,{field: 'leading', align: 'center',title: '璐熻矗浜�'}
+ // ,{field: 'img', align: 'center',title: '鍥剧墖', hide: true}
+ // ,{field: 'brief', align: 'center',title: '绠�瑕佹弿杩�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'sort', align: 'center',title: '鎺掑簭'}
+ ,{field: 'status$', align: 'center',title: '鐘舵��', hide: true}
+ ,{field: 'row1$', align: 'center',title: '鎺�'}
+ ,{field: 'bay1$', align: 'center',title: '鍒�'}
+ ,{field: 'lev1$', align: 'center',title: '灞�'}
+ ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞', hide: true}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ done: function (data) {
+ console.log(data)
+ $('.ew-tree-table-box').css('height', '100%');
+ insTb.expandAll();
+ tbDataList = data;
+
+ }
+ });
+
+ /* 琛ㄦ牸澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ treeTable.on('toolbar(node)', function (obj) {
+ var checkRows = insTb.checkStatus();
+ if (obj.event === 'add') { // 娣诲姞
+ showEditModel();
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ if (checkRows.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.map(function (d) {
+ if (!d.LAY_INDETERMINATE) {
+ return d.id;
+ } else {
+ return null;
+ }
+ });
+ doDel({ids: ids});
+ } else if (obj.event === 'printBatch') {
+ if (checkRows.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佹墦鍗扮殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var printContent = checkRows.map(function (d) {
+ if (!d.LAY_INDETERMINATE && d.type === 3) {
+ return d.name;
+ } else {
+ return null;
+ }
+ });
+ printBatch(printContent, 1);
+ }else if (obj.event === 'nodeInit'){
+ nodeInit();
+ }
+ });
+
+ /* 琛ㄦ牸鎿嶄綔鍒楃偣鍑讳簨浠� */
+ treeTable.on('tool(node)', function (obj) {
+ if (obj.event === 'edit') { // 淇敼
+ showEditModel(obj.data);
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ doDel(obj);
+ }
+ });
+
+ /* 鏄剧ず琛ㄥ崟寮圭獥 */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璐т綅',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ // 鍥炴樉琛ㄥ崟鏁版嵁
+ form.val('detail', mData);
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(editSubmit)', function (data) {
+ data.field.parentId = insXmSel.getValue('valueStr');
+ 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});
+ insTb.refresh();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ // 娓叉煋涓嬫媺鏍�
+ var insXmSel = xmSelect.render({
+ el: '#nodeParentSel',
+ height: '250px',
+ data: insTb.options.data,
+ initValue: mData ? [mData.parentId] : [],
+ 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');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function doDel(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ var ids;
+ if (obj.data) {
+ ids = [];
+ ids[0] = obj.data.id;
+ } else {
+ ids = obj.ids;
+ }
+ $.ajax({
+ url: baseUrl+"/node/delete0/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ insTb.refresh();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎵归噺鎵撳嵃
+ function printBatch(printMsgList, type) {
+ var data = [];
+ for (var i = 0; i<printMsgList.length; i ++) {
+ if (printMsgList[i] != null && printMsgList[i] !== '') {
+ var barcodeUrl;
+ if (type === 1) {
+ barcodeUrl = baseUrl+"/barcode/qrcode/auth?type="+type+"¶m="+printMsgList[i]+"&width="+200+"&height="+70;
+ } else {
+ barcodeUrl = baseUrl+"/barcode/qrcode/auth?type="+type+"¶m="+printMsgList[i]+"&width="+400+"&height="+180;
+ }
+ data.push({
+ item: printMsgList[i],
+ barcodeUrl: barcodeUrl
+ })
+ }
+ }
+ var tpl = $('#locPrintTpl').html();
+ var template = Handlebars.compile(tpl);
+ var html = template({data: data});
+ var box = $("#printBox");
+ box.html(html);
+ box.show();
+ box.print({mediaPrint:true});
+ box.hide();
+ }
+
+
+ function nodeInit(){
+ layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞堕噸缃簱浣�', formType: 1, shadeClose: true}, function(pass, idx){
+ http.get(baseUrl+"/node/init/pwd", {pwd: pass}, function (res) {
+ if (res.data) {
+ layer.open({
+ type: 1,
+ title: '鍒濆鍖栧簱浣�',
+ area: ["400px"],
+ maxmin: true,
+ shadeClose: true,
+ content: $("#resetLocDiv"),
+ success: function (layero, index) {
+
+
+ // 娓叉煋鐗╂枡閫夋嫨
+ matXmSelect = xmSelect.render({
+ el: '#mat',
+ style: {
+ width: '200px' ,
+ height: 'auto'
+ },
+ multiple:false,
+ autoRow: true,
+ toolbar: { show: true },
+ filterable: true,
+ remoteSearch: true,
+ radio: true,
+ clickClose: true,
+ remoteMethod: function(val, cb, show){
+ $.ajax({
+ url: baseUrl+"/node/all/get/loc",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ cb(res.data)
+ } else {
+ cb([]);
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ });
+ }
+ })
+ }
+ })
+ } else {
+ layer.msg("鍙d护閿欒");
+ }
+ layer.close(idx);
+ })
+ });
+ }
+
+ // 鍒濆鍖栦繚瀛�
+ form.on('submit(initDo)', function (data) {
+ areas = matXmSelect.getValue();
+ data.field.value = areas[0].value;
+ data.field.name = areas[0].name;
+ console.log(data.field);
+ $.ajax({
+ url: baseUrl+"/node/init/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(data.field),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ layer.msg(res.msg);
+ layer.closeAll();
+ // tableReload(false);
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+
+
+
+});
+
+// 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});
+ insTb.refresh();
+ } 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() {
+
+}
\ No newline at end of file
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..d144f92
--- /dev/null
+++ b/src/main/webapp/static/js/nodeLoc/nodeLoc.js
@@ -0,0 +1,488 @@
+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: '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/manLocDetl/PLocDetl.html b/src/main/webapp/views/manLocDetl/PLocDetl.html
new file mode 100644
index 0000000..991e69c
--- /dev/null
+++ b/src/main/webapp/views/manLocDetl/PLocDetl.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
+ </div>
+ </div>
+ <!-- <div class="layui-inline">-->
+ <!-- <div class="layui-input-inline">-->
+ <!-- <input class="layui-input" type="text" name="row" placeholder="鎺掓暟" autocomplete="off">-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ <!-- <button id="unreason" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="unreason">鏌ョ湅寮傚父鏁版嵁</button>-->
+ </div>
+
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="locDetl" lay-filter="locDetl"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/manLocDetl/PLocDetl.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/manLocDetl/PLocDetlStatis.html b/src/main/webapp/views/manLocDetl/PLocDetlStatis.html
new file mode 100644
index 0000000..a86d8e7
--- /dev/null
+++ b/src/main/webapp/views/manLocDetl/PLocDetlStatis.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储
+ </button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆
+ </button>
+ </div>
+ <div class="layui-inline">
+ <fieldset class="layui-elem-field">
+ <legend>鎬昏鏁伴噺</legend>
+ <div class="layui-field-box" id="countNum">
+ 璇风◢绛�
+ </div>
+ </fieldset>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="locDetlStatis" lay-filter="locDetlStatis"></table>
+</div>
+<script type="text/html" id="toolbar">
+
+ <div class="layui-btn-container layui-col-md1">
+ <button class="layui-btn" lay-event="exportAll" style="margin-top: -0px">瀵煎嚭鍏ㄩ儴</button>
+ </div>
+</script>
+
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/manLocDetl/PLocDetlStatis.js" charset="utf-8"></script>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/node/node.html b/src/main/webapp/views/node/node.html
index bc3b016..1c9e70a 100644
--- a/src/main/webapp/views/node/node.html
+++ b/src/main/webapp/views/node/node.html
@@ -34,21 +34,9 @@
<div class="layui-btn-container" style="width: 100%">
<button lay-event="add" class="layui-btn layui-btn-sm layui-btn-normal icon-btn"><i class="layui-icon"></i>娣诲姞</button>
<button lay-event="del" class="layui-btn layui-btn-sm layui-btn-danger icon-btn"><i class="layui-icon"></i>鍒犻櫎</button>
- <button class="layui-btn layui-btn-sm" id="btn-print-batch" lay-event="printBatch">鎵归噺鎵撳嵃</button>
- <!-- 鍟嗗搧/鐗╂枡 鏁版嵁涓績 -->
- <div class="dropdown-menu" style="margin-left: 0">
- <button class="layui-btn layui-btn-sm icon-btn layui-btn-primary" style="margin-top: 2px"> 鏁版嵁鍚屾 <i class="layui-icon layui-icon-drop"></i></button>
- <ul class="dropdown-menu-nav dark">
- <div class="dropdown-anchor"></div>
- <li class="title">1st menu</li>
- <li><a onclick="excelMouldDownload()" style="font-size: 12px"><i class="layui-icon layui-icon-template-1"></i>妯℃澘涓嬭浇</a></li>
- <li><a onclick="importExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-upload"></i>瀵煎叆 Excel</a></li>
- <li style="display: none"><input id="importExcel" type="file" onchange="upload(this)" ></li>
- <hr>
- <li class="title">2nd menu</li>
- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>瀵煎嚭 Excel</a></li>
- </ul>
- </div>
+<!-- <button class="layui-btn layui-btn-sm" id="btn-print-batch" lay-event="printBatch">鎵归噺鎵撳嵃</button>-->
+ <button class="layui-btn layui-btn-sm layui-btn-warm" id="btn-node-init" lay-event="nodeInit">搴撲綅鍒濆鍖�</button>
+
</div>
</script>
@@ -143,289 +131,45 @@
<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/node/node.js" charset="utf-8"></script>
-<script>
- var insTb;
- var admin;
- layui.config({
- base: baseUrl + "/static/layui/lay/modules/"
- }).extend({
- dropdown: 'dropdown/dropdown',
- }).use(['form','treeTable', 'admin', 'xmSelect', 'dropdown', 'element'], function() {
- var $ = layui.jquery;
- var layer = layui.layer;
- var form = layui.form;
- admin = layui.admin;
- var treeTable = layui.treeTable;
- var xmSelect = layui.xmSelect;
- var tbDataList = [];
+<!-- 閲嶇疆搴撲綅寮圭獥 -->
+<div id="resetLocDiv" style="margin: 20px 0 10px 30px; display: none">
+ <div class="layui-form layui-form-pane">
- insTb = treeTable.render({
- elem: '#node',
- url: baseUrl+'/node/list/tree/auth',
- headers: {token: localStorage.getItem('token')},
- height: 'full-200',
- toolbar: '#toolbar',
- tree: {
- iconIndex: 2, // 鎶樺彔鍥炬爣鏄剧ず鍦ㄧ鍑犲垪
- isPidData: true, // 鏄惁鏄痠d銆乸id褰㈠紡鏁版嵁
- idName: 'id', // id瀛楁鍚嶇О
- pidName: 'parentId' // pid瀛楁鍚嶇О
- },
- cols: [[
- {type: 'checkbox'}
- ,{type: 'numbers'}
- ,{field: 'name', align: 'left',title: '缂栧彿/鍚嶇О', minWidth: 150}
- // ,{field: 'uuid', left: 'center',title: '缂栧彿/鍚嶇О', minWidth: 150}
- ,{field: 'type$', align: 'center',title: '绫诲瀷', templet: '#typeTpl'}
- // ,{field: 'leading', align: 'center',title: '璐熻矗浜�'}
- // ,{field: 'img', align: 'center',title: '鍥剧墖', hide: true}
- // ,{field: 'brief', align: 'center',title: '绠�瑕佹弿杩�'}
- // ,{field: 'count', align: 'center',title: '鏁伴噺'}
- // ,{field: 'sort', align: 'center',title: '鎺掑簭'}
- ,{field: 'status$', align: 'center',title: '鐘舵��', hide: true}
- ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
- ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
- ,{field: 'memo', align: 'center',title: '澶囨敞', hide: true}
+ <!-- 搴撲綅绫诲瀷 -->
+ <div class="layui-form-item">
+ <label class="layui-form-label">搴撳尯</label>
+ <div class="layui-input-inline">
+ <div id="mat" name="areaId">
+ </div>
+ </div>
+ </div>
- ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
- ]],
- done: function (data) {
- console.log(data)
- $('.ew-tree-table-box').css('height', '100%');
- insTb.expandAll();
- tbDataList = data;
- }
- });
+ <!-- 鎺� -->
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">搴撲綅鏁伴噺</label>
+ <div class="layui-input-inline">
+ <input type="number" name="startRow" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
- /* 琛ㄦ牸澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
- treeTable.on('toolbar(node)', function (obj) {
- var checkRows = insTb.checkStatus();
- if (obj.event === 'add') { // 娣诲姞
- showEditModel();
- } else if (obj.event === 'del') { // 鍒犻櫎
- if (checkRows.length === 0) {
- layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
- return;
- }
- var ids = checkRows.map(function (d) {
- if (!d.LAY_INDETERMINATE) {
- return d.id;
- } else {
- return null;
- }
- });
- doDel({ids: ids});
- } else if (obj.event === 'printBatch') {
- if (checkRows.length === 0) {
- layer.msg('璇烽�夋嫨瑕佹墦鍗扮殑鏁版嵁', {icon: 2});
- return;
- }
- var printContent = checkRows.map(function (d) {
- if (!d.LAY_INDETERMINATE && d.type === 3) {
- return d.name;
- } else {
- return null;
- }
- });
- printBatch(printContent, 1);
- }
- });
+ </div>
+ </div>
- /* 琛ㄦ牸鎿嶄綔鍒楃偣鍑讳簨浠� */
- treeTable.on('tool(node)', function (obj) {
- if (obj.event === 'edit') { // 淇敼
- showEditModel(obj.data);
- } else if (obj.event === 'del') { // 鍒犻櫎
- doDel(obj);
- }
- });
- /* 鏄剧ず琛ㄥ崟寮圭獥 */
- function showEditModel(mData) {
- admin.open({
- type: 1,
- area: '600px',
- title: (mData ? '淇敼' : '娣诲姞') + '璐т綅',
- content: $('#editDialog').html(),
- success: function (layero, dIndex) {
- // 鍥炴樉琛ㄥ崟鏁版嵁
- form.val('detail', mData);
- // 琛ㄥ崟鎻愪氦浜嬩欢
- form.on('submit(editSubmit)', function (data) {
- data.field.parentId = insXmSel.getValue('valueStr');
- 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});
- insTb.refresh();
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
- }
- }
- })
- return false;
- });
- // 娓叉煋涓嬫媺鏍�
- var insXmSel = xmSelect.render({
- el: '#nodeParentSel',
- height: '250px',
- data: insTb.options.data,
- initValue: mData ? [mData.parentId] : [],
- 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');
- }
- });
- }
- /* 鍒犻櫎 */
- function doDel(obj) {
- layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
- skin: 'layui-layer-admin',
- shade: .1
- }, function (i) {
- layer.close(i);
- var loadIndex = layer.load(2);
- var ids;
- if (obj.data) {
- ids = [];
- ids[0] = obj.data.id;
- } else {
- ids = obj.ids;
- }
- $.ajax({
- url: baseUrl+"/node/delete0/auth",
- headers: {'token': localStorage.getItem('token')},
- data: {ids: ids},
- method: 'POST',
- success: function (res) {
- layer.close(loadIndex);
- if (res.code === 200){
- layer.msg(res.msg, {icon: 1});
- insTb.refresh();
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- } else {
- layer.msg(res.msg, {icon: 2});
- }
- }
- })
- });
- }
+ <div id="prompt" style="text-indent: 10px;">
+ <span class="not-null">鍒濆鍖栧簱浣嶅悗灏嗗垹闄ゅ簱瀛樻槑缁嗭紝璇疯皑鎱庢搷浣滐紒</span>
+ </div>
+ <!-- 鎸夐挳 -->
+ <div style="text-align: center; margin-top: 20px">
+ <button class="layui-btn layui-btn-radius layui-btn-normal" id="initDo" lay-submit lay-filter="initDo">纭畾</button>
+ </div>
+ </div>
+</div>
- // 鎵归噺鎵撳嵃
- function printBatch(printMsgList, type) {
- var data = [];
- for (var i = 0; i<printMsgList.length; i ++) {
- if (printMsgList[i] != null && printMsgList[i] !== '') {
- var barcodeUrl;
- if (type === 1) {
- barcodeUrl = baseUrl+"/barcode/qrcode/auth?type="+type+"¶m="+printMsgList[i]+"&width="+200+"&height="+70;
- } else {
- barcodeUrl = baseUrl+"/barcode/qrcode/auth?type="+type+"¶m="+printMsgList[i]+"&width="+400+"&height="+180;
- }
- data.push({
- item: printMsgList[i],
- barcodeUrl: barcodeUrl
- })
- }
- }
- var tpl = $('#locPrintTpl').html();
- var template = Handlebars.compile(tpl);
- var html = template({data: data});
- var box = $("#printBox");
- box.html(html);
- box.show();
- box.print({mediaPrint:true});
- box.hide();
- }
- });
-
- // 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});
- insTb.refresh();
- } 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() {
-
- }
-
-</script>
</body>
</html>
diff --git a/src/main/webapp/views/nodeLoc/nodeLoc.html b/src/main/webapp/views/nodeLoc/nodeLoc.html
new file mode 100644
index 0000000..3b14a5c
--- /dev/null
+++ b/src/main/webapp/views/nodeLoc/nodeLoc.html
@@ -0,0 +1,430 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/tree.css" media="all">
+ <style>
+ body {
+ color: #595959;
+ background-color: #f5f7f9;
+ }
+ .layui-fluid {
+ padding: 15px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ /*margin: 15px 0 35px 0;*/
+ width: 100%;
+ border-width: 1px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ height: calc(100vh - 160px);
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ margin: 0;
+ }
+ #search-box {
+ padding: 30px 30px 10px 0px;
+ margin-left: 0px;
+ }
+ .layui-form.layui-border-box.layui-table-view {
+ height: 100%;
+ }
+
+ .admin-form {
+ padding: 25px 30px 0 0 !important;
+ margin: 0 !important;
+ }
+
+ /* ------------------------- 鎵撳嵃琛ㄦ牸 ----------------------- */
+ .template-preview {
+ height: 200px;
+ display: inline-block;
+ }
+ .contain td {
+ border: 1px solid #000;
+ /*font-family: 榛戜綋;*/
+ /*font-weight: bold;*/
+ /*color: #000000;*/
+ }
+ </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+ <!-- 宸� -->
+ <div class="layui-row layui-col-space15">
+ <div class="layui-col-md3">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 鏍戝伐鍏锋爮 -->
+ <div class="layui-form toolbar" id="organizationTreeBar">
+ <div class="layui-inline" style="max-width: 200px;">
+ <input id="condition" onkeyup="findData(this)" type="text" class="layui-input" placeholder="璇疯緭鍏ュ叧閿瓧" autocomplete="off">
+ </div>
+ <div class="layui-inline">
+ <button class="layui-btn icon-btn layui-btn-sm" id="treeReset" style="padding: 0 10px">
+ <i class="layui-icon layui-icon-close"></i>
+ </button>
+ </div>
+ </div>
+ <!-- 鏍� -->
+ <div class="layui-form toolbar" id="organizationTree"></div>
+ </div>
+ </div>
+ </div>
+ <!-- 鍙� -->
+ <div class="layui-col-md9">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <!-- 琛ㄦ牸宸ュ叿鏍�2 -->
+ <div id="search-box" class="layui-form toolbar" style="padding-top: 5px">
+ <div class="layui-inline">
+ <label class="layui-form-label" style="padding: 8px 15px 8px 15px">搴撳尯:</label>
+ <div class="layui-input-inline">
+ <input name="parent_name" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ <table class="layui-hide" id="mat" lay-filter="mat"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="tagTpl">
+ <span name="tagId" class="layui-badge layui-badge-blue">{{d.type$}}</span>
+</script>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <!-- 鍟嗗搧/鐗╂枡 鏁版嵁涓績 -->
+<!-- <div class="dropdown-menu" style="float: right">-->
+<!-- <button class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm"> 鏁版嵁鍚屾 <i class="layui-icon layui-icon-drop"></i></button>-->
+<!-- <ul class="dropdown-menu-nav dark">-->
+<!-- <div class="dropdown-anchor"></div>-->
+<!-- <li class="title">1st menu</li>-->
+<!-- <li><a onclick="excelMouldDownload()" style="font-size: 12px"><i class="layui-icon layui-icon-template-1"></i>妯℃澘涓嬭浇</a></li>-->
+<!-- <li><a onclick="importExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-upload"></i>瀵煎叆 Excel</a></li>-->
+<!-- <li style="display: none"><input id="importExcel" type="file" onchange="upload(this)" ></li>-->
+<!-- <hr>-->
+<!-- <li class="title">2nd menu</li>-->
+<!-- <li><a onclick="exportExcel()" style="font-size: 12px"><i class="layui-icon layui-icon-export"></i>瀵煎嚭 Excel</a></li>-->
+<!-- </ul>-->
+<!-- </div>-->
+ <!-- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right;margin-right: -10px">瀵煎嚭</button>-->
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit layui-btn-primary" lay-event="edit">淇敼</a>
+ <button class="layui-btn layui-btn-xs btn-print" lay-event="btnPrint">鎵撳嵃</button>
+</script>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/jquery/jQuery.print.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/nodeLoc/nodeLoc.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/nodeLoc/nodeLocTree.js" charset="utf-8"></script>
+
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form">
+ <input name="id" type="hidden">
+ <input name="uuid" type="hidden">
+ <input name="nodeId" type="hidden">
+ <input name="tag_id" type="hidden">
+ <input name="model" type="hidden">
+ <input name="name" type="hidden">
+ <input name="batch" type="hidden">
+ <input name="docId" type="hidden">
+ <input name="docNum" type="hidden">
+ <input name="custName" type="hidden">
+ <input name="itemNum" type="hidden">
+ <input name="count" type="hidden">
+ <input name="weight" type="hidden">
+ <input name="status" type="hidden">
+ <input name="createBy" type="hidden">
+ <input name="updateTime$" type="hidden">
+ <input name="updateBy" type="hidden">
+ <div class="layui-row">
+
+ <div class="layui-col-md6">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍒嗙被</label>
+ <div class="layui-input-block">
+ <div id="tagSel" class="ew-xmselect-tree"></div>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鍟嗗搧鍚嶇О</label>
+ <div class="layui-input-block">
+ <input name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">閰嶇疆</label>
+ <div class="layui-input-block">
+ <input name="specs" placeholder="璇疯緭鍏ラ厤缃�" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曠鍑�閲�</label>
+ <div class="layui-input-block">
+ <input name="weight" placeholder="璇疯緭鍏ュ崟绠卞噣閲嶆牸" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曠浣撶Н</label>
+ <div class="layui-input-block">
+ <input name="volume" placeholder="璇疯緭鍏ュ崟绠变綋绉�" class="layui-input">
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-col-md6">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鍟嗗搧缂栧彿</label>
+ <div class="layui-input-block">
+ <input id="matnr" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鍙�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">瑙勬牸</label>
+ <div class="layui-input-block">
+ <input name="specs" placeholder="璇疯緭鍏ヤ唬鐮�" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞</label>
+ <div class="layui-input-block">
+ <input name="memo" placeholder="璇疯緭鍏ュ娉�" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曠姣涢噸</label>
+ <div class="layui-input-block">
+ <input name="length" placeholder="璇疯緭鍏ュ崟绠辨瘺閲�" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍗曠浣撶Н</label>
+ <div class="layui-input-block">
+ <input name="threeCode" placeholder="璇疯緭鍏ョ瀛愬昂瀵�" class="layui-input">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+
+<!-- 鎵撳嵃鎿嶄綔寮圭獥 -->
+<div id="printDataDiv" style="display: none;padding: 20px">
+ <div class="layui-form" style="text-align: center">
+ <hr>
+ <!--鍗曢�夋-->
+ <div class="layui-form-item" style="display: inline-block; margin-bottom: 10px">
+ <input type="radio" name="selectTemplate" value="1" title="妯℃澘涓�" lay-filter="selectTemplateRadio" checked="">
+ <input type="radio" name="selectTemplate" value="2" title="妯℃澘浜�" lay-filter="selectTemplateRadio">
+ <input type="radio" name="selectTemplate" value="3" title="妯℃澘涓�" lay-filter="selectTemplateRadio">
+ </div>
+ <fieldset class="layui-elem-field site-demo-button" style="margin-top: 30px;text-align: left;">
+ <legend>鎵撳嵃棰勮</legend>
+ <div id="template-container" style="margin: 20px;text-align: center">
+
+ <!-- 棰勮鍥� 1 -->
+ <div id="template-preview-1" class="template-preview" style="display: inline-block">
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 74px">
+ <td colspan="3" align="center" scope="col">鍟嗗搧缂栫爜</td>
+ <td class="barcode" colspan="9" align="center" scope="col">
+ <img class="template-code template-barcode" src="" width="90%;">
+ <div style="letter-spacing: 2px;margin-top: 1px; text-align: center;">
+ <span>xxxxxx</span>
+ </div>
+ </td>
+ </tr>
+ <tr style="height: 74px">
+ <td align="center" colspan="3">鍟嗗搧</td>
+ <td align="center" colspan="5">xxxxxx-xx/xx</td>
+ <td align="center" colspan="2">澶囨敞</td>
+ <td align="center" colspan="2">xx</td>
+ </tr>
+ </table>
+ </div>
+
+ <!-- 棰勮鍥� 2 -->
+ <div id="template-preview-2" class="template-preview" style="display: none">
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 30px">
+ <td align="center" width="20%">鍟嗗搧</td>
+ <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
+ </tr>
+ <tr style="height: 30px">
+ <td align="center" width="20%">澶囨敞</td>
+ <td align="center" width="80%">xxxxxxxx</td>
+ </tr>
+ <tr style="height: 75px;">
+ <td align="center" colspan="2" width="100%" style="border: none">
+ <img class="template-code template-barcode" src="" width="80%">
+ <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
+ <span>xxxxxx</span>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <!-- 棰勮鍥� 3 -->
+ <div id="template-preview-3" class="template-preview" style="display: none">
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 74px">
+ <td align="center" scope="col" colspan="1">鍟嗗搧</td>
+ <td align="center" scope="col" colspan="1" style="">xxxxxx-xx/xx</td>
+ <td align="center" scope="col" colspan="2" rowspan="2">
+ <img class="template-code template-qrcode" src="" width="80%">
+ <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
+ <span>xxxxxx</span>
+ </div>
+ </td>
+ </tr>
+ <tr style="height: 74px">
+ <td align="center" colspan="1">澶囨敞</td>
+ <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </fieldset>
+
+ <button class="layui-btn" id="doPrint" lay-submit lay-filter="doPrint" style="margin-top: 20px">纭畾</button>
+ </div>
+</div>
+
+<div id="box" style="display: block"></div>
+
+<!-- 鍒濆鍖栨墦鍗版ā鏉跨殑鏉″舰鐮� -->
+<script type="text/javascript">
+ $('.template-barcode').attr("src", baseUrl+"/mac/code/auth?type=1¶m=123");
+ $('.template-qrcode').attr("src", baseUrl+"/mac/code/auth?type=2¶m=123");
+</script>
+
+<!-- 妯℃澘寮曟搸 -->
+<!-- 妯℃澘1 -->
+<script type="text/template" id="templatePreview1" class="template-barcode">
+ {{#each data}}
+ <table class="contain" width="280" style="overflow: hidden;font-size: small;table-layout: fixed;">
+ <tr style="height: 74px">
+ <td align="center" colspan="3" scope="col">鍟嗗搧缂栫爜</td>
+ <td align="center" class="barcode" colspan="9" scope="col">
+ <img class="template-code" src="{{this.barcodeUrl}}" width="90%">
+ <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
+ <span>{{this.matnr}}</span>
+ </div>
+ </td>
+ </tr>
+ <tr style="height: 74px">
+ <td align="center" colspan="3">鍟嗗搧</td>
+ <td align="center" colspan="5" style="overflow: hidden; white-space: nowrap;text-overflow: ellipsis;">{{this.maktx}}</td>
+ <td align="center" colspan="2">澶囨敞</td>
+ <td align="center" colspan="2">{{this.memo}}</td>
+ </tr>
+ </table>
+ {{/each}}
+</script>
+<!-- 妯℃澘2 -->
+<script type="text/template" id="templatePreview2" class="template-barcode">
+ {{#each data}}
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 35px">
+ <td align="center" width="20%">鍟嗗搧</td>
+ <td align="center" width="80%" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">{{this.maktx}}</td>
+ </tr>
+ <tr style="height: 35px">
+ <td align="center" width="20%">澶囨敞</td>
+ <td align="center" width="80%">{{this.memo}}</td>
+ </tr>
+ <tr style="height: 79px;">
+ <td align="center" colspan="2" width="100%" style="border: none">
+ <img class="template-code" src="{{this.barcodeUrl}}" width="80%">
+ <div style="letter-spacing: 2px;margin-top: 1px; text-align: center">
+ <span>{{this.matnr}}</span>
+ </div>
+ </td>
+ </tr>
+ </table>
+ {{/each}}
+</script>
+<!-- 妯℃澘3 -->
+<script type="text/template" id="templatePreview3" class="template-qrcode">
+ {{#each data}}
+ <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+ <tr style="height: 74px" >
+ <td align="center" scope="col" colspan="1">鍟嗗搧</td>
+ <td align="center" scope="col" colspan="1" style="
+ display: inline-block;
+ line-height: 20px;
+ vertical-align: middle;
+ border: none;
+ border-top: 1px solid #000;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ ">
+ {{this.maktx}}
+ </td>
+ <td align="center" scope="col" colspan="2" rowspan="2">
+ <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="80%">
+ <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
+ <span>{{this.matnr}}</span>
+ </div>
+ </td>
+ </tr>
+ <tr style="height: 74px">
+ <td align="center" colspan="1">澶囨敞</td>
+ <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">{{this.memo}}</td>
+ </tr>
+ </table>
+ {{/each}}
+</script>
+
+</body>
+</html>
+
--
Gitblit v1.9.1