From 46607139e955ca266e24bd8561bca1f93a650178 Mon Sep 17 00:00:00 2001 From: wang..123 <brook_w@163.com> Date: 星期二, 22 三月 2022 18:23:39 +0800 Subject: [PATCH] Merge branch 'master' of http://47.97.1.152:5880/r/wms_saas --- src/main/resources/mapper/OrderMapper.xml | 18 src/main/webapp/views/pickout/pickout.html | 158 ++++++ src/main/java/zy/cloud/wms/manager/entity/Pickout.java | 24 + src/main/webapp/static/js/wave/wave.js | 79 +++ src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 205 +++++++- src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java | 20 src/main/java/zy/cloud/wms/manager/service/WorkService.java | 3 src/main/java/zy/cloud/wms/manager/service/impl/PakoutServiceImpl.java | 3 src/main/resources/mapper/PickoutDetlMapper.xml | 1 src/main/java/zy/cloud/wms/manager/controller/PickoutController.java | 9 src/main/java/zy/cloud/wms/common/service/MainService.java | 252 ++++++++++ src/main/java/zy/cloud/wms/manager/controller/WaveController.java | 17 src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java | 4 src/main/java/zy/cloud/wms/manager/controller/PakoutController.java | 19 src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java | 2 src/main/java/zy/cloud/wms/common/model/PickOutDto.java | 20 src/main/java/zy/cloud/wms/manager/service/WaveService.java | 6 src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java | 5 src/main/java/zy/cloud/wms/manager/controller/OrderController.java | 18 src/main/java/zy/cloud/wms/manager/service/PickoutService.java | 1 src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java | 71 ++ src/main/java/zy/cloud/wms/manager/service/OrderService.java | 2 src/main/java/zy/cloud/wms/manager/mapper/PickoutMapper.java | 2 src/main/java/zy/cloud/wms/common/model/MatnrDto.java | 1 src/main/webapp/static/js/ioWorks/matQuery.js | 2 src/main/resources/mapper/PickoutMapper.xml | 6 src/main/java/zy/cloud/wms/manager/controller/WorkController.java | 12 src/main/webapp/static/js/order/order.js | 1 src/main/webapp/views/wave/wave.html | 7 src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java | 3 src/main/webapp/static/js/pickout/pickout.js | 373 +++++++++------- src/main/java/zy/cloud/wms/common/model/WaveStoDto.java | 33 + 32 files changed, 1,105 insertions(+), 272 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/model/MatnrDto.java b/src/main/java/zy/cloud/wms/common/model/MatnrDto.java index 1612c11..190c95e 100644 --- a/src/main/java/zy/cloud/wms/common/model/MatnrDto.java +++ b/src/main/java/zy/cloud/wms/common/model/MatnrDto.java @@ -14,4 +14,5 @@ private String batch; + } diff --git a/src/main/java/zy/cloud/wms/common/model/PickOutDto.java b/src/main/java/zy/cloud/wms/common/model/PickOutDto.java new file mode 100644 index 0000000..072aee3 --- /dev/null +++ b/src/main/java/zy/cloud/wms/common/model/PickOutDto.java @@ -0,0 +1,20 @@ +package zy.cloud.wms.common.model; + +import lombok.Data; + +@Data +public class PickOutDto { + private Integer anfme; + private String locNo; + private String maktx; + private String matnr; + private Integer nodeId; + private Boolean prior; + private Integer reduce; + private Integer remQty; + private String title; + private Integer total; + private Integer type; + private String waveId; + +} diff --git a/src/main/java/zy/cloud/wms/common/model/WaveStoDto.java b/src/main/java/zy/cloud/wms/common/model/WaveStoDto.java new file mode 100644 index 0000000..8a49715 --- /dev/null +++ b/src/main/java/zy/cloud/wms/common/model/WaveStoDto.java @@ -0,0 +1,33 @@ +package zy.cloud.wms.common.model; + +import lombok.Data; +import zy.cloud.wms.manager.entity.OrderDetl; +import zy.cloud.wms.manager.entity.WaveDetl; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class WaveStoDto { + + private String orderNo; + + private List<MatnrDto> dtos; + + public WaveStoDto() { + } + + public WaveStoDto create(String id, List<WaveDetl> orderDetls){ + this.setOrderNo(id); + List<MatnrDto> matnrDtos = new ArrayList<>(); + for (WaveDetl waveDetl : orderDetls) { + MatnrDto matnrDto = new MatnrDto(); + matnrDto.setMatnr(waveDetl.getMatnr()); + matnrDto.setCount(waveDetl.getAnfme()); + matnrDto.setBatch(waveDetl.getBatch()); + matnrDtos.add(matnrDto); + } + this.setDtos(matnrDtos); + return this; + } +} diff --git a/src/main/java/zy/cloud/wms/common/service/MainService.java b/src/main/java/zy/cloud/wms/common/service/MainService.java index 165c823..ec44a62 100644 --- a/src/main/java/zy/cloud/wms/common/service/MainService.java +++ b/src/main/java/zy/cloud/wms/common/service/MainService.java @@ -10,6 +10,7 @@ import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.common.model.OrderStoDto; import zy.cloud.wms.common.model.ReceiveStoDto; +import zy.cloud.wms.common.model.WaveStoDto; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; import zy.cloud.wms.manager.service.*; @@ -37,6 +38,10 @@ private ReceiveService receiveService; @Autowired private ReceiveDetlService receiveDetlService; + @Autowired + private PickoutService pickoutService; + @Autowired + private PickoutDetlService pickoutDetlService; @Transactional public List<StoPreTab> stockOutPreview(OrderStoDto orderStoDto, Long hostId) { @@ -186,7 +191,79 @@ }); return res; } + public List<StoPreTab> orderOutPreview(OrderStoDto orderStoDto, Long hostId){ + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { + throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + List<StoPreTab> res = new ArrayList<>(); + // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� +// locDetlService.checkLocDetlCount(orderStoDto.getDtos()); + for (MatnrDto matnrDto : orderStoDto.getDtos()) { + // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 + Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr()); + if (null == mat) { + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + orderStoDto.getOrderNo() +"鍗曟嵁鍥犳涓柇锛�"); + } + + Double sumAnfme = Optional.ofNullable(locDetlService.selectCountByMatnr(mat.getMatnr(), hostId)).orElse(0.0D); + double lack = 0.0D; + // 缂鸿揣 + if (sumAnfme < matnrDto.getCount()) { + lack = matnrDto.getCount() - sumAnfme; + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + tab.setLocNo("缂鸿揣"); + tab.setTotal(lack); + tab.setReduce(lack); + tab.setRemQty(0.0D); + tab.setPrior(false); + tab.setPrior$("脳"); + tab.setType(0); + res.add(tab); + } + + // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� + List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr()); + double issued = Optional.of(matnrDto.getCount() - lack).orElse(0.0D) ; + double anfme = issued; + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + + tab.setLocNo(locDetl.getLocNo()); + tab.setNodeId(locDetl.getNodeId()); + tab.setTotal(locDetl.getAnfme()); + tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + tab.setRemQty(tab.getTotal() - tab.getReduce()); + tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); + tab.setPrior$(tab.getPrior()?"鉁�":"脳"); + tab.setType(1); + res.add(tab); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + + } + res.sort(new Comparator<StoPreTab>() { + @Override + public int compare(StoPreTab o1, StoPreTab o2) { +// return o1.getMatnr().length() - o2.getMatnr().length(); + return (int) (o1.getAnfme() - o2.getAnfme()); + } + }); + return res; + } @Transactional public void stockOutProcess(OrderStoDto orderStoDto, Long hostId) { if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { @@ -316,6 +393,8 @@ } } + + public static void main(String[] args) { for (int i = 2; i < 51; i++) { @@ -329,4 +408,177 @@ "GO"); } } + + + public void orderStockOutProcess(OrderStoDto orderStoDto, Long hostId, Long userId) { + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { + return; + } + +// Receive receive = receiveService.selectByOrderNo(receiveStoDto.getOrderNo(), hostId); + Order order = orderService.selectByOrderNo(orderStoDto.getOrderNo(), hostId); + if (order == null) { + throw new CoolException(orderStoDto.getOrderNo() + "鍗曟嵁涓嶅瓨鍦�"); + } + Date now = new Date(); + // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� + locDetlService.checkLocDetlCount(orderStoDto.getDtos(), hostId); + + for (MatnrDto matnrDto : orderStoDto.getDtos()) { + // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 + Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr()); + if (null == mat) { + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + matnrDto.getCount() +"鍗曟嵁鍥犳涓柇锛�"); + } + // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� + List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr()); + double issued = Optional.ofNullable(matnrDto.getCount()).orElse(0.0D); + Pickout pickout = new Pickout(); + pickout.setHostId(hostId); + pickout.setUserId(userId); + pickout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId())); + pickout.setWrkSts(1L); + pickout.setOrderQty(1); + pickout.setOrderNos(orderStoDto.getOrderNo()); + pickout.setCreateBy(userId.intValue()); + pickout.setUpdateBy(userId.intValue()); + pickoutService.insert(pickout); + for (LocDetl locDetl : locDetls) { + + if (issued > 0) { + PickoutDetl pickoutDetl = new PickoutDetl(); + pickoutDetl.setHeadId(pickout.getId()); + pickoutDetl.setNodeId(locDetl.getNodeId()); + pickoutDetl.setNodeName(locDetl.getLocNo()); + pickoutDetl.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + pickoutDetl.setMatnr(locDetl.getMatnr()); + pickoutDetl.setMaktx(locDetl.getMaktx()); + pickoutDetl.setName(locDetl.getName()); + pickoutDetl.setSpecs(locDetl.getSpecs()); + pickoutDetl.setModel(locDetl.getModel()); + pickoutDetl.setBatch(locDetl.getBatch()); + pickoutDetl.setUnit(locDetl.getUnit()); + pickoutDetl.setBarcode(locDetl.getBarcode()); + pickoutDetl.setPrice(locDetl.getPrice()); + pickoutDetl.setWeight(locDetl.getWeight()); + pickoutDetl.setStatus(1); + pickoutDetl.setCreateBy(userId.intValue()); + pickoutDetl.setUpdateBy(userId.intValue()); + +// // 淇濆瓨鍑哄簱閫氱煡鍗� +// Pakout pakout = new Pakout(); +// pakout.setHostId(hostId); +// pakout.setWrkSts(1L); +// pakout.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); +// pakout.setZpallet(locDetl.getZpallet()); +// pakout.setLocNo(locDetl.getLocNo()); +// pakout.setNodeId(locDetl.getNodeId()); +// pakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId())); +// VersionUtils.setPakout(pakout, mat); +// pakout.setDocId(receive.getDocType()); // 鍗曟嵁绫诲瀷 +// pakout.setDocNum(receive.getOrderNo()); // 鍗曟嵁缂栧彿 +// pakout.setCreateTime(now); +// pakout.setUpdateTime(now); +// pakout.setStatus(1); + if (!pickoutDetlService.insert(pickoutDetl)) { + throw new CoolException("淇濆瓨鍑哄簱閫氱煡鍗曞け璐�"); + } + if (issued>=locDetl.getAnfme()) { +// // 鍒犻櫎搴撳瓨鏄庣粏 +// if (!locDetlService.removeStock(locDetl.getNodeId(), mat.getMatnr())) { +// throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触"); +// } + } else { +// // 淇敼搴撳瓨鏄庣粏鏁伴噺 +// if (!locDetlService.reduceStock(locDetl.getNodeId(), mat.getMatnr(), issued)) { +// throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触"); +// } + } + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + // 淇敼鍗曟嵁鐘舵�� + if (!orderService.updateSettle(orderStoDto.getOrderNo(), 2L, hostId)) { + throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�"); + } + } + } + + public Object waveOutPreview(WaveStoDto waveStoDto, Long hostId) { + if (Cools.isEmpty(waveStoDto) || Cools.isEmpty(waveStoDto.getDtos())) { + throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + List<StoPreTab> res = new ArrayList<>(); + // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� +// locDetlService.checkLocDetlCount(orderStoDto.getDtos()); + + for (MatnrDto matnrDto : waveStoDto.getDtos()) { + // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 + Mat mat = matService.selectByMatnr(hostId, matnrDto.getMatnr()); + if (null == mat) { + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + waveStoDto.getOrderNo() +"鍗曟嵁鍥犳涓柇锛�"); + } + + Double sumAnfme = Optional.ofNullable(locDetlService.selectCountByMatnr(mat.getMatnr(), hostId)).orElse(0.0D); + double lack = 0.0D; + // 缂鸿揣 + if (sumAnfme < matnrDto.getCount()) { + lack = matnrDto.getCount() - sumAnfme; + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + tab.setLocNo("缂鸿揣"); + tab.setTotal(lack); + tab.setReduce(lack); + tab.setRemQty(0.0D); + tab.setPrior(false); + tab.setPrior$("脳"); + tab.setType(0); + tab.setWaveId(waveStoDto.getOrderNo()); + res.add(tab); + } + + // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� + List<LocDetl> locDetls = locDetlService.findOfSort(hostId, mat.getMatnr()); + double issued = Optional.of(matnrDto.getCount() - lack).orElse(0.0D) ; + double anfme = issued; + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + // 瑙嗗浘瀵硅薄 + StoPreTab tab = new StoPreTab(); + tab.setTitle(mat.getMaktx() + "锛�" + mat.getMatnr() + "锛�"); + tab.setMatnr(mat.getMatnr()); + tab.setMaktx(mat.getMaktx()); + tab.setAnfme(matnrDto.getCount()); + + tab.setLocNo(locDetl.getLocNo()); + tab.setNodeId(locDetl.getNodeId()); + tab.setTotal(locDetl.getAnfme()); + tab.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued); + tab.setRemQty(tab.getTotal() - tab.getReduce()); + tab.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr())); + tab.setPrior$(tab.getPrior()?"鉁�":"脳"); + tab.setType(1); + tab.setWaveId(waveStoDto.getOrderNo()); + res.add(tab); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } + } + + } + res.sort(new Comparator<StoPreTab>() { + @Override + public int compare(StoPreTab o1, StoPreTab o2) { +// return o1.getMatnr().length() - o2.getMatnr().length(); + return (int) (o1.getAnfme() - o2.getAnfme()); + } + }); + return res; + + } } diff --git a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java index b4cc123..1934bb6 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java @@ -123,18 +123,14 @@ for (Long id : ids) { Order target = orderService.selectOne(new EntityWrapper<Order>() .eq("id", id)); - if (target.getSettle() != 0 || target.getSettle() != 1) { + if (target.getSettle() == 0 || target.getSettle() == 1) { + orderService.deleteById(id); + orderDetlService.delete(new EntityWrapper<OrderDetl>() + .eq("order_id",id)); + }else { throw new CoolException("浠呭厑璁稿垹闄�'鍒濆鍖�','寰呭鐞�'鐘舵�佺殑璁㈠崟"); } - } - if (Cools.isEmpty((Object) ids)){ - return R.error(); - } - for (Long id : ids){ - if (!orderService.deleteById(id)) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); - } } return R.ok(); } @@ -212,8 +208,8 @@ */ Integer seqNo = 1; for (Order order : orders) { - if (order.getSettle() != 2L) { - return R.error("浠呮敮鎸�'鏈嫞璐�'鐘舵�佺敓鎴愭尝娆�"); + if (order.getSettle() != 1L) { + return R.error("浠呮敮鎸�'寰呭鐞�'鐘舵�佺敓鎴愭尝娆�"); } } diff --git a/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java index 7b09490..73b9f80 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PakoutController.java @@ -13,7 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import zy.cloud.wms.common.web.BaseController; +import zy.cloud.wms.manager.entity.Order; import zy.cloud.wms.manager.entity.Pakout; +import zy.cloud.wms.manager.service.OrderService; import zy.cloud.wms.manager.service.PakoutService; import java.util.ArrayList; @@ -26,6 +28,8 @@ @Autowired private PakoutService pakoutService; + @Autowired + private OrderService orderService; @RequestMapping(value = "/pakout/{id}/auth") @ManagerAuth @@ -139,13 +143,18 @@ @RequestMapping(value = "/pakout/print/auth") @ManagerAuth public R print(@RequestParam String docNumber) { - List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", docNumber).eq("host_id", getHostId())); - if (!Cools.isEmpty(pakouts)) { - if (pakouts.get(0).getWrkSts() == 1) { - pakoutService.stockOutPrint(null, docNumber, getUserId(), getHostId()); + Order order_no = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", docNumber)); + if (!Cools.isEmpty(order_no)) { + if (order_no.getSettle() == 2) { + order_no.setSettle(7L); + orderService.update(order_no,new EntityWrapper<Order>() + .eq("order_no",docNumber)); + return R.ok(); } + } - return R.ok(); + return R.error(); } } diff --git a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java index 3878bea..2ab4c98 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import zy.cloud.wms.manager.entity.Pickout; +import zy.cloud.wms.manager.entity.PickoutDetl; +import zy.cloud.wms.manager.service.PickoutDetlService; import zy.cloud.wms.manager.service.PickoutService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; @@ -23,6 +25,8 @@ @Autowired private PickoutService pickoutService; + @Autowired + private PickoutDetlService pickoutDetlService; @RequestMapping(value = "/pickout/{id}/auth") @ManagerAuth @@ -78,7 +82,12 @@ @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ + Pickout picout = pickoutService.selectOne(new EntityWrapper<Pickout>() + .eq("id", id)); + pickoutDetlService.delete(new EntityWrapper<PickoutDetl>() + .eq("head_id",id)); pickoutService.deleteById(id); + pickoutService.updateWaveStatus(picout.getWaveNo()); } return R.ok(); } diff --git a/src/main/java/zy/cloud/wms/manager/controller/WaveController.java b/src/main/java/zy/cloud/wms/manager/controller/WaveController.java index 2f34179..f8aa130 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/WaveController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/WaveController.java @@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; +import zy.cloud.wms.common.model.PickOutDto; import zy.cloud.wms.manager.entity.Wave; import zy.cloud.wms.manager.entity.WaveDetl; +import zy.cloud.wms.manager.entity.param.StockOutParam; import zy.cloud.wms.manager.service.OrderService; import zy.cloud.wms.manager.service.WaveDetlService; import zy.cloud.wms.manager.service.WaveService; @@ -18,8 +20,10 @@ import zy.cloud.wms.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import zy.cloud.wms.manager.service.WorkService; import java.util.*; + @RestController public class WaveController extends BaseController { @@ -30,6 +34,8 @@ private WaveDetlService waveDetlService; @Autowired private OrderService orderService; + @Autowired + private WorkService workService; @RequestMapping(value = "/wave/{id}/auth") @ManagerAuth @@ -157,9 +163,14 @@ @RequestMapping("/wave/createOut") @ManagerAuth - public R createWaveOut(@RequestBody Wave wave){ - waveService.createOut(wave,getUserId(),getHostId()); - return R.ok(); + public R createWaveOut(@RequestBody List<PickOutDto> pickOutDtosk){ + return waveService.createOut(pickOutDtosk,getUserId(),getHostId()); + } + + @RequestMapping("/wave/preview") + @ManagerAuth + public R createWavePreview(@RequestBody StockOutParam stockOutParam){ + return workService.wavePreview(stockOutParam, getUserId(), getHostId()); } } diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java index 42162dc..38f9604 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java @@ -79,9 +79,7 @@ @RequestMapping("/stock/out/print") @ManagerAuth(memo = "鎷h揣鍗曟墦鍗�") public R stockOutPrint(@RequestBody StockOutParam stockOutParam) { - - - return workService.stockInPrint(stockOutParam, getUserId(), getHostId()); + return workService.stockOutPrint(stockOutParam, getUserId(), getHostId()); } @RequestMapping("/stock/allot") @@ -180,6 +178,7 @@ return workService.initOrder(param, getUserId(), getHostId()); } + @RequestMapping("/stock/transfer") @ManagerAuth(memo = "搴撳瓨璋冩嫧") public R stockTransfer(@RequestBody AsrsTransferParam number) { @@ -228,6 +227,13 @@ eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); return R.ok().add(docTypes); } + @RequestMapping("docType/out/get") + @ManagerAuth + public R getDocOutTypeData(Integer docClass){ + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("status", 1). + eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); + return R.ok().add(docTypes); + } // 鑾峰彇鎵�鏈夊鎴� @RequestMapping("/cstmr/all/get") diff --git a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java index a5ec084..804a8f3 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java +++ b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java @@ -92,6 +92,15 @@ @ApiModelProperty(value= "") private String memo; + @TableField("order_qty") + private Integer orderQty; + + @TableField("order_nos") + private String orderNos; + + @TableField("wave_no") + private String waveNo; + public Pickout() {} @@ -108,6 +117,21 @@ // null // // ); + public String getWrkSts$(){ + if (this.wrkSts == 1) { + return "鏈墦鍗�"; + } + if (this.wrkSts == 2) { + return "鏈嫞璐�"; + } + if (this.wrkSts == 3) { + return "寮�濮嬫嫞璐�"; + } + if (this.wrkSts == 4) { + return "鎷h揣瀹屾垚"; + } + return ""; + } public Long getId() { return id; } diff --git a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java index 8939674..79d3e56 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java +++ b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java @@ -69,7 +69,7 @@ * 搴撲綅ID */ @ApiModelProperty(value= "搴撲綅ID") - @TableField("node_id") + @TableField("nodeId") private Long nodeId; /** @@ -217,13 +217,16 @@ @ApiModelProperty(value= "淇敼浜哄憳ID") @TableField("update_by") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private Date updateBy; + private Integer updateBy; /** * 澶囨敞 */ @ApiModelProperty(value= "澶囨敞") private String memo; + + @TableField("wrk_no") + private String wrkNo; public PickoutDetl() {} @@ -471,20 +474,9 @@ this.updateTime = updateTime; } - public Date getUpdateBy() { - return updateBy; - } - public String getUpdateBy$(){ - if (Cools.isEmpty(this.updateBy)){ - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateBy); - } - public void setUpdateBy(Date updateBy) { - this.updateBy = updateBy; - } + public String getMemo() { return memo; diff --git a/src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java b/src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java index e32e995..3bd238a 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java +++ b/src/main/java/zy/cloud/wms/manager/entity/StoPreTab.java @@ -32,4 +32,6 @@ private Integer type; + private String waveId; + } diff --git a/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java index 095c175..42447b1 100644 --- a/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java +++ b/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java @@ -22,4 +22,7 @@ void updateStatus(@Param("orderNo") String order); void changeSettleTo12(@Param("orderNo") String orderIds); + + void updateWrkSts(@Param("wrkNo") String wrkNo, @Param("docNum") String docNum, @Param("wrkSts") Integer wrkSts, @Param("userId") Long userId, @Param("hostId") + Long hostId); } diff --git a/src/main/java/zy/cloud/wms/manager/mapper/PickoutMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/PickoutMapper.java index 071d83a..5d23ced 100644 --- a/src/main/java/zy/cloud/wms/manager/mapper/PickoutMapper.java +++ b/src/main/java/zy/cloud/wms/manager/mapper/PickoutMapper.java @@ -1,5 +1,6 @@ package zy.cloud.wms.manager.mapper; +import org.apache.ibatis.annotations.Param; import zy.cloud.wms.manager.entity.Pickout; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -9,4 +10,5 @@ @Repository public interface PickoutMapper extends BaseMapper<Pickout> { + void updateWaveStatus(@Param("waveNo") String waveNo); } diff --git a/src/main/java/zy/cloud/wms/manager/service/OrderService.java b/src/main/java/zy/cloud/wms/manager/service/OrderService.java index 92af9fd..b2bf5f4 100644 --- a/src/main/java/zy/cloud/wms/manager/service/OrderService.java +++ b/src/main/java/zy/cloud/wms/manager/service/OrderService.java @@ -23,4 +23,6 @@ void updateStatus(String order); void changeSettleTo12(String orderIds); + + void stockOutPrint(String wrkNo, String docNumber, Long userId, Long hostId); } diff --git a/src/main/java/zy/cloud/wms/manager/service/PickoutService.java b/src/main/java/zy/cloud/wms/manager/service/PickoutService.java index 8191757..c5269bb 100644 --- a/src/main/java/zy/cloud/wms/manager/service/PickoutService.java +++ b/src/main/java/zy/cloud/wms/manager/service/PickoutService.java @@ -5,4 +5,5 @@ public interface PickoutService extends IService<Pickout> { + void updateWaveStatus(String waveNo); } diff --git a/src/main/java/zy/cloud/wms/manager/service/WaveService.java b/src/main/java/zy/cloud/wms/manager/service/WaveService.java index 9030a70..cd4839b 100644 --- a/src/main/java/zy/cloud/wms/manager/service/WaveService.java +++ b/src/main/java/zy/cloud/wms/manager/service/WaveService.java @@ -1,9 +1,13 @@ package zy.cloud.wms.manager.service; +import com.core.common.R; +import zy.cloud.wms.common.model.PickOutDto; import zy.cloud.wms.manager.entity.Wave; import com.baomidou.mybatisplus.service.IService; +import java.util.List; + public interface WaveService extends IService<Wave> { - void createOut(Wave wave, Long userId, Long hostId); + R createOut(List<PickOutDto> pickOutDtosk, Long userId, Long hostId); } diff --git a/src/main/java/zy/cloud/wms/manager/service/WorkService.java b/src/main/java/zy/cloud/wms/manager/service/WorkService.java index 4a9138c..8c0691c 100644 --- a/src/main/java/zy/cloud/wms/manager/service/WorkService.java +++ b/src/main/java/zy/cloud/wms/manager/service/WorkService.java @@ -41,4 +41,7 @@ R stockCheckAuditing(Long checkId, Long userId, Long hostId); + R initOutOrder(InitOrderParam param, Long userId, Long hostId); + + R wavePreview(StockOutParam stockOutParam, Long userId, Long hostId); } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java index 39ffe94..b87ace1 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java @@ -62,5 +62,10 @@ this.baseMapper.changeSettleTo12(orderIds); } + @Override + public void stockOutPrint(String wrkNo, String docNumber, Long userId, Long hostId) { + this.baseMapper.updateWrkSts(wrkNo, docNumber, 7, userId, hostId); + } + } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/PakoutServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/PakoutServiceImpl.java index 245e5e3..32712df 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/PakoutServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/PakoutServiceImpl.java @@ -11,7 +11,8 @@ @Override public Boolean stockOutPrint(String wrkNo, String docNum, Long userId, Long hostId) { - return this.baseMapper.updateWrkSts(wrkNo, docNum, 2, userId, hostId)>0; + boolean b = this.baseMapper.updateWrkSts(wrkNo, docNum, 7, userId, hostId) > 0; + return b; } @Override diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java index 2394c74..c0d5357 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java @@ -9,4 +9,8 @@ @Service("pickoutService") public class PickoutServiceImpl extends ServiceImpl<PickoutMapper, Pickout> implements PickoutService { + @Override + public void updateWaveStatus(String waveNo) { + this.baseMapper.updateWaveStatus(waveNo); + } } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java index 841a1cb..4360bf9 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/WaveServiceImpl.java @@ -2,18 +2,19 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.R; import com.core.exception.CoolException; import org.springframework.beans.factory.annotation.Autowired; -import zy.cloud.wms.manager.entity.WaveDetl; +import zy.cloud.wms.common.model.PickOutDto; +import zy.cloud.wms.manager.entity.*; import zy.cloud.wms.manager.mapper.WaveMapper; -import zy.cloud.wms.manager.entity.Wave; -import zy.cloud.wms.manager.service.OrderService; -import zy.cloud.wms.manager.service.WaveDetlService; -import zy.cloud.wms.manager.service.WaveService; +import zy.cloud.wms.manager.service.*; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; @@ -25,23 +26,72 @@ private OrderService orderService; @Autowired private WaveService waveService; + @Autowired + private PickoutService pickoutService; + @Autowired + private PickoutDetlService pickoutDetlService; + @Autowired + private MatService matService; /** * 閫氳繃娉㈡鐢熸垚鎷h揣鍗� - * @param wave + * @param * @param userId * @param hostId */ @Override - public void createOut(Wave wave, Long userId, Long hostId) { + public R createOut(List<PickOutDto> pickOutDtosk, Long userId, Long hostId) { HashSet<String> orderIds = new HashSet<>(); /** * 鎺х */ + if (Cools.isEmpty(pickOutDtosk)) { + throw new CoolException("鏁版嵁浼犺緭閿欒,璇疯仈绯荤鐞嗗憳"); + } + Wave wave = waveService.selectOne(new EntityWrapper<Wave>() + .eq("id", pickOutDtosk.get(0).getWaveId())); List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() .eq("wave_id", wave.getId())); - if (Cools.isEmpty(waveDetls)) { - throw new CoolException("鎵句笉鍒拌娉㈡鍗曠殑璇︽儏,璇疯仈绯荤鐞嗗憳"); + + /** + * 鐢熸垚鎷h揣鍗� + */ + Pickout pickout = new Pickout(); + pickout.setHostId(hostId); + pickout.setUserId(userId); + pickout.setWrkNo("PO-"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); + pickout.setWrkSts(1L); + pickout.setCreateBy(userId.intValue()); + pickout.setUpdateBy(userId.intValue()); + pickout.setOrderQty(wave.getOrdersQty()); + pickout.setWaveNo(wave.getWaveNo()); + pickoutService.insert(pickout); + for (PickOutDto pickOutDto : pickOutDtosk) { + Mat mat = matService.selectByMatnr(hostId, pickOutDto.getMatnr()); + if (Cools.isEmpty(mat)) { + pickoutService.delete(new EntityWrapper<Pickout>() + .eq("id",pickout.getId())); + throw new CoolException("鏌ヨ涓嶅埌璇ョ墿鏂欐槑缁�"); + + } + PickoutDetl pickoutDetl = new PickoutDetl(); + pickoutDetl.setHeadId(pickout.getId()); + pickoutDetl.setNodeId(pickOutDto.getNodeId().longValue()); + pickoutDetl.setNodeName(pickOutDto.getLocNo()); + pickoutDetl.setAnfme(pickOutDto.getAnfme().doubleValue()); + pickoutDetl.setMatnr(pickOutDto.getMatnr()); + pickoutDetl.setMaktx(mat.getMaktx()); + pickoutDetl.setName(mat.getName()); + pickoutDetl.setSpecs(mat.getSpecs()); + pickoutDetl.setModel(mat.getModel()); + pickoutDetl.setUnit(mat.getUnit()); + pickoutDetl.setPrice(mat.getPrice()); + pickoutDetl.setWeight(mat.getWeight()); + pickoutDetl.setStatus(1); + pickoutDetl.setCreateBy(userId.intValue()); + pickoutDetl.setUpdateBy(userId.intValue()); + pickoutDetl.setWrkNo(pickout.getWrkNo()); + pickoutDetlService.insert(pickoutDetl); } /** @@ -63,5 +113,8 @@ wave.setStatus((short) 1); waveService.update(wave,new EntityWrapper<Wave>() .eq("id",wave.getId())); + + + return R.ok(); } } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java index 47c3b4e..467d357 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java @@ -14,6 +14,7 @@ import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.common.model.OrderStoDto; import zy.cloud.wms.common.model.ReceiveStoDto; +import zy.cloud.wms.common.model.WaveStoDto; import zy.cloud.wms.common.service.MainService; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; @@ -62,6 +63,10 @@ private ReceiveDetlService receiveDetlService; @Autowired ReceiveLogService receiveLogService; + @Autowired + private WaveService waveService; + @Autowired + private WaveDetlService waveDetlService; @Override @@ -295,12 +300,12 @@ @Override public R stockOutPreview(StockOutParam param, Long userId, Long hostId) { - Wrapper<Receive> wrapper = new EntityWrapper<Receive>() + Wrapper<Order> wrapper = new EntityWrapper<Order>() .eq("order_no", param.getOrderNo()); if (hostId != null) { wrapper.eq("host_id", hostId); } - Receive order_no = receiveService.selectOne(wrapper); + Order order_no = orderService.selectOne(wrapper); if (order_no.getSettle() != 1){ return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); @@ -309,8 +314,8 @@ // if (order.getSettle() != 1) { // return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); // } - List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); - if (Cools.isEmpty(receiveDetls)) { + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); + if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); @@ -318,27 +323,27 @@ // return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); // } - ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(order_no.getOrderNo(), receiveDetls); + OrderStoDto orderStoDto = new OrderStoDto().create(order_no.getOrderNo(), orderDetls); // OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); - return R.ok().add(mainService.receiveStockOutPreview(receiveStoDto, hostId)); + return R.ok().add(mainService.orderOutPreview(orderStoDto, hostId)); } @Override public R stockOutCreate(StockOutParam param, Long userId, Long hostId) { - Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); -// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); - if (receive.getSettle() != 1) { +// Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); + Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); + if (order.getSettle() != 1) { return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); } - List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(param.getOrderNo(), hostId); + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); - if (Cools.isEmpty(receiveDetls)) { + if (Cools.isEmpty(orderDetls)) { return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); } - ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(receive.getOrderNo(), receiveDetls); + OrderStoDto orderStoDto = new OrderStoDto().create(order.getOrderNo(), orderDetls); // OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls); // 寮�濮嬫暣鐞嗗嚭搴撴暟鎹� - mainService.receiveStockOutProcess(receiveStoDto,hostId); + mainService.orderStockOutProcess(orderStoDto,hostId,userId); return R.ok("鐢熸垚鎷h揣鍗曟垚鍔�"); } @@ -691,9 +696,9 @@ order1.setOrderNo(param.getOrderNo()); order1.setOrderTime(param.getOrderTime()); order1.setDocType(param.getDocType()); - order1.setItemId(item.getId()); + order1.setItemId(item == null? null : item.getId()); order1.setItemName(param.getItem()); - order1.setCstmr(cstmr.getId()); + order1.setCstmr(cstmr == null? null : cstmr.getId()); order1.setCstmrName(param.getCstmr()); order1.setSettle(1L); order1.setStatus(1); @@ -773,28 +778,28 @@ log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); continue; } - ReceiveDetl receiveDetl = new ReceiveDetl(); - receiveDetl.setHostId(hostId); - receiveDetl.setOrderId(order1.getId()); - receiveDetl.setAnfme(dto.getCount()); - receiveDetl.setCreateTime(now); - receiveDetl.setCreateBy(userId); - receiveDetl.setUpdateBy(userId); - receiveDetl.setUpdateTime(now); - receiveDetl.setStatus(1); - receiveDetl.setMatnr(mat.getMatnr()); - receiveDetl.setMaktx(mat.getMaktx()); - receiveDetl.setName(mat.getName()); - receiveDetl.setSpecs(mat.getSpecs()); - receiveDetl.setModel(mat.getModel()); - receiveDetl.setBatch(mat.getBatch()); - receiveDetl.setUnit(mat.getUnit()); - receiveDetl.setBarcode(mat.getBarcode()); - receiveDetl.setItemNum(mat.getItemNum()); - receiveDetl.setCount(Double.valueOf(mat.getCount())); - receiveDetl.setUnitPrice(mat.getPrice()); - receiveDetl.setWeight(mat.getWeight()); - if (!receiveDetlService.insert(receiveDetl)) { + OrderDetl orderDetl = new OrderDetl(); + orderDetl.setHostId(hostId); + orderDetl.setOrderId(order1.getId()); + orderDetl.setAnfme(dto.getCount()); + orderDetl.setCreateTime(now); + orderDetl.setCreateBy(userId); + orderDetl.setUpdateBy(userId); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setMatnr(mat.getMatnr()); + orderDetl.setMaktx(mat.getMaktx()); + orderDetl.setName(mat.getName()); + orderDetl.setSpecs(mat.getSpecs()); + orderDetl.setModel(mat.getModel()); + orderDetl.setBatch(mat.getBatch()); + orderDetl.setUnit(mat.getUnit()); + orderDetl.setBarcode(mat.getBarcode()); + orderDetl.setItemNum(mat.getItemNum()); + orderDetl.setCount(mat.getCount() == null ? 0 : mat.getCount()); + orderDetl.setUnitPrice(mat.getPrice()); + orderDetl.setWeight(mat.getWeight()); + if (!orderDetlService.insert(orderDetl)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); } } @@ -1000,4 +1005,130 @@ return R.ok(); } + @Override +// @Transactional + public R initOutOrder(InitOrderParam param, Long userId, Long hostId) { + Order order_no = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo())); +// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); + if (order_no != null) { + return R.error("鎶辨瓑鍗曞彿宸插瓨鍦紝璇蜂慨鏀瑰崟鍙�"); + } + Date now = new Date(); + Item item = itemService.selectByName(param.getItem()); + Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); + + // 鏂板璁㈠崟琛ㄥご + order_no = new Order(); + order_no.setHostId(hostId); + order_no.setUuid(String.valueOf(snowflakeIdWorker.nextId())); + order_no.setOrderNo(param.getOrderNo()); + order_no.setOrderTime(param.getOrderTime()); + order_no.setDocType(param.getDocType()); + order_no.setItemId(item==null?null:item.getId()); + order_no.setItemName(param.getItem()); + order_no.setCstmr(cstmr==null?null:cstmr.getId()); + order_no.setCstmrName(param.getCstmr()); + order_no.setSettle(1L); + order_no.setStatus(1); + order_no.setCreateTime(now); + order_no.setCreateBy(userId); + order_no.setUpdateTime(now); + order_no.setUpdateBy(userId); + +// if (!orderService.insert(order)) { +// throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); +// } + if (!orderService.insert(order_no)) { + throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); + } + +// // 閬嶅巻鍟嗗搧鏁伴噺骞朵繚瀛� +// for (MatnrDto dto : param.getList()){ +// Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); +// if (mat == null) { +// log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); +// continue; +// } +// OrderDetl orderDetl = new OrderDetl(); +// orderDetl.setHostId(hostId); +// orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜 +// orderDetl.setAnfme(dto.getCount()); // 鏁伴噺 +// orderDetl.setCreateBy(userId); +// orderDetl.setCreateTime(now); +// orderDetl.setUpdateBy(userId); +// orderDetl.setUpdateTime(now); +// orderDetl.setStatus(1); +// VersionUtils.setOrderDetl(orderDetl, mat); +// if (!orderDetlService.insert(orderDetl)) { +// throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); +// } +// } + // 閬嶅巻鍟嗗搧鏁伴噺骞朵繚瀛� + for (MatnrDto dto : param.getList()){ + Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); + if (mat == null) { + log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", dto.getMatnr()); + continue; + } + OrderDetl orderDtel = new OrderDetl(); + orderDtel.setHostId(hostId); + orderDtel.setOrderId(order_no.getId()); + orderDtel.setAnfme(dto.getCount()); + orderDtel.setCreateTime(now); + orderDtel.setCreateBy(userId); + orderDtel.setUpdateBy(userId); + orderDtel.setUpdateTime(now); + orderDtel.setStatus(1); + orderDtel.setMatnr(mat.getMatnr()); + orderDtel.setMaktx(mat.getMaktx()); + orderDtel.setName(mat.getName()); + orderDtel.setSpecs(mat.getSpecs()); + orderDtel.setModel(mat.getModel()); + orderDtel.setBatch(mat.getBatch()); + orderDtel.setUnit(mat.getUnit()); + orderDtel.setBarcode(mat.getBarcode()); + orderDtel.setItemNum(mat.getItemNum()); + orderDtel.setCount(mat.getCount() == null ? 0 : mat.getCount()); + orderDtel.setUnitPrice(mat.getPrice()); + orderDtel.setWeight(mat.getWeight()); + if (!orderDetlService.insert(orderDtel)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触"); + } + } + return R.ok("鍒涘缓璁㈠崟鎴愬姛"); + } + + @Override + public R wavePreview(StockOutParam stockOutParam, Long userId, Long hostId) { + Wrapper<Wave> wrapper = new EntityWrapper<Wave>() + .eq("id", stockOutParam.getOrderNo()); + + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + Wave wave = waveService.selectOne(wrapper); + + if (wave.getStatus() != 0){ + return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); + } +// Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); +// if (order.getSettle() != 1) { +// return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); +// } + List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() + .eq("wave_id", stockOutParam.getOrderNo())); + if (Cools.isEmpty(waveDetls)) { + return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); + } +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); +// if (Cools.isEmpty(orderDetls)) { +// return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); +// } + + WaveStoDto waveStoDto = new WaveStoDto().create(stockOutParam.getOrderNo(),waveDetls); +// OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); + return R.ok().add(mainService.waveOutPreview(waveStoDto, hostId)); + } + } diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index e714517..66538f8 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -44,7 +44,7 @@ </resultMap> <update id="updateSettle"> - update man_receive set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId} + update man_order set settle = #{settle} where 1=1 and order_no = #{orderNo} and host_id = #{hostId} </update> <update id="updateStatus"> UPDATE man_order set settle = 2, wave_no = null WHERE order_no = #{orderNo} @@ -52,6 +52,22 @@ <update id="changeSettleTo12"> UPDATE man_order set settle = 12 Where 1 = 1 and order_no = #{orderNo} </update> + <update id="updateWrkSts"> + update man_order + set wrk_sts = #{wrkSts} + , update_by = #{userId} + , update_time = getdate() + where 1=1 + <if test="hostId != null and hostId != ''"> + and host_id = #{hostId} + </if> + <if test="wrkNo != null and wrkNo != ''"> + and wrk_no = #{wrkNo} + </if> + <if test="docNum != null and docNum != ''"> + and order_no = #{docNum} + </if> + </update> <select id="getPage" resultMap="BaseResultMap"> select * from diff --git a/src/main/resources/mapper/PickoutDetlMapper.xml b/src/main/resources/mapper/PickoutDetlMapper.xml index e5a3f3a..aa837e3 100644 --- a/src/main/resources/mapper/PickoutDetlMapper.xml +++ b/src/main/resources/mapper/PickoutDetlMapper.xml @@ -30,6 +30,7 @@ <result column="update_time" property="updateTime" /> <result column="update_by" property="updateBy" /> <result column="memo" property="memo" /> + <result column="wrk_no" property="wrkNo" /> </resultMap> diff --git a/src/main/resources/mapper/PickoutMapper.xml b/src/main/resources/mapper/PickoutMapper.xml index b0765dd..4961e3f 100644 --- a/src/main/resources/mapper/PickoutMapper.xml +++ b/src/main/resources/mapper/PickoutMapper.xml @@ -15,7 +15,13 @@ <result column="update_time" property="updateTime" /> <result column="update_by" property="updateBy" /> <result column="memo" property="memo" /> + <result column="order_qty" property="orderQty" /> + <result column="order_nos" property="orderNos" /> + <result column="wave_no" property="waveNo" /> </resultMap> + <update id="updateWaveStatus"> + update man_wave set status = 0 where wave_no = #{waveNo} + </update> </mapper> diff --git a/src/main/webapp/static/js/ioWorks/matQuery.js b/src/main/webapp/static/js/ioWorks/matQuery.js index adeb494..d82f429 100644 --- a/src/main/webapp/static/js/ioWorks/matQuery.js +++ b/src/main/webapp/static/js/ioWorks/matQuery.js @@ -74,7 +74,7 @@ // 鍗曟嵁绫诲瀷 var docTypeData; $.ajax({ - url: baseUrl+"/work/docType/all/get", + url: baseUrl+"/work/docType/out/get", headers: {'token': localStorage.getItem('token')}, data:{docClass: 2}, method: 'POST', diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js index e473fef..76d7a3b 100644 --- a/src/main/webapp/static/js/order/order.js +++ b/src/main/webapp/static/js/order/order.js @@ -53,6 +53,7 @@ } }); + /* 琛ㄦ牸鎼滅储 */ form.on('submit(docTypeTableSearch)', function (data) { insTb.reload({where: {doc_name: data.field.docName,doc_class:2}}); diff --git a/src/main/webapp/static/js/pickout/pickout.js b/src/main/webapp/static/js/pickout/pickout.js index 6503c88..316ce54 100644 --- a/src/main/webapp/static/js/pickout/pickout.js +++ b/src/main/webapp/static/js/pickout/pickout.js @@ -9,134 +9,56 @@ var form = layui.form; var admin = layui.admin; - // 鏁版嵁娓叉煋 - tableIns = table.render({ - elem: '#pickout', - headers: {token: localStorage.getItem('token')}, - url: baseUrl+'/pickout/list/auth', - page: true, - limit: 16, - limits: [16, 30, 50, 100, 200, 500], - toolbar: '#toolbar', - cellMinWidth: 50, - cols: [[ - {type: 'checkbox'} - ,{field: 'id', align: 'center',title: '鍞竴ID'} - ,{field: 'hostId', align: 'center',title: '鍟嗘埛ID'} - ,{field: 'userId', align: 'center',title: '鐢ㄦ埛ID'} - ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'} - ,{field: 'wrkSts', align: 'center',title: '宸ヤ綔鐘舵��'} - ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�'} - ,{field: 'createTime$', align: 'center',title: ''} - ,{field: 'createBy', align: 'center',title: ''} - ,{field: 'updateTime$', align: 'center',title: ''} - ,{field: 'updateBy', align: 'center',title: ''} - ,{field: 'memo', align: 'center',title: ''} - ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} - ]], + /****************************************** 宸﹁竟琛� *************************************************/ + var leftTB = table.render({ + elem: '#leftTable', + url: baseUrl + '/pickout/list/auth', + height: 'full-100', + headers: {token: localStorage.getItem('token')}, request: { pageName: 'curr', pageSize: 'limit' }, - parseData: function (res) { - return { - 'code': res.code, - 'msg': res.msg, - 'count': res.data.total, - 'data': res.data.records - } + parseData: function (res){ + return{ + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } }, response: { statusCode: 200 }, - done: function(res, curr, count) { - if (res.code === 403) { - top.location.href = baseUrl+"/"; - } - pageCurr=curr; - limit(); + defaultToolbar: [], + cols:[[ + // {type: 'checkbox'} + {field: 'wrkNo', align: 'center',title: '浠诲姟鍙�',width: 180} + ,{field: 'id', align: 'center',title: '鍞竴ID',hide: true} + ,{field: 'hostId', align: 'center',title: '鍟嗘埛ID', hide: true} + ,{field: 'userId', align: 'center',title: '鐢ㄦ埛ID', hide: true} + + ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��' ,templet: '#wrkStsTpl' , width: 100} + ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�' , hide:true} + ,{field: 'createTime$', align: 'center',title: '', hide:true} + ,{field: 'createBy', align: 'center',title: '', hide:true} + ,{field: 'updateTime$', align: 'center',title: '', hide:true} + ,{field: 'updateBy', align: 'center',title: '', hide:true} + ,{field: 'memo', align: 'center',title: '', hide:true} + + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate'} + ]], + done: function (res,curr,count){ + $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click'); } }); - - // 鐩戝惉鎺掑簭浜嬩欢 - table.on('sort(pickout)', function (obj) { - var searchData = {}; - $.each($('#search-box [name]').serializeArray(), function() { - searchData[this.name] = this.value; - }); - searchData['orderByField'] = obj.field; - searchData['orderByType'] = obj.type; - tableIns.reload({ - where: searchData, - page: {curr: 1} - }); - }); - - // 鐩戝惉澶村伐鍏锋爮浜嬩欢 - table.on('toolbar(pickout)', function (obj) { - var checkStatus = table.checkStatus(obj.config.id).data; - switch(obj.event) { - case 'addData': - showEditModel(); - break; - case 'deleteData': - if (checkStatus.length === 0) { - layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2}); - return; - } - var ids = checkStatus.map(function (d) { - return d.id; - }); - del(ids); - break; - case 'exportData': - layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){ - var titles=[]; - var fields=[]; - obj.config.cols[0].map(function (col) { - if (col.type === 'normal' && col.hide === false && col.toolbar == null) { - titles.push(col.title); - fields.push(col.field); - } - }); - var exportData = {}; - $.each($('#search-box [name]').serializeArray(), function() { - exportData[this.name] = this.value; - }); - var param = { - 'pickout': exportData, - 'fields': fields - }; - $.ajax({ - url: baseUrl+"/pickout/export/auth", - headers: {'token': localStorage.getItem('token')}, - data: JSON.stringify(param), - dataType:'json', - contentType:'application/json;charset=UTF-8', - method: 'POST', - success: function (res) { - layer.closeAll(); - if (res.code === 200) { - table.exportFile(titles,res.data,'xls'); - } else if (res.code === 403) { - top.location.href = baseUrl+"/"; - } else { - layer.msg(res.msg, {icon: 2}) - } - } - }); - }); - break; - } - }); - // 鐩戝惉琛屽伐鍏蜂簨浠� - table.on('tool(pickout)', function(obj){ + table.on('tool(leftTable)', function(obj){ var data = obj.data; switch (obj.event) { - case 'edit': - showEditModel(data); + case 'complete': + complete(data); break; case "del": var ids = [data.id]; @@ -144,48 +66,17 @@ break; } }); - - /* 寮圭獥 - 鏂板銆佷慨鏀� */ - function showEditModel(mData) { - admin.open({ - type: 1, - area: '600px', - title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��', - content: $('#editDialog').html(), - success: function (layero, dIndex) { - layDateRender(); - form.val('detail', mData); - form.on('submit(editSubmit)', function (data) { - var loadIndex = layer.load(2); - $.ajax({ - url: baseUrl+"/pickout/"+(mData?'update':'add')+"/auth", - headers: {'token': localStorage.getItem('token')}, - data: data.field, - method: 'POST', - success: function (res) { - layer.close(loadIndex); - if (res.code === 200){ - layer.close(dIndex); - layer.msg(res.msg, {icon: 1}); - tableReload(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/"; - }else { - layer.msg(res.msg, {icon: 2}); - } - } - }) - return false; - }); - $(layero).children('.layui-layer-content').css('overflow', 'visible'); - layui.form.render('select'); - } - }); - } + /* 鐩戝惉琛屽崟鍑讳簨浠� */ + var selObj; + table.on('row(leftTable)', function (obj) { + selObj = obj; + obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click'); + tableIns.reload({where: {head_id: obj.data.id}, page: {curr: 1}}); + }); /* 鍒犻櫎 */ function del(ids) { - layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', { + layer.confirm('纭畾瑕佹挙閿�閫変腑鏁版嵁鍚楋紵', { skin: 'layui-layer-admin', shade: .1 }, function (i) { @@ -210,20 +101,176 @@ }) }); } + form.on('submit(leftResearch)', function (data) { - // 鎼滅储 - form.on('submit(search)', function (data) { - pageCurr = 1; - tableReload(false); + leftTB.reload({where: {wrk_no: data.field.docName}}); + return false; }); - // 閲嶇疆 - form.on('submit(reset)', function (data) { - pageCurr = 1; - clearFormVal($('#search-box')); - tableReload(false); - }); + + /****************************************** 鍙宠竟琛� *************************************************/ + // 鏁版嵁娓叉煋 + tableIns = table.render({ + elem: '#pickout', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/pickoutDetl/list/auth', + page: true, + limit: 16, + limits: [16, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + cols: [[ + // {type: 'checkbox'} + {field: 'id', align: 'center',title: '鍞竴ID', hide:true} + ,{field: 'headId', align: 'center',title: '琛ㄥごID', hide:true} + ,{field: 'nodeId', align: 'center',title: '搴撲綅ID', hide:true} + ,{field: 'nodeName', align: 'center',title: '搴撲綅鍚嶇О'} + ,{field: 'anfme', align: 'center',title: '鏁伴噺'} + ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜'} + ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} + ,{field: 'name', align: 'center',title: '鍚嶇О', hide:true} + ,{field: 'specs', align: 'center',title: '瑙勬牸', hide:true} + ,{field: 'model', align: 'center',title: '鍨嬪彿', hide:true} + ,{field: 'batch', align: 'center',title: '鎵瑰彿', hide:true} + ,{field: 'unit', align: 'center',title: '鍗曚綅', hide:true} + ,{field: 'barcode', align: 'center',title: '鎵樼洏鐮�', hide:true} + ,{field: 'docType', align: 'center',title: '鍗曟嵁绫诲瀷', hide:true} + ,{field: 'docId', align: 'center',title: '鍗曟嵁缂栧彿', hide:true} + ,{field: 'price', align: 'center',title: '浠锋牸', hide:true} + ,{field: 'weight', align: 'center',title: '閲嶉噺', hide:true} + ,{field: 'status', align: 'center',title: '鐘舵��' , hide:true} + ,{field: 'pickStaff', align: 'center',title: '鎷h揣鍛業D'} + ,{field: 'pickStart$', align: 'center',title: '鎷h揣寮�濮嬫椂闂�'} + ,{field: 'pickEnd$', align: 'center',title: '鎷h揣缁撴潫鏃堕棿'} + ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿', hide:true} + ,{field: 'createBy', align: 'center',title: '鍒涘缓浜哄憳ID', hide:true} + ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿', hide:true} + ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳ID', hide:true} + ,{field: 'memo', align: 'center',title: '澶囨敞', hide:true} + + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150, hide:true} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function(res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + } + }); + /* 琛ㄦ牸2鎼滅储 */ + form.on('submit(rightSearch)', function (data) { + + tableIns.reload({where: data.field , page: {curr: 1}}); + return false; + }); + // // 鐩戝惉鎺掑簭浜嬩欢 + // table.on('sort(pickout)', function (obj) { + // var searchData = {}; + // $.each($('#search-box [name]').serializeArray(), function() { + // searchData[this.name] = this.value; + // }); + // searchData['orderByField'] = obj.field; + // searchData['orderByType'] = obj.type; + // tableIns.reload({ + // where: searchData, + // page: {curr: 1} + // }); + // }); + // + // // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + // table.on('toolbar(pickout)', function (obj) { + // var checkStatus = table.checkStatus(obj.config.id).data; + // switch(obj.event) { + // case 'addData': + // showEditModel(); + // break; + // case 'deleteData': + // if (checkStatus.length === 0) { + // layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2}); + // return; + // } + // var ids = checkStatus.map(function (d) { + // return d.id; + // }); + // del(ids); + // break; + // case 'exportData': + // layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){ + // var titles=[]; + // var fields=[]; + // obj.config.cols[0].map(function (col) { + // if (col.type === 'normal' && col.hide === false && col.toolbar == null) { + // titles.push(col.title); + // fields.push(col.field); + // } + // }); + // var exportData = {}; + // $.each($('#search-box [name]').serializeArray(), function() { + // exportData[this.name] = this.value; + // }); + // var param = { + // 'pickout': exportData, + // 'fields': fields + // }; + // $.ajax({ + // url: baseUrl+"/pickout/export/auth", + // headers: {'token': localStorage.getItem('token')}, + // data: JSON.stringify(param), + // dataType:'json', + // contentType:'application/json;charset=UTF-8', + // method: 'POST', + // success: function (res) { + // layer.closeAll(); + // if (res.code === 200) { + // table.exportFile(titles,res.data,'xls'); + // } else if (res.code === 403) { + // top.location.href = baseUrl+"/"; + // } else { + // layer.msg(res.msg, {icon: 2}) + // } + // } + // }); + // }); + // break; + // } + // }); + // /* 琛ㄦ牸鎼滅储 */ + // form.on('submit(leftResearch)', function (data) { + // insTb.reload({where: {doc_name: data.field.docName,doc_class:2}}); + // return false; + // }); + // + // + // // 鎼滅储 + // form.on('submit(search)', function (data) { + // pageCurr = 1; + // tableReload(false); + // }); + // + // // 閲嶇疆 + // form.on('submit(reset)', function (data) { + // pageCurr = 1; + // clearFormVal($('#search-box')); + // tableReload(false); + // }); + // // 鏃堕棿閫夋嫨鍣� function layDateRender() { layDate.render({ diff --git a/src/main/webapp/static/js/wave/wave.js b/src/main/webapp/static/js/wave/wave.js index 776afdc..1209730 100644 --- a/src/main/webapp/static/js/wave/wave.js +++ b/src/main/webapp/static/js/wave/wave.js @@ -1,13 +1,14 @@ var pageCurr; layui.config({ base: baseUrl + "/static/layui/lay/modules/" -}).use(['table','laydate', 'form', 'admin'], function(){ +}).use(['table','laydate', 'form', 'admin','tableMerge'], function(){ var table = layui.table; var $ = layui.jquery; var layer = layui.layer; var layDate = layui.laydate; var form = layui.form; var admin = layui.admin; + var tableMerge = layui.tableMerge; // 鏁版嵁娓叉煋 tableIns = table.render({ @@ -128,8 +129,79 @@ } }); - function createWaveOut(mData) { - layer.confirm('纭畾鐢熸垚璇ユ尝娆$殑鎷h揣鍗曪紵', { + function createWaveOut(data) { + console.log(data) + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl + "/wave/preview", + headers: {'token': localStorage.getItem('token')}, + contentType: 'application/json;charset=UTF-8', + data: JSON.stringify({ + orderNo: data.id + }), + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.open({ + type: 1 + ,title: false + ,closeBtn: false + ,offset: '100px' + ,area: '1000px' + ,shade: 0.5 + ,shadeClose: true + ,btn: ['绔嬪嵆鐢熸垚', '绋嶅悗澶勭悊'] + ,btnAlign: 'c' + ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1 + ,content: $('#stoukOutPreview') + ,success: function(layero, index){ + table.render({ + elem: '#stoPreTab', + data: res.data, + page: true, + cellMinWidth: 100, + height: 432, + cols: [[ + {field: 'title', title: '鍟嗗搧', merge: true, align: 'center'}, + {field: 'anfme', title: '鎬绘暟閲�', merge: ['title'], align: 'center', style: 'font-weight: bold', width: 90}, + {field: 'type', title: '浠撳簱', merge: true, align: 'center', templet: '#typeTpl', width: 90}, + {field: 'locNo', title: '璐т綅', align: 'center'}, + {field: 'prior$', title: '鎺ㄨ崘璐т綅', align: 'center', width: 100}, + {field: 'reduce', title: '鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, + // {field: 'remQty', title: '浣欓噺', align: 'center', width: 80}, + {field: 'total', title: '鎬婚噺', align: 'center', width: 90}, + ]], + done: function () { + tableMerge.render(this); + $('.layui-table-body.layui-table-main').css("overflow", "auto") + } + }); + + } + ,yes: function(index, layero){ + //鎸夐挳銆愰┈涓婃嫞璐с�戠殑鍥炶皟 + stockOut(res.data,data); + } + ,btn2: function(index, layero){ + //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟 + //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴 + } + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + + + } + function stockOut(mData, data){ + + console.log(mData); + layer.confirm('纭畾鐢熸垚璇ユ尝娆$殑鎷h揣鍗曪紵(涓嶅彲閫�)', { skin: 'layui-layer-admin', shade: .1 }, function (i) { @@ -154,7 +226,6 @@ } }) }); - } // 鐩戝惉琛屽伐鍏蜂簨浠� table.on('tool(wave)', function(obj){ diff --git a/src/main/webapp/views/pickout/pickout.html b/src/main/webapp/views/pickout/pickout.html index 263db8c..5ffc23f 100644 --- a/src/main/webapp/views/pickout/pickout.html +++ b/src/main/webapp/views/pickout/pickout.html @@ -10,38 +10,158 @@ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> <link rel="stylesheet" href="../../static/css/cool.css" media="all"> <link rel="stylesheet" href="../../static/css/common.css" media="all"> + <style> + body { + color: #595959; + background-color: #f5f7f9; + } + + /* 宸﹁〃 */ + #leftTable + .layui-table-view .layui-table-tool-temp { + padding-right: 0; + } + + #leftTable + .layui-table-view .layui-table-body tbody > tr td { + cursor: pointer; + } + + #leftTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click { + background-color: #fff3e0; + } + + #leftTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click td:last-child > div:before { + position: absolute; + right: 6px; + content: "\e602"; + font-size: 12px; + font-style: normal; + font-family: layui-icon,serif !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + #left-table .layui-table-grid-down { + display: none; + } + + + .layui-form.layui-border-box.layui-table-view { + border-width: 1px; + } + #left-table .layui-table thead th { + /* font-weight: bold; */ + text-align: left; + } + </style> </head> <body> - -<!-- 鎼滅储鏍� --> -<div id="search-box" class="layui-form layui-card-header"> - <div class="layui-inline"> - <div class="layui-input-inline"> - <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> +<!-- 姝f枃寮�濮� --> +<div class="layui-fluid" style="padding-bottom: 0;"> + <div class="layui-row layui-col-space15"> + <div class="layui-col-md3" id="left-table"> + <div class="layui-card"> + <div class="layui-card-body" style="padding: 10px;"> + <!-- 琛ㄦ牸宸ュ叿鏍�1 --> + <form class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline" style="max-width: 140px;"> + <input name="docName" class="layui-input" placeholder="璇疯緭鍏ヤ换鍔″彿"/> + </div> + <div class="layui-inline"> + <button class="layui-btn icon-btn" lay-filter="leftResearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + </div> + </div> + </form> + <!-- 鏁版嵁琛ㄦ牸1 --> + <table id="leftTable" lay-filter="leftTable"></table> + </div> + </div> + </div> + <div class="layui-col-md9"> + <div class="layui-card"> + <div class="layui-card-body" style="padding: 10px;"> + <!-- 琛ㄦ牸宸ュ叿鏍�2 --> + <form class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">鍟嗗搧缂栫爜:</label> + <div class="layui-input-inline"> + <input name="matnr" class="layui-input"type="text" placeholder="缂栫爜" autocomplete="off"/> + </div> + </div> + <div class="layui-inline">  + <button class="layui-btn icon-btn" lay-filter="rightSearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> + <i class="layui-icon"></i>閲嶇疆 + </button> + </div> + </div> + </form> + <!-- 鏁版嵁琛ㄦ牸2 --> + <table id="pickout" lay-filter="pickout"></table> + </div> + </div> </div> </div> - <!-- 寰呮坊鍔� --> - <div id="data-search-btn" class="layui-btn-container layui-form-item"> - <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> - <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> - </div> </div> -<!-- 琛ㄦ牸 --> -<div class="layui-form"> - <table class="layui-hide" id="pickout" lay-filter="pickout"></table> -</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="id" placeholder="缂栧彿" autocomplete="off">--> +<!-- </div>--> +<!-- </div>--> +<!-- <!– 寰呮坊鍔� –>--> +<!-- <div id="data-search-btn" class="layui-btn-container layui-form-item">--> +<!-- <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>--> +<!-- <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>--> +<!-- </div>--> +<!--</div>--> + +<!--<!– 琛ㄦ牸 –>--> +<!--<div class="layui-form">--> +<!-- <table class="layui-hide" id="pickout" lay-filter="pickout"></table>--> +<!--</div>--> <script type="text/html" id="toolbar"> <div class="layui-btn-container"> - <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> - <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> +<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>--> +<!-- <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>--> <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button> </div> </script> <script type="text/html" id="operate"> - <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-edit" lay-event="del">鍒犻櫎</a> + {{#if (d.wrkSts == 3){ }} + <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a> + {{# } }} + {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} + <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="printOrder">鎵撳嵃鎷h揣鍗�</a> + {{# } }} + + + +<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>--> + {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鎾ら攢</a> + {{# } }} +<!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>--> + +</script> +<script type="text/html" id="wrkStsTpl"> + <span name="wrkSts" + {{# if( d.wrkSts === 1){ }} + class="layui-badge layui-badge-blue" + {{# } else if(d.wrkSts === 2){ }} + class="layui-badge layui-badge-red" + {{# } else if(d.wrkSts === 3){ }} + class="layui-badge layui-badge-green" + {{# } }} + >{{d.wrkSts$}}</span> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> diff --git a/src/main/webapp/views/wave/wave.html b/src/main/webapp/views/wave/wave.html index c59091c..e05449a 100644 --- a/src/main/webapp/views/wave/wave.html +++ b/src/main/webapp/views/wave/wave.html @@ -31,6 +31,13 @@ <div class="layui-form"> <table class="layui-hide" id="wave" lay-filter="wave"></table> </div> +<div id="stoukOutPreview" style="display: none"> + <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"> + <span style="font-size: large; font-weight: bold">鎷h揣鍗曢瑙�</span> + </div> + <table id="stoPreTab" lay-filter="stoPreTab"></table> +</div> + <script type="text/html" id="toolbar"> <div class="layui-btn-container"> <!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData" >鏂板</button>--> -- Gitblit v1.9.1