From 0ac582221270f883cd2a8f842ce1b352afaeb3f4 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期二, 24 九月 2024 10:57:53 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/controller/OrderController.java | 156 +++++++++
src/main/java/com/zy/asrs/entity/param/CombParam.java | 12
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 6
src/main/java/com/zy/asrs/service/LocDetlService.java | 4
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 31 +
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 10
src/main/resources/mapper/LocDetlMapper.xml | 75 ++++
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 14
src/main/java/com/zy/asrs/controller/MobileController.java | 32 +
src/main/java/com/zy/common/web/WcsController.java | 9
src/main/java/com/zy/asrs/controller/OrderDetlController.java | 28 +
src/main/java/com/zy/asrs/entity/Order.java | 10
src/main/webapp/views/order/order.html | 4
src/main/resources/mapper/OrderDetlMapper.xml | 102 ++++++
src/main/java/com/zy/asrs/entity/WaitPakin.java | 4
src/main/java/com/zy/asrs/service/OrderDetlService.java | 10
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 25 +
src/main/webapp/static/js/order/order.js | 46 ++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 280 +++++++++++++++++
src/main/java/com/zy/common/model/DetlDto.java | 24 +
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 6
src/main/resources/application.yml | 2
src/main/java/com/zy/asrs/service/MobileService.java | 21 +
src/main/java/com/zy/asrs/service/WrkDetlService.java | 1
24 files changed, 877 insertions(+), 35 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index eda46bb..9e27f88 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
@@ -137,13 +138,42 @@
return R.ok("缁勬墭鎴愬姛");
}
- @RequestMapping("/merge/comb/auth")
+ @RequestMapping("/comb/auth3")
@ManagerAuth(memo = "缁勬墭")
+ public R comb3(@RequestBody CombParam combParam){
+ mobileService.comb3(combParam, getUserId());
+ return R.ok("缁勬墭鎴愬姛");
+ }
+
+ @RequestMapping("/check/fullplt/auth")
+ @ManagerAuth(memo = "妫�娴嬬墿鏂欐槸鍚︽湁鏈弧鎵樻墭鐩�")
+ public R checkFullplt(@RequestBody CombParam.CombMat combMat){
+ List<LocMast> locMasts = mobileService.checkFullplt(combMat, getUserId());
+ return R.ok().add(locMasts);
+ }
+
+
+ @RequestMapping("/merge/comb/auth")
+ @ManagerAuth(memo = "骞舵澘")
public R mergeComb(@RequestBody CombParam combParam){
mobileService.mergeComb(combParam, getUserId());
return R.ok("缁勬墭鎴愬姛");
}
+ @RequestMapping("/merge/out/auth")
+ @ManagerAuth(memo = "pda骞舵澘鍑哄簱")
+ public R mergeOut(@RequestParam String locNo,@RequestParam String staNo){
+ mobileService.mergeOut(locNo,staNo, getUserId());
+ return R.ok("鍑哄簱鎴愬姛");
+ }
+
+ @RequestMapping("/merge/comb2/auth")
+ @ManagerAuth(memo = "骞舵澘")
+ public R mergeComb2(@RequestBody CombParam combParam){
+ mobileService.mergeComb2(combParam, getUserId());
+ return R.ok("骞舵澘鎴愬姛");
+ }
+
@RequestMapping("/comb/checkBom")
@ManagerAuth(memo = "鏍¢獙Bom")
public R checkBom(@RequestBody CheckBom checkBom){
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index a954e2d..3ee5f5f 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -149,7 +149,8 @@
now, // 娣诲姞鏃堕棿
getUserId(), // 淇敼浜哄憳
now, // 淇敼鏃堕棿
- null // 澶囨敞
+ null, // 澶囨敞
+ null
);
if (!orderService.insert(order)) {
throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
@@ -159,9 +160,9 @@
if (orderDetl.getBatch() == null) {
orderDetl.setBatch("");
}
- DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
- if (DetlDto.has(list, dto)) {
- OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+ DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBomCode(),orderDetl.getThreeCode());
+ if (DetlDto.has2(list, dto)) {
+ OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBomCode(),orderDetl.getThreeCode());
item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
if (!orderDetlService.updateById(item)) {
throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -175,6 +176,7 @@
orderDetl.setUpdateBy(getUserId());
orderDetl.setUpdateTime(now);
orderDetl.setStatus(1);
+ orderDetl.setSource(param.getDocType().intValue());
orderDetl.setQty(0.0D);
if (!orderDetlService.insert(orderDetl)) {
throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -212,9 +214,9 @@
// 2.閲嶇粍鏁版嵁
List<DetlDto> list = new ArrayList<>();
for (OrderDetl orderDetl : param.getOrderDetlList()) {
- DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
- if (DetlDto.has(list, dto)) {
- OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+ DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBomCode(),orderDetl.getThreeCode());
+ if (DetlDto.has2(list, dto)) {
+ OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBomCode(),orderDetl.getThreeCode());
item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
if (!orderDetlService.updateById(item)) {
throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -228,6 +230,7 @@
orderDetl.setUpdateBy(getUserId());
orderDetl.setUpdateTime(now);
orderDetl.setStatus(1);
+ orderDetl.setSource(param.getDocType().intValue());
orderDetl.setQty(0.0D);
if (!orderDetlService.insert(orderDetl)) {
throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -459,7 +462,8 @@
now, // 娣诲姞鏃堕棿
userId, // 淇敼浜哄憳
now, // 淇敼鏃堕棿
- null // 澶囨敞
+ null, // 澶囨敞
+ null
);
if (!orderService.insert(order)) {
throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
@@ -492,4 +496,140 @@
return R.ok("瀵煎叆鎴愬姛");
}
+ /**
+ * excel瀵煎叆
+ */
+ @PostMapping(value = "/order/excel/import2/auth")
+ @ManagerAuth(memo = "閿�鍞崟Excel瀵煎叆")
+ @Transactional
+ public R cstmrExcelImport2(MultipartFile file) throws IOException {
+ InputStream inStream = file.getInputStream();
+ String fileMime = file.getContentType();
+ int excelVersion = 2007;
+ if ("application/vnd.ms-excel".equals(fileMime)) {
+ excelVersion = 2003;
+ }
+ Workbook book = null;
+ try {
+ if (excelVersion == 2003) {
+ book = new HSSFWorkbook(inStream);
+ }
+ else { // 褰� excel 鏄� 2007 鏃�
+ book = new XSSFWorkbook(inStream);
+ }
+ } catch (Exception e) {
+ log.error("fail", e);
+ return R.error("瀵煎叆鏂囦欢鏍煎紡閿欒锛岃浣跨敤xls鍚庣紑鐨勬枃浠讹紒");
+ }
+
+ Sheet sheet = book.getSheetAt(0);
+ int totalRows = sheet.getLastRowNum() + 1; // 鎬�
+ Long userId = getUserId();
+ Date now = new Date();
+ DataFormatter dataFormatter = new DataFormatter();
+ for (int i = 1; i < totalRows; i++) {
+ Row row = sheet.getRow(i);
+ // 鍗曟嵁缂栧彿
+ String uuid = dataFormatter.formatCellValue(row.getCell(0));
+ // 閿�鍞崟鍙�
+ String threeCode = dataFormatter.formatCellValue(row.getCell(1));
+ // 閮ㄤ欢鍙�
+ String unitNum = dataFormatter.formatCellValue(row.getCell(2));
+ // 缁勪欢鍙�
+ String bomNum = dataFormatter.formatCellValue(row.getCell(3));
+ // 鎵瑰彿
+ String batch = dataFormatter.formatCellValue(row.getCell(4));
+ // 鍟嗗搧缂栫爜
+ String matnr = dataFormatter.formatCellValue(row.getCell(6));
+ // 鏁伴噺
+ Double anfme = Double.parseDouble(dataFormatter.formatCellValue(row.getCell(7)));
+ // 鍗曟嵁绫诲瀷
+ Long orderType = Long.parseLong(dataFormatter.formatCellValue(row.getCell(8)));
+ // 涓嬪崟鏃堕棿
+ String timeStr = dataFormatter.formatCellValue(row.getCell(9));
+
+ Date time = null;
+ try {
+ time = DateUtils.convert(timeStr, DateUtils.yyyyMMddHHmmss_F);
+ } catch (Exception e) {
+ throw new CoolException("绗�" + i + "琛屼笅鐨勯偅鏃堕棿瑙f瀽澶辫触锛岃閲嶆柊瀵煎叆锛�");
+ }
+
+ Mat mat = matService.selectByMatnr(matnr);
+ if (null == mat) {
+ throw new CoolException(matnr + "鍟嗗搧缂栫爜鐨勫晢鍝佷笉瀛樺湪锛岃閲嶆柊瀵煎叆锛�");
+ }
+
+ Order order = orderService.selectByNo(uuid);
+ if (null == order) {
+ order = new Order(
+ String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
+ uuid, // 璁㈠崟缂栧彿
+ timeStr, // 鍗曟嵁鏃ユ湡
+ orderType, // 鍗曟嵁绫诲瀷
+ 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, // 鐘舵��
+ userId, // 娣诲姞浜哄憳
+ now, // 娣诲姞鏃堕棿
+ userId, // 淇敼浜哄憳
+ now, // 淇敼鏃堕棿
+ null, // 澶囨敞
+ threeCode
+ );
+ if (!orderService.insert(order)) {
+ throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃閲嶆柊瀵煎叆锛�");
+ }
+ }
+
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), matnr, batch,bomNum,threeCode);
+ if (orderDetl == null) {
+ orderDetl = new OrderDetl();
+ orderDetl.sync(mat);
+ orderDetl.setBatch(batch);
+ orderDetl.setAnfme(anfme);
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setCreateBy(userId);
+ orderDetl.setCreateTime(now);
+ orderDetl.setUpdateBy(userId);
+ orderDetl.setUpdateTime(now);
+ orderDetl.setStatus(1);
+ orderDetl.setBomCode(bomNum);
+ orderDetl.setThreeCode(threeCode);
+ orderDetl.setQty(0.0D);
+ if (!orderDetlService.insert(orderDetl)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+ }
+ } else {
+ if(!orderDetlService.increaseAnfme2(order.getId(), matnr, batch, anfme,bomNum,threeCode)) {
+ throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃閲嶆柊瀵煎叆锛�");
+ }
+ }
+ }
+ return R.ok("瀵煎叆鎴愬姛");
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 4a0f5b3..f9b2b47 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -57,6 +57,21 @@
return R.ok(orderDetlPage);
}
+ @RequestMapping("/orderPakin/page/auth")
+ @ManagerAuth(memo = "鏌ヨ鍏ュ簱璁㈠崟")
+ public R orderPakinPage(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convertLike(param, wrapper);
+ wrapper.eq("source",30);
+ Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok(page);
+ }
+
@RequestMapping(value = "/orderDetl/pakout/list/auth")
@ManagerAuth
public R pakoutList(@RequestParam(defaultValue = "1")Integer curr,
@@ -80,6 +95,19 @@
}
}
+ private <T> void convertLike(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
@RequestMapping(value = "/orderDetl/add/auth")
@ManagerAuth
public R add(OrderDetl orderDetl) {
diff --git a/src/main/java/com/zy/asrs/entity/Order.java b/src/main/java/com/zy/asrs/entity/Order.java
index 99abc64..221269f 100644
--- a/src/main/java/com/zy/asrs/entity/Order.java
+++ b/src/main/java/com/zy/asrs/entity/Order.java
@@ -261,9 +261,16 @@
@ApiModelProperty(value= "澶囨敞")
private String memo;
+ /**
+ * 閿�鍞崟鍙�
+ */
+ @ApiModelProperty(value= "閿�鍞崟鍙�")
+ @TableField("three_code")
+ private String threeCode;
+
public Order() {}
- public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+ public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo,String threeCode) {
this.uuid = uuid;
this.orderNo = orderNo;
this.orderTime = orderTime;
@@ -298,6 +305,7 @@
this.updateBy = updateBy;
this.updateTime = updateTime;
this.memo = memo;
+ this.threeCode = threeCode;
}
// Order order = new Order(
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index 35bef45..03676d4 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -164,6 +164,10 @@
@TableField("bom_code")
private String bomCode;
+ @ApiModelProperty(value= "bom鍙�")
+ @TableField("is_full")
+ private String isFull;
+
public String getBeBatch$(){
if (null == this.beBatch){ return null; }
switch (this.beBatch){
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index e8370ef..73c3a88 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -16,11 +16,17 @@
// 鍗曟嵁缂栧彿
private String orderNo;
+ // 閿�鍞崟鍙�
+ private String threeCode;
+
// 鎵樼洏鏉$爜
private String barcode;
// 搴撲綅缂栧彿
private String locno;
+
+ // 鏄惁婊℃澘
+ private String isFull;
private List<CombMat> combMats;
@@ -32,6 +38,9 @@
// Bom鍙�
private String bomCode;
+ // 閿�鍞崟鍙�
+ private String threeCode;
+
// 鐗╂枡缂栧彿
private String matnr;
@@ -41,6 +50,9 @@
// 鐗╂枡鏁伴噺
private Double anfme;
+ // 搴撲綅鍙�
+ private String locNo;
+
}
}
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 2df04c5..d96e690 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -23,10 +23,16 @@
LocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
+ LocDetl selectItem2(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("bomCode")String bomCode, @Param("threeCode")String threeCode);
+
int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
+ int deleteItem2(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,@Param("bomCode")String bomCode, @Param("threeCode")String threeCode);
+
int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch);
+ int updateAnfme2(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,@Param("bomCode")String bomCode, @Param("threeCode")String threeCode);
+
List<LocDetl> getStockOutPage(Map<String, Object> map);
Integer getStockOutPageCount(Map<String, Object> map);
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 8d8bbd6..62dd5cd 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -15,7 +15,11 @@
OrderDetl selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch);
+ OrderDetl selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch,@Param("bomNum") String bomNum,@Param("threeCode") String threeCode);
+
OrderDetl selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
+ OrderDetl selectItemByOrderNo2(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("bomCode") String bomCode, @Param("threeCode") String threeCode);
List<OrderDetl> selectWorkingDetls(Long orderId);
@@ -33,7 +37,11 @@
int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
+ int increaseQtyByOrderNo2(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty, @Param("bomCode")String bomCode, @Param("threeCode")String threeCode);
+
int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty);
+
+ int increaseWorkQty2(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("bomCode")String bomCode, @Param("threeCode")String threeCode, @Param("workQty")Double workQty);
Integer checkAllDetlFinish(@Param("orderNo") String orderNo);
@@ -41,6 +49,8 @@
int increaseAnfme(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
+ int increaseAnfme2(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty,@Param("bumNum")String bumNum,@Param("threeCode")String threeCode);
+
/**
* 鏍规嵁鍟嗗搧缂栫爜鍜屾壒鍙峰垎鍒煡璇㈠湪骞冲簱璇ョ墿鏂欏簱瀛�
* @param matnr 鍟嗗搧缂栧彿
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 61609c3..4dd7da5 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -15,6 +15,8 @@
LocDetl selectItem(String locNo, String matnr, String batch);
+ LocDetl selectItem(String locNo, String matnr, String batch, String bomCode, String threeCode);
+
Page<LocDetl> getStockOut(Page<LocDetl> page);
/**
@@ -22,6 +24,8 @@
*/
boolean updateAnfme(Double anfme, String locNo, String matnr, String batch);
+ boolean updateAnfme(Double anfme, String locNo, String matnr, String batch, String bomCode, String threeCode);
+
boolean updateLocNo(String newLocNo, String oldLocNo);
/**
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 874d852..3d9821a 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -4,6 +4,7 @@
import com.core.common.R;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.CheckBom;
import com.zy.asrs.entity.param.CombParam;
@@ -11,6 +12,7 @@
import com.zy.asrs.entity.param.OffSaleParam;
import java.util.Date;
+import java.util.List;
public interface MobileService {
@@ -27,9 +29,28 @@
/**
* 缁勬墭
*/
+ void comb3(CombParam param, Long userId);
+
+ /**
+ * 妫�娴嬬墿鏂欐槸鍚︽湁鏈弧鎵樻墭鐩�
+ */
+ List<LocMast> checkFullplt(CombParam.CombMat param, Long userId);
+
+ /**
+ * 缁勬墭
+ */
void mergeComb(CombParam param, Long userId);
/**
+ * 缁勬墭
+ */
+ void mergeComb2(CombParam param, Long userId);
+ /**
+ * pda骞舵澘鍑哄簱
+ */
+ void mergeOut(String locNo,String staNo, Long userId);
+
+ /**
* 鏍¢獙bom
*/
R checkBom(CheckBom param, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index c586e5d..8e8071c 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -15,7 +15,11 @@
OrderDetl selectItem(Long orderId, String matnr, String batch);
+ OrderDetl selectItem(Long orderId, String matnr, String batch,String bomNum,String threeCode);
+
OrderDetl selectItem(String orderNo, String matnr, String batch);
+
+ OrderDetl selectItem(String orderNo, String matnr, String batch,String bomNum,String threeCode);
OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch);
@@ -29,6 +33,8 @@
boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty);
+ boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty,String bomCode,String threeCode);
+
/**
* 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲�
* @param orderId
@@ -39,12 +45,16 @@
*/
boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty);
+ boolean increaseWorkQty(Long orderId, String matnr, String batch, String bomCode, String threeCode, Double workQty);
+
Boolean checkAllDetlFinish(String orderNo);
Integer sameOrderComb(String orderNo, String matnr, String batch);
boolean increaseAnfme(Long orderId, String matnr, String batch, Double qty);
+ boolean increaseAnfme2(Long orderId, String matnr, String batch, Double qty,String bumNum,String threeCode);
+
/**
* 鏍规嵁鍟嗗搧缂栫爜鍜屾壒鍙峰垎鍒煡璇㈠湪骞冲簱鍜岀珛搴撹鐗╂枡搴撳瓨
* @param matnr 鍟嗗搧缂栫爜
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 5920849..f3f1278 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -1,6 +1,7 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.MatCodeCountDto;
import com.zy.asrs.entity.WrkDetl;
import com.zy.common.model.DetlDto;
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index a085f57..39bcfbe 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -37,6 +37,15 @@
}
}
+ @Override
+ public boolean updateAnfme(Double anfme, String locNo, String matnr, String batch,String bomCode, String threeCode) {
+ if (anfme <= 0) {
+ return this.baseMapper.deleteItem2(locNo, matnr, batch, bomCode, threeCode) > 0;
+ } else {
+ return baseMapper.updateAnfme2(anfme, locNo, matnr, batch, bomCode, threeCode) > 0;
+ }
+ }
+
@Override
public boolean updateLocNo(String newLocNo, String oldLocNo) {
@@ -118,6 +127,11 @@
}
@Override
+ public LocDetl selectItem(String locNo, String matnr, String batch, String bomCode, String threeCode) {
+ return this.baseMapper.selectItem(locNo, matnr, batch);
+ }
+
+ @Override
public Double getLocDetlSumQty(String locNo) {
return this.baseMapper.selectLocDetlSumQty(locNo);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 2d50476..b8c8370 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,13 +10,12 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.CheckBom;
-import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.entity.param.MobileAdjustParam;
-import com.zy.asrs.entity.param.OffSaleParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocDetlDto;
+import com.zy.common.model.enums.IoWorkType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.Synchro;
import lombok.extern.slf4j.Slf4j;
@@ -81,6 +80,8 @@
private MatV2Service matV2Service;
@Autowired
private BomMatService bomMatService;
+ @Autowired
+ private WorkService workService;
@Override
@Transactional
@@ -389,6 +390,199 @@
}
+
+ @Override
+ @Transactional
+ public void comb3(CombParam param, Long userId) {
+
+ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)){
+ throw new CoolException("鍏ュ簱鐗╂枡鏁伴噺涓嶈兘涓虹┖");
+ }
+ // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+ }
+
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+ WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+ if (wrkMast != null && wrkMast.getIoType() < 100){
+ throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+
+ }
+ if (countLoc > 0 ) {
+ throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+ }
+
+
+ //璁剧疆闈瀗ull鎵瑰彿锛�
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ if (combMat.getBatch() == null){
+ combMat.setBatch("");
+ }
+ }
+
+
+
+
+ Date now = new Date();
+
+ // 鏃犲崟缁勬墭
+ if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
+
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getCombMats().forEach(elem -> {
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ if (DetlDto.has(detlDtos, detlDto)) {
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ assert one != null;
+ one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+ } else {
+ detlDtos.add(detlDto);
+ }
+ });
+
+
+ for (DetlDto detlDto : detlDtos) {
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ WaitPakin waitPakin = new WaitPakin();
+ if (Cools.isEmpty(mat)) {
+ MatV2 matV2 = matV2Service.selectOne(new EntityWrapper<MatV2>().eq("matnr", detlDto.getMatnr()));
+ if(Cools.isEmpty(matV2)){
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ waitPakin.sync(matV2);
+ waitPakin.setBrand("缁勪欢");
+ } else {
+ waitPakin.sync(mat);
+ }
+ // 鏍¢獙鏄惁涓篵om鍏ュ簱 bom鍏ュ簱鐨勬暟閲忎笉鑳借秴杩囧簱瀛樺師鏈夋暟閲�
+ if (!Cools.isEmpty(param.getBomCode())) {
+ BomMat bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("bom_num", param.getBomCode()).eq("element_num", detlDto.getMatnr()));
+ Double bomQyt = locDetlService.getBomQyt(param.getBomCode(), detlDto.getMatnr());
+ if (!Cools.isEmpty(bomQyt)) {
+ bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQyt);
+ }
+ Double bomQty = wrkDetlService.getBomQty(param.getBomCode(), detlDto.getMatnr());
+ if (!Cools.isEmpty(bomQty)) {
+ bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQty);
+ }
+ if (bomMat.getZpalletAnfme() == 0.0D) {
+ throw new CoolException(detlDto.getMatnr() + "褰撳墠鐗╂枡宸插叆鏈�澶ф暟閲�");
+ } else {
+ if (bomMat.getZpalletAnfme() < detlDto.getAnfme()) {
+ throw new CoolException(detlDto.getMatnr() + "褰撳墠鐗╂枡鏈�澶氬彲鍏�" + bomMat.getZpalletAnfme() + "浠�");
+ }
+ }
+ }
+ waitPakin.setBatch(detlDto.getBatch());
+ waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setBomCode(param.getBomCode());
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ }
+ // 鍏宠仈缁勬墭
+ } else {
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ // 鐢熸垚鍏ュ簱閫氱煡妗�
+ Order order = orderService.selectByNo(combMat.getOrderNo());
+
+ //鍒ゆ柇璁㈠崟绫诲瀷鏄惁鏄叆搴�
+ DocType docType=docTypeService.selectById(order.getDocType());
+ if(docType.getPakin()!=1 || docType.getStatus()!=1){
+ throw new CoolException("璁㈠崟涓哄嚭搴撹鍗曪紝涓嶈兘缁勬墭锛�");
+ }
+
+ if (order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
+ OrderDetl orderDetl = orderDetlService.selectItem(combMat.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getBomCode(), combMat.getThreeCode());
+ if (orderDetl == null) {
+ throw new CoolException("鎵句笉鍒扮粍鎵樼殑鍗曟嵁鏄庣粏");
+ }
+ //璁㈠崟鏁�-宸ヤ綔涓殑鏁伴噺-缁勬墭鏁伴噺
+ if ( orderDetl.getAnfme() - orderDetl.getWorkQty() - combMat.getAnfme()<0) {
+ throw new CoolException("缁勬墭鏁伴噺宸茶秴鍑鸿鍗曢渶姹傞噺锛岃妫�鏌ユ槸鍚︽湁鍏朵粬鐨勭粍鎵樺凡瀹屾垚");
+ }
+ // 淇敼璁㈠崟浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQty(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getBomCode(),combMat.getThreeCode(), combMat.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }
+ Mat mat = matService.selectByMatnr(combMat.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(combMat.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
+ waitPakin.setBomCode(combMat.getBomCode());
+ waitPakin.setThreeCode(combMat.getThreeCode());
+ waitPakin.setBatch(combMat.getBatch());
+ waitPakin.setIsFull(param.getIsFull().equals("1") ? "Y" : "N"); // 搴忓垪鐮�
+ waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(combMat.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+
+// DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme());
+// if (DetlDto.has(detlDtos, detlDto)) {
+// DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+// assert one != null;
+// one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+// } else {
+// }
+ orderService.updateSettle(order.getId(), 2L, userId);
+ }
+
+ }
+
+ }
+
+
+ @Override
+ @Transactional
+ public List<LocMast> checkFullplt(CombParam.CombMat param, Long userId) {
+ // 鏌ヨ鍖呭惈寰呯粍鎵樼墿鏂欏湪搴撳瓨涓槸鍚﹀瓨鍦�
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("three_code", param.getThreeCode())
+ .eq("bom_code", param.getBomCode()));
+ if (Cools.isEmpty(locDetls)) {
+ throw new CoolException("搴撳瓨涓病鏈夊瓨鍦ㄥ綋鍓嶇墿鏂欐墍浣跨敤鐨勯攢鍞崟鍙�");
+ }
+ ArrayList<LocMast> locMasts = new ArrayList<>();
+
+ locDetls.forEach(locDetl -> {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+ if (!Cools.isEmpty(locMast)) {
+ if (!locMasts.contains(locMast)) {
+ locMasts.add(locMast);
+ }
+ }
+ });
+ return locMasts;
+ }
+
+
+
@Override
@Transactional
public void mergeComb(CombParam param, Long userId) {
@@ -422,8 +616,6 @@
Date now = new Date();
for (CombParam.CombMat combMat : param.getCombMats()) {
Mat mat = matService.selectByMatnr(combMat.getMatnr());
-
-
LocDetl locDetl = new LocDetl();
locDetl.sync(mat);
locDetl.setLocNo(wrkMast.getSourceLocNo());
@@ -445,6 +637,82 @@
@Override
@Transactional
+ public void mergeComb2(CombParam param, Long userId) {
+ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)){
+ throw new CoolException("鍏ュ簱鐗╂枡鏁伴噺涓嶈兘涓虹┖");
+ }
+ // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+ }
+
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+ WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+ if (wrkMast.getWrkSts() != 14L) {
+ throw new CoolException("褰撳墠鎵樼洏鍑哄簱鏈畬鎴愶紒");
+ }
+
+ //璁剧疆闈瀗ull鎵瑰彿锛�
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ if (combMat.getBatch() == null){
+ combMat.setBatch("");
+ }
+ }
+
+ Date now = new Date();
+ for (CombParam.CombMat combMat : param.getCombMats()) {
+ Mat mat = matService.selectByMatnr(combMat.getMatnr());
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setZpallet(param.getBarcode());
+ wrkDetl.setOrderNo(combMat.getOrderNo());
+ wrkDetl.setBatch(combMat.getBatch());
+ wrkDetl.setBomCode(combMat.getBomCode());
+ wrkDetl.setThreeCode(combMat.getThreeCode());
+ wrkDetl.setAnfme(combMat.getAnfme());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setMemo("骞舵澘");
+ wrkDetlService.insert(wrkDetl);
+ // 鍚屾璁㈠崟
+ OrderDetl orderDetl = orderDetlService.selectItem(combMat.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getBomCode(), combMat.getThreeCode());
+ orderDetl.setQty(orderDetl.getWorkQty() + combMat.getAnfme());
+ orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
+ .eq("order_no", combMat.getOrderNo())
+ .eq("matnr", combMat.getMatnr())
+ .eq("batch", combMat.getBatch())
+ .eq("bom_code", combMat.getBomCode())
+ .eq("three_code", combMat.getThreeCode()));
+ }
+ }
+
+ @Override
+ @Transactional
+ public void mergeOut(String locNo,String staNo, Long userId) {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo));
+ if (!locMast.getLocSts().equals("F")) {
+ throw new CoolException("褰撳墠搴撲綅鐘舵�佷笉鏄湪搴撶姸鎬佷笉鑳藉嚭搴�");
+ }
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (LocDetl locDetl : locDetls) {
+ locDetlDtos.add(new LocDetlDto(locDetl, locDetl.getAnfme()));
+
+ }
+ BasDevp basDevp = basDevpService.selectById(staNo);
+ workService.stockOut(basDevp, locDetlDtos, IoWorkType.MERGE_OUT, userId);
+ }
+
+ @Override
+ @Transactional
public R checkBom(CheckBom param, Long userId) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 29ec048..109f91d 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -105,7 +105,8 @@
now, // 娣诲姞鏃堕棿
9527L, // 淇敼浜哄憳
now, // 淇敼鏃堕棿
- null // 澶囨敞
+ null, // 澶囨敞
+ null
);
if (!orderService.insert(order)) {
throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
@@ -252,7 +253,8 @@
now, // 娣诲姞鏃堕棿
9527L, // 淇敼浜哄憳
now, // 淇敼鏃堕棿
- null // 澶囨敞
+ null, // 澶囨敞
+ null
);
if (!orderService.insert(order)) {
throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index 8126ad5..d4cb10f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -43,6 +43,16 @@
}
@Override
+ public OrderDetl selectItem(Long orderId, String matnr, String batch,String bomNum,String threeCode) {
+ return this.baseMapper.selectItem(orderId, matnr, batch,bomNum,threeCode);
+ }
+
+ @Override
+ public OrderDetl selectItem(String orderNo, String matnr, String batch,String bomNum,String threeCode) {
+ return this.baseMapper.selectItemByOrderNo2(orderNo, matnr, batch,bomNum,threeCode);
+ }
+
+ @Override
public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
for (OrderDetl orderDetl : orderDetls) {
if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
@@ -84,6 +94,11 @@
return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch, qty) > 0;
}
+ @Override
+ public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty,String bomCode,String threeCode) {
+ return this.baseMapper.increaseQtyByOrderNo2(orderNo, matnr, batch, qty,bomCode,threeCode) > 0;
+ }
+
/**
* 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲�
* @param orderId
@@ -95,6 +110,11 @@
@Override
public boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty) {
return this.baseMapper.increaseWorkQty(orderId, matnr, batch, workQty) > 0;
+ }
+
+ @Override
+ public boolean increaseWorkQty(Long orderId, String matnr, String batch, String bomCode, String threeCode, Double workQty) {
+ return this.baseMapper.increaseWorkQty2(orderId, matnr, batch, bomCode, threeCode, workQty) > 0;
}
@Override
@@ -121,6 +141,11 @@
}
@Override
+ public boolean increaseAnfme2(Long orderId, String matnr, String batch, Double qty,String bumNum,String threeCode) {
+ return this.baseMapper.increaseAnfme2(orderId, matnr, batch, qty,bumNum,threeCode) > 0;
+ }
+
+ @Override
public Map<String, Long> selectCountByMatnr(String matnr, String batch) {
Map<String,Long> map = new HashMap<>();
map.put("asrCount",orderDetlMapper.selectCountToAsrByMatnr(matnr, batch));
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index f821f84..9ad115f 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -128,11 +128,15 @@
}
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(),wrkDetl.getThreeCode());
try {
if(!Cools.isEmpty(orderDetl)){
- if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- wrkDetl.getBatch(),wrkDetl.getAnfme())){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(),
+ wrkDetl.getBatch(),
+ wrkDetl.getAnfme(),
+ wrkDetl.getBomCode(),
+ wrkDetl.getThreeCode())){
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -146,6 +150,7 @@
if (locMast.getLocSts().equals("S")) {
locMast.setLocSts("F");
locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setFullPlt(wrkMast.getFullPlt());
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
@@ -231,10 +236,12 @@
}
// 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
for (WrkDetl wrkDetl:wrkDetls54) {
-
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (Cools.isEmpty(wrkDetl.getMemo())) {
+ continue;
+ }
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(), wrkDetl.getThreeCode());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(), wrkDetl.getThreeCode())) {
exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
}
} else {
@@ -251,14 +258,18 @@
}
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBomCode(), wrkDetl.getThreeCode());
if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBomCode(), wrkDetl.getThreeCode());
}
try {
if(!Cools.isEmpty(orderDetl)){
- if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- orderDetl.getBatch(), wrkDetl.getAnfme())) {
+ if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(),
+ orderDetl.getBatch(),
+ wrkDetl.getAnfme(),
+ wrkDetl.getBomCode(),
+ wrkDetl.getThreeCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java
index ff48745..a5008ce 100644
--- a/src/main/java/com/zy/common/model/DetlDto.java
+++ b/src/main/java/com/zy/common/model/DetlDto.java
@@ -20,6 +20,10 @@
private Double anfme;
+ private String bomCode;
+
+ private String threeCode;
+
public DetlDto() {
}
@@ -37,6 +41,13 @@
this.matnr = matnr;
this.batch = batch;
this.anfme = anfme;
+ }
+
+ public DetlDto(String matnr, String batch,String bomCode,String threeCode) {
+ this.matnr = matnr;
+ this.batch = batch;
+ this.bomCode = bomCode;
+ this.threeCode = threeCode;
}
@@ -66,6 +77,19 @@
return false;
}
+ public static boolean has2(List<DetlDto> detlDtos, DetlDto detlDto) {
+ for (DetlDto dto : detlDtos) {
+ if (dto.getMatnr().equals(detlDto.getMatnr())
+ && Cools.eq(dto.getBatch(), detlDto.getBatch())
+ && Cools.eq(dto.getBomCode(), detlDto.getBomCode())
+ && Cools.eq(dto.getThreeCode(), detlDto.getThreeCode())
+ ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch) {
if (Cools.isEmpty(matnr)) {
return null;
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 5acf897..508da72 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -175,6 +175,13 @@
break;
}
}
+ String fullPlt = "N";
+ for (WaitPakin waitPakin : waitPakins) {
+ if (waitPakin.getIsFull().equals("Y")) {
+ fullPlt = "Y";
+ break;
+ }
+ }
StartupDto dto = commonService.getLocNo(integer, 1, devpNo, matNos, locTypeDto,0);
int workNo = dto.getWorkNo();
@@ -191,7 +198,7 @@
wrkMast.setStaNo(dto.getStaNo());
wrkMast.setLocNo(dto.getLocNo());
wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
- wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setFullPlt(fullPlt); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3f270b7..5f3d9e9 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -11,7 +11,7 @@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://192.168.4.15:1433;databasename=phpsasrs
- url: jdbc:sqlserver://10.10.10.233:1433;databasename=phpsasrs
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=phpsasrs
username: sa
password: sa@123
mvc:
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 79ef1c3..df57488 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -67,6 +67,55 @@
<include refid="batchSeq"></include>
</select>
+ <select id="selectItem2" resultMap="BaseResultMap">
+ select top 1 *
+ from asr_loc_detl
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="threeCode != null">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (three_code IS NULL)
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="bomCode != null">
+ and bom_code = #{bomCode}
+ </when>
+ <otherwise>
+ and (bom_code IS NULL)
+ </otherwise>
+ </choose>
+ <include refid="batchSeq"></include>
+ </select>
+
+ <delete id="deleteItem2">
+ delete from asr_loc_detl
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="threeCode != null">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (three_code IS NULL)
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="bomCode != null">
+ and bom_code = #{bomCode}
+ </when>
+ <otherwise>
+ and (bom_code IS NULL)
+ </otherwise>
+ </choose>
+ <include refid="batchSeq"></include>
+ </delete>
+
<delete id="deleteItem">
delete from asr_loc_detl
where 1=1
@@ -85,6 +134,32 @@
<include refid="batchSeq"></include>
</update>
+ <update id="updateAnfme2">
+ update asr_loc_detl
+ set anfme = #{anfme}
+ , modi_time = getdate()
+ where 1=1
+ and loc_no = #{locNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="threeCode != null">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (three_code IS NULL)
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="bomCode != null">
+ and bom_code = #{bomCode}
+ </when>
+ <otherwise>
+ and (bom_code IS NULL)
+ </otherwise>
+ </choose>
+ <include refid="batchSeq"></include>
+ </update>
+
<sql id="stockOutCondition">
<if test="loc_no!=null and loc_no!='' ">
and a.loc_no like '%' + #{loc_no} + '%'
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 089dfa4..3a38e6c 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -74,6 +74,22 @@
</if>
</select>
+ <select id="selectItemByOrderNo2" resultMap="BaseResultMap">
+ select * from man_order_detl
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <if test="batch!=null and batch!='' ">
+ and batch = #{batch}
+ </if>
+ <if test="bomCode!=null and bomCode!='' ">
+ and bom_code = #{bomCode}
+ </if>
+ <if test="threeCode!=null and threeCode!='' ">
+ and three_code = #{threeCode}
+ </if>
+ </select>
+
<select id="selectWorkingDetls" resultMap="BaseResultMap">
select * from man_order_detl
where 1=1
@@ -215,6 +231,38 @@
</choose>
</update>
+ <update id="increaseQtyByOrderNo2">
+ update man_order_detl
+ set qty = qty + #{qty}
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="bomCode != null and bomCode != ''">
+ and bom_code = #{bomCode}
+ </when>
+ <otherwise>
+ and (bom_code IS NULL OR bom_code = '')
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="threeCode != null and threeCode != ''">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (three_code IS NULL OR three_code = '')
+ </otherwise>
+ </choose>
+ </update>
+
<update id="increaseWorkQty">
update man_order_detl
set work_qty = work_qty + #{workQty}
@@ -231,6 +279,38 @@
</choose>
</update>
+ <update id="increaseWorkQty2">
+ update man_order_detl
+ set work_qty = work_qty + #{workQty}
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="bomCode != null and bomCode != ''">
+ and bom_code = #{bomCode}
+ </when>
+ <otherwise>
+ and (bom_code IS NULL OR bom_code = '')
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="threeCode != null and threeCode != ''">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (three_code IS NULL OR three_code = '')
+ </otherwise>
+ </choose>
+ </update>
+
<update id="increaseAnfme">
update man_order_detl
set anfme = anfme + #{qty}
@@ -247,6 +327,28 @@
</choose>
</update>
+ <update id="increaseAnfme2">
+ update man_order_detl
+ set anfme = anfme + #{qty}
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <when test="bumNum != null and bumNum != ''">
+ and bom_code = #{bumNum}
+ </when>
+ <when test="threeCode != null and threeCode != ''">
+ and three_code = #{threeCode}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
<update id="increaseWorkQtyByOrderNo">
update man_order_detl
set work_qty = work_qty + #{qty}
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 2f525b3..1279588 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -45,11 +45,12 @@
cols: [[
{type: 'numbers'},
// {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'},
- {field: 'orderNo', title: '鍗曟嵁缂栧彿', minWidth: 160, width: 300},
- {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
- {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
- {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
- {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', minWidth: 160, },
+ {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, },
+ {field: 'threeCode', title: '閿�鍞崟鍙�', minWidth: 160, },
+ {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, },
+ {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, },
+ {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, },
{field: 'memo', align: 'center',title: '澶囨敞', hide: true},
{align: 'center', title: '鎿嶄綔', toolbar: '#operate'}
]],
@@ -90,6 +91,10 @@
// 瀵煎叆閿�鍞崟
$("#importOrder").click(function () {
$("#importExcel").trigger("click");
+ });
+ // 瀵煎叆閿�鍞崟
+ $("#importOrder2").click(function () {
+ $("#importExcel2").trigger("click");
});
// 宸ュ叿鏉$偣鍑讳簨浠�
@@ -135,6 +140,7 @@
{field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
{field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
{field: 'bomCode', title: 'Bom鍙�'},
+ {field: 'threeCode', title: '閿�鍞崟鍙�'},
{field: 'batch', title: '鎵瑰彿'},
{field: 'anfme', title: '鏁伴噺'},
{field: 'supp', title: '绔嬪簱搴撳瓨', templet: function (item){
@@ -263,6 +269,7 @@
{field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200},
{field: 'bomCode', title: 'Bom鍙�', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
{field: 'batch', title: '鎵瑰彿', edit: true},
+ {field: 'threeCode', title: '閿�鍞崟鍙�', edit: true},
{field: 'specs', title: '瑙勬牸'},
{field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
// {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100},
@@ -602,6 +609,35 @@
}, function(index){
});
}
+
+function upload2(obj){
+ if(!obj.files) {
+ return;
+ }
+ var file = obj.files[0];
+ admin.confirm('纭瀵煎叆 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) {
+ layer.load(1, {shade: [0.1,'#fff']});
+ var url = baseUrl + "/order/excel/import2/auth";
+ var form = new FormData();
+ form.append("file", file);
+ let xhr = new XMLHttpRequest();
+ xhr.open("post", url, true);
+ xhr.setRequestHeader('token', localStorage.getItem('token'));
+ xhr.onload = uploadComplete;
+ xhr.onerror = uploadFailed;
+ xhr.onloadend = function () {
+ layer.closeAll('loading');
+ };
+ // xhr.upload.onprogress = progressFunction;
+ xhr.upload.onloadstart = function(){
+ ot = new Date().getTime();
+ oloaded = 0;
+ };
+ xhr.send(form);
+ }, function(index){
+ });
+}
+
function uploadComplete(evt) {
let res = JSON.parse(evt.target.responseText);
if(res.code === 200) {
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index 847a887..cdfa025 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -86,7 +86,11 @@
<button id="importOrder" class="layui-btn icon-btn btn-add">
<i class="layui-icon layui-icon-upload"></i> 瀵煎叆璁㈠崟
</button>
+ <button id="importOrder2" class="layui-btn icon-btn btn-add">
+ <i class="layui-icon layui-icon-upload"></i> 瀵煎叆璁㈠崟
+ </button>
<input style="display:none" id="importExcel" type="file" onchange="upload(this)" >
+ <input style="display:none" id="importExcel2" type="file" onchange="upload2(this)" >
</div>
</div>
</div>
--
Gitblit v1.9.1