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