From 25314b5ee613c48e7db31138d7fcb8abc4c536be Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 14 一月 2024 20:15:05 +0800 Subject: [PATCH] # 功能完善 --- src/main/java/com/zy/common/web/BaseController.java | 3 src/main/java/com/zy/asrs/controller/DocTypeController.java | 1 src/main/java/com/zy/asrs/mapper/PlaLogMapper.java | 12 src/main/java/com/zy/common/entity/PlaExcel.java | 16 src/main/webapp/views/order/order.html | 52 + src/main/java/com/zy/asrs/service/OrderDetlService.java | 2 src/main/webapp/static/js/pla/plaDetl.js | 222 ++++++- src/main/webapp/static/js/order/out.js | 35 src/main/java/com/zy/asrs/entity/param/OrderDomainParam.java | 13 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 42 + src/main/java/com/zy/asrs/controller/OutController.java | 68 -- src/main/java/com/zy/asrs/service/MobileService.java | 2 src/main/java/com/zy/asrs/controller/OrderController.java | 29 src/main/java/com/zy/asrs/entity/PlaLog.java | 245 +++++++++ src/main/java/com/zy/asrs/controller/PlaController.java | 105 +++ src/main/java/com/zy/asrs/service/PlaLogService.java | 9 src/main/java/com/zy/asrs/task/OrderLogScheduler.java | 3 src/main/java/com/zy/asrs/controller/MobileController.java | 17 src/main/java/com/zy/asrs/controller/OrderDetlController.java | 15 src/main/webapp/static/js/cool.js | 29 src/main/java/com/zy/asrs/entity/Pla.java | 124 +++ src/main/java/com/zy/asrs/controller/LocOwnerController.java | 1 src/main/webapp/views/pla/returned.html | 5 src/main/java/com/zy/asrs/entity/PlaQty.java | 6 src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java | 20 src/main/webapp/views/pla/sellout.html | 175 ++++- src/main/java/com/zy/asrs/utils/PlaExcelListener.java | 97 +++ src/main/webapp/views/pla/plaDetl.html | 137 +++- src/main/java/com/zy/asrs/controller/NodeController.java | 13 src/main/java/com/zy/asrs/controller/PlaQtyController.java | 4 src/main/java/com/zy/asrs/entity/param/GlobleParameter.java | 9 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 5 src/main/webapp/static/js/order/order.js | 66 +- src/main/webapp/views/order/out.html | 16 src/main/java/com/zy/asrs/service/impl/PlaLogServiceImpl.java | 12 src/main/webapp/static/js/pla/waitingPakin.js | 1 36 files changed, 1,253 insertions(+), 358 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/DocTypeController.java b/src/main/java/com/zy/asrs/controller/DocTypeController.java index 72ce073..4641c70 100644 --- a/src/main/java/com/zy/asrs/controller/DocTypeController.java +++ b/src/main/java/com/zy/asrs/controller/DocTypeController.java @@ -112,6 +112,7 @@ Map<String, Object> map = new HashMap<>(); map.put("id", docType.getDocId()); map.put("value", docType.getDocName()); + map.put("type","docType"); result.add(map); } return R.ok(result); diff --git a/src/main/java/com/zy/asrs/controller/LocOwnerController.java b/src/main/java/com/zy/asrs/controller/LocOwnerController.java index 27aad1e..f9e9513 100644 --- a/src/main/java/com/zy/asrs/controller/LocOwnerController.java +++ b/src/main/java/com/zy/asrs/controller/LocOwnerController.java @@ -123,6 +123,7 @@ map.put("value", locOwner.getOwner()); map.put("phone", locOwner.getPhone()); map.put("addr", locOwner.getAddr()); + map.put("type", "locOwner"); result.add(map); } return R.ok(result); diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 0ec5bf0..c305d33 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -17,6 +17,7 @@ import com.zy.asrs.service.*; import com.zy.common.model.WrkDto; import com.zy.common.web.BaseController; +import com.zy.system.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -427,7 +428,14 @@ if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱"); } - mobileService.plaPakin(locNo,batch,packageNo); + //娴嬭瘯 + if(true){ + User user = new User(); + user.setUsername("test"); + mobileService.plaPakin(locNo,batch,packageNo,user); + return R.ok(); + } + mobileService.plaPakin(locNo,batch,packageNo,getUser()); return R.ok(); } @@ -468,4 +476,11 @@ mobileService.plaPakout(locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme); return R.ok(); } + + public static void main(String[] args) { + String aa = "aabb"; + String[] ccs = aa.split("cc"); + System.out.println(ccs[0]); + } + } diff --git a/src/main/java/com/zy/asrs/controller/NodeController.java b/src/main/java/com/zy/asrs/controller/NodeController.java index 1a3d6b3..15baa78 100644 --- a/src/main/java/com/zy/asrs/controller/NodeController.java +++ b/src/main/java/com/zy/asrs/controller/NodeController.java @@ -13,9 +13,8 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; -import com.zy.asrs.entity.*; +import com.zy.asrs.entity.Node; import com.zy.asrs.entity.param.InitPakoutParam; -import com.zy.asrs.entity.param.LocMastInitParam; import com.zy.asrs.entity.param.NodeInitPatam; import com.zy.asrs.entity.param.PakinParam; import com.zy.asrs.entity.result.KeyValueVo; @@ -24,7 +23,6 @@ import com.zy.common.entity.NodeExcel; import com.zy.common.entity.NodeExcelListener; import com.zy.common.entity.Parameter; -import com.zy.common.model.Shelves; import com.zy.common.utils.ListUtils; import com.zy.common.utils.NodeUtils; import com.zy.common.utils.TreeUtils; @@ -38,8 +36,6 @@ import java.io.IOException; import java.net.URLEncoder; import java.util.*; - -import static jdk.nashorn.api.scripting.ScriptUtils.convert; @RestController public class NodeController extends BaseController { @@ -392,8 +388,11 @@ locNo = param.getName()+"-" +String.format("%02d", r) + String.format("%02d", b) + String.format("%02d", l); } - - + //瀹㈡埛瑕佹眰鏍煎紡浣岮-01-01-01 + StringBuilder sb = new StringBuilder(locNo); + sb.insert(sb.length()-4,"-"); + sb.insert(sb.length()-2,"-"); + locNo = sb.toString(); if (locNo == null){ continue; diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 0302aef..f47db1a 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -133,13 +133,13 @@ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 param.getDocType(), // 鍗曟嵁绫诲瀷 null, // 椤圭洰缂栧彿 - null, // + param.getItemName(), // null, // 璋冩嫧椤圭洰缂栧彿 null, // 鍒濆绁ㄦ嵁鍙� - null, // 绁ㄦ嵁鍙� - null, // 瀹㈡埛缂栧彿 - null, // 瀹㈡埛 - null, // 鑱旂郴鏂瑰紡 + param.getNumber(), // 绁ㄦ嵁鍙� + param.getCstmr(), // 瀹㈡埛缂栧彿 + param.getCstmrName(), // 瀹㈡埛 + param.getTel(), // 鑱旂郴鏂瑰紡 null, // 鎿嶄綔浜哄憳 null, // 鍚堣閲戦 null, // 浼樻儬鐜� @@ -209,9 +209,14 @@ Date now = new Date(); Long userId = getUserId(); // 淇敼涓绘。 - if (!param.getDocType().equals(order.getDocType())) { + if (!param.getDocType().equals(order.getDocType()) || param.getCstmrName() != order.getCstmrName() || !Cools.eq(param.getItemName(),order.getItemName())) { order.setDocType(param.getDocType()); order.setUpdateBy(userId); + order.setCstmr(param.getCstmr()); + order.setCstmrName(param.getCstmrName()); + order.setTel(param.getTel()); + order.setNumber(param.getNumber()); + order.setItemName(param.getItemName()); order.setUpdateTime(now); if (!orderService.updateById(order)) { throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触"); @@ -227,8 +232,7 @@ List<DetlDto> list = new ArrayList<>(); for (OrderDetl orderDetl : param.getOrderDetlList()) { DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); - //if (DetlDto.has(list, dto)) { - if(false){ + if (DetlDto.has(list, dto)) { OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { @@ -343,13 +347,18 @@ @ManagerAuth public R query(String condition) { EntityWrapper<Order> wrapper = new EntityWrapper<>(); - wrapper.like("id", condition); + wrapper.like("order_no", condition); Page<Order> page = orderService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (Order order : page.getRecords()){ Map<String, Object> map = new HashMap<>(); map.put("id", order.getId()); map.put("value", order.getOrderNo()); + map.put("customer",order.getCstmrName()); + map.put("phone",order.getTel()); + map.put("addr",order.getNumber()); + map.put("allocate",order.getItemName()); + map.put("type","order"); result.add(map); } return R.ok(result); @@ -393,7 +402,7 @@ List<OrderDetlVo> orderDetlVos=new ArrayList<>(); OrderDetlVo orderDetlVo=new OrderDetlVo(); for (OrderDetl o: - list) { + list) { orderDetlVo.setOrderNo(o.getOrderNo()); orderDetlVo.setMatnr(o.getMatnr()); orderDetlVo.setMaktx(o.getMaktx()); diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java index 59dfbe0..7417ecb 100644 --- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java +++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java @@ -173,14 +173,25 @@ @RequestMapping(value = "/orderDetlQuery/auth") @ManagerAuth public R query(String condition) { + + if(condition.split(",").length < 2){ + return R.ok(); + } + + String maktxCondition = condition.split(",")[0]; + Long orderId = Long.parseLong(condition.split(",")[1]); + EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); - wrapper.like("id", condition); + wrapper.eq("order_id",orderId); + wrapper.like("maktx", maktxCondition); Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); for (OrderDetl orderDetl : page.getRecords()){ Map<String, Object> map = new HashMap<>(); map.put("id", orderDetl.getId()); - map.put("value", orderDetl.getId()); + map.put("value", orderDetl.getMaktx()); + map.put("weight",orderDetl.getAnfme() - orderDetl.getWorkQty()); + map.put("type","orderDetl"); result.add(map); } return R.ok(result); diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 02b14bc..934e4e8 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -11,15 +11,13 @@ import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; /** @@ -47,10 +45,6 @@ private ManPakOutService manPakOutService; @Autowired private ManLocDetlService manLocDetlService; - @Autowired - private PlaService plaService; - @Autowired - private PlaQtyService plaQtyService; @PostMapping("/out/pakout/orderDetlIds/auth") @@ -74,15 +68,6 @@ } } - List<PlaQty> plaQties = new ArrayList<>(); - - for (OrderDetl orderDetl : orderDetls) { - plaService.queryStock(orderDetl,plaQties); - } - - return R.ok(plaQties); - -/* Set<String> exist = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { @@ -123,13 +108,12 @@ locDtos.add(locDto); } } - return R.ok().add(locDtos); */ + return R.ok().add(locDtos); } @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { - int[][] is=new int[locDtos.size()][2]; for (int i=0;i<locDtos.size();i++){ LocDto locDto=locDtos.get(locDtos.size()-1-i); @@ -184,31 +168,8 @@ @PostMapping("/out/pakout2/auth") @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") - @Transactional - public synchronized R pakout2(@RequestBody List<PlaQty> plaQties) throws InterruptedException { - - for (PlaQty plaQty : plaQties){ - if(Cools.isEmpty(plaQty.getLocNo())){ - continue; - } - //鎻掑叆涓�鏉la鐨勬嫞璐т俊鎭� - plaQtyService.insert(plaQty); - addPakOUT(plaQty); - - Pla pla = plaService.selectByBatchAndPackageNo(plaQty.getBatch(), plaQty.getPackageNo()); - //pla鏄庣粏涓慨鏀归攣瀹氬嚭搴撶殑閲嶉噺 - pla.setQtyAnfme(pla.getQtyAnfme() + plaQty.getQtyAnfme()); - plaService.updateById(pla); - - OrderDetl orderDetl = orderDetlService.selectById(plaQty.getOrderDetlId()); - orderDetl.setWorkQty(orderDetl.getWorkQty() + plaQty.getQtyAnfme()); - orderDetlService.updateById(orderDetl); - orderService.updateSettle(plaQty.getOrderId(),2L,null); - } - - return R.ok(); - - /* int[][] is = new int[locDtos.size()][2]; + public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException { + int[][] is = new int[locDtos.size()][2]; List<String> matnrs=new ArrayList<>(); for (int i = 0; i < locDtos.size(); i++) { LocDto locDto = locDtos.get(locDtos.size() - 1 - i); @@ -300,25 +261,6 @@ addPakOUT(locDto,uuid).equals(R.ok()); } } - return R.ok(); */ - } - - private R addPakOUT(PlaQty plaQty){ - ManPakOut manPakOut=new ManPakOut(); - manPakOut.setWrkNo(plaQty.getOrderNo()+"-"+System.currentTimeMillis()); - manPakOut.setWrkSts((long)1); - manPakOut.setAnfme(plaQty.getQtyAnfme()); - manPakOut.setLocNo(plaQty.getLocNo()); - manPakOut.setBatch(plaQty.getBatch()); - manPakOut.setBarcode(plaQty.getPackageNo()); - manPakOut.setUuid(String.valueOf(System.currentTimeMillis())); - manPakOut.setCreateTime(new Date()); - manPakOut.setUpdateTime(new Date()); - manPakOut.setCount(0.0); - manPakOut.setDocNum(plaQty.getOrderNo()); - manPakOut.setNodeId(plaQty.getOrderDetlId()); - manPakOut.setStatus(0); - manPakOutService.insert(manPakOut); return R.ok(); } diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java index f8978f1..815f418 100644 --- a/src/main/java/com/zy/asrs/controller/PlaController.java +++ b/src/main/java/com/zy/asrs/controller/PlaController.java @@ -1,26 +1,30 @@ package com.zy.asrs.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; -import com.zy.asrs.entity.ManPakOut; -import com.zy.asrs.entity.Pla; -import com.zy.asrs.entity.PlaQty; -import com.zy.asrs.service.ManPakOutService; -import com.zy.asrs.service.PlaQtyService; -import com.zy.asrs.service.PlaService; +import com.zy.asrs.entity.*; +import com.zy.asrs.service.*; +import com.zy.asrs.utils.PlaExcelListener; import com.zy.asrs.utils.SaasUtils; +import com.zy.common.entity.PlaExcel; import com.zy.common.web.BaseController; +import lombok.Synchronized; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -34,6 +38,12 @@ private PlaQtyService plaQtyService; @Autowired private ManPakOutService manPakOutService; + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private PlaLogService plaLogService; @RequestMapping(value = "/pla/list/auth") @ManagerAuth @@ -44,6 +54,7 @@ excludeTrash(param); EntityWrapper<Pla> wrapper = new EntityWrapper<>(); convert(param, wrapper); + wrapper.orderBy("pakin_time",false); allLike(Pla.class, param.keySet(), wrapper, condition); return R.ok(plaService.selectPage(new Page<>(curr, limit), wrapper)); } @@ -63,6 +74,11 @@ public R update(@RequestBody List<Pla> plas) { System.out.println(plas.toString()); plas.forEach(pla -> { + Pla plaSave = plaService.selectById(pla.getId()); + PlaLog plaLog = new PlaLog(); + BeanUtils.copyProperties(plaSave,plaLog); + plaLog.setId(null); + plaLogService.insert(plaLog); plaService.updateById(pla); }); return R.ok(); @@ -76,29 +92,52 @@ @RequestMapping(value = "/pla/sellout/auth") @ManagerAuth + @Transactional + @Synchronized public R sellout(@RequestBody List<Pla> plas) { - plas.forEach(pla -> { + String orderNo = plas.get(0).getOrderNo(); + String maktx = plas.get(0).getBrand(); + Double allOrderWeight = 0.0; + Order order = orderService.selectByNo(orderNo); + OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMaktx(orderNo, maktx); + + for (Pla pla : plas){ + + allOrderWeight += pla.getOrderWeight(); if(pla.getWeightAnfme() - pla.getQtyAnfme() - pla.getOrderWeight() < 0){ - throw new CoolException("璇ュ簱瀛樺墿浣欓噸閲忎笉瓒筹紝璇疯皟鏁村嚭搴撻噸閲�"); + throw new CoolException("鎵瑰彿:" + pla.getBatch() +"锛屽寘鍙�:" + pla.getPackageNo() +" 鍓╀綑鍙嚭搴撻噸閲忎笉瓒筹紝璇疯皟鏁村嚭搴撻噸閲�"); } pla.setQtyAnfme(pla.getQtyAnfme() + pla.getOrderWeight()); pla.setHandlerBy(getUser().getUsername()); pla.setStatus("寰呭嚭搴�"); pla.setPakoutTime(pla.getPakoutTime().split("\\(")[0]); + //鐢熸垚姝ゆ浣滀笟淇℃伅 PlaQty plaQty = new PlaQty(); BeanUtils.copyProperties(pla,plaQty); plaQty.setCreateTime(new Date()); plaQty.setId(null); - + plaQty.setTransfer(order.getDocType$()); + plaQty.setOrderDetlId(orderDetl.getId()); plaService.updateById(pla); plaQtyService.insert(plaQty); - //鐢熸垚鎷h揣鍗� addPakOUT(plaQty); - }); + }; + + //淇敼鍗曟嵁淇℃伅 + if(orderDetl.getAnfme()-orderDetl.getWorkQty()-allOrderWeight < 0){ + throw new CoolException("璇ヨ鍗曞嚭搴撴暟閲忓ぇ浜庤鍗曞緟鍑烘暟閲忥紝璇烽噸鏂伴�夋嫨鍑哄簱鏁伴噺"); + } + if(order.getStatus() < 2){ + orderService.updateSettle(order.getId(),2L,getUserId()); + } + + orderDetl.setWorkQty(orderDetl.getWorkQty() + allOrderWeight); + orderDetlService.updateById(orderDetl); + return R.ok(); } @@ -125,6 +164,36 @@ return R.ok(); } + /** + * excel瀵煎叆妯℃澘涓嬭浇 + */ + @RequestMapping(value = "/pla/excel/import/mould") + public void plaExcelImportMould(HttpServletResponse response) throws IOException { + List<PlaExcel> excels = new ArrayList<>(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("鑱氫钩閰窫xcel瀵煎叆妯℃澘", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), PlaExcel.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .sheet("sheet1") + .doWrite(excels); + } + + // excel瀵煎叆 + @PostMapping(value = "/pla/excel/import/auth") + @ManagerAuth(memo = "pla妗f鏁版嵁瀵煎叆") + @Transactional + public R matExcelImport(MultipartFile file) throws IOException { + PlaExcelListener listener = new PlaExcelListener(getUserId()); + try { + EasyExcel.read(file.getInputStream(), PlaExcel.class, listener).sheet().doRead(); + }catch (Exception e){ + throw new CoolException("瀵煎叆鐨勬暟鎹牸寮忛敊璇紝鍘熷洜锛�" + e.getMessage()); + } + return R.ok("鎴愬姛鍚屾"+listener.getTotal()+"鏉la鐗╂枡鏁版嵁"); + } + 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()); @@ -132,6 +201,10 @@ String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + }else if (entry.getKey().contains("Min")){ + wrapper.ge(entry.getKey().substring(0,entry.getKey().length()-3),val); + }else if (entry.getKey().contains("Max")){ + wrapper.le(entry.getKey().substring(0,entry.getKey().length()-3),val); } else { wrapper.like(entry.getKey(), val); } @@ -143,6 +216,7 @@ manPakOut.setWrkNo(plaQty.getOrderNo()+"-"+System.currentTimeMillis()); manPakOut.setWrkSts((long)1); manPakOut.setAnfme(plaQty.getOrderWeight()); + manPakOut.setMaktx(plaQty.getBrand()); manPakOut.setLocNo(plaQty.getLocNo()); manPakOut.setBatch(plaQty.getBatch()); manPakOut.setBarcode(plaQty.getPackageNo()); @@ -152,6 +226,7 @@ manPakOut.setCount(0.0); manPakOut.setDocNum(plaQty.getOrderNo()); manPakOut.setStatus(0); + manPakOut.setDocId(plaQty.getOrderDetlId()); manPakOut.setNodeId(plaQty.getId()); //manPakOut.setNodeId(plaQty.getOrderDetlId()); manPakOutService.insert(manPakOut); diff --git a/src/main/java/com/zy/asrs/controller/PlaQtyController.java b/src/main/java/com/zy/asrs/controller/PlaQtyController.java index 3e2ef0b..dee0d6c 100644 --- a/src/main/java/com/zy/asrs/controller/PlaQtyController.java +++ b/src/main/java/com/zy/asrs/controller/PlaQtyController.java @@ -57,6 +57,9 @@ if (Cools.isEmpty(manPakOut.getStatus()) || manPakOut.getStatus() != 1) { return false; } + if(plaQty.getReturned() > 0){ + return false; + } return true; }).collect(Collectors.toList()); @@ -86,6 +89,7 @@ map.put("id", plaQty.getId()); map.put("value", orderNo); map.put("customer", plaQty.getCustomer()); + map.put("type","returned"); result.add(map); } return R.ok(result); diff --git a/src/main/java/com/zy/asrs/entity/Pla.java b/src/main/java/com/zy/asrs/entity/Pla.java index e55fe3e..9b7a25b 100644 --- a/src/main/java/com/zy/asrs/entity/Pla.java +++ b/src/main/java/com/zy/asrs/entity/Pla.java @@ -1,13 +1,16 @@ package com.zy.asrs.entity; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.text.SimpleDateFormat; import java.util.Date; @Data @@ -19,111 +22,175 @@ //鍏ュ簱鏃堕棿 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @TableField("pakin_time") - private String pakinTime; + private Date pakinTime; - //鎵瑰彿 - @TableField("batch") - private String batch; + //涓讳綋 + @ExcelProperty(value = "涓讳綋") + @TableField("owner") + private String owner; - //鍖呰鍙� - @TableField("package_no") - private String packageNo; + //涓讳綋 + @ExcelProperty(value = "鐗╄祫绫诲埆") + @TableField("type") + private String type; - //鐗屽彿 - @TableField("brand") - private String brand; - - //閲嶉噺 - @TableField("weight") - private Double weight; + //鐢熶骇璁㈠崟缂栧彿 + @ExcelProperty(value = "鐢熶骇璁㈠崟缂栧彿") + @TableField("pro_order_no") + private String proOrderNo; //杞﹂棿 + @ExcelProperty(value = "鐢熶骇杞﹂棿") @TableField("workshop") private String workshop; //鐢熶骇绾� + @ExcelProperty(value = "鐢熶骇绾�") @TableField("line") private String line; + //鐢熶骇绾� + @ExcelProperty(value = "瀛樿揣缂栫爜") + @TableField("matnr") + private String matnr; + + //鐗屽彿 + @ExcelProperty(value = "鐗屽彿") + @TableField("brand") + private String brand; + + //鎵瑰彿 + @TableField("batch") + @ExcelProperty(value = "鎵瑰彿") + private String batch; + + //鍖呰鍙� + @TableField("package_no") + @ExcelProperty(value = "鍖呰鍙�") + private String packageNo; + + //鍖呰鍙� + @ExcelProperty(value = "鐢熶骇鏃ユ湡") + @TableField("pro_date") + private String proDate; + + //閲嶉噺 + @TableField("weight") + @ExcelProperty(value = "閲嶉噺") + private Double weight; + + @ApiModelProperty(value= "鍗曚綅") + @ExcelProperty(value = "鍗曚綅") + @TableField("unit") + private String unit; + //鍖呰绫诲瀷 @TableField("package_type") + @ExcelProperty(value = "鍖呰绫诲瀷") private String packageType; //鎵樼洏绫诲瀷 @TableField("zpallet_type") + @ExcelProperty(value = "鎵樼洏绫诲瀷") private String zpalletType; //缂犺啘 @TableField("film_wrap") + @ExcelProperty(value = "缂犺啘") private String filmWrap; //鐔旀寚 @TableField("finger_melting") + @ExcelProperty(value = "鐔旀寚") private Double fingerMelting; + + //姘村垎 + @TableField("water") + @ExcelProperty(value = "姘村垎") + private Double water; //鐔旂偣 @TableField("fusing_point") + @ExcelProperty(value = "鐔旂偣") private Double fusingPoint; //鎸ュ彂浠�1 @TableField("vadf1") + @ExcelProperty(value = "鎸ュ彂浠�1") private Double vadf1; //鎸ュ彂浠�2 @TableField("vadf2") + @ExcelProperty(value = "鎸ュ彂浠�2") private Double vadf2; //榛勫害 @TableField("yellowness") + @ExcelProperty(value = "榛勫害") private Double yellowness; //涓嶉�忔槑搴� @TableField("opacity") + @ExcelProperty(value = "涓嶉�忔槑搴�") private Double opacity; - - //姘村垎 - @TableField("water") - private Double water; //L鍊� @TableField("l") + @ExcelProperty(value = "l鍊�") private Double l; //a鍊� @TableField("a") + @ExcelProperty(value = "a鍊�") private Double a; //b鍊� @TableField("b") + @ExcelProperty(value = "b鍊�") private Double b; //濉厖 @TableField("fill_in") + @ExcelProperty(value = "濉厖") private Double fillIn; //璐ㄩ噺鐘舵�� @TableField("mass_state") + @ExcelProperty(value = "璐ㄩ噺鐘朵綋") private String massState; //璐ㄩ噺闂 @TableField("problem") + @ExcelProperty(value = "澶囨敞") private String problem; - //浠撳簱 - @TableField("stash") - private String stash; + //搴旂敤鏂瑰悜 + @ExcelProperty(value = "搴旂敤鏂瑰悜") + @TableField("direction") + private String direction; - //搴撲綅 - @TableField("loc_no") - private String locNo; + //瀛樻斁浣嶇疆 + @ExcelProperty(value = "瀛樻斁浣嶇疆") + @TableField("position") + private String position; //鍓╀綑閲嶉噺 @TableField("weight_anfme") + @ExcelProperty(value = "鍏ュ簱閲�") private Double weightAnfme = 0.0; //寰呭嚭搴撴暟閲� @TableField("qty_anfme") private Double qtyAnfme = 0.0; + + //浠撳簱 + @TableField("stash") + //@ExcelProperty(value = "浠撳簱") + private String stash; + + //搴撲綅 + @TableField("loc_no") + //@ExcelProperty(value = "搴撲綅") + private String locNo; //鐘舵�� @TableField("status") @@ -168,4 +235,11 @@ @TableField("memo") private String memo; + + public String getPakinTime$() { + if (Cools.isEmpty(this.pakinTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pakinTime); + } } diff --git a/src/main/java/com/zy/asrs/entity/PlaLog.java b/src/main/java/com/zy/asrs/entity/PlaLog.java new file mode 100644 index 0000000..f9b42ef --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/PlaLog.java @@ -0,0 +1,245 @@ +package com.zy.asrs.entity; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("asr_pla_detl_log") +public class PlaLog { + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + //鍏ュ簱鏃堕棿 + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pakinTime; + + //涓讳綋 + @ExcelProperty(value = "涓讳綋") + @TableField("owner") + private String owner; + + //涓讳綋 + @ExcelProperty(value = "鐗╄祫绫诲埆") + @TableField("type") + private String type; + + //鐢熶骇璁㈠崟缂栧彿 + @ExcelProperty(value = "鐢熶骇璁㈠崟缂栧彿") + @TableField("pro_order_no") + private String proOrderNo; + + //杞﹂棿 + @ExcelProperty(value = "鐢熶骇杞﹂棿") + @TableField("workshop") + private String workshop; + + //鐢熶骇绾� + @ExcelProperty(value = "鐢熶骇绾�") + @TableField("line") + private String line; + + //鐢熶骇绾� + @ExcelProperty(value = "瀛樿揣缂栫爜") + @TableField("matnr") + private String matnr; + + //鐗屽彿 + @ExcelProperty(value = "鐗屽彿") + @TableField("brand") + private String brand; + + //鎵瑰彿 + @TableField("batch") + @ExcelProperty(value = "鎵瑰彿") + private String batch; + + //鍖呰鍙� + @TableField("package_no") + @ExcelProperty(value = "鍖呰鍙�") + private String packageNo; + + //鍖呰鍙� + @ExcelProperty(value = "鐢熶骇鏃ユ湡") + @TableField("pro_date") + private String proDate; + + //閲嶉噺 + @TableField("weight") + @ExcelProperty(value = "閲嶉噺") + private Double weight; + + @ApiModelProperty(value= "鍗曚綅") + @ExcelProperty(value = "鍗曚綅") + @TableField("unit") + private String unit; + + //鍖呰绫诲瀷 + @TableField("package_type") + @ExcelProperty(value = "鍖呰绫诲瀷") + private String packageType; + + //鎵樼洏绫诲瀷 + @TableField("zpallet_type") + @ExcelProperty(value = "鎵樼洏绫诲瀷") + private String zpalletType; + + //缂犺啘 + @TableField("film_wrap") + @ExcelProperty(value = "缂犺啘") + private String filmWrap; + + //鐔旀寚 + @TableField("finger_melting") + @ExcelProperty(value = "鐔旀寚") + private Double fingerMelting; + + //姘村垎 + @TableField("water") + @ExcelProperty(value = "姘村垎") + private Double water; + + //鐔旂偣 + @TableField("fusing_point") + @ExcelProperty(value = "鐔旂偣") + private Double fusingPoint; + + //鎸ュ彂浠�1 + @TableField("vadf1") + @ExcelProperty(value = "鎸ュ彂浠�1") + private Double vadf1; + + //鎸ュ彂浠�2 + @TableField("vadf2") + @ExcelProperty(value = "鎸ュ彂浠�2") + private Double vadf2; + + //榛勫害 + @TableField("yellowness") + @ExcelProperty(value = "榛勫害") + private Double yellowness; + + //涓嶉�忔槑搴� + @TableField("opacity") + @ExcelProperty(value = "涓嶉�忔槑搴�") + private Double opacity; + + //L鍊� + @TableField("l") + @ExcelProperty(value = "l鍊�") + private Double l; + + //a鍊� + @TableField("a") + @ExcelProperty(value = "a鍊�") + private Double a; + + //b鍊� + @TableField("b") + @ExcelProperty(value = "b鍊�") + private Double b; + + //濉厖 + @TableField("fill_in") + @ExcelProperty(value = "濉厖") + private Double fillIn; + + //璐ㄩ噺鐘舵�� + @TableField("mass_state") + @ExcelProperty(value = "璐ㄩ噺鐘朵綋") + private String massState; + + //璐ㄩ噺闂 + @TableField("problem") + @ExcelProperty(value = "澶囨敞") + private String problem; + + //搴旂敤鏂瑰悜 + @ExcelProperty(value = "搴旂敤鏂瑰悜") + @TableField("direction") + private String direction; + + //瀛樻斁浣嶇疆 + @ExcelProperty(value = "瀛樻斁浣嶇疆") + @TableField("position") + private String position; + + //鍓╀綑閲嶉噺 + @TableField("weight_anfme") + @ExcelProperty(value = "鍏ュ簱閲�") + private Double weightAnfme = 0.0; + //寰呭嚭搴撴暟閲� + @TableField("qty_anfme") + private Double qtyAnfme = 0.0; + + //浠撳簱 + @TableField("stash") + //@ExcelProperty(value = "浠撳簱") + private String stash; + + //搴撲綅 + @TableField("loc_no") + //@ExcelProperty(value = "搴撲綅") + private String locNo; + + //鐘舵�� + @TableField("status") + private String status; + + //姝ラ + @TableField("step") + private int step; + + @TableField("create_time") + private Date createTime; + + @TableField("modify_time") + private Date modifyTime; + + @TableField("create_user") + private String createUser; + + @TableField("modify_user") + private String modifyUser; + + @TableField("order_no") + private String orderNo; + + @TableField("pakout_time") + private String pakoutTime; + + @TableField("order_weight") + private Double orderWeight; + + @TableField("handler_by") + private String handlerBy; + + @TableField("transfer") + private String transfer; + + @TableField("customer") + private String customer; + + @TableField("allocate") + private String allocate; + + @TableField("memo") + private String memo; + + public String getPakinTime$() { + if (Cools.isEmpty(this.pakinTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pakinTime); + } +} diff --git a/src/main/java/com/zy/asrs/entity/PlaQty.java b/src/main/java/com/zy/asrs/entity/PlaQty.java index 59e06cb..274bed0 100644 --- a/src/main/java/com/zy/asrs/entity/PlaQty.java +++ b/src/main/java/com/zy/asrs/entity/PlaQty.java @@ -22,6 +22,9 @@ //鍖呰鍙� private String packageNo; + //鐗屽彿 + private String brand; + //鍗曟嵁鏄庣粏id private Long orderDetlId; @@ -61,7 +64,8 @@ @TableField("memo") private String memo; - private int returned; + //閫�鍥為噸閲� + private Double returned; public PlaQty(String batch, String packageNo, Long orderDetlId, Long orderId, String orderNo, Double qtyAnfme, String locNo, Date createTime) { this.batch = batch; diff --git a/src/main/java/com/zy/asrs/entity/param/GlobleParameter.java b/src/main/java/com/zy/asrs/entity/param/GlobleParameter.java new file mode 100644 index 0000000..dbf4d5f --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/GlobleParameter.java @@ -0,0 +1,9 @@ +package com.zy.asrs.entity.param; + +public class GlobleParameter { + public static final String PLA_STATUS_0 = "寰呭叆搴�"; + public static final String PLA_STATUS_1 = "宸插叆搴�"; + public static final String PLA_STATUS_2 = "寰呭嚭搴�"; + public static final String PLA_STATUS_3 = "閮ㄥ垎鍑哄簱"; + public static final String PLA_STATUS_4 = "鍏ㄩ儴鍑哄簱"; +} diff --git a/src/main/java/com/zy/asrs/entity/param/OrderDomainParam.java b/src/main/java/com/zy/asrs/entity/param/OrderDomainParam.java index c095080..6e073a9 100644 --- a/src/main/java/com/zy/asrs/entity/param/OrderDomainParam.java +++ b/src/main/java/com/zy/asrs/entity/param/OrderDomainParam.java @@ -17,6 +17,19 @@ private String orderNo; + private Long cstmr; + + private String cstmrName; + + //瀹㈡埛鐢佃瘽 + private String tel; + + //璇ュ瓧娈典綔涓哄崟鎹殑瀹㈡埛鍦板潃鏄剧ず + private String number; + + //璋冩嫧鍒� + private String itemName; + private List<OrderDetl> orderDetlList; diff --git a/src/main/java/com/zy/asrs/mapper/PlaLogMapper.java b/src/main/java/com/zy/asrs/mapper/PlaLogMapper.java new file mode 100644 index 0000000..4a951c0 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/PlaLogMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.PlaLog; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface PlaLogMapper extends BaseMapper<PlaLog> { + +} diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index 408bed4..b9f0de4 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -54,7 +54,7 @@ R manDetlOriginOut(JSONObject json, User user); - void plaPakin(String locNo, String batch, String packageNo); + void plaPakin(String locNo, String batch, String packageNo, User user); void plaPakout(String locNo, String batch, String packageNo, String orderNo, String orderDetlId, String wrkNo,Double anfme); } diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java index 8eb61e2..cac22ca 100644 --- a/src/main/java/com/zy/asrs/service/OrderDetlService.java +++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java @@ -41,4 +41,6 @@ Boolean checkAllDetlFinish(String orderNo); Integer sameOrderComb(String orderNo, String matnr, String batch); + + OrderDetl selectByOrderNoAndMaktx(String orderNo, String maktx); } diff --git a/src/main/java/com/zy/asrs/service/PlaLogService.java b/src/main/java/com/zy/asrs/service/PlaLogService.java new file mode 100644 index 0000000..bf1af74 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/PlaLogService.java @@ -0,0 +1,9 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.PlaLog; + +public interface PlaLogService extends IService<PlaLog> { + + +} 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 56ac370..6b9f66b 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -10,13 +10,11 @@ import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.CombParam; -import com.zy.asrs.entity.param.MobileAdjustNewParam; -import com.zy.asrs.entity.param.MobileAdjustParam; -import com.zy.asrs.entity.param.OffSaleParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.SaasUtils; +import com.zy.asrs.utils.Utils; import com.zy.common.model.DetlDto; import com.zy.common.service.CommonService; import com.zy.common.utils.Synchro; @@ -1207,18 +1205,29 @@ } @Override - public void plaPakin(String locNo, String batch, String packageNo) { + public void plaPakin(String locNo, String batch, String packageNo,User user) { Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo); - if(!pla.getLocNo().equals(locNo)){ - throw new CoolException("璇ョ墿鏂欏叆搴撶殑搴撲綅閿欒"); + if(Cools.isEmpty(pla)){ + throw new CoolException("绯荤粺鏈娴嬪埌璇ュ寘鐗╂枡淇℃伅锛岃閲嶆柊褰曞叆"); } - if("宸插叆搴�".equals(pla.getStatus())){ + + if(Cools.eq(GlobleParameter.PLA_STATUS_1,pla.getStatus())){ throw new CoolException("璇ョ墿鏂欏凡鍏ュ簱"); } - pla.setStatus("宸插叆搴�"); + pla.setStatus(GlobleParameter.PLA_STATUS_1); pla.setModifyTime(new Date()); + pla.setPakinTime(new Date()); + + Node node = nodeService.selectByUuid(locNo); + if(Cools.isEmpty(node)){ + throw new CoolException("搴撲綅淇℃伅涓嶆纭�"); + } + + pla.setStash(node.getParentName()); + pla.setLocNo(node.getUuid()); + plaService.updateById(pla); - SaasUtils.insertLog(0,locNo,batch+","+packageNo,pla.getWeightAnfme(),null); + SaasUtils.insertLog(0,locNo,batch+","+packageNo,pla.getWeightAnfme(),user.getUsername()); } @Override @@ -1243,6 +1252,10 @@ manPakOutService.updateById(manPakOut); } + //鏇存柊plaQty淇℃伅 + plaQty.setPakoutTime(Utils.getDateStr(new Date())); + plaQtyService.updateById(plaQty); + //鏇存柊pla鏄庣粏 pla.setWeightAnfme(pla.getWeightAnfme() - anfme); pla.setQtyAnfme(pla.getQtyAnfme() - anfme); @@ -1254,5 +1267,14 @@ plaService.updateById(pla); SaasUtils.insertLog(1,locNo,batch+","+packageNo,anfme,null); + //鏇存柊璁㈠崟鏄庣粏 + Order order = orderService.selectByNo(orderNo); + OrderDetl orderDetl = orderDetlService.selectById(plaQty.getOrderDetlId()); + + orderDetl.setQty(orderDetl.getQty() + anfme); + orderDetlService.updateById(orderDetl); + + orderService.checkComplete(orderNo); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java index 2eeec3b..20541c1 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java @@ -110,4 +110,9 @@ Integer sum = this.baseMapper.sameOrderComb(orderNo, matnr, batch); return sum != null ? sum : 0; } + + @Override + public OrderDetl selectByOrderNoAndMaktx(String orderNo, String maktx) { + return this.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",orderNo).eq("maktx",maktx)); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/PlaLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaLogServiceImpl.java new file mode 100644 index 0000000..c52d40b --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/PlaLogServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.zy.asrs.entity.PlaLog; +import com.zy.asrs.mapper.PlaLogMapper; +import com.zy.asrs.service.PlaLogService; +import org.springframework.stereotype.Service; + +@Service("plaLogService") +public class PlaLogServiceImpl extends ServiceImpl<PlaLogMapper, PlaLog> implements PlaLogService { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java index 5843839..80f23d4 100644 --- a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java @@ -7,9 +7,11 @@ import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.Pla; import com.zy.asrs.entity.PlaQty; +import com.zy.asrs.entity.param.GlobleParameter; import com.zy.asrs.mapper.PlaMapper; import com.zy.asrs.service.PlaQtyService; import com.zy.asrs.service.PlaService; +import com.zy.asrs.utils.SaasUtils; import com.zy.asrs.utils.Utils; import com.zy.system.entity.User; import org.springframework.beans.factory.annotation.Autowired; @@ -40,7 +42,7 @@ if(!Cools.isEmpty(orderDetl.getBrand())){ wrapper.eq("package_no",orderDetl.getBrand()); } - wrapper.eq("status","宸插叆搴�"); + wrapper.eq("status", GlobleParameter.PLA_STATUS_1); wrapper.ge("finger_melting", orderDetl.getFingerMeltingMin()).le("finger_melting", orderDetl.getFingerMeltingMax()); wrapper.ge("fusing_point", orderDetl.getFusingPointMin()).le("fusing_point", orderDetl.getFusingPointMax()); wrapper.ge("yellowness", orderDetl.getYellownessMin()).le("yellowness", orderDetl.getYellownessMax()); @@ -91,7 +93,11 @@ public void returned(List<PlaQty> plaQties, User user) { plaQties.forEach(plaQty -> { PlaQty plaQtyOut = plaQtyService.selectById(plaQty.getId()); - plaQtyOut.setReturned(1); + if(Cools.isEmpty(plaQtyOut.getReturned())){ + plaQtyOut.setReturned(plaQty.getOrderWeight()); + }else { + plaQtyOut.setReturned(plaQty.getOrderWeight()+plaQtyOut.getReturned()); + } plaQtyService.updateById(plaQtyOut); PlaQty plaQtyReturned = new PlaQty(); @@ -101,17 +107,23 @@ plaQtyReturned.setLocNo(plaQtyOut.getLocNo()); plaQtyReturned.setOrderNo(plaQtyOut.getOrderNo()); plaQtyReturned.setPakoutTime(Utils.getDateStr(new Date())); - plaQtyReturned.setOrderWeight(0 - plaQtyOut.getOrderWeight()); + plaQtyReturned.setOrderWeight(plaQty.getOrderWeight()); + plaQtyReturned.setTransfer("閫�鍥炲叆搴�"); plaQtyReturned.setHandlerBy(user.getUsername()); plaQtyReturned.setCustomer(plaQtyOut.getCustomer()); plaQtyReturned.setMemo(plaQty.getMemo()); plaQtyService.insert(plaQtyReturned); + //鐩存帴鏇存柊pla鐨勫簱瀛� Pla pla = this.selectByBatchAndPackageNo(plaQty.getBatch(), plaQty.getPackageNo()); - pla.setStatus("寰呭叆搴�"); + //pla.setStatus(GlobleParameter.PLA_STATUS_0); + pla.setWeightAnfme(plaQty.getOrderWeight()); + pla.setStatus(GlobleParameter.PLA_STATUS_1); this.updateById(pla); + SaasUtils.insertLog(0,pla.getLocNo(),pla.getBatch()+","+pla.getPackageNo(),plaQty.getOrderWeight(),user.getUsername()); + }); } } diff --git a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java index 163cf74..17d0517 100644 --- a/src/main/java/com/zy/asrs/task/OrderLogScheduler.java +++ b/src/main/java/com/zy/asrs/task/OrderLogScheduler.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; @@ -23,7 +22,7 @@ @Value("${erp.enable}") private boolean isERP; - @Scheduled(cron = "0/10 * * * * ? ") + //@Scheduled(cron = "0/10 * * * * ? ") private void execute(){ List<Order> orders = orderService.selectToBeHistoryOrder(isERP); if (orders.isEmpty()) { diff --git a/src/main/java/com/zy/asrs/utils/PlaExcelListener.java b/src/main/java/com/zy/asrs/utils/PlaExcelListener.java new file mode 100644 index 0000000..b44a089 --- /dev/null +++ b/src/main/java/com/zy/asrs/utils/PlaExcelListener.java @@ -0,0 +1,97 @@ +package com.zy.asrs.utils; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.core.exception.CoolException; +import com.zy.asrs.entity.Pla; +import com.zy.asrs.entity.param.GlobleParameter; +import com.zy.asrs.service.PlaService; +import com.zy.common.entity.MatExcel; +import com.zy.common.entity.PlaExcel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Created by vincent on 2019-11-25 + */ +@Slf4j +public class PlaExcelListener extends AnalysisEventListener<PlaExcel> { + + private int total = 0; + private Long userId; + + public PlaExcelListener() { + } + + public PlaExcelListener(Long userId) { + this.userId = userId; + } + + /** + * 姣忛殧5鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互3000鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀� + */ + private static final int BATCH_COUNT = 50; + + private final List<MatExcel> list = new ArrayList<>(); + + /** + * 杩欓噷浼氫竴琛岃鐨勮繑鍥炲ご + */ + @Override + public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { + } + + /** + * 杩欎釜姣忎竴鏉℃暟鎹В鏋愰兘浼氭潵璋冪敤 + */ + @Override + public void invoke(PlaExcel excel, AnalysisContext ctx) { + PlaService plaService = SpringUtils.getBean(PlaService.class); + Date now = new Date(); + + // 鍟嗗搧 + if(Cools.isEmpty(excel.getBatch()) || Cools.isEmpty(excel.getPackageNo())){ + return; + } + Pla pla = plaService.selectByBatchAndPackageNo(excel.getBatch(),excel.getPackageNo()); + if (pla == null) { + pla = excel; + pla.setStep(2); + pla.setCreateTime(new Date()); + pla.setStatus(GlobleParameter.PLA_STATUS_0); + if (!plaService.insert(pla)) { + throw new CoolException("淇濆瓨鍟嗗搧淇℃伅澶辫触锛屽晢鍝佺紪鐮侊細" + excel.getMatnr()); + } + total++; + }else if (pla.getStatus().equals(GlobleParameter.PLA_STATUS_0)){ + excel.setId(pla.getId()); + excel.setCreateTime(pla.getCreateTime()); + excel.setModifyTime(pla.getModifyTime()); + excel.setStep(2); + excel.setStatus(GlobleParameter.PLA_STATUS_0); + BeanUtils.copyProperties(excel,pla); + plaService.updateById(pla); + total++; + } + } + + /** + * 鎵�鏈夋暟鎹В鏋愬畬鎴愪簡璋冪敤 + * 閫傚悎浜嬪姟 + */ + @Override + public void doAfterAllAnalysed(AnalysisContext ctx) { + log.info("鏂板{}鏉$墿鏂欎俊鎭紒", total); + } + + public int getTotal() { + return total; + } +} diff --git a/src/main/java/com/zy/common/entity/PlaExcel.java b/src/main/java/com/zy/common/entity/PlaExcel.java new file mode 100644 index 0000000..291d187 --- /dev/null +++ b/src/main/java/com/zy/common/entity/PlaExcel.java @@ -0,0 +1,16 @@ +package com.zy.common.entity; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.zy.asrs.entity.Pla; +import lombok.Data; + +/** + * 0.A 1.B 2.C 3.D 4.E 5.F 6.G 7.H 8.I + * 9.J 10.K 11.L 12.M 13.N 14.O 15.P 16.Q 17.R 18.S + * 19.T 20.U 21.V 22.W 23.X 24.Y 25.Z + */ +@Data +@ExcelIgnoreUnannotated +public class PlaExcel extends Pla { + +} diff --git a/src/main/java/com/zy/common/web/BaseController.java b/src/main/java/com/zy/common/web/BaseController.java index 995c3d9..b4a2dd6 100644 --- a/src/main/java/com/zy/common/web/BaseController.java +++ b/src/main/java/com/zy/common/web/BaseController.java @@ -169,6 +169,9 @@ column = field.getName(); } if (!set.contains(column)) { + if(Cools.eq(column,"pakinTime")){ + continue; + } columns.add(column); } } diff --git a/src/main/webapp/static/js/cool.js b/src/main/webapp/static/js/cool.js index 511bbd9..e3ae972 100644 --- a/src/main/webapp/static/js/cool.js +++ b/src/main/webapp/static/js/cool.js @@ -40,6 +40,9 @@ if(type){ inputDomVal = inputDomVal + "," + type; } + if(getForeignKeyQuery(val) === 'orderDetlQuery'){ + inputDomVal = inputDomVal + "," + $('#orderNo').val(); + } //debugger; selectDom.length = 0; var defaultOption = new Option("鍙栨秷閫夋嫨", ""); @@ -61,6 +64,9 @@ option.addr = list[i].addr; option.phone = list[i].phone; option.customer = list[i].customer; + option.allocate = list[i].allocate; + option.weight = list[i].weight; + option.type = list[i].type; selectDom.options[i+1] = option; } selectDom.style.display='block'; @@ -99,18 +105,23 @@ } else { cacd.val(selectOptionDom.html()); realDom.val(selectOptionDom.attr("title")); - if(selectOptionDom[0].phone){ - $('#phone').val(selectOptionDom[0].phone); + if(selectOptionDom[0].type === "docType"){ + $('#weight').val(""); + $('#maktxV').val(""); } - if(selectOptionDom[0].addr){ - $('#addr').val(selectOptionDom[0].addr); + if(selectOptionDom[0].type === "order" || selectOptionDom[0].type === "locOwner"){ + $('#allocate').val(selectOptionDom[0].allocate ? selectOptionDom[0].allocate : ""); + $('#customer').val(selectOptionDom[0].customer ? selectOptionDom[0].customer : ""); + $('#phone').val(selectOptionDom[0].phone ? selectOptionDom[0].phone : ""); + $('#addr').val(selectOptionDom[0].addr ? selectOptionDom[0].addr : ""); } - if(selectOptionDom[0].customer){ - $('#customerR').val(selectOptionDom[0].customer); + if(selectOptionDom[0].type === "returned"){ + $('#customer').val(selectOptionDom[0].customer ? selectOptionDom[0].customer : ""); tableReload(); + } - }else { - $('#customerR').val(""); + if(selectOptionDom[0].type === "orderDetl"){ + $('#weight').val(selectOptionDom[0].weight); } } inputDom.val(""); @@ -138,7 +149,7 @@ {field: 'id', title: 'id', hide:true}, {field: 'batch', title: '鎵瑰彿'}, {field: 'packageNo', title: '鍖呭彿'}, - {field: 'orderWeight', title: '閲嶉噺'} + {field: 'orderWeight', title: '閲嶉噺',edit:true} ]], request: { diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js index f6a94a8..5af334f 100644 --- a/src/main/webapp/static/js/order/order.js +++ b/src/main/webapp/static/js/order/order.js @@ -47,6 +47,8 @@ {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}, {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200}, {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160}, + {field: 'cstmrName', align: 'center',title: '瀹㈡埛鍚嶇О'}, + {field: 'itemName', align: 'center',title: '璋冩嫧鍒�'}, {field: 'memo', align: 'center',title: '澶囨敞', hide: true}, {field: 'createBy$', align: 'center', title: '鎿嶄綔鍛�', minWidth: 160, width: 160}, {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 260} @@ -152,6 +154,8 @@ var data = obj.data; var layEvent = obj.event; + + if (layEvent === 'edit') { showEditModel(data); } else if (layEvent === 'del') { @@ -188,24 +192,22 @@ cellMinWidth: 100, cols: [[ {type: 'numbers'}, - // {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, - // {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, - // - // {field: 'batch', title: '鎵瑰彿'}, - {field: 'batch', title: '鎵规'}, - {field: 'brand', title: '鐗屽彿'}, - {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�'}, - {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�'}, - {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�'}, - {field: 'fusingPointMax', title: '鏈�澶х啍鐐�'}, - {field: 'yellownessMin', title: '鏈�灏忛粍搴�'}, - {field: 'yellownessMax', title: '鏈�澶ч粍搴�'}, - {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�'}, - {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, + + {field: 'batch', title: '鎵瑰彿'}, {field: 'anfme', title: '鏁伴噺'}, {field: 'workQty', title: '浣滀笟鏁伴噺'}, {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}, - + // {field: 'unit', title: '鍗曚綅'}, + // { + // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { + // return util.toDateString(d.createTime); + // }, width: 180 + // }, + // {field: 'inQty', title: '宸插叆搴撻噺'}, + // {field: 'color', title: '棰滆壊'}, + // {field: 'specs', title: '瑙勬牸'}, ]], request: { pageName: 'curr', @@ -260,10 +262,6 @@ let nList = admin.util.deepClone(xxDataList); console.log(nList); for (let xi = 0; xi < nList.length; xi++) { - if(!nList[xi].anfme){ - layer.msg('鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2}); - return false; - } if (nList[xi].anfme <= 0){ layer.msg('鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2}); return false; @@ -286,6 +284,11 @@ orderId: Number(data.field.id), docType: Number(data.field.docType), orderNo: data.field.orderNo, + cstmr: data.field.cstmr, + cstmrName: data.field.cstmrName, + tel: data.field.tel, + number: data.field.number, + itemName: data.field.itemName, orderDetlList: nList }), contentType:'application/json;charset=UTF-8', @@ -316,24 +319,14 @@ cellMinWidth: 100, cols: [[ {type: 'numbers', title: '#'}, - // {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, - // {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, - // {field: 'specs', title: '瑙勬牸'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, + {field: 'specs', title: '瑙勬牸'}, {field: 'batch', title: '鎵规', edit: true}, - {field: 'brand', title: '鐗屽彿', edit: true}, - {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�', edit: true}, - {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�', edit: true}, - {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�', edit: true}, - {field: 'fusingPointMax', title: '鏈�澶х啍鐐�', edit: true}, - {field: 'yellownessMin', title: '鏈�灏忛粍搴�', edit: true}, - {field: 'yellownessMax', title: '鏈�澶ч粍搴�', edit: true}, - {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�', edit: true}, - {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�', edit: true}, - - {field: 'anfme', title: '閲嶉噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, + {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, // {field: 'payment', title: '璐х墿鐘舵��',align: 'center', templet: '#payment'}, - {field: 'qty', title: '浣滀笟閲嶉噺', minWidth: 100, width: 100}, + {field: 'qty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100}, // {field: 'unit', title: '鍗曚綅', width: 80}, {field: 'memo', title: '澶囨敞' , edit: true}, {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} @@ -435,7 +428,7 @@ } } data[obj.field] = obj.value; - insTbSSXM.reloadData({data: xxDataList,scrollPos: true}); + insTbSSXM.reloadData({data: xxDataList,scrollPos: true}); }); $('#matAddBtnComment').click(function () { @@ -444,9 +437,6 @@ // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 function showEditModel2(exp) { - xxDataList.push({}); - insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); - return; admin.open({ type: 1, offset: '150px', diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js index 6c3bd2e..21099b0 100644 --- a/src/main/webapp/static/js/order/out.js +++ b/src/main/webapp/static/js/order/out.js @@ -30,23 +30,15 @@ height: 'full-120', where: {order_id: 9999999999}, cols: [[ - {type: 'checkbox'}, - {type: 'numbers', title: '#'}, - {field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, - {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�'}, - {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�'}, - {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�'}, - {field: 'fusingPointMax', title: '鏈�澶х啍鐐�'}, - {field: 'yellownessMin', title: '鏈�灏忛粍搴�'}, - {field: 'yellownessMax', title: '鏈�澶ч粍搴�'}, - {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�'}, - {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�'}, - // ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} - // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} + {type: 'checkbox'} + ,{type: 'numbers', title: '#'} + ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160} + ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} + ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} ,{field: 'anfme', align: 'center',title: '鎬绘暟閲�', style: 'font-weight: bold'} ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'} - // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} - // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true} + ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} + ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true} ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160} ]], request: { @@ -152,16 +144,13 @@ cols: [[ // {type: 'checkbox', merge: ['orderNo']}, {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'}, - {field: 'batch', title: '鎵瑰彿', merge: true, align: 'center'}, - {field: 'packageNo', title: '鍖呭彿', align: 'center'}, - {field: 'orderDetlId', title: 'id', align: 'center',hide:true}, - {field: 'qtyAnfme', title: '鍑哄簱鏁伴噺', align: 'center'}, - {field: 'locNo', title: '搴撲綅鍙�', align: 'center',templet: '#locNoTpl'}, + {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350}, + {field: 'hostId', title: 'id', align: 'center'}, // { title: '鍓╀綑闇�姹傞噺', align: 'center' , width: 120, toolbar: '#checkNeedQty'}, // {field: 'anfme', title: '瀹為檯鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, - // { title: '鍑哄簱鏁伴噺', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'}, - // {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, - // {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, + { title: '鍑哄簱鏁伴噺', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'}, + {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, + {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, // {type: 'checkbox', merge: ['locNo']}, ]], done: function (res) { diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js index 1962af6..2bae082 100644 --- a/src/main/webapp/static/js/pla/plaDetl.js +++ b/src/main/webapp/static/js/pla/plaDetl.js @@ -6,65 +6,88 @@ var data = []; var checkStatus = []; var dataCheck = []; +var admin; function getCol() { var cols = [ {field: 'id', title: 'id', align: 'center',hide:true} ,{type: 'checkbox'} - ,{field: 'pakinTime', title: '鍏ュ簱鏃堕棿', align: 'center'} - ,{field: 'batch', align: 'center',title: '鎵瑰彿'} - ,{field: 'packageNo', align: 'center',title: '鍖呭彿'} - ,{field: 'brand', align: 'center',title: '鐗屽彿'} - ,{field: 'weight', align: 'center',title: '閲嶉噺锛圞G锛�', hide:true} - ,{field: 'workshop', align: 'center',title: '鐢熶骇杞﹂棿', hide:true} - ,{field: 'line', align: 'center',title: '鐢熶骇绾�', hide:true} - ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷'} - ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷'} - ,{field: 'filmWrap', align: 'center',title: '缂犺啘', edit: true} - ,{field: 'fingerMelting', align: 'center',title: '鐔旀寚锛坓/10min锛�'} - ,{field: 'fusingPoint', align: 'center',title: '鐔旂偣锛堚剝锛�'} - ,{field: 'vadf1', align: 'center',title: '鎸ュ彂浠�1锛�%锛�', hide:true} - ,{field: 'vadf2', align: 'center',title: '鎸ュ彂浠�2锛�%锛�', hide:true} - ,{field: 'yellowness', align: 'center',title: '榛勫害', hide:true} - ,{field: 'opacity', align: 'center',title: '涓嶉�忔槑搴︼紙0-100%锛�', hide:true} - ,{field: 'water', align: 'center',title: '姘村垎锛坧pm锛�', hide:true} - ,{field: 'l', align: 'center',title: 'l鍊�', edit: true, hide:true} - ,{field: 'a', align: 'center',title: 'a鍊�', edit: true, hide:true} - ,{field: 'b', align: 'center',title: 'b鍊�', edit: true, hide:true} - ,{field: 'fillIn', align: 'center',title: '濉厖(%)', edit: true} - ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��', hide:true} - ,{field: 'problem', align: 'center',title: '璐ㄩ噺闂', hide:true} - ,{field: 'stash', align: 'center',title: '浠撳簱', edit:true} - ,{field: 'locNo', align: 'center',title: '搴撲綅', edit:true} - ,{field: 'weightAnfme', align: 'center',title: '鍓╀綑閲嶉噺锛圞G锛�', edit:true} - ,{field: 'status', align: 'center',title: '鐘舵��', edit:true} - ,{align: 'center', title: '鏄庣粏', toolbar: '#tbLook'} - ,{field: 'orderNo', align: 'center',title: '鍗曞彿', edit:true} - ,{field: 'pakoutTime', align: 'center',title: '鍑哄簱鏃堕棿', edit:true} - ,{field: 'orderWeight', align: 'center',title: '閲嶉噺', edit:true} - ,{field: 'handlerBy', align: 'center',title: '缁忓姙浜�', edit:true} - ,{field: 'transfer', align: 'center',title: '娴佽浆褰㈠紡', edit:true} - ,{field: 'customer', align: 'center',title: '瀹㈡埛鍚嶇О', edit:true} - ,{field: 'allocate', align: 'center',title: '璋冩嫧鍒�', edit:true} - ,{field: 'memo', align: 'center',title: '澶囨敞', edit:true} + ,{field: 'pakinTime$', title: '鍏ュ簱鏃堕棿', align: 'center'} + ,{field: 'owner', align: 'center',title: '涓讳綋',edit:true} + ,{field: 'type', align: 'center',title: '鐗╄祫绫诲埆',hide:true,edit:true} + ,{field: 'proOrderNo', align: 'center',title: '鍗曞彿',hide:true,edit:true} + ,{field: 'matnr', align: 'center',title: '瀛樿揣缂栫爜',hide:true,edit:true} + ,{field: 'batch', align: 'center',title: '鎵瑰彿',edit:true} + ,{field: 'packageNo', align: 'center',title: '鍖呭彿',edit:true} + ,{field: 'brand', align: 'center',title: '鐗屽彿',edit:true} + ,{field: 'weight', align: 'center',title: '閲嶉噺锛圞G锛�',edit:true} + ,{field: 'workshop', align: 'center',title: '鐢熶骇杞﹂棿',hide:true,edit:true} + ,{field: 'line', align: 'center',title: '鐢熶骇绾�',hide:true,edit:true} + ,{field: 'proDate', align: 'center',title: '鐢熶骇鏃ユ湡',edit:true} + ,{field: 'packageType', align: 'center',title: '鍖呰绫诲瀷',edit:true} + ,{field: 'zpalletType', align: 'center',title: '鎵樼洏绫诲瀷',edit:true} + ,{field: 'filmWrap', align: 'center',title: '缂犺啘',edit:true} + ,{field: 'fingerMelting', align: 'center',title: '鐔旀寚锛坓/10min锛�',edit:true} + ,{field: 'fusingPoint', align: 'center',title: '鐔旂偣锛堚剝锛�',edit:true} + ,{field: 'vadf1', align: 'center',title: '鎸ュ彂浠�1锛�%锛�', hide:true,edit:true} + ,{field: 'vadf2', align: 'center',title: '鎸ュ彂浠�2锛�%锛�', hide:true,edit:true} + ,{field: 'yellowness', align: 'center',title: '榛勫害',edit:true} + ,{field: 'opacity', align: 'center',title: '涓嶉�忔槑搴︼紙0-100%锛�',edit:true} + ,{field: 'water', align: 'center',title: '姘村垎锛坧pm锛�', hide:true,edit:true} + ,{field: 'l', align: 'center',title: 'l鍊�', hide:true,edit:true} + ,{field: 'a', align: 'center',title: 'a鍊�', hide:true,edit:true} + ,{field: 'b', align: 'center',title: 'b鍊�', hide:true,edit:true} + ,{field: 'fillIn', align: 'center',title: '濉厖(%)',hide:true,edit:true} + ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��',edit:true} + ,{field: 'problem', align: 'center',title: '澶囨敞',edit:true} + ,{field: 'stash', align: 'center',title: '浠撳簱',edit:true} + ,{field: 'locNo', align: 'center',title: '搴撲綅',edit:true} + ,{field: 'weightAnfme', align: 'center',title: '鍓╀綑閲嶉噺锛圞G锛�',edit:true} + ,{field: 'qtyAnfme', align: 'center',title: '寰呭嚭搴撻噸閲忥紙KG锛�',hide:true} + ,{field: 'status', align: 'center',title: '鐘舵��', templet: setState ,edit:true} + ,{align: 'center', title: '娴佽浆鏄庣粏', toolbar: '#tbLook'} + ,{field: 'orderNo', align: 'center',title: '鍗曞彿', hide:true} + ,{field: 'pakoutTime', align: 'center',title: '鍑哄簱鏃堕棿', hide:true} + ,{field: 'orderWeight', align: 'center',title: '閲嶉噺', hide:true} + ,{field: 'handlerBy', align: 'center',title: '缁忓姙浜�', hide:true} + ,{field: 'transfer', align: 'center',title: '娴佽浆褰㈠紡', hide:true} + ,{field: 'customer', align: 'center',title: '瀹㈡埛鍚嶇О', hide:true} + ,{field: 'allocate', align: 'center',title: '璋冩嫧鍒�', hide:true} + ,{field: 'memo', align: 'center',title: '澶囨敞', hide:true} ]; return cols; } +function setState(data){ + if(data.status === "寰呭叆搴�"){ + return "<span style='color: orange'>寰呭叆搴�</span>" + }else if(data.status === "宸插叆搴�"){ + return "<span style='color: blue'>宸插叆搴�</span>" + }else if(data.status === "寰呭嚭搴�"){ + return "<span style='color: red'>寰呭嚭搴�</span>" + }else if(data.status === "閮ㄥ垎鍑哄簱"){ + return "<span style='color: black'>閮ㄥ垎鍑哄簱</span>" + }else if(data.status === "鍏ㄩ儴鍑哄簱"){ + return "<span style='color: gray'>鍏ㄩ儴鍑哄簱</span>" + } +} + layui.config({ base: baseUrl + "/static/layui/lay/modules/" -}).use(['table','laydate', 'form', 'admin'], function() { +}).extend({ + dropdown: 'dropdown/dropdown', +}).use(['table','laydate', 'form', 'admin', 'dropdown'], function() { var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; - var admin = layui.admin; + admin = layui.admin; // 鏁版嵁娓叉煋 tableIns = table.render({ elem: '#plaDetl', headers: {token: localStorage.getItem('token')}, - url: baseUrl+'/pla/list/auth?step=3', + url: baseUrl+'/pla/list/auth?step=2', page: true, limit: 16, limits: [16, 30, 50, 100, 200, 500], @@ -119,7 +142,7 @@ type: 1, title: false, area: '1200px', - offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], + offset: ['600px', (left - 1200 + $a.outerWidth()) + 'px'], shade: .01, shadeClose: true, fixed: false, @@ -168,6 +191,41 @@ }); } }); + + } + }) + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(plaDetl)', function (obj) { + var checkStatus = table.checkStatus(obj.config.id) + switch(obj.event) { + case 'updateData': + var data = checkStatus.data; + if (data.length === 0){ + layer.msg('璇烽�夋嫨鏁版嵁'); + } else { + layer.confirm('纭畾淇敼'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){ + $.ajax({ + url: baseUrl+"/pla/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify(data), + contentType:'application/json;charset=UTF-8', + 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; } }) @@ -259,7 +317,6 @@ layer.msg("鏈夋湭濉啓瀛楁"); return; } - data[i].step = 3; dataSave.push(data[i]); }else { dataOld.push(data[i]); @@ -371,13 +428,22 @@ $(document).on('click','#sellout', function () { - let data = table.cache.plaDetl; - let dataSave = []; - let dataOld = []; + var data = table.cache.plaDetl; + var dataSave = []; + var dataOld = []; + var brand; + for(var i=0; i<data.length; i++){ if(data[i].LAY_CHECKED){ - if(data[i].status === "寰呭叆搴�" || data[i].status === "鍏ㄩ儴鍑哄簱"){ - layer.msg("閫変腑鐨勬槑缁嗚繕鏈叆搴撴垨鑰呭凡鍏ㄩ儴鍑哄簱锛岃閲嶆柊閫夋嫨"); + if(data[i].status === "寰呭叆搴�" || data[i].status === "鍏ㄩ儴鍑哄簱"|| data[i].weightAnfme <= data[i].qtyAnfme){ + layer.msg("閫変腑鐨勬槑缁嗚繕鏈叆搴撴垨鑰呭凡鍏ㄩ儴鍑哄簱鎴栬�呮病鏈夊墿浣欏彲鍑洪噸閲忥紝璇烽噸鏂伴�夋嫨"); + return; + } + + brand = brand ? brand : data[i].brand; + + if( brand != data[i].brand){ + layer.msg("閫変腑鐨勬槑缁嗕腑鍚湁澶氱鐗屽彿锛岃閲嶆柊閫夋嫨"); return; } dataSave.push(data[i]); @@ -391,20 +457,16 @@ layer.msg("鏈嬀閫夛紝璇峰厛鍕鹃�夐渶瑕佹洿鏀圭殑搴撳瓨"); return; } - if(dataSave.length > 1){ - layer.msg("璇峰嬀閫変竴鏉″簱瀛樻槑缁�"); - return; - } layer.open({ type: 2, - title: '鍗栧嚭', + title: '鍑哄簱', maxmin: true, area: ['800px', top.detailHeight], shadeClose: false, content: 'sellout.html', success: function(layero, index){ - layer.getChildFrame('#data-detail-submit-edit', index).hide(); + //layer.getChildFrame('#data-detail-submit-edit', index).hide(); top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); @@ -449,7 +511,7 @@ shadeClose: false, content: 'pickup.html', success: function(layero, index){ - layer.getChildFrame('#data-detail-submit-edit', index).hide(); + //layer.getChildFrame('#data-detail-submit-edit', index).hide(); top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); @@ -483,4 +545,58 @@ parent.layer.closeAll(); }); +// excel瀵煎叆妯℃澘涓嬭浇 +function excelMouldDownload(){ + layer.load(1, {shade: [0.1,'#fff']}); + location.href = baseUrl + "/pla/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 + "/pla/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}); +} + diff --git a/src/main/webapp/static/js/pla/waitingPakin.js b/src/main/webapp/static/js/pla/waitingPakin.js index 09674cd..7e172fa 100644 --- a/src/main/webapp/static/js/pla/waitingPakin.js +++ b/src/main/webapp/static/js/pla/waitingPakin.js @@ -143,7 +143,6 @@ layer.msg("鏈夋湭濉啓瀛楁"); return; } - data[i].step = 3; data[i].status = "寰呭叆搴�"; data[i].weightAnfme = data[i].weight; dataSave.push(data[i]); diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html index 54446b4..6777d35 100644 --- a/src/main/webapp/views/order/order.html +++ b/src/main/webapp/views/order/order.html @@ -8,7 +8,7 @@ <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/cool.css" media="all"> <!-- <link rel="stylesheet" href="../../static/css/common.css" media="all">--> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> @@ -89,16 +89,16 @@ <script type="text/html" id="operate"> <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="printExcel">瀵煎嚭Excel</a> {{# if (d.settle == 0 || d.settle == 1) { }} - <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> - <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> {{# } }} {{# if (d.settle == 2) { }} <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a> {{# } }} -<!-- {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 1 || d.docType == 11 || d.docType == 14 || d.docType == 17 || d.docType == 18)) { }}--> -<!-- <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="manPrint">鐢熸垚鎷h揣鍗�</a>--> -<!-- {{# } }}--> + <!-- {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 1 || d.docType == 11 || d.docType == 14 || d.docType == 17 || d.docType == 18)) { }}--> + <!-- <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="manPrint">鐢熸垚鎷h揣鍗�</a>--> + <!-- {{# } }}--> <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint">鎵撳嵃</a> </script> <!-- 琛ㄦ牸鎿嶄綔鍒� --> @@ -149,7 +149,43 @@ <label class="layui-form-label">鍗曟嵁缂栧彿锛�</label> <div class="layui-input-block"> <input id="orderNo" name="orderNo" placeholder="杈撳叆鍗曟嵁缂栧彿" type="text" class="layui-input" maxlength="20" lay-verType="tips" /> -<!-- lay-verify="required"--> + <!-- lay-verify="required"--> + </div> + </div> + <div class="layui-form-item" > + <label class="layui-form-label">瀹㈡埛鍚嶇О锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input id="customer" name="cstmr" class="layui-input" type="text" style="display: none" > + <input id="customerV" name="cstmrName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="locOwnerQueryBylocOwner" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="locOwnerQueryBylocOwnerSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item" > + <label class="layui-form-label">瀹㈡埛鐢佃瘽锛�</label> + <div class="layui-input-block"> + <input id="phone" name="tel" class="layui-input" type="text" readonly="readonly"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瀹㈡埛鍦板潃锛�</label> + <div class="layui-input-block"> + <input id="addr" name="number" class="layui-input" type="text" readonly="readonly"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">璋冩嫧鍒般��锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input id="allocate" name="itemName" class="layui-input" type="text" style="display: none"> + <input id="allocateV" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="configTypeQueryByAllocate" data-value="allocate" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="configTypeQueryByAllocateSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> </div> </div> <div class="layui-form-item" style="position: relative;"> @@ -178,7 +214,7 @@ <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form"> <input name="experimentId" type="hidden"/> <div class="layui-form-item" style="float: left"> - <label class="layui-form-label">鎵瑰彿 - 澶氶��</label> + <label class="layui-form-label">鐗╂枡 - 澶氶��</label> <div class="layui-input-block"> <div id="mat" name="mat"> </div> diff --git a/src/main/webapp/views/order/out.html b/src/main/webapp/views/order/out.html index 3ee53da..fa3d1c1 100644 --- a/src/main/webapp/views/order/out.html +++ b/src/main/webapp/views/order/out.html @@ -175,13 +175,13 @@ <script type="text/html" id="tbBasicTbStaNos"> <div class="ew-select-fixed"> {{#if (d.manu!='骞冲簱') {}} - <select class="order-sta-select" lay-filter="tbBasicTbStaNos"> - {{#if (d.staNos!=null) {}} - {{# for(let i=0; i<d.staNos.length; i++) { }} - <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option> - {{# } }} - {{# } }} - </select> + <select class="order-sta-select" lay-filter="tbBasicTbStaNos"> + {{#if (d.staNos!=null) {}} + {{# for(let i=0; i<d.staNos.length; i++) { }} + <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option> + {{# } }} + {{# } }} + </select> {{# } }} </div> </script> @@ -196,7 +196,7 @@ <script type="text/html" id="locNoTpl"> <span name="locNo" - {{# if( d.locNo){ }} + {{# if( d.lack === false){ }} class="layui-badge layui-badge-green" >{{d.locNo}}</span> {{# } else { }} class="layui-badge layui-badge-red" >搴撳瓨涓嶈冻</span> diff --git a/src/main/webapp/views/pla/plaDetl.html b/src/main/webapp/views/pla/plaDetl.html index 98b7af6..4391965 100644 --- a/src/main/webapp/views/pla/plaDetl.html +++ b/src/main/webapp/views/pla/plaDetl.html @@ -9,7 +9,7 @@ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> <link rel="stylesheet" href="../../static/css/cool.css" media="all"> - <link rel="stylesheet" href="../../static/css/common.css" media="all"> + <style> html { height: 100%; @@ -27,7 +27,7 @@ .layui-card-header { border-bottom: none; } - #search-box { + .search-box { padding: 30px 0 10px 0; } #search-box .layui-inline:first-child { @@ -109,49 +109,120 @@ <!-- 鍔熻兘鍖� --> <div class="function-area"> - <button id="rework" style="alignment: right" class="function-btn">閲嶅仛</button> +<!-- <button id="rework" style="alignment: right" class="function-btn">閲嶅仛</button>--> <button id="updateZpallet" style="alignment: right" class="function-btn1">鎹㈠寘瑁�/鎵樼洏/缂犺啘</button> | - <button id="sellout" style="alignment: right" class="function-btn">鍗栧嚭</button> - <button id="pickup" style="alignment: right" class="function-btn">鍙栬揣</button> | + <button id="sellout" style="alignment: right" class="function-btn">鍑哄簱</button> +<!-- <button id="pickup" style="alignment: right" class="function-btn">鍙栬揣</button> |--> <button id="returned" style="alignment: right" class="function-btn">閫�鍥�</button> </div> <!-- 鎼滅储鏍� --> -<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="batch" placeholder="鎵瑰彿" autocomplete="off"> +<div id="search-box" > + <div class="layui-form layui-card-header"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off"> + </div> </div> - </div> - <div class="layui-inline"> - <div class="layui-input-inline"> - <input class="layui-input" type="text" name="package_no" placeholder="鍖呭彿" autocomplete="off"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="package_no" placeholder="鍖呭彿" autocomplete="off"> + </div> </div> - </div> - <div class="layui-inline"> - <div class="layui-input-inline"> - <input class="layui-input" type="text" name="brand" placeholder="鐗屽彿" autocomplete="off"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="brand" placeholder="鐗屽彿" autocomplete="off"> + </div> </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 class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="status" placeholder="鐘舵��" autocomplete="off"> + </div> </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 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 layui-card-header"> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="finger_meltingMin" placeholder="鏈�灏忕啍鎸�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="finger_meltingMax" placeholder="鏈�澶х啍鎸�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="fusing_pointMin" placeholder="鏈�灏忕啍鐐�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="fusing_pointMax" placeholder="鏈�澶х啍鐐�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="yellownessMin" placeholder="鏈�灏忛粍搴�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="yellownessMax" placeholder="鏈�澶ч粍搴�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="opacityMin" placeholder="鏈�灏忎笉閫忔槑搴�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="opacityMax" placeholder="鏈�澶т笉閫忔槑搴�" autocomplete="off"> + </div> + </div> </div> </div> +<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" style="display: none">鍒犻櫎</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-update" lay-event="updateData" style="display: none">淇敼</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"> @@ -164,7 +235,7 @@ <script type="text/html" id="tbLook"> <span class="layui-text"> <a href="javascript:;" lay-event="look"> - <i class="layui-icon" style="font-size: 12px;"></i> 鏇村 + <i class="layui-icon" style="font-size: 12px;"></i> 鏌ョ湅鏄庣粏 </a> </span> </script> diff --git a/src/main/webapp/views/pla/returned.html b/src/main/webapp/views/pla/returned.html index 3868a55..66967dc 100644 --- a/src/main/webapp/views/pla/returned.html +++ b/src/main/webapp/views/pla/returned.html @@ -28,9 +28,9 @@ </div> </div> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍚嶇О锛�</label> + <label class="layui-form-label">瀹㈡埛鍚嶇О锛�</label> <div class="layui-input-inline"> - <input id="customerR" class="layui-input" type="text" lay-verify="required" readonly="readonly"> + <input id="customer" class="layui-input" type="text" readonly="readonly"> </div> </div> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> @@ -126,7 +126,6 @@ // 鏁版嵁淇敼鍔ㄤ綔 form.on('submit(save)', function () { - debugger let data = table.cache.formSSXMTable; let dataSave = []; for(var i in data){ diff --git a/src/main/webapp/views/pla/sellout.html b/src/main/webapp/views/pla/sellout.html index 0341eea..72e7672 100644 --- a/src/main/webapp/views/pla/sellout.html +++ b/src/main/webapp/views/pla/sellout.html @@ -17,54 +17,65 @@ <form id="detail" class="layui-form" style="text-align: center"> <div class="layui-form layui-card-header"> <div class="layui-inline" style="width:83%;margin-top: 0px;margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟鍙枫��锛�</label> - <div class="layui-input-inline"> - <input id="orderNo" class="layui-input" type="text" lay-verify="required" > - </div> - </div> - <div class="layui-inline" style="width:40%;margin-top: 0px;margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍚嶇О锛�</label> + <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟銆�鍙凤細</label> <div class="layui-input-inline cool-auto-complete"> - <input id="customer" class="layui-input" type="text" style="display: none" lay-verify="required"> - <input id="customerV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> + <input id="orderNo" class="layui-input" type="text" style="display: none" lay-verify="required"> + <input id="orderNoV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> <div class="cool-auto-complete-window"> - <input class="cool-auto-complete-window-input" data-key="locOwnerQueryBylocOwner" onkeyup="autoLoad(this.getAttribute('data-key'))"> - <select class="cool-auto-complete-window-select" data-key="locOwnerQueryBylocOwnerSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> </select> </div> </div> </div> <div class="layui-inline" style="width:40%;margin-top: 0px;margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鐢佃瘽锛�</label> + <label class="layui-form-label"><span class="not-null">*</span>鐗屻��銆�鍙凤細</label> + <div class="layui-input-inline cool-auto-complete"> + <input id="maktx" class="layui-input" type="text" style="display: none" lay-verify="required"> + <input id="maktxV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="orderDetlQueryByMaktx" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="orderDetlQueryByMaktxSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-inline" style="width:40%; margin-bottom: 5px;"> + <label class="layui-form-label"><span class="not-null">*</span>璁㈠崟閲嶉噺锛�</label> <div class="layui-input-inline"> - <input id="phone" class="layui-input" type="text" lay-verify="required" readonly="readonly"> + <input id="weight" class="layui-input" type="text" lay-verify="required" readonly="readonly"> + </div> + </div> + <div class="layui-inline" style="width:40%;margin-top: 0px;margin-bottom: 5px;"> + <label class="layui-form-label">瀹㈡埛鍚嶇О锛�</label> + <div class="layui-input-inline"> + <input id="customer" class="layui-input" type="text" readonly="readonly"> + </div> + </div> + <div class="layui-inline" style="width:40%;margin-top: 0px;margin-bottom: 5px;"> + <label class="layui-form-label">瀹㈡埛鐢佃瘽锛�</label> + <div class="layui-input-inline"> + <input id="phone" class="layui-input" type="text" readonly="readonly"> </div> </div> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛鍦板潃锛�</label> + <label class="layui-form-label">瀹㈡埛鍦板潃锛�</label> <div class="layui-input-inline"> - <input id="addr" class="layui-input" type="text" lay-verify="required" readonly="readonly"> + <input id="addr" class="layui-input" type="text" readonly="readonly"> </div> </div> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> <label class="layui-form-label"><span class="not-null">*</span>鍙戣揣閲嶉噺锛�</label> <div class="layui-input-inline"> - <input id="weight" class="layui-input" type="text" lay-verify="required" placeholder="KG"> + <input id="qtyWeight" class="layui-input" type="text" lay-verify="required" readonly="readonly"> </div> </div> </div> - <div class="layui-form layui-card-header"> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> - <label class="layui-form-label"><span class="not-null">*</span>璋冩嫧鍒般��锛�</label> - <div class="layui-input-inline cool-auto-complete"> - <input id="allocate" class="layui-input" type="text" style="display: none" lay-verify="required"> - <input id="allocateV" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()> - <div class="cool-auto-complete-window"> - <input class="cool-auto-complete-window-input" data-key="configTypeQueryByAllocate" data-value="allocate" onkeyup="autoLoad(this.getAttribute('data-key'))"> - <select class="cool-auto-complete-window-select" data-key="configTypeQueryByAllocateSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> - </select> - </div> + <label class="layui-form-label">璋冩嫧銆�鍒帮細</label> + <div class="layui-input-inline"> + <input id="allocate" class="layui-input" type="text" readonly="readonly"> </div> </div> <div class="layui-inline" style="width:83%; margin-bottom: 5px;"> @@ -106,16 +117,43 @@ <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/pla/plaDetl.js" charset="utf-8"></script> + +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="editForm" lay-filter="editForm" class="layui-form" style="text-align: center"> + <table class="layui-table" id="detailTable" lay-filter="detailTable"></table> + <div class="layui-btn-container layui-form-item"> + <button class="layui-btn layui-btn-normal" type="button" lay-submit ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn layui-btn-normal" type="button" lay-submit lay-filter="detailEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> + + </html> <script> + + $('body').keydown(function () { + if (event.keyCode === 13) { + return; + } + }); + var checkData = []; + var detailData = []; var deliveryTime; function child(data){ checkData = data; + var allWeight = 0; + for (var i in checkData){ + allWeight += (checkData[i].weightAnfme - checkData[i].qtyAnfme) + } + $('#qtyWeight').val(allWeight); delivery(); } + //鏄剧ず4澶╁唴棰勭害鍑哄簱鐨勬椂闂� function delivery(){ $.ajax({ url: baseUrl+"/plaQty/delivery/auth", @@ -164,30 +202,66 @@ var layer = layui.layer; var table = layui.table; - // 鏁版嵁淇敼鍔ㄤ綔 + form.on('submit(edit)', function () { + var dataList = []; + for (var i in checkData){ + var data = { + "batch" : checkData[i].batch, + "packageNo" : checkData[i].packageNo, + "weight" : checkData[i].weightAnfme - checkData[i].qtyAnfme, + } + dataList.push(data); + } + if(detailData.length > 0){ + dataList = detailData; + } + layer.open({ + type: 1, + title: "鏁伴噺淇敼", + content: $('#editDialog').html(), + area: '700px', + success: function (layero, dIndex) { + // 鏄庣粏琛ㄦ牸 + tableIns = table.render({ + elem: '#detailTable', + data: dataList, + limit: 100, + even: true, + cellMinWidth: 50, + cols: [[ + {field: 'batch', title: '鎵瑰彿', width: 160}, + {field: 'packageNo', title: '鍖呭彿', width: 200}, + {field: 'weight', title: '鏁伴噺',edit: true}, + ]], + }); + } + }) + }) + + // 鏁版嵁鎻愪氦鍔ㄤ綔 form.on('submit(save)', function () { - for(var i in checkData){ - checkData[i].packageType = $('#packageTypeV').val(); - checkData[i].zpalletType = $('#zpalletTypeV').val(); - checkData[i].filmWrap = $('#filmWrapV').val(); - checkData[i].step = 3; + if($('#maktxV').val() != checkData[0].brand){ + layer.msg("閫変腑鐨勫簱瀛樼墝鍙蜂笌璁㈠崟鐗屽彿涓嶄竴鑷达紝璇烽噸鏂伴�夋嫨璁㈠崟"); + return; } - checkData[0].type = 'sellOut'; + for (var i in checkData){ + checkData[i].type = 'sellOut'; + checkData[i].orderNo = $('#orderNoV').val(); + checkData[i].customer = $('#customer').val(); + checkData[i].phone = $('#phone').val(); + checkData[i].addr = $('#addr').val(); + checkData[i].orderWeight = detailData[i] ? detailData[i].weight : checkData[i].weightAnfme; + checkData[i].allocate = $('#allocate').val(); + checkData[i].memo = $('#memo').val(); + checkData[i].pakoutTime = deliveryTime; + } - checkData[0].orderNo = $('#orderNo').val(); - checkData[0].customer = $('#customerV').val(); - checkData[0].phone = $('#phone').val(); - checkData[0].addr = $('#addr').val(); - checkData[0].orderWeight = $('#weight').val(); - checkData[0].allocate = $('#allocateV').val(); - checkData[0].memo = $('#memo').val(); if(!deliveryTime){ layer.msg("璇烽�夋嫨鍙戣揣鏃堕棿"); return; } - checkData[0].pakoutTime = deliveryTime; $.ajax({ url: baseUrl+"/pla/sellout/auth", @@ -212,6 +286,25 @@ }) }); + form.on('submit(detailEditSubmit)', function () { + + detailData = table.cache.detailTable; + var allWeight = +0; + for (var i in checkData){ + //妫�娴嬩慨鏀圭殑鏁伴噺鏄惁灏忎簬绛変簬鏈�澶у彲鍑哄簱鏁伴噺 + if(detailData[i].weight <= checkData[i].weightAnfme - checkData[i].qtyAnfme){ + checkData[i].orderWeight = detailData[i].weight; + allWeight = allWeight + Number(detailData[i].weight); + }else { + layer.msg("鎵瑰彿锛�" + detailData[i].batch + "锛屽寘鍙凤細" + detailData[i].packageNo + "鍙嚭搴撻噸閲忓皬浜庝慨鏀瑰悗鐨勬暟閲忥紝璇烽噸鏂板~鍐�"); + return; + } + } + $('#qtyWeight').val(allWeight); + layer.closeAll(); + }) + + function tableReload(child) { var searchData = {}; $.each($('#search-box [name]').serializeArray(), function() { -- Gitblit v1.9.1