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