From 558333b7a634d346c0ec990ae9b1993fdae77344 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 29 十二月 2023 13:28:53 +0800
Subject: [PATCH] #
---
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakoutParam.java | 42 +
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/DocTypeService.java | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java | 131 ++++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderMapper.java | 2
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetlLog.java | 6
zy-asrs-common/src/main/resources/mapper/wms/OrderMapper.xml | 13
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java | 10
zy-asrs-wms/src/main/webapp/views/report/locDetl.html | 2
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WaitPakinLogServiceImpl.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlLogServiceImpl.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastLogService.java | 2
zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml | 34 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java | 51 +
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastMapper.java | 6
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java | 342 +++++++++++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlMapper.java | 4
zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml | 41 +
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java | 10
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OpenServiceImpl.java | 220 +++++++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlServiceImpl.java | 15
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlMapper.java | 5
zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js | 10
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OpenService.java | 21
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastLogMapper.java | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java | 40 +
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java | 9
zy-asrs-common/src/main/resources/mapper/wms/WrkDetlMapper.xml | 37 +
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlLogMapper.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlServiceImpl.java | 9
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastServiceImpl.java | 12
zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js | 13
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetl.java | 6
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakinParam.java | 24
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlService.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlService.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java | 19
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java | 18
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java | 16
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java | 30 +
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WaitPakinLogService.java | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java | 3
zy-asrs-common/src/main/resources/mapper/wms/WrkMastMapper.xml | 13
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java | 65 ++
zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html | 12
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java | 192 ++++++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastLogServiceImpl.java | 5
zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WaitPakinLogMapper.java | 4
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlLogService.java | 2
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastService.java | 6
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java | 12
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java | 132 ++++
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/DocTypeServiceImpl.java | 34 +
56 files changed, 1,688 insertions(+), 34 deletions(-)
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakinParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakinParam.java
new file mode 100644
index 0000000..874eaa6
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakinParam.java
@@ -0,0 +1,24 @@
+package com.zy.asrs.common.domain.param;
+
+import com.zy.asrs.common.domain.dto.DetlDto;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2022/4/8
+ */
+@Data
+public class OpenOrderPakinParam {
+
+ private String orderNo;
+
+ private String orderType;
+
+ private String orderTime;
+
+ private Long hostId;
+
+ private List<DetlDto> orderDetails;
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakoutParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakoutParam.java
new file mode 100644
index 0000000..add6ac6
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/OpenOrderPakoutParam.java
@@ -0,0 +1,42 @@
+package com.zy.asrs.common.domain.param;
+
+import com.alibaba.fastjson.JSON;
+import com.zy.asrs.common.domain.dto.DetlDto;
+import com.zy.asrs.framework.common.DateUtils;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2022/4/8
+ */
+@Data
+public class OpenOrderPakoutParam {
+
+ private String orderNo;
+
+ private String orderType;
+
+ private String orderTime;
+
+ private List<DetlDto> orderDetails;
+
+ private String lgort;
+
+ private Long hostId;
+
+ public static void main(String[] args) {
+ OpenOrderPakoutParam param = new OpenOrderPakoutParam();
+ param.setOrderNo("LXT12321321");
+ param.setOrderType("浜よ揣鍗�");
+ param.setOrderTime(DateUtils.convert(new Date()));
+ List<DetlDto> orderDetails = new ArrayList<>();
+ param.setOrderDetails(orderDetails);
+ DetlDto detlDto = new DetlDto("15099-10000", 3.0);
+ orderDetails.add(detlDto);
+ System.out.println(JSON.toJSONString(param));
+ }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetl.java
index 417fb05..dde883f 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetl.java
@@ -280,6 +280,12 @@
@ApiModelProperty(value= "鎺堟潈鍟嗘埛")
private Long hostId;
+ /**
+ * 宸ヤ綔妗D
+ */
+ @ApiModelProperty(value= "宸ヤ綔妗D")
+ private Long wrkMastId;
+
public WrkDetl() {}
public WrkDetl(Integer wrkNo,Date ioTime,Double anfme,String zpallet,String matnr,String maktx,String batch,String orderNo,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double length,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String memo,Long hostId) {
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetlLog.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetlLog.java
index b686d11..c2da70a 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetlLog.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/WrkDetlLog.java
@@ -277,6 +277,12 @@
@ApiModelProperty(value= "鎺堟潈鍟嗘埛")
private Long hostId;
+ /**
+ * 宸ヤ綔妗D
+ */
+ @ApiModelProperty(value= "宸ヤ綔妗D")
+ private Long wrkMastId;
+
public WrkDetlLog() {}
public WrkDetlLog(Long id,Integer wrkNo,Date ioTime,Double anfme,String zpallet,String matnr,String maktx,String batch,String orderNo,String specs,String model,String color,String brand,String unit,Double price,String sku,Double units,String barcode,String origin,String manu,String manuDate,String itemNum,Double safeQty,Double weight,Double length,Double volume,String threeCode,String supp,String suppCode,Integer beBatch,String deadTime,Integer deadWarn,Integer source,Integer inspect,Integer danger,Long modiUser,Date modiTime,Long appeUser,Date appeTime,String memo,Long hostId) {
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
index 74fabc6..9b98af2 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -24,4 +25,13 @@
List<QueryStockPreDo> queryStockPre(@Param("matnr")String matnr);
+ LocDetl selectItem(@Param("locNo") String locNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId);
+
+ int deleteItem(@Param("locNo") String locNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId);
+
+ int updateAnfme(@Param("anfme") Double anfme, @Param("locNo") String locNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId);
+
+ @Update("update wms_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo} and host_id = #{hostId}")
+ int updateLocNo(String newLocNo, String oldLocNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlMapper.java
index 4055af6..76ed994 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderDetlMapper.java
@@ -19,4 +19,8 @@
IPage<OrderDetl> getPakoutPage(Page<OrderDetl> page ,Map<String, Object> map);
+ int increase(@Param("orderId") Long orderId, @Param("hostId") Long hostId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("qty") Double qty);
+
+ int decrease(@Param("orderNo") String orderNo, @Param("hostId") Long hostId, @Param("matnr") String matnr, @Param("batch") String batch, @Param("qty") Double qty);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderMapper.java
index 4c5ed3a..9a02a9b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/OrderMapper.java
@@ -12,4 +12,6 @@
void updateOrder1(Long orderId,@Param("userId")Long userId);
+ int updateSettle(@Param("orderId") Long orderId, @Param("settle") Long settle, @Param("userId") Long userId, @Param("hostId") Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WaitPakinLogMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WaitPakinLogMapper.java
index 1f7b1bf..46435dc 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WaitPakinLogMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WaitPakinLogMapper.java
@@ -2,6 +2,7 @@
import com.zy.asrs.common.wms.entity.WaitPakinLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -9,4 +10,7 @@
@Repository
public interface WaitPakinLogMapper extends BaseMapper<WaitPakinLog> {
+ @Insert("insert into wms_wait_pakin_log select * from wms_wait_pakin where zpallet=#{zpallet} and host_id = #{hostId}")
+ int saveToHistory(String zpallet, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlLogMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlLogMapper.java
index 7c024ae..22c4c43 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlLogMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlLogMapper.java
@@ -2,6 +2,7 @@
import com.zy.asrs.common.wms.entity.WrkDetlLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -9,4 +10,7 @@
@Repository
public interface WrkDetlLogMapper extends BaseMapper<WrkDetlLog> {
+ @Insert("insert into wms_wrk_detl_log select * from wms_wrk_detl where wrk_no=#{workNo} and host_id = #{hostId}")
+ int saveToHistory(Integer workNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlMapper.java
index f2f80a7..b6cff65 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkDetlMapper.java
@@ -3,6 +3,7 @@
import com.zy.asrs.common.wms.entity.WrkDetl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -13,4 +14,8 @@
List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+ int updateOrderNo(@Param("orderNo") String orderNo, @Param("wrkNo") Integer wrkNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("hostId") Long hostId);
+
+ List<WrkDetl> selectAndLogByOrderNo(String orderNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastLogMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastLogMapper.java
index 3c46d18..f7cccd0 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastLogMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastLogMapper.java
@@ -2,6 +2,7 @@
import com.zy.asrs.common.wms.entity.WrkMastLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -9,4 +10,7 @@
@Repository
public interface WrkMastLogMapper extends BaseMapper<WrkMastLog> {
+ @Insert("insert into wms_wrk_mast_log select * from wms_wrk_mast where id=#{id}")
+ int saveToHistory(Long id);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastMapper.java
index 2d4fb91..1c950bb 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/WrkMastMapper.java
@@ -5,8 +5,14 @@
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
+import java.util.List;
+
@Mapper
@Repository
public interface WrkMastMapper extends BaseMapper<WrkMast> {
+ List<WrkMast> selectToBeCompleteData();
+
+ List<WrkMast> selectToBeHistoryData();
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/DocTypeService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/DocTypeService.java
index a4f7338..04de222 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/DocTypeService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/DocTypeService.java
@@ -5,4 +5,6 @@
public interface DocTypeService extends IService<DocType> {
+ DocType selectOrAdd(String docName, Boolean pakin);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
index 4c332d2..95286ca 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
@@ -16,4 +16,13 @@
List<LocDetl> queryStock(String matnr, String batch, String lgort, Set<String> locNos);
+ LocDetl selectItem(String locNo, String matnr, String batch, Long hostId);
+
+ /**
+ * 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滄暟閲忎负0锛屽垯鍒犻櫎璁板綍
+ */
+ boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, Long hostId);
+
+ boolean updateLocNo(String newLocNo, String oldLocNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OpenService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OpenService.java
new file mode 100644
index 0000000..0a75b44
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OpenService.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.common.wms.service;
+
+
+import com.zy.asrs.common.domain.param.OpenOrderPakinParam;
+import com.zy.asrs.common.domain.param.OpenOrderPakoutParam;
+
+import java.util.List;
+
+public interface OpenService {
+
+ /**
+ * 娣诲姞鍏ュ簱鍗�
+ */
+ void pakinOrderCreate(OpenOrderPakinParam param);
+
+ /**
+ * 娣诲姞鍑哄簱鍗�
+ */
+ void pakoutOrderCreate(OpenOrderPakoutParam param);
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlService.java
index c31cf43..291af59 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderDetlService.java
@@ -12,4 +12,8 @@
IPage<OrderDetl> getPakoutPage(Integer curr, Integer limit, Map<String, Object> map);
+ boolean increase(Long orderId, Long hostId, String matnr, String batch, Double qty);
+
+ boolean decrease(String orderNo, Long hostId, String matnr, String batch, Double qty);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
index 7af4d98..83c9bb0 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
@@ -2,11 +2,21 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.common.wms.entity.Order;
+import com.zy.asrs.common.wms.entity.WrkDetl;
+import com.zy.asrs.common.wms.entity.WrkMast;
+
+import java.util.List;
public interface OrderService extends IService<Order> {
void updateOrder1(Long orderId,Long userId);
- Order selectByNo(String orderNo);
+ Order selectByNo(String orderNo, Long hostId);
+
+ boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls, Long hostId);
+
+ boolean updateSettle(Long orderId, Long settle, Long userId, Long hostId);
+
+ void checkComplete(String orderNo, Long hostId);
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WaitPakinLogService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WaitPakinLogService.java
index 957952b..dc9c694 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WaitPakinLogService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WaitPakinLogService.java
@@ -5,4 +5,6 @@
public interface WaitPakinLogService extends IService<WaitPakinLog> {
+ boolean saveToHistory(String zpallet, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
index 5b007ab..39b1c77 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
@@ -11,4 +11,20 @@
*/
String startupFullPutStore(FullStoreParam param, Long userId, Long hostId);
+ /**
+ * 鎵嬪姩瀹屾垚宸ヤ綔妗�
+ */
+ void completeWrkMast(String workNo, Long userId, Long hostId);
+
+ /**
+ * 鎵嬪姩鍙栨秷宸ヤ綔妗�
+ */
+ void cancelWrkMast(String workNo, Long userId, Long hostId);
+
+ /**
+ * 鎵嬪姩鎷f枡鍏ュ簱宸ヤ綔妗�
+ */
+ void pickWrkMast(String workNo, Long userId, Long hostId);
+
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlLogService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlLogService.java
index cc36f82..84b1ebd 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlLogService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlLogService.java
@@ -5,4 +5,6 @@
public interface WrkDetlLogService extends IService<WrkDetlLog> {
+ boolean saveToHistory(Integer workNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlService.java
index 12e8827..05d51da 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkDetlService.java
@@ -9,4 +9,8 @@
List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+ boolean updateOrderNo(String orderNo, Integer wrkNo, String matnr, String batch, Long hostId);
+
+ List<WrkDetl> selectAndLogByOrderNo(String orderNo, Long hostId);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastLogService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastLogService.java
index a998657..a357aa7 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastLogService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastLogService.java
@@ -5,4 +5,6 @@
public interface WrkMastLogService extends IService<WrkMastLog> {
+ boolean saveToHistory(Long id);
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastService.java
index 35f985d..e867856 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WrkMastService.java
@@ -3,6 +3,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.common.wms.entity.WrkMast;
+import java.util.List;
+
public interface WrkMastService extends IService<WrkMast> {
+ List<WrkMast> selectToBeCompleteData();
+
+ List<WrkMast> selectToBeHistoryData();
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/DocTypeServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/DocTypeServiceImpl.java
index fa68c2c..98ab54c 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/DocTypeServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/DocTypeServiceImpl.java
@@ -1,12 +1,46 @@
package com.zy.asrs.common.wms.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.wms.mapper.DocTypeMapper;
import com.zy.asrs.common.wms.entity.DocType;
import com.zy.asrs.common.wms.service.DocTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.exception.CoolException;
import org.springframework.stereotype.Service;
+
+import java.util.Date;
@Service("docTypeService")
public class DocTypeServiceImpl extends ServiceImpl<DocTypeMapper, DocType> implements DocTypeService {
+ @Override
+ public DocType selectOrAdd(String docName, Boolean pakin) {
+ if (Cools.isEmpty(docName)) {
+ return null;
+ }
+ DocType docType = this.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocName, docName));
+ if (docType == null) {
+ long docId = 1L;
+ DocType last = this.getOne(new LambdaQueryWrapper<DocType>().orderByDesc(DocType::getDocId));
+ if (last != null) {
+ docId = last.getDocId() + 1;
+ }
+ docType = new DocType();
+ docType.setDocId(docId);
+ docType.setDocName(docName);
+ if (null != pakin) {
+ docType.setPakin(pakin ? 1 : 0);
+ docType.setPakout(pakin ? 0 : 1);
+ }
+ docType.setStatus(1);
+ docType.setCreateTime(new Date());
+ docType.setUpdateTime(new Date());
+ if (!this.save(docType)) {
+ throw new CoolException("鍗曟嵁绫诲瀷閿欒");
+ }
+ }
+ return docType;
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
index 2cdd85f..cd1f34b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
@@ -42,4 +42,23 @@
}
return result;
}
+
+ @Override
+ public LocDetl selectItem(String locNo, String matnr, String batch, Long hostId) {
+ return this.baseMapper.selectItem(locNo, matnr, batch, hostId);
+ }
+
+ @Override
+ public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, Long hostId) {
+ if (anfme <= 0) {
+ return this.baseMapper.deleteItem(locNo, matnr, batch, hostId) > 0;
+ } else {
+ return baseMapper.updateAnfme(anfme, locNo, matnr, batch, hostId) > 0;
+ }
+ }
+
+ @Override
+ public boolean updateLocNo(String newLocNo, String oldLocNo, Long hostId) {
+ return baseMapper.updateLocNo(newLocNo, oldLocNo, hostId) > 0;
+ }
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OpenServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OpenServiceImpl.java
new file mode 100644
index 0000000..f78d78f
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OpenServiceImpl.java
@@ -0,0 +1,220 @@
+package com.zy.asrs.common.wms.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.dto.DetlDto;
+import com.zy.asrs.common.domain.param.OpenOrderPakinParam;
+import com.zy.asrs.common.domain.param.OpenOrderPakoutParam;
+import com.zy.asrs.common.wms.entity.DocType;
+import com.zy.asrs.common.wms.entity.Mat;
+import com.zy.asrs.common.wms.entity.Order;
+import com.zy.asrs.common.wms.entity.OrderDetl;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.DateUtils;
+import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.framework.exception.CoolException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2022/4/9
+ */
+@Slf4j
+@Service
+public class OpenServiceImpl implements OpenService {
+
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private MatService matService;
+
+ @Override
+ @Transactional
+ public void pakinOrderCreate(OpenOrderPakinParam param) {
+ Order order = orderService.selectByNo(param.getOrderNo(), param.getHostId());
+ if (!Cools.isEmpty(order)) {
+ throw new CoolException(param.getOrderNo() + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
+ }
+ DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE);
+ Date now = new Date();
+ // 鍗曟嵁涓绘。
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ null, //
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ null, // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ 9527L, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ 9527L, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 澶囨敞
+ param.getHostId()
+ );
+ if (!orderService.save(order)) {
+ throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ // 鍗曟嵁鏄庣粏妗�
+ List<DetlDto> list = new ArrayList<>();
+ List<DetlDto> orderDetails = param.getOrderDetails();
+ for (DetlDto detail : orderDetails) {
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
+ if (DetlDto.has(list, dto)) {
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ assert detlDto != null;
+ detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+ } else {
+ list.add(dto);
+ }
+ }
+ for (DetlDto detlDto : list) {
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, param.getHostId()));
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setBatch(detlDto.getBatch());
+ orderDetl.setAnfme(detlDto.getAnfme());
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setCreateBy(9527L);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(9527L);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ if (!orderDetlService.save(orderDetl)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ }
+
+ @Override
+ @Transactional
+ public void pakoutOrderCreate(OpenOrderPakoutParam param) {
+ Order order = orderService.selectByNo(param.getOrderNo(), param.getHostId());
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+ if (!Cools.isEmpty(order)) {
+ if (order.getSettle() > 1L) {
+ throw new CoolException(param.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ }
+ orderService.removeById(order.getId());
+ }
+ DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
+ Date now = new Date();
+ // 鍗曟嵁涓绘。
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ param.getOrderNo(), // 璁㈠崟缂栧彿
+ DateUtils.convert(now), // 鍗曟嵁鏃ユ湡
+ docType.getDocId(), // 鍗曟嵁绫诲瀷
+ null, // 椤圭洰缂栧彿
+ null, //
+ null, // 璋冩嫧椤圭洰缂栧彿
+ null, // 鍒濆绁ㄦ嵁鍙�
+ null, // 绁ㄦ嵁鍙�
+ null, // 瀹㈡埛缂栧彿
+ null, // 瀹㈡埛
+ null, // 鑱旂郴鏂瑰紡
+ null, // 鎿嶄綔浜哄憳
+ null, // 鍚堣閲戦
+ null, // 浼樻儬鐜�
+ null, // 浼樻儬閲戦
+ null, // 閿�鍞垨閲囪喘璐圭敤鍚堣
+ null, // 瀹炰粯閲戦
+ null, // 浠樻绫诲瀷
+ null, // 涓氬姟鍛�
+ null, // 缁撶畻澶╂暟
+ null, // 閭垂鏀粯绫诲瀷
+ null, // 閭垂
+ null, // 浠樻鏃堕棿
+ null, // 鍙戣揣鏃堕棿
+ null, // 鐗╂祦鍚嶇О
+ null, // 鐗╂祦鍗曞彿
+ 1L, // 璁㈠崟鐘舵��
+ 1, // 鐘舵��
+ 9527L, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ 9527L, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 澶囨敞
+ param.getHostId()
+ );
+ if (!orderService.save(order)) {
+ throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ // 鍗曟嵁鏄庣粏妗�
+ List<DetlDto> list = new ArrayList<>();
+ List<DetlDto> orderDetails = param.getOrderDetails();
+ for (DetlDto detail : orderDetails) {
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
+ if (DetlDto.has(list, dto)) {
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ assert detlDto != null;
+ detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+ } else {
+ list.add(dto);
+ }
+ }
+ for (DetlDto detlDto : list) {
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, param.getHostId()));
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+ }
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setBatch(detlDto.getBatch());
+ orderDetl.setAnfme(detlDto.getAnfme());
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setCreateBy(9527L);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(9527L);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setQty(0.0D);
+ if (!orderDetlService.save(orderDetl)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ }
+ }
+
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlServiceImpl.java
index c2eb6ec..6bbe5dd 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderDetlServiceImpl.java
@@ -24,4 +24,19 @@
return this.baseMapper.getPakoutPage(page, map);
}
+ @Override
+ public boolean increase(Long orderId, Long hostId, String matnr, String batch, Double qty) {
+ return this.baseMapper.increase(orderId, hostId, matnr, batch, qty) > 0;
+ }
+
+ @Override
+ public boolean decrease(String orderNo, Long hostId, String matnr, String batch, Double qty) {
+ int decrease = this.baseMapper.decrease(orderNo, hostId, matnr, batch, qty);
+ if (decrease == 0) {
+ return this.baseMapper.decrease(orderNo, hostId, matnr, null, qty) > 0;
+ } else {
+ return true;
+ }
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
index c74c4b1..61e4b7d 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
@@ -1,17 +1,39 @@
package com.zy.asrs.common.wms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.dto.DetlDto;
+import com.zy.asrs.common.domain.param.OpenOrderPakinParam;
+import com.zy.asrs.common.domain.param.OpenOrderPakoutParam;
+import com.zy.asrs.common.wms.entity.*;
+import com.zy.asrs.common.wms.mapper.OrderDetlMapper;
import com.zy.asrs.common.wms.mapper.OrderMapper;
-import com.zy.asrs.common.wms.entity.Order;
-import com.zy.asrs.common.wms.service.OrderService;
+import com.zy.asrs.common.wms.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.DateUtils;
+import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.framework.exception.CoolException;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
@Service("orderService")
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
+
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private OpenService openService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private OrderDetlMapper orderDetlMapper;
+ @Autowired
+ private DocTypeService docTypeService;
@Override
public void updateOrder1(Long orderId,Long userId) {
@@ -19,12 +41,114 @@
}
@Override
- public Order selectByNo(String orderNo) {
- List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo));
+ public Order selectByNo(String orderNo, Long hostId) {
+ List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo).eq(Order::getHostId, hostId));
if (Cools.isEmpty(orderList)) {
return null;
}
return orderList.get(0);
}
+ @Override
+ public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls, Long hostId) {
+ try {
+ List<DetlDto> detlDtos = new ArrayList<>();
+ wrkDetls.forEach(wrkDetl -> {
+ detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+ });
+ String orderNo = "HAND" + snowflakeIdWorker.nextId();
+ if (pakin) {
+ // 鐢熸垚鍏ュ簱鍗曟嵁
+ OpenOrderPakinParam openParam = new OpenOrderPakinParam();
+ openParam.setOrderNo(orderNo);
+ openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+ openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�");
+ openParam.setOrderDetails(detlDtos);
+ openParam.setHostId(hostId);
+ openService.pakinOrderCreate(openParam);
+ } else {
+ // 鐢熸垚鍑哄簱鍗曟嵁
+ OpenOrderPakoutParam openParam = new OpenOrderPakoutParam();
+ openParam.setOrderNo(orderNo);
+ openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+ openParam.setOrderType("鎵嬪姩鍑哄簱鍗�");
+ openParam.setOrderDetails(detlDtos);
+ openParam.setHostId(hostId);
+ openService.pakoutOrderCreate(openParam);
+ }
+
+ Order order = this.selectByNo(orderNo, hostId);
+ if (null == order) {
+ throw new CoolException("鐢熸垚鍗曟嵁澶辫触");
+ }
+ if (!this.updateSettle(order.getId(), 4L, null, hostId)) {
+ throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�");
+ }
+ for (DetlDto detlDto : detlDtos) {
+ // 淇敼璁㈠崟鏄庣粏鏁伴噺
+ if (!orderDetlService.increase(order.getId(), hostId, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+ }
+ }
+ // 宸ヤ綔妗f槑缁嗘洿鏂板崟鎹紪鍙�
+ for (WrkDetl wrkDetl : wrkDetls) {
+ wrkDetlService.updateOrderNo(orderNo, wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+ }
+ } catch (Exception e) {
+ log.error("", e);
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean updateSettle(Long orderId, Long settle, Long userId, Long hostId) {
+ return this.baseMapper.updateSettle(orderId, settle, userId, hostId) > 0;
+ }
+
+ @Override
+ public void checkComplete(String orderNo, Long hostId) {
+ Order order = this.selectByNo(orderNo, hostId);
+ if (order.getSettle() >= 4L) {
+ return;
+ }
+ List<OrderDetl> orderDetls = orderDetlMapper.selectList(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()).eq(OrderDetl::getHostId, hostId));
+ boolean complete = true;
+ for (OrderDetl orderDetl : orderDetls) {
+ if (orderDetl.getAnfme() > orderDetl.getQty()) {
+ complete = false;
+ break;
+ }
+ }
+ if (complete && wrkDetlService.count(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getOrderNo, orderNo).eq(WrkDetl::getHostId, hostId)) == 0) {
+ // 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
+ DocType docType = docTypeService.getById(order.getDocType());
+ if (null != docType && docType.getPakout() == 1) {
+ if (!orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()).eq(OrderDetl::getHostId, hostId))) {
+ throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
+ }
+ List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo, hostId);
+ for (WrkDetl wrkDetl : wrkDetls) {
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.sync(wrkDetl);
+ orderDetl.setQty(orderDetl.getAnfme());
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(orderNo);
+ orderDetl.setStatus(1);
+ orderDetl.setCreateTime(order.getCreateTime());
+ orderDetl.setCreateBy(order.getCreateBy());
+ orderDetl.setUpdateTime(order.getUpdateTime());
+ orderDetl.setUpdateBy(order.getUpdateBy());
+ if (!orderDetlService.save(orderDetl)) {
+ throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
+ }
+ }
+ }
+
+ if (!this.updateSettle(order.getId(), 4L, null, hostId)) {
+ throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
+ }
+ }
+
+ }
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WaitPakinLogServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WaitPakinLogServiceImpl.java
index 5045ba2..3def741 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WaitPakinLogServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WaitPakinLogServiceImpl.java
@@ -9,4 +9,8 @@
@Service("waitPakinLogService")
public class WaitPakinLogServiceImpl extends ServiceImpl<WaitPakinLogMapper, WaitPakinLog> implements WaitPakinLogService {
+ @Override
+ public boolean saveToHistory(String zpallet, Long hostId) {
+ return this.baseMapper.saveToHistory(zpallet, hostId) > 0;
+ }
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index f62ee2d..c505036 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -4,7 +4,9 @@
import com.zy.asrs.common.domain.dto.DetlDto;
import com.zy.asrs.common.domain.dto.LocTypeDto;
import com.zy.asrs.common.domain.dto.StartupDto;
+import com.zy.asrs.common.domain.entity.StaDesc;
import com.zy.asrs.common.domain.param.FullStoreParam;
+import com.zy.asrs.common.sys.service.StaDescService;
import com.zy.asrs.common.wms.entity.*;
import com.zy.asrs.common.wms.service.*;
import com.zy.asrs.framework.common.BaseRes;
@@ -18,6 +20,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* Created by vincent on 2020/6/11
@@ -38,6 +41,14 @@
private LocMastService locMastService;
@Autowired
private MatService matService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
+ @Autowired
+ private StaDescService staDescService;
@Override
@Transactional
@@ -104,6 +115,7 @@
wrkDetl.setAppeTime(now);
wrkDetl.setModiUser(userId);
wrkDetl.setModiTime(now);
+ wrkDetl.setWrkMastId(wrkMast.getId());
if (!wrkDetlService.save(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
@@ -124,4 +136,184 @@
return dto.getLocNo();
}
+ @Override
+ @Transactional
+ public void completeWrkMast(String workNo, Long userId, Long hostId) {
+ WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, workNo).eq(WrkMast::getHostId, hostId));
+ if (Cools.isEmpty(wrkMast)){
+ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ }
+ if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ // 鍏ュ簱 + 搴撲綅杞Щ
+ if (wrkMast.getWrkSts() < 99 || (wrkMast.getWrkSts() > 100 && wrkMast.getIoType()==11)) {
+ wrkMast.setWrkSts(99L);//99.鍏ュ簱瀹屾垚
+ // 鍑哄簱
+ } else if (wrkMast.getWrkSts() > 100) {
+ wrkMast.setWrkSts(199L);//199.鍑哄簱瀹屾垚
+ }
+ Date now = new Date();
+ wrkMast.setModiTime(now);
+ wrkMast.setModiUser(String.valueOf(userId));
+ // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩瀹屾垚");
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+ }
+ }
+
+ @Override
+ @Transactional
+ public void cancelWrkMast(String workNo, Long userId, Long hostId) {
+ WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, workNo).eq(WrkMast::getHostId, hostId));
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+ }
+ String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
+ String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+ // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
+ if (wrkMast.getWrkSts() < 99) {
+ locNo = wrkMast.getLocNo();
+ locSts = "O";
+
+ // 搴撲綅杞Щ
+ if (wrkMast.getIoType() == 11) {
+ // 搴撲綅杞Щ锛氭簮搴撲綅
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getSourceLocNo()).eq(LocMast::getHostId, hostId));
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
+ }
+ locMast.setLocSts("F");
+ locMast.setModiTime(new Date());
+ locMast.setModiUser(userId);
+ locMastService.updateById(locMast);
+ }
+ // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+ } else if (wrkMast.getWrkSts() > 100 && wrkMast.getWrkSts() != 199) {
+ locNo = wrkMast.getSourceLocNo();
+ // 鍑哄簱 ===>> F.鍦ㄥ簱
+ if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
+ locSts = "F";
+ // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+ } else if (wrkMast.getIoType() == 110) {
+ locSts = "D";
+ // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+ } else if (wrkMast.getIoType() == 11) {
+ locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
+ // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getLocNo()).eq(LocMast::getHostId, hostId));
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
+ }
+ locMast.setLocSts("O");
+ locMast.setModiTime(new Date());
+ locMast.setModiUser(userId);
+ locMastService.updateById(locMast);
+ }
+ } else {
+ throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
+ }
+ // 璁㈠崟鍏宠仈
+ List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ for (WrkDetl wrkDetl : wrkDetls) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ if (!orderDetlService.decrease(wrkDetl.getOrderNo(), hostId, wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+ throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
+ }
+ }
+ // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
+ wrkMast.setModiUser(String.valueOf(userId));
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔涓绘。
+ boolean wrkMastRes = wrkMastService.removeById(wrkMast);
+
+ if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.saveToHistory(wrkMast.getWrkNo(), hostId)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔妗f槑缁�
+ boolean wrkDetlRes = wrkDetlService.remove(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, workNo).eq(WrkDetl::getHostId, hostId));
+ }
+
+ // 淇敼搴撲綅鐘舵��
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locNo).eq(LocMast::getHostId, hostId));
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:" + locNo);
+ }
+ locMast.setLocSts(locSts);
+ locMast.setModiTime(new Date());
+ locMast.setModiUser(userId);
+ boolean locMastRes = locMastService.updateById(locMast);
+ if (!wrkMastRes || !locMastRes) {
+ throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+ }
+ }
+
+ @Override
+ @Transactional
+ public void pickWrkMast(String workNo, Long userId, Long hostId) {
+ WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, workNo).eq(WrkMast::getHostId, hostId));
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+ }
+ // 鍏ュ嚭搴撶被鍨嬪垽鏂�
+ if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
+ throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
+ }
+ // 宸ヤ綔鐘舵�佸垽鏂�
+ if (wrkMast.getWrkSts() < 101 || wrkMast.getWrkSts() == 200) {
+ throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
+ }
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+// }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鑾峰彇鐩爣绔�
+ LambdaQueryWrapper<StaDesc> wrapper = new LambdaQueryWrapper<StaDesc>()
+ .eq(StaDesc::getTypeNo, wrkMast.getIoType() - 50)
+ .eq(StaDesc::getStnNo, wrkMast.getStaNo()); // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ StaDesc staDesc = staDescService.getOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getDeviceStn();
+ Date now = new Date();
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ wrkMast.setModiUser(String.valueOf(userId));
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getLocNo()).eq(LocMast::getHostId, hostId));
+ locMast.setLocSts("Q");
+ locMast.setModiTime(now);
+ locMast.setModiUser(userId);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlLogServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlLogServiceImpl.java
index a27c5d7..0ef3518 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlLogServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlLogServiceImpl.java
@@ -9,4 +9,8 @@
@Service("wrkDetlLogService")
public class WrkDetlLogServiceImpl extends ServiceImpl<WrkDetlLogMapper, WrkDetlLog> implements WrkDetlLogService {
+ @Override
+ public boolean saveToHistory(Integer workNo, Long hostId) {
+ return this.baseMapper.saveToHistory(workNo, hostId) > 0;
+ }
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlServiceImpl.java
index bb83fb3..da46700 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkDetlServiceImpl.java
@@ -16,4 +16,13 @@
return this.baseMapper.selectAndLogByOrderNoGroupByMatnrOfSum(orderNo);
}
+ @Override
+ public boolean updateOrderNo(String orderNo, Integer wrkNo, String matnr, String batch, Long hostId) {
+ return baseMapper.updateOrderNo(orderNo, wrkNo, matnr, batch, hostId) > 0;
+ }
+
+ @Override
+ public List<WrkDetl> selectAndLogByOrderNo(String orderNo, Long hostId) {
+ return this.baseMapper.selectAndLogByOrderNo(orderNo, hostId);
+ }
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastLogServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastLogServiceImpl.java
index c4dea5c..1823932 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastLogServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastLogServiceImpl.java
@@ -9,4 +9,9 @@
@Service("wrkMastLogService")
public class WrkMastLogServiceImpl extends ServiceImpl<WrkMastLogMapper, WrkMastLog> implements WrkMastLogService {
+ @Override
+ public boolean saveToHistory(Long id) {
+ return this.baseMapper.saveToHistory(id) > 0;
+ }
+
}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastServiceImpl.java
index fd1bce3..23c9f88 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WrkMastServiceImpl.java
@@ -6,7 +6,19 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
@Service("wrkMastService")
public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService {
+ @Override
+ public List<WrkMast> selectToBeCompleteData() {
+ return this.baseMapper.selectToBeCompleteData();
+ }
+
+ @Override
+ public List<WrkMast> selectToBeHistoryData() {
+ return this.baseMapper.selectToBeHistoryData();
+ }
+
}
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
index a485195..cfb52d4 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
@@ -2,6 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.common.wms.mapper.LocDetlMapper">
+ <sql id="batchSeq">
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </sql>
+
<sql id="stockOutCondition">
<if test="map.loc_no!=null and map.loc_no!='' ">
and a.loc_no like '%' + #{map.loc_no} + '%'
@@ -121,4 +132,34 @@
order by no, count desc
</select>
+ <select id="selectItem" resultType="com.zy.asrs.common.wms.entity.LocDetl">
+ select top 1 *
+ from wms_loc_detl
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <include refid="batchSeq"></include>
+ </select>
+
+ <delete id="deleteItem">
+ delete from wms_loc_detl
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <include refid="batchSeq"></include>
+ </delete>
+
+ <update id="updateAnfme">
+ update wms_loc_detl
+ set anfme = #{anfme}
+ , modi_time = getdate()
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <include refid="batchSeq"></include>
+ </update>
+
</mapper>
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml
index 21c299c..e9eefa3 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml
@@ -45,4 +45,38 @@
<include refid="pakOutPageCondition"></include>
</select>
+ <update id="increase">
+ update wms_order_detl
+ set qty = qty + #{qty}
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+ <update id="decrease">
+ update wms_order_detl
+ set qty = qty - #{qty}
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
</mapper>
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/OrderMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/OrderMapper.xml
index 497be26..9d7c276 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/OrderMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/OrderMapper.xml
@@ -14,4 +14,17 @@
and id = #{orderId}
</update>
+ <update id="updateSettle">
+ update wms_order
+ set settle = #{settle}
+ ,update_time = getdate()
+ <if test="userId != null">
+ ,update_by = #{userId}
+ </if>
+ where 1=1
+ and id = #{orderId}
+ and host_id = #{hostId}
+ </update>
+
+
</mapper>
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/WrkDetlMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/WrkDetlMapper.xml
index 7815a46..33a25e8 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/WrkDetlMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/WrkDetlMapper.xml
@@ -2,6 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.common.wms.mapper.WrkDetlMapper">
+ <sql id="batchSeq">
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </sql>
+
<select id="selectAndLogByOrderNoGroupByMatnrOfSum" resultType="com.zy.asrs.common.wms.entity.WrkDetl">
select awd.wrk_no, awd.io_time, awd.matnr, sum(awd.anfme) as anfme
from wms_wrk_detl awd
@@ -17,4 +28,30 @@
group by awdl.wrk_no, awdl.io_time, awdl.matnr
</select>
+ <update id="updateOrderNo">
+ update wms_wrk_detl
+ set order_no = #{orderNo}
+ , modi_time = getdate()
+ where 1=1
+ and wrk_no = #{wrkNo}
+ and matnr = #{matnr}
+ and host_id = #{hostId}
+ <include refid="batchSeq"></include>
+ </update>
+
+ <select id="selectAndLogByOrderNo" resultType="com.zy.asrs.common.wms.entity.WrkDetl">
+ select awd.*
+ from wms_wrk_detl awd
+ left join wms_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
+ where order_no = #{orderNo}
+ and host_id = #{hostId}
+ union
+ select distinct awdl.*
+ from wms_wrk_detl_log awdl
+ left join wms_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
+ where awdl.order_no = #{orderNo}
+ and host_id = #{hostId}
+ and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
+ </select>
+
</mapper>
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/WrkMastMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/WrkMastMapper.xml
index 3ddef01..9476e30 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/WrkMastMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/WrkMastMapper.xml
@@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.common.wms.mapper.WrkMastMapper">
+ <select id="selectToBeCompleteData" resultType="com.zy.asrs.common.wms.entity.WrkMast">
+ select * from wms_wrk_mast where ((wrk_sts = 99 Or wrk_sts = 199 ) and io_type != 103 and io_type != 104 and io_type != 107 ) order by io_time,wrk_no
+ </select>
+
+ <select id="selectToBeHistoryData" resultType="com.zy.asrs.common.wms.entity.WrkMast">
+ select * from wms_wrk_mast
+ where wrk_sts=100
+ or (wrk_sts=200 and ove_mk='Y' and wrk_no not in (select wrk_no from common_bas_devp where common_bas_devp.host_id = wms_wrk_mast.host_id))
+ or (wrk_sts=200 and dateadd(mi,15,io_time) <= getdate() and wrk_no not in (select wrk_no from common_bas_devp where common_bas_devp.host_id = wms_wrk_mast.host_id))
+ or (wrk_sts=200 and io_time is null and wrk_no not in (select wrk_no from common_bas_devp where common_bas_devp.host_id = wms_wrk_mast.host_id))
+ order by io_time,wrk_no asc
+ </select>
+
</mapper>
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
index b76dc30..70f9092 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -241,7 +241,7 @@
@ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟")
@Transactional
public R formAdd(@RequestBody OrderDomainParam param){
- Order order = orderService.selectByNo(param.getOrderNo());
+ Order order = orderService.selectByNo(param.getOrderNo(), getHostId());
if (order != null) {
return R.error("鍗曟嵁缂栧彿宸插瓨鍦�");
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
index b3c29a7..dac07bd 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
@@ -10,6 +10,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
@@ -77,4 +78,21 @@
return R.ok("鍏ュ簱鍚姩鎴愬姛").add(workService.startupFullPutStore(fullStoreParam, getUserId(), getHostId()));
}
+ @RequestMapping("/hand/control/wrkMast")
+ @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�")
+ public R handControlWrkMast(@RequestParam String workNo,
+ @RequestParam Integer type){
+ if (type == 1) {
+ workService.completeWrkMast(workNo, getUserId(), getHostId());
+ return R.ok("宸ヤ綔妗e凡瀹屾垚");
+ } else if (type == 2) {
+ workService.cancelWrkMast(workNo, getUserId(), getHostId());
+ return R.ok("宸ヤ綔妗e凡鍙栨秷");
+ } else if (type == 3) {
+ workService.pickWrkMast(workNo, getUserId(), getHostId());
+ return R.ok("宸ヤ綔妗e凡鎷f枡");
+ }
+ return R.ok();
+ }
+
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java
index 9bb74c0..5147bf3 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlController.java
@@ -46,6 +46,9 @@
wrapper.ge(WrkDetl::getAppeTime, DateUtils.convert(range[0]));
wrapper.le(WrkDetl::getAppeTime, DateUtils.convert(range[1]));
}
+ if (!Cools.isEmpty(param.get("wrk_mast_id"))) {
+ wrapper.eq(WrkDetl::getWrkMastId, param.get("wrk_mast_id"));
+ }
return R.ok(wrkDetlService.page(new Page<>(curr, limit), wrapper));
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java
index 263872a..c41e884 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkDetlLogController.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.asrs.common.wms.entity.WrkDetl;
import com.zy.asrs.common.wms.entity.WrkDetlLog;
import com.zy.asrs.common.wms.service.WrkDetlLogService;
import com.zy.asrs.framework.annotations.ManagerAuth;
@@ -46,6 +47,9 @@
wrapper.ge(WrkDetlLog::getAppeTime, DateUtils.convert(range[0]));
wrapper.le(WrkDetlLog::getAppeTime, DateUtils.convert(range[1]));
}
+ if (!Cools.isEmpty(param.get("wrk_mast_id"))) {
+ wrapper.eq(WrkDetlLog::getWrkMastId, param.get("wrk_mast_id"));
+ }
return R.ok(wrkDetlLogService.page(new Page<>(curr, limit), wrapper));
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java
index 6fd09a8..04283ca 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastController.java
@@ -43,8 +43,14 @@
}
if (!Cools.isEmpty(timeRange)) {
String[] range = timeRange.split(RANGE_TIME_LINK);
- wrapper.ge(WrkMast::getAppeTime, DateUtils.convert(range[0]));
- wrapper.le(WrkMast::getAppeTime, DateUtils.convert(range[1]));
+ wrapper.ge(WrkMast::getIoTime, DateUtils.convert(range[0]));
+ wrapper.le(WrkMast::getIoTime, DateUtils.convert(range[1]));
+ }
+ if (!Cools.isEmpty(param.get("wrk_no"))) {
+ wrapper.eq(WrkMast::getWrkNo, param.get("wrk_no"));
+ }
+ if (!Cools.isEmpty(param.get("wrk_sts"))) {
+ wrapper.eq(WrkMast::getWrkSts, param.get("wrk_sts"));
}
return R.ok(wrkMastService.page(new Page<>(curr, limit), wrapper));
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java
new file mode 100644
index 0000000..65bcc7e
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/AbstractHandler.java
@@ -0,0 +1,30 @@
+package com.zy.asrs.wms.task;
+
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+
+/**
+ * Created by vincent on 2020/7/4
+ */
+@Slf4j
+public abstract class AbstractHandler<T> {
+
+ public final ReturnT<T> SUCCESS = new ReturnT<>(200, null);
+ public final ReturnT<T> FAIL = new ReturnT<>(500, null);
+
+// protected abstract ReturnT<T> start();
+
+ protected void exceptionHandle(String errorMsg){
+ log.error(errorMsg);
+ exceptionHandle(errorMsg, (Object) null);
+ }
+
+ protected void exceptionHandle(String errorMsg, Object... args){
+ log.error(errorMsg);
+ throw new CoolException(MessageFormat.format(errorMsg, args));
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java
new file mode 100644
index 0000000..f01d7a4
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkLogScheduler.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.wms.task;
+
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.WrkMastService;
+import com.zy.asrs.wms.task.core.ReturnT;
+import com.zy.asrs.wms.task.handler.WorkLogHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Slf4j
+@Component
+public class WorkLogScheduler {
+
+ @Autowired
+ private WorkLogHandler workLogHandler;
+ @Autowired
+ private WrkMastService wrkMastService;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){
+ List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ for (WrkMast wrkMast : wrkMasts) {
+ ReturnT<String> result = workLogHandler.start(wrkMast);
+ if (!result.isSuccess()) {
+ log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java
new file mode 100644
index 0000000..e1e691d
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java
@@ -0,0 +1,51 @@
+package com.zy.asrs.wms.task;
+
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.WrkMastService;
+import com.zy.asrs.wms.task.core.ReturnT;
+import com.zy.asrs.wms.task.handler.WorkMastHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Component
+public class WorkMastScheduler {
+
+ private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WorkMastHandler workMastHandler;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void execute(){
+ List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ for (WrkMast wrkMast : wrkMasts) {
+ ReturnT<String> returnT = workMastHandler.start(wrkMast);
+ if (!returnT.isSuccess()) {
+// wrkMast.setUpdMk("X");
+ if (returnT.getMsg().length() > 255) {
+ returnT.setMsg(returnT.getMsg().substring(0, 150));
+ }
+ wrkMast.setErrorMemo(returnT.getMsg());
+ wrkMast.setErrorTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java
new file mode 100644
index 0000000..8ab8837
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/core/ReturnT.java
@@ -0,0 +1,65 @@
+package com.zy.asrs.wms.task.core;
+
+import java.io.Serializable;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+public class ReturnT<T> implements Serializable {
+
+ public static final long serialVersionUID = 42L;
+ public static final int SUCCESS_CODE = 200;
+ public static final int FAIL_CODE = 500;
+ private int code;
+ private String msg;
+ private T content;
+
+ public ReturnT() {
+ }
+
+ public ReturnT(int code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public ReturnT(T content) {
+ this.code = 200;
+ this.content = content;
+ }
+
+ public boolean isSuccess(){
+ return this.code == 200;
+ }
+
+ public int getCode() {
+ return this.code;
+ }
+
+ public ReturnT<T> setCode(int code) {
+ this.code = code;
+ return this;
+ }
+
+ public String getMsg() {
+ return this.msg;
+ }
+
+ public ReturnT<T> setMsg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ public T getContent() {
+ return this.content;
+ }
+
+ public ReturnT<T> setContent(T content) {
+ this.content = content;
+ return this;
+ }
+
+ public String toString() {
+ return "ReturnT [code=" + this.code + ", msg=" + this.msg + ", content=" + this.content + "]";
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
new file mode 100644
index 0000000..5a35d84
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
@@ -0,0 +1,131 @@
+package com.zy.asrs.wms.task.handler;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.wms.entity.WaitPakin;
+import com.zy.asrs.common.wms.entity.WrkDetl;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.wms.task.AbstractHandler;
+import com.zy.asrs.wms.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/6
+ */
+@Slf4j
+@Service
+public class WorkLogHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private WrkDetlLogService wrkDetlLogService;
+ @Autowired
+ private WaitPakinService waitPakinService;
+ @Autowired
+ private WaitPakinLogService waitPakinLogService;
+ @Autowired
+ private OrderService orderService;
+
+ // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
+ @Transactional
+ public ReturnT<String> start(WrkMast wrkMast) {
+ Long hostId = wrkMast.getHostId();
+ try {
+ List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ // 鍖哄垎璁㈠崟浠诲姟
+ List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>();
+ if (!Cools.isEmpty(wrkDetls)) {
+ Iterator<WrkDetl> iterator = wrkDetls.iterator();
+ while (iterator.hasNext()) {
+ WrkDetl wrkDetl = iterator.next();
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ wrkDetlsKeyOrder.add(wrkDetl);
+ iterator.remove();
+ }
+ }
+ }
+
+ // 鍏ュ簱 --------------------------------------------------------------------------------
+ if (wrkMast.getWrkSts() == 100) {
+ // 鍏ㄦ澘鍏ュ簱
+ if (wrkMast.getIoType() == 1) {
+ // 鍏ュ簱閫氱煡鍗�
+ if (!Cools.isEmpty(wrkMast.getBarcode())) {
+ // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
+ if (!waitPakinLogService.saveToHistory(wrkMast.getBarcode(), hostId)) {
+ exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎鍏ュ簱閫氱煡妗�
+ if (!waitPakinService.remove(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getZpallet, wrkMast.getBarcode()).eq(WaitPakin::getHostId, hostId))) {
+ exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ }
+// // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
+// if (!Cools.isEmpty(wrkDetls)) {
+// if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls, hostId)) {
+// exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+// }
+// }
+ // 鎷f枡鍐嶅叆搴�
+ } else if (wrkMast.getIoType() == 53) {
+ if (!Cools.isEmpty(wrkDetls)) {
+ if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls, hostId)) {
+ exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ }
+ }
+
+ // 鍑哄簱 --------------------------------------------------------------------------------
+ } else if (wrkMast.getWrkSts() == 200) {
+ if (!Cools.isEmpty(wrkDetls)) {
+ if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls, hostId)) {
+ exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ }
+ }
+
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
+ exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔涓绘。
+ if (!wrkMastService.removeById(wrkMast)) {
+ exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.saveToHistory(wrkMast.getWrkNo(), hostId)) {
+// exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔鏄庣粏妗�
+ if (!wrkDetlService.remove(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId))) {
+// exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+ }
+ // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+ for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
+ orderService.checkComplete(wrkDetl.getOrderNo(), hostId);
+ }
+ } catch (Exception e) {
+ log.error("fail", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
new file mode 100644
index 0000000..5323ac3
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkMastHandler.java
@@ -0,0 +1,342 @@
+package com.zy.asrs.wms.task.handler;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.wms.entity.LocDetl;
+import com.zy.asrs.common.wms.entity.LocMast;
+import com.zy.asrs.common.wms.entity.WrkDetl;
+import com.zy.asrs.common.wms.entity.WrkMast;
+import com.zy.asrs.common.wms.service.*;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.wms.task.AbstractHandler;
+import com.zy.asrs.wms.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/4
+ */
+@Slf4j
+@Service
+@Transactional
+public class WorkMastHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private WaitPakinService waitPakinService;
+
+ public ReturnT<String> start(WrkMast wrkMast) {
+ // 99.鍏ュ簱瀹屾垚
+ if (wrkMast.getWrkSts() == 99) {
+ return doIn(wrkMast);
+ // 199.鍑哄簱瀹屾垚
+ } else if (wrkMast.getWrkSts() == 199) {
+ return doOut(wrkMast);
+ }
+ return SUCCESS;
+ }
+
+ private ReturnT<String> doIn(WrkMast wrkMast){
+ Date now = new Date();
+ Long hostId = wrkMast.getHostId();
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getLocNo()).eq(LocMast::getHostId, hostId));
+ try {
+ if (null == locMast) {
+ exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ assert locMast != null;
+ switch (wrkMast.getIoType()) {
+ // 绌烘澘鍏ュ簱
+ case 10:
+ // 淇敼搴撲綅鐘舵��=D
+ if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
+ if (!Cools.isEmpty(wrkMast.getBarcode())) {
+ locMast.setBarcode(wrkMast.getBarcode());
+ }
+ locMast.setLocSts("D");
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
+ // 鍏ㄦ澘鍏ュ簱
+ case 1:
+ // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
+ List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, wrkMast.getLocNo()).eq(LocDetl::getHostId, hostId));
+ if (!locDetls.isEmpty()) {
+ locDetlService.remove(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, wrkMast.getLocNo()).eq(LocDetl::getHostId, hostId));
+ }
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ if (wrkDetls.isEmpty()) {
+ exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
+ }
+ // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+ for (WrkDetl wrkDetl : wrkDetls) {
+
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) {
+ exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ } else {
+ locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ if (!locDetlService.save(locDetl)) {
+ exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+
+ // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+ try {
+// Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+// .eq("zpallet", wrkDetl.getZpallet())
+// .eq("matnr", wrkDetl.getMatnr())
+// .eq("anfme", wrkDetl.getAnfme());
+// if (Cools.isEmpty(wrkDetl.getBatch())) {
+// wrapper.eq("batch", wrkDetl.getBatch());
+// } else {
+// wrapper.isNull("batch").or().eq("batch", "");
+// }
+// WaitPakin setParam = new WaitPakin();
+// setParam.setIoStatus("Y");
+// setParam.setModiTime(now);
+// waitPakinService.update(setParam, wrapper);
+ } catch (Exception ignore){}
+
+ }
+ // 淇敼搴撲綅鐘舵�� S ====>> F
+ if (locMast.getLocSts().equals("S")) {
+ locMast.setLocSts("F");
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
+ // 鎷f枡鍏ュ簱
+ case 53:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls53 = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ if (wrkDetls53.isEmpty()) {
+ exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ }
+ for (WrkDetl wrkDetl : wrkDetls53) {
+
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) {
+ exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ }
+ // 淇敼搴撲綅鐘舵�� Q ====>> F
+ if (locMast.getLocSts().equals("Q")) {
+ locMast.setLocSts("F");
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
+ // 骞舵澘鍏ュ簱
+ case 54:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls54 = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ if (wrkDetls54.isEmpty()) {
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ }
+ // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+ for (WrkDetl wrkDetl:wrkDetls54) {
+
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId);
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), hostId)) {
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ }
+ } else {
+ locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ if (!locDetlService.save(locDetl)) {
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+ }
+ }
+ }
+ // 淇敼搴撲綅鐘舵�� Q ====>> F
+ if (locMast.getLocSts().equals("Q")) {
+ locMast.setLocSts("F");
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
+ // 鐩樼偣鍏ュ簱
+ case 57:
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls57 = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ if (wrkDetls57.isEmpty()) {
+ exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ }
+ // 淇敼搴撲綅鐘舵�� Q ====>> F
+ if (locMast.getLocSts().equals("Q")) {
+ locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ }
+ break;
+ // 搴撲綅绉昏浆
+ case 11:
+ // 榛樿鐩爣搴撲綅鏄┖鏉�
+ String locSts = "D";
+ // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+ if (wrkMast.getEmptyMk().equals("N")) {
+ locSts = "F";
+ // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+ if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo(), hostId)) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬� ==> O
+ LocMast sourceLoc = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getSourceLocNo()).eq(LocMast::getHostId, hostId));
+ if (null != sourceLoc) {
+ sourceLoc.setBarcode("");
+ sourceLoc.setLocSts("O");
+ sourceLoc.setModiTime(now);
+ sourceLoc.setIoTime(now);
+ if (!locMastService.updateById(sourceLoc)) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ }
+ }
+ // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+ locMast.setLocSts(locSts);
+ locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setIoTime(now);
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ break;
+ default:
+ break;
+ }
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(100L);//100.搴撳瓨鏇存柊瀹屾垚
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ }
+ } catch (Exception e) {
+ log.error("fail", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
+
+ private ReturnT<String> doOut(WrkMast wrkMast){
+ Date now = new Date();
+ Long hostId = wrkMast.getHostId();
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, wrkMast.getSourceLocNo()).eq(LocMast::getHostId, hostId));
+ try {
+ if (null == locMast) {
+ exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ }
+ assert locMast != null;
+ switch (wrkMast.getIoType()) {
+ // 鍏ㄦ澘鍑哄簱
+ case 101:
+ // 鍑哄簱纭淇″彿浣�
+// if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
+// return SUCCESS;
+// }
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<WrkDetl> wrkDetls101 = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
+ if (wrkDetls101.isEmpty()) {
+ exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ }
+ for (WrkDetl wrkDetl : wrkDetls101) {
+ // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y
+ }
+ // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
+ if (!locDetlService.remove(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, wrkMast.getSourceLocNo()).eq(LocDetl::getHostId, hostId))) {
+ exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ }
+ // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
+ if (locMast.getLocSts().equals("R")) {
+ locMast.setLocSts("O");
+ locMast.setBarcode("");
+ locMast.setModiTime(now);
+ locMast.setIoTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ }
+ }
+ break;
+ // 绌烘澘鍑哄簱
+ case 110:
+ // 淇敼搴撲綅鐘舵�� R ===>> O
+ if (locMast.getLocSts().equals("R")) {
+ locMast.setLocSts("O");
+ locMast.setBarcode("");
+ locMast.setModiTime(now);
+ locMast.setIoTime(now);
+ if (!locMastService.updateById(locMast)) {
+ exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(200L);//200.搴撳瓨鏇存柊瀹屾垚
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ }
+ } catch (Exception e) {
+ log.error("fail", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg(e.getMessage());
+ }
+ return SUCCESS;
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js b/zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js
index a9c7a45..ae65adf 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -1,5 +1,6 @@
var pageCurr;
var wrkNo;
+var wrkMastId;
layui.use(['table','laydate', 'form'], function(){
var table = layui.table;
var $ = layui.jquery;
@@ -25,10 +26,10 @@
,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
- ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
- ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
- ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
- ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'}
+ ,{field: 'staNo', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
,{field: 'barcode', align: 'center',title: '鏉$爜'}
,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}
@@ -275,6 +276,7 @@
// 鏄庣粏灞曠ず
case 'detlShow':
wrkNo = data.wrkNo;
+ wrkMastId = data.id;
// 琛ㄦ牸涓嬫柟鏄剧ず
// locDetl(data.wrkNo);
// 寮瑰眰鏄剧ず
diff --git a/zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
index bcadb61..fb342ac 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -1,6 +1,7 @@
var pageCurr;
var wrkNo;
var ioTime;
+var wrkMastId;
layui.use(['table','laydate', 'form'], function(){
var table = layui.table;
var $ = layui.jquery;
@@ -25,14 +26,13 @@
// ,{field: 'id', align: 'center',title: '缂栧彿'}
{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',event: 'wrkNo', sort: true}
,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true}
- ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
+ ,{field: 'wrkSts', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
- ,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈哄彿'}
- ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
- ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
- ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
- ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'}
+ ,{field: 'staNo', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
// ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
// var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
// if(row.picking === 'Y'){html += " checked ";}
@@ -226,6 +226,7 @@
case 'detlShow':
wrkNo = data.wrkNo;
ioTime = data.ioTime;
+ wrkMastId = data.id;
// 琛ㄦ牸涓嬫柟鏄剧ず
// locDetl(data.wrkNo);
// 寮瑰眰鏄剧ず
diff --git a/zy-asrs-wms/src/main/webapp/views/report/locDetl.html b/zy-asrs-wms/src/main/webapp/views/report/locDetl.html
index 44296c0..fc3f4b8 100644
--- a/zy-asrs-wms/src/main/webapp/views/report/locDetl.html
+++ b/zy-asrs-wms/src/main/webapp/views/report/locDetl.html
@@ -33,7 +33,7 @@
var pageCur;
function getCol() {
var cols = [
- {field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ {field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
];
cols.push.apply(cols, detlCols);
return cols;
diff --git a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html
index af87049..1199857 100644
--- a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html
+++ b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkDetl.html
@@ -46,8 +46,8 @@
tableIns1 = table.render({
elem: '#wrkDetlByMast',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/wrkDetl/list/auth',
- where: {wrk_no: parent.wrkNo},
+ url: baseUrl+'/wrkDetl/page/auth',
+ where: {wrk_mast_id: parent.wrkMastId},
page: true,
limit: 16,
limits: [16, 30, 50, 100, 200, 500],
diff --git a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
index 66eac7f..dfb5b78 100644
--- a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
+++ b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
@@ -58,11 +58,6 @@
</div>
</div>
<div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="owner" placeholder="鎷ユ湁鑰呯紪鍙�" autocomplete="off">
- </div>
- </div>
- <div class="layui-inline">
<div class="layui-input-inline cool-auto-complete">
<input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
<input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="宸ヤ綔鐘舵��" onfocus=this.blur()>
@@ -73,15 +68,10 @@
</div>
</div>
</div>
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="crn_no" placeholder="鍫嗗灈鏈哄彿" autocomplete="off">
- </div>
- </div>
<!-- 鏃ユ湡鑼冨洿 -->
<div class="layui-inline" style="width: 300px">
<div class="layui-input-inline">
- <input class="layui-input layui-laydate-range" name="io_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ <input class="layui-input layui-laydate-range" name="timeRange" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
</div>
</div>
<div class="layui-inline">
diff --git a/zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html b/zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html
index a279de3..526e3c8 100644
--- a/zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html
+++ b/zy-asrs-wms/src/main/webapp/views/wrkMastLog/wrkDetlLog.html
@@ -54,8 +54,8 @@
tableIns1 = table.render({
elem: '#wrkDetlLogByMast',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/wrkDetlLogByMast/list/auth',
- where: {wrk_no: parent.wrkNo,ioTime: top.dateToStr(parent.ioTime, true)},
+ url: baseUrl+'/wrkDetlLog/page/auth',
+ where: {wrk_mast_id: parent.wrkMastId},
page: true,
limit: 16,
limits: [16, 30, 50, 100, 200, 500],
--
Gitblit v1.9.1