From 52f694ab369861f644f8efab797a85776b73ee52 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 13 四月 2021 17:29:05 +0800 Subject: [PATCH] # --- src/main/resources/mapper/OrderMapper.xml | 4 src/main/java/zy/cloud/wms/manager/controller/OrderController.java | 3 src/main/java/zy/cloud/wms/manager/service/OrderService.java | 8 + src/main/java/zy/cloud/wms/manager/service/LocDetlService.java | 7 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java | 46 ++++- src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java | 6 src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java | 6 src/main/java/zy/cloud/wms/common/service/MainService.java | 58 +++---- src/main/webapp/views/order/order.html | 44 ++++++ src/main/resources/mapper/OrderDetlMapper.xml | 9 + /dev/null | 68 --------- src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java | 6 src/main/java/zy/cloud/wms/common/model/OrderStoDto.java | 12 src/main/webapp/static/js/order/order.js | 85 +++++++++++ src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java | 4 src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java | 3 src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java | 37 ++--- src/main/java/zy/cloud/wms/manager/service/impl/OrderServiceImpl.java | 12 + 18 files changed, 267 insertions(+), 151 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/model/OrderStoDto.java b/src/main/java/zy/cloud/wms/common/model/OrderStoDto.java index 58b89d1..b3167ca 100644 --- a/src/main/java/zy/cloud/wms/common/model/OrderStoDto.java +++ b/src/main/java/zy/cloud/wms/common/model/OrderStoDto.java @@ -1,7 +1,6 @@ package zy.cloud.wms.common.model; import lombok.Data; -import zy.cloud.wms.manager.entity.CustOrder; import java.util.List; @@ -11,15 +10,16 @@ @Data public class OrderStoDto { - private String number; + private String orderNo; - private List<CustOrder> custOrders; + private List<MatnrDto> dtos; public OrderStoDto() { } - public OrderStoDto(String number, List<CustOrder> custOrders) { - this.number = number; - this.custOrders = custOrders; + public OrderStoDto(String orderNo, List<MatnrDto> dtos) { + this.orderNo = orderNo; + this.dtos = dtos; } + } diff --git a/src/main/java/zy/cloud/wms/common/service/MainScheduler.java b/src/main/java/zy/cloud/wms/common/service/MainScheduler.java deleted file mode 100644 index 3cbc29a..0000000 --- a/src/main/java/zy/cloud/wms/common/service/MainScheduler.java +++ /dev/null @@ -1,68 +0,0 @@ -package zy.cloud.wms.common.service; - -import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.core.common.Cools; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import zy.cloud.wms.common.model.OrderStoDto; -import zy.cloud.wms.manager.entity.CustOrder; -import zy.cloud.wms.manager.service.CustOrderService; - -import java.util.*; - -/** - * Created by vincent on 2021/3/1 - */ -@Slf4j -@Component -public class MainScheduler { - - @Autowired - private CustOrderService custOrderService; - @Autowired - private MainService mainService; - - /** - * 鎵弿閿�鍞鍗曟暟鎹紝鐢熸垚鍑哄簱鍗� - */ -// @Scheduled(cron = "0/5 * * * * ? ") - public void stockOutExecute(){ - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 1)); - if (Cools.isEmpty(custOrders)){ - return; - } - Set<String> numbers = new HashSet<>(); - custOrders.forEach(custOrder -> numbers.add(custOrder.getNumber())); - - List<OrderStoDto> orderStoDtos = new ArrayList<>(); - for (String number : numbers) { - List<CustOrder> list = new ArrayList<>(); - Iterator<CustOrder> iterator = custOrders.iterator(); - while (iterator.hasNext()) { - CustOrder dto = iterator.next(); - if (number.equals(dto.getNumber())) { - list.add(dto); - iterator.remove(); - } - } - orderStoDtos.add(new OrderStoDto(number, list)); - } - - for (OrderStoDto dto : orderStoDtos) { - mainService.stockOutProcess(dto); - } - - } - - // 澶勭悊寰呭彇娑堣鍗� - // @Scheduled(cron = "0/5 * * * * ? ") - public void cancelOrderExecute(){ - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 5)); - if (Cools.isEmpty(custOrders)){ - return; - } - - } - -} 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 3791840..6c81900 100644 --- a/src/main/java/zy/cloud/wms/common/service/MainService.java +++ b/src/main/java/zy/cloud/wms/common/service/MainService.java @@ -7,13 +7,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.common.model.OrderStoDto; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; -import zy.cloud.wms.manager.service.CustOrderService; -import zy.cloud.wms.manager.service.LocDetlService; -import zy.cloud.wms.manager.service.MatService; -import zy.cloud.wms.manager.service.PakoutService; +import zy.cloud.wms.manager.service.*; import java.util.*; @@ -31,28 +29,28 @@ @Autowired private PakoutService pakoutService; @Autowired - private CustOrderService custOrderService; - @Autowired private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private OrderService orderService; @Transactional - public List<StoPreTab> stockOutPreview(OrderStoDto dto) { - if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) { + public List<StoPreTab> stockOutPreview(OrderStoDto orderStoDto) { + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); } List<StoPreTab> res = new ArrayList<>(); // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� - locDetlService.checkLocDetlCount(dto.getNumber()); + locDetlService.checkLocDetlCount(orderStoDto.getDtos()); - for (CustOrder custOrder : dto.getCustOrders()) { + for (MatnrDto matnrDto : orderStoDto.getDtos()) { // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 - Mat mat = matService.selectByMatnr(custOrder.getUserCode()); + Mat mat = matService.selectByMatnr(matnrDto.getMatnr()); if (null == mat) { - throw new CoolException(custOrder.getUserCode() + "鐗╂枡灏氭湭鏇存柊銆�" + custOrder.getNumber() +"鍗曟嵁鍥犳涓柇锛�"); + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + orderStoDto.getOrderNo() +"鍗曟嵁鍥犳涓柇锛�"); } // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr()); - double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ; + double issued = Optional.ofNullable(matnrDto.getCount()).orElse(0.0D) ; double anfme = issued; for (LocDetl locDetl : locDetls) { if (issued > 0) { @@ -89,26 +87,27 @@ } @Transactional - public void stockOutProcess(OrderStoDto dto) { - if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) { + public void stockOutProcess(OrderStoDto orderStoDto) { + if (Cools.isEmpty(orderStoDto) || Cools.isEmpty(orderStoDto.getDtos())) { return; } + Order order = orderService.selectByOrderNo(orderStoDto.getOrderNo()); + if (order == null) { + throw new CoolException(orderStoDto.getOrderNo() + "鍗曟嵁涓嶅瓨鍦�"); + } Date now = new Date(); - - /******************************* 绔嬪簱鎷h揣鍗� ********************************/ // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶� - locDetlService.checkLocDetlCount(dto.getNumber()); + locDetlService.checkLocDetlCount(orderStoDto.getDtos()); - /******************************* 骞充粨鎷h揣鍗� ********************************/ - for (CustOrder custOrder : dto.getCustOrders()) { + for (MatnrDto matnrDto : orderStoDto.getDtos()) { // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪 - Mat mat = matService.selectByMatnr(custOrder.getUserCode()); + Mat mat = matService.selectByMatnr(matnrDto.getMatnr()); if (null == mat) { - throw new CoolException(custOrder.getUserCode() + "鐗╂枡灏氭湭鏇存柊銆�" + custOrder.getNumber() +"鍗曟嵁鍥犳涓柇锛�"); + throw new CoolException(matnrDto.getMatnr() + "鐗╂枡灏氭湭鏇存柊銆�" + matnrDto.getCount() +"鍗曟嵁鍥犳涓柇锛�"); } // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣� List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr()); - double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ; + double issued = Optional.ofNullable(matnrDto.getCount()).orElse(0.0D) ; for (LocDetl locDetl : locDetls) { if (issued > 0) { // 淇濆瓨鍑哄簱閫氱煡鍗� @@ -120,8 +119,8 @@ pakout.setNodeId(locDetl.getNodeId()); pakout.setWrkNo(String.valueOf(snowflakeIdWorker.nextId())); VersionUtils.setPakout(pakout, mat); - pakout.setDocId(getDocId(dto.getNumber())); // 鍗曟嵁绫诲瀷 - pakout.setDocNum(custOrder.getNumber()); // 鍗曟嵁缂栧彿 + pakout.setDocId(order.getDocType()); // 鍗曟嵁绫诲瀷 + pakout.setDocNum(order.getOrderNo()); // 鍗曟嵁缂栧彿 pakout.setCreateTime(now); pakout.setUpdateTime(now); pakout.setStatus(1); @@ -144,17 +143,10 @@ } } // 淇敼鍗曟嵁鐘舵�� - if (!custOrderService.updateStatus(custOrder.getNumber(), 2)) { + if (!orderService.updateSettle(orderStoDto.getOrderNo(), 2L)) { throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�"); } } - } - - private Long getDocId(String number) { - if (number.startsWith("PR")) { - return 6L; - } - return 11L; } } 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 6e9b981..0a60840 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java @@ -46,6 +46,9 @@ excludeTrash(param); convert(param, wrapper); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + else { + wrapper.orderBy("update_time", false); + } return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); } diff --git a/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java b/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java index bef4792..8b33406 100644 --- a/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java +++ b/src/main/java/zy/cloud/wms/manager/entity/param/StockOutParam.java @@ -8,7 +8,7 @@ @Data public class StockOutParam { - // 閿�鍞鍗曞彿 - private String number; + // 璁㈠崟鍙� + private String orderNo; } diff --git a/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java index cccbdfe..6851b49 100644 --- a/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java +++ b/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java @@ -1,12 +1,16 @@ package zy.cloud.wms.manager.mapper; -import zy.cloud.wms.manager.entity.OrderDetl; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; +import zy.cloud.wms.manager.entity.OrderDetl; + +import java.util.List; @Mapper @Repository public interface OrderDetlMapper extends BaseMapper<OrderDetl> { + List<OrderDetl> selectByOrderNo(String orderNo); + } 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 bace93f..1f181d1 100644 --- a/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java +++ b/src/main/java/zy/cloud/wms/manager/mapper/OrderMapper.java @@ -1,5 +1,6 @@ package zy.cloud.wms.manager.mapper; +import org.apache.ibatis.annotations.Param; import zy.cloud.wms.manager.entity.Order; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -9,4 +10,6 @@ @Repository public interface OrderMapper extends BaseMapper<Order> { + Boolean updateSettle(@Param("orderNo")String orderNo, @Param("settle")Long settle); + } diff --git a/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java b/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java index 4712c0a..108587e 100644 --- a/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java +++ b/src/main/java/zy/cloud/wms/manager/service/LocDetlService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.IService; +import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.manager.entity.LocDetl; import zy.cloud.wms.manager.entity.param.StockTransferParam; @@ -22,11 +23,11 @@ /** * 鏌ョ湅褰撳墠璁㈠崟鍙风殑鐗╂枡鍦ㄥ簱瀛樹腑鏄惁鍏呰冻 - * @param number + * @param dtos */ - void checkLocDetlCount(String number); + void checkLocDetlCount(List<MatnrDto> dtos); - List<StockTransferParam> checkLocDetlCountOfRes(String number); + List<StockTransferParam> checkLocDetlCountOfRes(List<MatnrDto> dtos); /** * 鍑忓皯搴撳瓨 diff --git a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java index 18b2065..f74e221 100644 --- a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java +++ b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java @@ -1,8 +1,12 @@ package zy.cloud.wms.manager.service; -import zy.cloud.wms.manager.entity.OrderDetl; import com.baomidou.mybatisplus.service.IService; +import zy.cloud.wms.manager.entity.OrderDetl; + +import java.util.List; public interface OrderDetlService extends IService<OrderDetl> { + List<OrderDetl> selectByOrderNo(String orderNo); + } 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 cfec7eb..6a2ce31 100644 --- a/src/main/java/zy/cloud/wms/manager/service/OrderService.java +++ b/src/main/java/zy/cloud/wms/manager/service/OrderService.java @@ -1,7 +1,9 @@ package zy.cloud.wms.manager.service; -import zy.cloud.wms.manager.entity.Order; import com.baomidou.mybatisplus.service.IService; +import zy.cloud.wms.manager.entity.Order; + +import java.util.List; public interface OrderService extends IService<Order> { @@ -11,4 +13,8 @@ Boolean insertReturnId(Order order); + List<Order> selectOrderBySettle(Long settle); + + Boolean updateSettle(String orderNo, Long settle); + } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java index 5b7c44e..aa84e3c 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/LocDetlServiceImpl.java @@ -7,7 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import zy.cloud.wms.common.config.CodeCoolException; -import zy.cloud.wms.manager.entity.CustOrder; +import zy.cloud.wms.common.model.MatnrDto; import zy.cloud.wms.manager.entity.LocDetl; import zy.cloud.wms.manager.entity.Mat; import zy.cloud.wms.manager.entity.Prior; @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; @Service("locDetlService") @@ -62,21 +63,17 @@ } @Override - public void checkLocDetlCount(String number) { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1)); + public void checkLocDetlCount(List<MatnrDto> dtos) { StringBuilder errorMsg = new StringBuilder(); boolean error = false; - for (CustOrder custOrder : custOrders) { - Double count = this.baseMapper.selectCountByMatnr(custOrder.getUserCode()); - if (count == null) { - count = 0.0D; - } - if (count < custOrder.getQty()) { + for (MatnrDto dto : dtos) { + Double count = Optional.ofNullable(baseMapper.selectCountByMatnr(dto.getMatnr())).orElse(0.0D); + if (count < dto.getCount()) { if (!error) { error = true; } - Mat mat = matService.selectByMatnr(custOrder.getUserCode()); - errorMsg.append(mat == null ? custOrder.getUserCode() : mat.getMaktx()).append("搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細").append(custOrder.getQty() - count).append("</br>"); + Mat mat = matService.selectByMatnr(dto.getMatnr()); + errorMsg.append(mat == null ? dto.getMatnr() : mat.getMaktx()).append("搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細").append(dto.getCount() - count).append("</br>"); } } if (error) { @@ -85,21 +82,17 @@ } @Override - public List<StockTransferParam> checkLocDetlCountOfRes(String number) { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("number", number).eq("status", 1)); + public List<StockTransferParam> checkLocDetlCountOfRes(List<MatnrDto> dtos) { boolean asrs = false; List<StockTransferParam> params = new ArrayList<>(); - for (CustOrder custOrder : custOrders) { - Double count = this.baseMapper.selectCountByMatnr(custOrder.getUserCode()); - if (count == null) { - count = 0.0D; - } - if (count < custOrder.getQty()) { + for (MatnrDto dto : dtos) { + Double count = Optional.ofNullable(baseMapper.selectCountByMatnr(dto.getMatnr())).orElse(0.0D); + if (count < dto.getCount()) { if (!asrs) { asrs = true; } StockTransferParam param = new StockTransferParam(); - param.setMatnr(custOrder.getUserCode()); - param.setAnfme(custOrder.getQty() - count); - param.setTotal(custOrder.getQty()); + param.setMatnr(dto.getMatnr()); + param.setAnfme(dto.getCount() - count); + param.setTotal(dto.getCount()); params.add(param); } } diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java index e5ff17b..dd3f900 100644 --- a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java @@ -6,7 +6,13 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Service("orderDetlService") public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService { + @Override + public List<OrderDetl> selectByOrderNo(String orderNo) { + return this.baseMapper.selectByOrderNo(orderNo); + } } 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 78807fc..8f6f894 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 @@ -7,6 +7,8 @@ import zy.cloud.wms.manager.mapper.OrderMapper; import zy.cloud.wms.manager.service.OrderService; +import java.util.List; + @Service("orderService") public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { @@ -27,4 +29,14 @@ return this.baseMapper.insert(order) > 0; } + @Override + public List<Order> selectOrderBySettle(Long settle) { + return this.selectList(new EntityWrapper<Order>().eq("settle", settle)); + } + + @Override + public Boolean updateSettle(String orderNo, Long settle) { + return this.baseMapper.updateSettle(orderNo, settle); + } + } 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 399e9f0..70e7a2f 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 @@ -213,7 +213,7 @@ @Override public R stockOutPrint(StockOutParam param, Long userId) { - List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", param.getNumber())); + List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", param.getOrderNo())); Double total = 0.0D; String custName = ""; for (Pakout pakout : pakouts) { @@ -221,7 +221,7 @@ custName = pakout.getCustName(); } StoPrintVo vo = new StoPrintVo(); - vo.setDocNum(param.getNumber()); + vo.setDocNum(param.getOrderNo()); vo.setList(pakouts); vo.setTotal(total); vo.setCustName("娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�"); @@ -231,25 +231,47 @@ @Override public R stockOutPreview(StockOutParam param, Long userId) { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>() - .eq("number", param.getNumber()) - .eq("status", 1) - ); + Order order = orderService.selectByOrderNo(param.getOrderNo()); + if (order.getSettle() != 1) { + return R.error("姝ゅ崟鎹棤娉曠敓鎴愭嫞璐у崟"); + } + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo()); + if (Cools.isEmpty(orderDetls)) { + return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); + } OrderStoDto dto = new OrderStoDto(); - dto.setNumber(param.getNumber()); - dto.setCustOrders(custOrders); + dto.setOrderNo(param.getOrderNo()); + List<MatnrDto> matnrDtos = new ArrayList<>(); + for (OrderDetl orderDetl : orderDetls) { + MatnrDto matnrDto = new MatnrDto(); + matnrDto.setMatnr(orderDetl.getMatnr()); + matnrDto.setCount(orderDetl.getAnfme()); + matnrDtos.add(matnrDto); + } + dto.setDtos(matnrDtos); return R.ok().add(mainService.stockOutPreview(dto)); } @Override public R stockOut(StockOutParam param, Long userId) { List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>() - .eq("number", param.getNumber()) + .eq("number", param.getOrderNo()) .eq("status", 1) ); + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo()); + if (Cools.isEmpty(orderDetls)) { + return R.error("姝ゅ崟鎹凡澶辨晥锛岃鑱旂郴绠$悊鍛�"); + } OrderStoDto dto = new OrderStoDto(); - dto.setNumber(param.getNumber()); - dto.setCustOrders(custOrders); + dto.setOrderNo(param.getOrderNo()); + List<MatnrDto> matnrDtos = new ArrayList<>(); + for (OrderDetl orderDetl : orderDetls) { + MatnrDto matnrDto = new MatnrDto(); + matnrDto.setMatnr(orderDetl.getMatnr()); + matnrDto.setCount(orderDetl.getAnfme()); + matnrDtos.add(matnrDto); + } + dto.setDtos(matnrDtos); // 寮�濮嬫暣鐞嗗嚭搴撴暟鎹� mainService.stockOutProcess(dto); return R.ok("鐢熸垚鎷h揣鍗曟垚鍔�"); @@ -515,7 +537,7 @@ null, // 鍙戣揣鏃堕棿 null, // 鐗╂祦鍚嶇О null, // 鐗╂祦鍗曞彿 - null, // 璁㈠崟鐘舵�� + 1L, // 璁㈠崟鐘舵�� 1, // 鐘舵�� userId, // 娣诲姞浜哄憳 now, // 娣诲姞鏃堕棿 diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml index ed2963c..1db3eee 100644 --- a/src/main/resources/mapper/OrderDetlMapper.xml +++ b/src/main/resources/mapper/OrderDetlMapper.xml @@ -29,4 +29,13 @@ </resultMap> + <select id="selectByOrderNo" resultMap="BaseResultMap"> + select + mod.* + from man_order_detl mod + left join man_order mo on mo.id = mod.order_id + where 1=1 + and mo.order_no = #{orderNo} + </select> + </mapper> diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index 5826de3..1afc582 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -42,4 +42,8 @@ </resultMap> + <update id="updateSettle"> + update man_order set settle = #{settle} where 1=1 and order_no = #{orderNo} + </update> + </mapper> diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js index d973001..1071361 100644 --- a/src/main/webapp/static/js/order/order.js +++ b/src/main/webapp/static/js/order/order.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; /****************************************** 宸﹁竟琛� *************************************************/ @@ -178,7 +179,7 @@ ,{field: 'sendTime$', align: 'center',title: '鍙戣揣鏃堕棿', hide: true} ,{field: 'shipName', align: 'center',title: '鐗╂祦鍚嶇О', hide: true} ,{field: 'shipCode', align: 'center',title: '鐗╂祦鍗曞彿', hide: true} - ,{field: 'settle$', align: 'center',title: '璁㈠崟鐘舵��'} + ,{field: 'settle$', align: 'center',title: '璁㈠崟鐘舵��', templet: '#settleTpl', width: 100} // ,{field: 'status$', align: 'center',title: '鐘舵��'} // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳',event: 'createBy', style: 'cursor:pointer'} // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'} @@ -232,6 +233,86 @@ /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */ table.on('tool(orderTable)', function (obj) { + var data = obj.data; + switch (obj.event) { + // 鎷h揣 + case 'stockOut': + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl + "/work/stock/out/preview", + headers: {'token': localStorage.getItem('token')}, + contentType: 'application/json;charset=UTF-8', + data: JSON.stringify({ + orderNo: data.orderNo + }), + 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); + // tableX.merges('stoPreTab', [0,1,2]); + $('.layui-table-body.layui-table-main').css("overflow", "auto") + } + }); + + } + ,yes: function(index, layero){ + //鎸夐挳銆愰┈涓婃嫞璐с�戠殑鍥炶皟 + stockOut(data.number); + } + ,btn2: function(index, layero){ + //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟 + //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴 + } + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + break; + // 鎵撳嵃 + case 'print': + layer.confirm('寮�濮嬫墦鍗�' +data.number + ' 鎷h揣鍗曪紵', {shadeClose: true}, function(){ + layer.closeAll(); + printPakouts(data.number); + }) + break; + + } if (obj.event === 'edit') { // 淇敼 showEditModel2(obj.data); } else if (obj.event === 'del') { // 鍒犻櫎 diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html index a52e6cb..98ef806 100644 --- a/src/main/webapp/views/order/order.html +++ b/src/main/webapp/views/order/order.html @@ -109,6 +109,50 @@ </div> </div> +<script type="text/html" id="operate"> + {{#if (d.settle == 1){ }} + <a class="layui-btn layui-btn-sm layui-btn-danger" lay-event="stockOut" style="font-size: 16px">鎷h揣鍗�</a> + {{# } }} + {{#if (d.settle == 2 || d.settle == 4){ }} + <a class="layui-btn layui-btn-sm layui-btn-normal" lay-event="print" style="font-size: 16px">鎵撳嵃</a> + {{# } }} +</script> + +<script type="text/html" id="settleTpl"> + <span name="settle" + {{# if( d.settle === 1){ }} + class="layui-badge layui-badge-blue" + {{# } else if(d.settle === 2){ }} + class="layui-badge layui-badge-red" + {{# } else if(d.settle === 3){ }} + class="layui-badge layui-badge-gray" + {{# } else if(d.settle === 4){ }} + class="layui-badge layui-badge-green" + {{# } }} + >{{d.settle$}}</span> +</script> + +<script type="text/html" id="typeTpl"> + <span name="type" + {{# if( d.type === 1){ }} + class="layui-badge layui-badge-blue" ><span style="display: none">{{d.number}}</span>骞充粨</span> + {{# } else if(d.type === 2){ }} + class="layui-badge layui-badge-green" ><span style="display: none">{{d.number}}</span>绔嬪簱</span> + {{# } else if(d.type === 0){ }} + class="layui-badge layui-badge-red" ><span style="display: none">{{d.number}}</span>缂鸿揣</span> + {{# } }} +</script> + +<!-- 鎵撳嵃瀹瑰櫒 --> +<div id="pakoutPrintBox" style="display: none"></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="docTypeEditDialog"> <form id="docTypeEditForm" lay-filter="docTypeEditForm" class="layui-form model-form"> -- Gitblit v1.9.1