From 1a88411d65508409011cdedb4d8d8b74bb60baa6 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 18 十二月 2024 09:01:58 +0800
Subject: [PATCH] 库位冻结/解冻,库存冻结/解冻
---
src/main/webapp/views/locDetl/locDetl.html | 23 ++
src/main/webapp/views/locMast/locMast.html | 18 +
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 14 +
src/main/java/com/zy/asrs/controller/LocMastController.java | 75 +++++++-
src/main/java/com/zy/asrs/service/LocDetlService.java | 12 +
src/main/java/com/zy/asrs/controller/LocDetlController.java | 21 ++
src/main/resources/mapper/LocDetlMapper.xml | 7
src/main/resources/mapper/LocMastMapper.xml | 9
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 22 ++
src/main/webapp/views/pakStore/locDetlQuery.html | 14 +
src/main/webapp/static/js/stoMan/stoQue.js | 10 +
src/main/webapp/static/js/locDetl/locDetl.js | 83 +++++++++
src/main/webapp/views/locMast/locMast_detail.html | 17 +
src/main/java/com/zy/asrs/entity/LocDetl.java | 18 ++
src/main/webapp/views/pakStore/locDetlCheckQuery.html | 16 +
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 37 ++++
src/main/java/com/zy/asrs/entity/FrozenParam.java | 28 +++
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 7
src/main/webapp/views/stoMan/stoQue.html | 16 +
src/main/webapp/static/js/common.js | 9 +
src/main/webapp/static/js/locMast/locMast.js | 13 +
src/main/java/com/zy/asrs/entity/LocMast.java | 25 ++
22 files changed, 468 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index edfb2a5..619459d 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -12,6 +12,7 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.zy.asrs.entity.FrozenParam;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocOwner;
import com.zy.asrs.entity.Mat;
@@ -252,6 +253,26 @@
return R.ok();
}
+ @PostMapping(value = "/locDetl/frozenInventory")
+ @ManagerAuth(memo = "搴撳瓨鍐荤粨")
+ public R frozen(@RequestBody List<FrozenParam> param){
+ if (param.size() == 0) {
+ return R.parse("鏈敹鍒版暟鎹�");
+ }
+
+ return locDetlService.frozenInventory(param);
+ }
+
+ @PostMapping(value = "/locDetl/unfreezeInventory")
+ @ManagerAuth(memo = "搴撳瓨瑙e喕")
+ public R unfreeze(@RequestBody List<FrozenParam> param){
+ if (param.size() == 0) {
+ return R.parse("鏈敹鍒版暟鎹�");
+ }
+
+ return locDetlService.unfreezeInventory(param);
+ }
+
@RequestMapping(value = "/locDetl/export/auth")
@ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
public R export(@RequestBody JSONObject param){
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 2eae903..757a36f 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -10,21 +10,18 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
-import com.zy.asrs.entity.BasWhs;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.LocMast;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.LocMastInitParam;
-import com.zy.asrs.service.BasWhsService;
-import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.utils.Utils;
+import com.zy.asrs.mapper.LocDetlMapper;
+import com.zy.asrs.service.*;
import com.zy.common.entity.Parameter;
import com.zy.common.model.Shelves;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
import java.util.*;
@RestController
@@ -36,6 +33,15 @@
private LocDetlService locDetlService;
@Autowired
private BasWhsService basWhsService;
+
+ @Resource
+ private WrkMastService wrkMastService;
+
+ @Resource
+ private AdjDetlService adjDetlService;
+
+ @Resource
+ private LocDetlMapper locDetlMapper;
@RequestMapping(value = "/locMast/init/pwd")
public R locMastInitPwd(@RequestParam(required = false) String pwd) {
@@ -107,22 +113,67 @@
@RequestMapping(value = "/locMast/update/auth")
@ManagerAuth(memo = "搴撲綅淇敼")
public R update(LocMast locMast){
+
if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
return R.error();
}
+
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("source_loc_no", locMast.getLocNo())
+ .or().eq("loc_no", locMast.getLocNo()));
+ if(!Cools.isEmpty(wrkMast)){
+ return R.error("璇ュ簱浣嶆鍦ㄤ綔涓氾紝璇峰厛澶勭悊宸ヤ綔妗�");
+ }
+
LocMast oldLocMast = locMastService.selectById(locMast.getLocNo());
if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) {
return R.error("褰撳墠鎿嶄綔宸茶闃绘锛岃鑱旂郴绠$悊鍛�");
}
+ Date now = new Date();
// 鏈夌墿鏂欐椂淇敼涓虹┖搴撲綅鎴栬�呯┖鏉垮簱浣嶏紝鍒欏垹闄ゅ簱瀛樻槑缁�
- if (oldLocMast.getLocSts().equals("R") || oldLocMast.getLocSts().equals("F")) {
+ if (oldLocMast.getLocSts().equals("R") || oldLocMast.getLocSts().equals("F") || oldLocMast.getLocSts().equals("S")) {
if (locMast.getLocSts().equals("O") || locMast.getLocSts().equals("D")) {
- locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ for (LocDetl locDetl : locDetls) {
+ // 淇濆瓨璋冩暣璁板綍
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(locDetl.getAnfme());
+ adjDetl.setAdjQty(0.0D);
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(getUserId());
+ adjDetl.setAppeTime(now);
+ adjDetl.setAppeUser(getUserId());
+ if (!adjDetlService.insert(adjDetl)) {
+ throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ }
+ if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()))) {
+ throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ locMast.setBarcode("");
}
}
locMast.setModiUser(getUserId());
- locMast.setModiTime(new Date());
- locMastService.updateById(locMast);
+ locMast.setModiTime(now);
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locMast.getLocNo());
+ adjDetl.setMatnr("鍘熷簱浣嶇姸鎬侊細" + oldLocMast.getLocSts());
+ adjDetl.setBatch("鏇存敼搴撲綅鐘舵�佷负锛�" + locMast.getLocSts());
+ adjDetl.setModiTime(now);
+ adjDetl.setModiUser(getUserId());
+ if (!adjDetlService.insert(adjDetl)) {
+ throw new CoolException("搴撲綅璋冩暣璁板綍澶辫触");
+ }
+ // 搴撲綅鍐荤粨->鍐荤粨鎵�鏈夊簱瀛�
+ if (locMast.getFrozen() == 1 && oldLocMast.getFrozen() == 0 && locMast.getLocSts().equals("F") && oldLocMast.getLocSts().equals("F")) {
+ locDetlMapper.updateDetlFrozenByLocNo(oldLocMast.getLocNo());
+ }
+ if(!locMastService.updateById(locMast)) {
+ throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/entity/FrozenParam.java b/src/main/java/com/zy/asrs/entity/FrozenParam.java
new file mode 100644
index 0000000..ee51f4a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/FrozenParam.java
@@ -0,0 +1,28 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 搴撳瓨鍐荤粨/瑙e喕 dto
+ * @createDate 2024/12/17 9:24
+ */
+@Data
+public class FrozenParam {
+
+ /**
+ * 搴撲綅鍙�
+ */
+ private String locNo;
+
+ /**
+ * 鍟嗗搧缂栧彿
+ */
+ private String matnr;
+
+ /**
+ * 鎵规
+ */
+ private String batch;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 4c47234..58d036c 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -183,6 +183,12 @@
@ApiModelProperty(value= "澶囩敤3")
private String standby3;
+ /**
+ * 鏄惁鍐荤粨
+ */
+ @ApiModelProperty(value= "鏄惁鍐荤粨,0.鏈喕缁擄紝1.宸插喕缁�")
+ private Integer frozen;
+
public String getLocNo$(){
LocMastService service = SpringUtils.getBean(LocMastService.class);
LocMast locMast = service.selectById(this.locNo);
@@ -295,4 +301,16 @@
Synchro.Copy(source, this);
}
+ public String getFrozen$() {
+ if (null == this.frozen){ return null; }
+ switch (this.frozen){
+ case 0:
+ return "鏈喕缁�";
+ case 1:
+ return "宸插喕缁�";
+ default:
+ return null;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index a62b9cd..3103c4b 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -182,6 +182,19 @@
@TableField("ctn_no")
private String ctnNo;
+ /**
+ * 鏄惁鍐荤粨
+ */
+ @ApiModelProperty(value= "鏄惁鍐荤粨,0.鏈喕缁擄紝1.宸插喕缁�")
+ private Integer frozen;
+
+ /**
+ * 鍐荤粨澶囨敞
+ */
+ @ApiModelProperty(value= "鍐荤粨澶囨敞")
+ @TableField("frozen_memo")
+ private String frozenMemo;
+
public String getWhsType$(){
BasWhsService service = SpringUtils.getBean(BasWhsService.class);
@@ -296,4 +309,16 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
}
+ public String getFrozen$() {
+ if (null == this.frozen){ return null; }
+ switch (this.frozen){
+ case 0:
+ return "鏈喕缁�";
+ case 1:
+ return "宸插喕缁�";
+ default:
+ return null;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index a2bcb29..62bb24d 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -86,4 +86,18 @@
List<LocDetl> selectLocDetlUnilateralMoveShuttleY(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
List<LocDetl> selectLocDetlUnilateralMoveShuttleN(@Param("matnr")String matnr,@Param("batch")String batch,@Param("grade")String grade);
+ /**
+ * 鏍规嵁搴撲綅鍙锋洿鏂板簱瀛樻槑缁嗕负鍐荤粨鐘舵��
+ */
+ void updateDetlFrozenByLocNo(@Param("locNo") String locNo);
+
+ /**
+ * 鍐荤粨/瑙e喕搴撳瓨鏄庣粏
+ * @param locNo 搴撲綅鍙�
+ * @param matnr 鐗╂枡缂栫爜
+ * @param batch 鎵规
+ * @param frozen 0瑙e喕锛�1鍐荤粨
+ */
+ void frozenInventory(@Param("locNo") String locNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("frozen") int frozen);
+
}
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 14567e7..9e5d84a 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -53,4 +53,11 @@
// LocMast selectLocByLocStsPakInO2(@Param("locNos") List<String> locNos,@Param("whsType") Long whsType);
LocMast selectLocByLocStsPakInO2(@Param("crnNo") Integer crnNo,@Param("bay") Integer bay,@Param("lev") Integer lev,@Param("gro") Integer gro,@Param("whsType") Long whsType);
+
+ /**
+ * 鏌ユ壘绗竴涓喕缁撶殑搴撲綅
+ * @param locNoList 搴撲綅鍙烽泦鍚�
+ * @return 搴撲綅鍙�
+ */
+ String findFirstFrozenLocNo(@Param("locNoList") List<String> locNoList);
}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 98d7293..26a2b1d 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
+import com.core.common.R;
+import com.zy.asrs.entity.FrozenParam;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.result.LocDetlAll;
import com.zy.asrs.entity.result.LocDetlDTO;
@@ -78,4 +80,14 @@
List<Map<String, Object>> selectLocDetlUnilateralMoveShuttleMap(Integer crnNo);
List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr,String batch,String grade,Integer crnNo);
+
+ /**
+ * 鍐荤粨搴撳瓨
+ */
+ R frozenInventory(List<FrozenParam> param);
+
+ /**
+ * 搴撳瓨瑙e喕
+ */
+ R unfreezeInventory(List<FrozenParam> param);
}
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 d6b3ae7..b8f2da8 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.R;
+import com.zy.asrs.entity.FrozenParam;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.result.LocDetlAll;
import com.zy.asrs.entity.result.LocDetlDTO;
@@ -162,4 +164,24 @@
}
return this.baseMapper.selectLocDetlUnilateralMoveShuttleN(matnr,batch,grade);
}
+
+ @Override
+ public R frozenInventory(List<FrozenParam> param) {
+
+ for(FrozenParam obj : param) {
+ this.baseMapper.frozenInventory(obj.getLocNo(), obj.getMatnr(), obj.getBatch(), 1);
+ }
+
+ return R.ok("鍐荤粨搴撳瓨瀹屾垚!");
+ }
+
+ @Override
+ public R unfreezeInventory(List<FrozenParam> param) {
+
+ for(FrozenParam obj : param) {
+ this.baseMapper.frozenInventory(obj.getLocNo(), obj.getMatnr(), obj.getBatch(), 0);
+ }
+
+ return R.ok("搴撳瓨瑙e喕瀹屾垚!");
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 2ae5d58..294a624 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -27,6 +28,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -85,6 +87,9 @@
@Autowired
private ManLocDetlService manLocDetlService;
+
+ @Resource
+ private LocMastMapper locMastMapper;
@Override
@Transactional
@@ -181,6 +186,12 @@
}
}
if (!locDetlDtos.isEmpty()) {
+ // 搴撲綅鍙烽泦鍚�
+ List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+ String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+ if (firstFrozenLocNo != null) {
+ throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+ }
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
// 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
@@ -522,6 +533,13 @@
if (Cools.isEmpty(param.getOutSite())) {
throw new CoolException("绔欑偣涓嶅瓨鍦�");
}
+
+ // 搴撲綅鍐荤粨涓嶈兘鍑哄簱
+ String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(param.getLocNos());
+ if (firstFrozenLocNo != null) {
+ throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+ }
+
for (String locNo : param.getLocNos()) {
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
@@ -658,6 +676,12 @@
}
}
if (!locDetlDtos.isEmpty()) {
+ // 搴撲綅鍙烽泦鍚�
+ List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+ String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+ if (firstFrozenLocNo != null) {
+ throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+ }
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F")){
// 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
@@ -682,6 +706,19 @@
if (Cools.isEmpty(loc)){
throw new CoolException("鏈壘鍒板簱浣�");
}
+ // 鍒ゆ柇搴撲綅鏄惁鍐荤粨
+ String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(),loc.getLocNo()));
+ if (sourceLocFrozen != null) {
+ throw new CoolException(sourceLocFrozen + "搴撲綅宸茶鍐荤粨!");
+ }
+
+ // 鍒ゆ柇搴撳瓨鏄惁鍐荤粨
+ Optional<LocDetl> first = locDetls.stream().filter(locDetl -> locDetl.getFrozen() == 1).findFirst();
+ if (first.isPresent()) {
+ LocDetl locDetl = first.get();
+ throw new CoolException(locDetl.getLocNo() + "," + locDetl.getMatnr() + "," + locDetl.getBatch() + "搴撳瓨鏄庣粏宸茶鍐荤粨!");
+ }
+
if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
}
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 53a2bfd..dc9f9e8 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -44,6 +44,7 @@
<result column="appe_user" property="appeUser" />
<result column="appe_time" property="appeTime" />
<result column="memo" property="memo" />
+ <result column="frozen" property="frozen" />
<result column="standby1" property="standby1" />
<result column="standby2" property="standby2" />
<result column="standby3" property="standby3" />
@@ -376,6 +377,12 @@
FROM asr_loc_detl a
INNER JOIN man_mat b ON a.matnr=#{matnrOld} AND b.matnr=#{matnr};
</update>
+ <update id="updateDetlFrozenByLocNo">
+ update asr_loc_detl set frozen = 1 where loc_no = #{locNo} and frozen = 0
+ </update>
+ <update id="frozenInventory">
+ update asr_loc_detl set frozen = #{frozen} where loc_no = #{locNo} and matnr = #{matnr} and batch = #{batch}
+ </update>
<select id="selectSameDetlTodayBatch" resultType="java.lang.String">
SELECT ld.loc_no FROM asr_loc_detl ld
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 8d918ad..1eb4591 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -34,7 +34,8 @@
<result column="mk" property="mk" />
<result column="barcode" property="barcode" />
<result column="ctn_no" property="ctnNo" />
-
+ <result column="frozen" property="frozen" />
+ <result column="frozen_memo" property="frozenMemo" />
</resultMap>
<select id="queryFreeLocMast" resultMap="BaseResultMap">
@@ -192,5 +193,11 @@
and gro1 = #{gro}
AND loc_sts in ('O') order by row1
</select>
+ <select id="findFirstFrozenLocNo" resultType="java.lang.String">
+ select top 1 loc_no from asr_loc_mast where frozen = 1 and loc_no in
+ <foreach collection="locNoList" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </select>
</mapper>
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 054399e..4769781 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -255,5 +255,14 @@
,{field: 'source$', align: 'center',title: '鍒惰喘', hide: true}
,{field: 'check$', align: 'center',title: '瑕佹眰妫�楠�', hide: true}
,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�', hide: true}
+ ,{field: 'frozen$', align: 'center',title: '鍐荤粨鍚�',
+ templet: function(d) {
+ // 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
+ if (d.frozen$ === '宸插喕缁�') {
+ return '<span style="color: #34a8de;">' +d.frozen$ + '</span>';
+ } else {
+ return '<span">' +d.frozen$ + '</span>';
+ }
+ }}
]
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 90e8841..14c17ee 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -1,6 +1,7 @@
var pageCurr;
function getCol() {
var cols = [
+ {type: 'checkbox'},
{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
,{field: 'storeDate', align: 'center',title: '搴撻緞(澶�)', sort:true}
,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true}
@@ -35,7 +36,15 @@
,{field: 'source$', align: 'center',title: '鍒惰喘', hide: true}
,{field: 'check$', align: 'center',title: '瑕佹眰妫�楠�', hide: true}
,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�', hide: true}
-
+ ,{field: 'frozen$', align: 'center',title: '鍐荤粨鍚�',
+ templet: function(d) {
+ // 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
+ if (d.frozen$ === '宸插喕缁�') {
+ return '<span style="color: #34a8de;">' +d.frozen$ + '</span>';
+ } else {
+ return '<span">' +d.frozen$ + '</span>';
+ }
+ }}
];
// cols.push.apply(cols, detlCols);
@@ -212,6 +221,78 @@
});
});
break;
+ // 鍐荤粨
+ case 'frozen':
+ let frozenData = checkStatus.data;
+ console.log(frozenData)
+ if (frozenData.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍐荤粨搴撳瓨鍚�?', function(){
+ let requestData = frozenData.map(obj => ({
+ locNo: obj.locNo,
+ matnr: obj.matnr,
+ batch: obj.batch
+ })
+ );
+ $.ajax({
+ url: baseUrl+"/locDetl/frozenInventory",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(requestData),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ // 瑙e喕
+ case 'unfreeze':
+ let unfreezeData = checkStatus.data;
+ console.log(unfreezeData)
+ if (unfreezeData.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾瑙e喕搴撳瓨鍚�?', function(){
+ let requestData = unfreezeData.map(obj => ({
+ locNo: obj.locNo,
+ matnr: obj.matnr,
+ batch: obj.batch
+ })
+ );
+ $.ajax({
+ url: baseUrl+"/locDetl/unfreezeInventory",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(requestData),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
}
});
diff --git a/src/main/webapp/static/js/locMast/locMast.js b/src/main/webapp/static/js/locMast/locMast.js
index 20e5195..7fc6049 100644
--- a/src/main/webapp/static/js/locMast/locMast.js
+++ b/src/main/webapp/static/js/locMast/locMast.js
@@ -24,6 +24,16 @@
,{field: 'locNo', align: 'center',title: '搴撲綅鍙�',sort:true, hide:false}
,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��',width:200, hide:false}
,{field: 'whsType$', align: 'center',title: '搴撲綅绫诲瀷',width:200, hide:false}
+ ,{field: 'frozen$', align: 'center',title: '鍐荤粨鐘舵��',
+ templet: function(d) {
+ // 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
+ if (d.frozen$ === '宸插喕缁�') {
+ return '<span style="color: #34a8de;">' +d.frozen$ + '</span>';
+ } else {
+ return '<span">' +d.frozen$ + '</span>';
+ }
+ }}
+ ,{field: 'frozenMemo', align: 'center',title: '鍐荤粨鍘熷洜'}
// ,{field: 'pltType', align: 'center',title: ''}
// ,{field: 'ctnType', align: 'center',title: ''}
// ,{field: 'locSts', align: 'center',title: ''}
@@ -461,7 +471,8 @@
barcode: $('#barcode').val(),
PdcType: $('#PdcType').val(),
ctnNo: $('#ctnNo').val(),
-
+ frozen: $('#frozen').val(),
+ frozenMemo: $('#frozenMemo').val()
};
$.ajax({
url: baseUrl+"/locMast/"+name+"/auth",
diff --git a/src/main/webapp/static/js/stoMan/stoQue.js b/src/main/webapp/static/js/stoMan/stoQue.js
index 0352dd9..95d3552 100644
--- a/src/main/webapp/static/js/stoMan/stoQue.js
+++ b/src/main/webapp/static/js/stoMan/stoQue.js
@@ -29,6 +29,16 @@
,{field: 'locNo', align: 'center',title: '搴撲綅鍙�', hide:false}
,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��', width: 180, style: 'color: #8E2323', hide:false}
,{field: 'whsType$', align: 'center',title: '搴撲綅绫诲瀷', width: 180, style: 'color: #8E2323', hide:false}
+ ,{field: 'frozen$', align: 'center',title: '鍐荤粨鐘舵��',
+ templet: function(d) {
+ // 鏍规嵁鏉′欢鍒ゆ柇瀛椾綋棰滆壊
+ if (d.frozen$ === '宸插喕缁�') {
+ return '<span style="color: #34a8de;">' +d.frozen$ + '</span>';
+ } else {
+ return '<span">' +d.frozen$ + '</span>';
+ }
+ }}
+ ,{field: 'frozenMemo', align: 'center',title: '鍐荤粨鍘熷洜'}
,{field: 'crnNo', align: 'center',title: '鍫嗗灈鏈哄彿', sort:true, hide:false}
,{field: 'row1', align: 'center',title: '鎺�', sort:true, hide:true}
,{field: 'bay1', align: 'center',title: '鍒�', sort:true, hide:true}
diff --git a/src/main/webapp/views/locDetl/locDetl.html b/src/main/webapp/views/locDetl/locDetl.html
index 174bb0f..29c1502 100644
--- a/src/main/webapp/views/locDetl/locDetl.html
+++ b/src/main/webapp/views/locDetl/locDetl.html
@@ -9,6 +9,14 @@
<link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
<link rel="stylesheet" href="../../static/css/cool.css" media="all">
<link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ #frozen-btn {
+ display: none;
+ }
+ #unfreeze-btn{
+ display: none;
+ }
+ </style>
</head>
<body>
@@ -34,6 +42,17 @@
<input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
</div>
</div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <select name="frozen" class="layui-input" type="text" autocomplete="off">
+ <!-- <option style="display: none"></option>-->
+ <option value="">鍐荤粨鍚�</option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
+ </div>
+ </div>
+
<!-- <div class="layui-inline">-->
<!-- <div class="layui-input-inline">-->
<!-- <input class="layui-input" type="text" name="row" placeholder="鎺掓暟" autocomplete="off">-->
@@ -61,7 +80,9 @@
</div>
<script type="text/html" id="toolbar">
<div class="layui-btn-container">
- <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
+ <button class="layui-btn layui-btn-primary layui-bg-blue layui-btn-sm" id="frozen-btn" lay-event="frozen" style="margin-top: 1px">鍐荤粨</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="unfreeze-btn" lay-event="unfreeze" style="margin-top: 1px">瑙e喕</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 1px">瀵煎嚭</button>
</div>
</script>
diff --git a/src/main/webapp/views/locMast/locMast.html b/src/main/webapp/views/locMast/locMast.html
index e95ce3d..59f310c 100644
--- a/src/main/webapp/views/locMast/locMast.html
+++ b/src/main/webapp/views/locMast/locMast.html
@@ -55,7 +55,7 @@
<div class="layui-input-inline">
<select name="loc_type1" id="loc_type1" class="layui-input" type="text" placeholder="搴撲綅绫诲瀷" autocomplete="off">
<!-- <option style="display: none"></option>-->
- <option value=""></option>
+ <option value="">搴撲綅绫诲瀷</option>
<option value="1">浣庡簱浣�</option>
<option value="2">楂樺簱浣�</option>
</select>
@@ -76,10 +76,18 @@
<input class="layui-input" type="text" name="bay1" placeholder="鍒�" autocomplete="off">
</div>
</div>
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input class="layui-input" type="text" name="lev1" placeholder="灞�" autocomplete="off">
- </div>
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="lev1" placeholder="灞�" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-input-inline">
+ <select name="frozen" class="layui-input" type="text" autocomplete="off">
+ <!-- <option style="display: none"></option>-->
+ <option value="">鍐荤粨鍚�</option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
</div>
<!-- 寰呮坊鍔� -->
<div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
diff --git a/src/main/webapp/views/locMast/locMast_detail.html b/src/main/webapp/views/locMast/locMast_detail.html
index 27fff5a..cd62adc 100644
--- a/src/main/webapp/views/locMast/locMast_detail.html
+++ b/src/main/webapp/views/locMast/locMast_detail.html
@@ -77,6 +77,23 @@
<input id="sheetNo" class="layui-input" type="text">
</div>
</div>
+ <!-- 鍐荤粨 -->
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">鍐荤粨</label>
+ <div class="layui-input-inline">
+ <select id="frozen" name="frozen">
+ <option style="display: none"></option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">鍐荤粨鍘熷洜锛�</label>
+ <div class="layui-input-inline">
+ <input id="frozenMemo" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
<div class="layui-inline" style="width:80%;">
<label class="layui-form-label">鍫嗗灈鏈哄彿锛�</label>
<div class="layui-input-inline">
diff --git a/src/main/webapp/views/pakStore/locDetlCheckQuery.html b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
index 0e71897..dada33b 100644
--- a/src/main/webapp/views/pakStore/locDetlCheckQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -81,9 +81,18 @@
<input class="layui-input" type="text" name="specs" placeholder="瑙勬牸" autocomplete="off">
</div>
</div>
+<!-- <div class="layui-inline">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
+ <select name="frozen" class="layui-input" type="text" autocomplete="off">
+ <option value="">鍐荤粨鍚�</option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
</div>
</div>
<!-- 鏃ユ湡鑼冨洿 -->
@@ -186,6 +195,11 @@
layer.msg("璇烽�夋嫨鏁版嵁", {icon: 2});
return;
}
+ if (data.some(obj => obj.frozen === 1)) {
+ layer.msg("鍐荤粨鐨勫簱瀛樹笉鍏佽鍑哄簱锛�");
+ return;
+ }
+
let locNos = [];
data.forEach(function(elem) {
locNos.push(elem.locNo);
diff --git a/src/main/webapp/views/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index 68f73d3..5086410 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -77,6 +77,15 @@
<input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
</div>
</div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <select name="frozen" class="layui-input" type="text" autocomplete="off">
+ <option value="">鍐荤粨鍚�</option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
+ </div>
+ </div>
<!-- 鏃ユ湡鑼冨洿 -->
<div class="layui-inline" style="width: 300px">
<div class="layui-input-inline">
@@ -177,6 +186,11 @@
layer.msg("璇烽�夋嫨鏁版嵁");
return;
}
+
+ if (data.some(obj => obj.frozen === 1)) {
+ layer.msg("鍐荤粨鐨勫簱瀛樹笉鍏佽鍑哄簱锛�");
+ return;
+ }
parent.addTableData(data);
break;
}
diff --git a/src/main/webapp/views/stoMan/stoQue.html b/src/main/webapp/views/stoMan/stoQue.html
index e3d4d55..698bc72 100644
--- a/src/main/webapp/views/stoMan/stoQue.html
+++ b/src/main/webapp/views/stoMan/stoQue.html
@@ -75,10 +75,18 @@
</div>
</div>
<!-- 鏃ユ湡鑼冨洿 -->
- <div class="layui-inline" style="width: 300px">
- <div class="layui-input-inline">
- <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
- </div>
+<!-- <div class="layui-inline" style="width: 300px">-->
+<!-- <div class="layui-input-inline">-->
+<!-- <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-input-inline">
+ <select name="frozen" class="layui-input" type="text" autocomplete="off">
+ <!-- <option style="display: none"></option>-->
+ <option value="">鍐荤粨鍚�</option>
+ <option value="0">鏈喕缁�</option>
+ <option value="1">宸插喕缁�</option>
+ </select>
</div>
<!-- 寰呮坊鍔� -->
<div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
--
Gitblit v1.9.1