From 405e94c5d08e89c9bf2bd0820d39ceeaa049211d Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期三, 16 十月 2024 08:11:11 +0800 Subject: [PATCH] 流水记录表 --- src/main/java/com/zy/asrs/controller/OrderController.java | 104 +++++++++++++ src/main/java/com/zy/asrs/entity/FlowLog.java | 26 ++- src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 2 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 6 src/main/java/com/zy/asrs/service/LocDetlService.java | 2 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2 src/main/resources/mapper/LocDetlMapper.xml | 16 ++ src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 5 src/main/resources/mapper/OrderDetlMapper.xml | 11 + src/main/java/com/zy/asrs/service/AgvLocDetlService.java | 3 src/main/webapp/static/js/flowLog/flowLog.js | 9 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java | 4 src/main/java/com/zy/asrs/service/OrderDetlService.java | 2 src/main/java/com/zy/asrs/controller/AgvMobileController.java | 33 ++++ src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 5 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 7 src/main/webapp/views/flowLog/flowLog.html | 50 +++++ src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 188 +++++++++++++++++++++++ 18 files changed, 454 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index 1c35546..e1f9782 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -5,6 +5,7 @@ import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.R; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; @@ -47,6 +48,10 @@ private AgvWrkMastService agvWrkMastService; @Autowired private AgvWrkDetlService agvWrkDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; /* @@ -545,6 +550,7 @@ } AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor); // 鍚屾璋冩嫧鍗� + long flowId = snowflakeIdWorker.nextId(); List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); for (AgvLocDetl agvLocDetl : agvLocDetls) { AgvWrkDetl wrkDetl = new AgvWrkDetl(); @@ -559,8 +565,35 @@ if (!agvWrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } + // 鏇存柊璁㈠崟 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode())); + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(wrkMast.getSourceLocNo()); + flowLog.setSpare1(barcode); + flowLog.setOpType(5L); + flowLog.setOrderNo(orderDetl.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(agvLocDetl.getMatnr()); + flowLog.setMaktx(agvLocDetl.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme()); + flowLog.setQtyChanged(agvLocDetl.getAnfme()); + + flowLog.setLocPrevious(agvLocDetl.getAnfme()); + flowLog.setLocCurrent(0.0d); + flowLog.setLocChanged(agvLocDetl.getAnfme()); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index adfbd0d..06465ac 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -56,6 +56,8 @@ private MatService matService; @Autowired private AgvLocDetlService agvLocDetlService; + @Autowired + private FlowLogService flowLogService; @GetMapping("/doc/type/list") @Transactional @@ -359,6 +361,7 @@ @Transactional public R formAdd(@RequestBody OrderDomainParam param){ Order order = orderService.selectByNo(param.getOrderNo()); + long flowId = snowflakeIdWorker.nextId(); if (order != null) { return R.error("鍗曟嵁缂栧彿宸插瓨鍦�"); } @@ -417,9 +420,29 @@ DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); if (DetlDto.has(list, dto)) { OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + Double anfme = item.getAnfme(); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setOpType(2L); + flowLog.setOrderNo(param.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(orderDetl.getMatnr()); + flowLog.setMaktx(orderDetl.getMaktx()); + flowLog.setOrderPrevious(anfme); + flowLog.setOrderCurrent(anfme + orderDetl.getAnfme()); + flowLog.setOrderChanged(orderDetl.getAnfme()); + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty()); + flowLog.setQtyChanged(0.0D); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); } } else { list.add(dto); @@ -434,6 +457,25 @@ orderDetl.setQty(0.0D); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setOpType(1L); + flowLog.setOrderNo(param.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(orderDetl.getMatnr()); + flowLog.setMaktx(orderDetl.getMaktx()); + flowLog.setOrderPrevious(0.0D); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(orderDetl.getAnfme()); + flowLog.setQtyPrevious(0.0D); + flowLog.setQtyCurrent(0.0D); + flowLog.setQtyChanged(0.0D); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); } } } @@ -570,11 +612,33 @@ if (!orderDetlService.insert(orderDetl)) { throw new CoolException("鐢熸垚鍗婃垚鍝佽皟鎷ㄥ崟鏄庣粏妗eけ璐�"); } + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setOpType(1L); + flowLog.setOrderNo(param.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(orderDetl.getMatnr()); + flowLog.setMaktx(orderDetl.getMaktx()); + flowLog.setOrderPrevious(0.0D); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(orderDetl.getAnfme()); + flowLog.setQtyPrevious(0.0D); + flowLog.setQtyCurrent(0.0D); + flowLog.setQtyChanged(0.0D); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } + } + } } } + return R.ok("璁㈠崟娣诲姞鎴愬姛"); } @@ -583,6 +647,7 @@ @Transactional public R formModify(@RequestBody OrderDomainParam param){ Order order = orderService.selectById(param.getOrderId()); + long flowId = snowflakeIdWorker.nextId(); int docType = param.getDocType().intValue(); if (order == null || order.getStatus() == 0) { return R.error("璁㈠崟涓嶅瓨鍦�"); @@ -610,9 +675,29 @@ DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getAnfme(), orderDetl.getProcessSts()); if (DetlDto.has(list, dto)) { OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); + Double anfme = item.getAnfme(); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setOpType(2L); + flowLog.setOrderNo(param.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(orderDetl.getMatnr()); + flowLog.setMaktx(orderDetl.getMaktx()); + flowLog.setOrderPrevious(anfme); + flowLog.setOrderCurrent(anfme + orderDetl.getAnfme()); + flowLog.setOrderChanged(orderDetl.getAnfme()); + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty()); + flowLog.setQtyChanged(0.0D); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); } } else { if (docType == 35 && orderDetl.getProcessSts() == 1) { @@ -638,6 +723,25 @@ if (!orderDetlService.insert(orderDetl)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); } + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setOpType(2L); + flowLog.setOrderNo(param.getOrderNo()); + flowLog.setThreeCode(orderDetl.getThreeCode()); + flowLog.setMatnr(orderDetl.getMatnr()); + flowLog.setMaktx(orderDetl.getMaktx()); + flowLog.setOrderPrevious(0.0D); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(orderDetl.getAnfme()); + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty()); + flowLog.setQtyChanged(0.0D); + flowLog.setUserId(getUserId()); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } } } return R.ok("璁㈠崟淇敼鎴愬姛"); diff --git a/src/main/java/com/zy/asrs/entity/FlowLog.java b/src/main/java/com/zy/asrs/entity/FlowLog.java index 18c4dcd..4146d9e 100644 --- a/src/main/java/com/zy/asrs/entity/FlowLog.java +++ b/src/main/java/com/zy/asrs/entity/FlowLog.java @@ -22,7 +22,7 @@ * 鏁版嵁缂栧彿 */ @ApiModelProperty(value= "鏁版嵁缂栧彿") - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Long id; /** @@ -245,17 +245,25 @@ public String getOpType$() { String otp = ""; if (this.opType == 1L) { - otp = "1"; + otp = "鏂板璁㈠崟"; } else if (this.opType == 2L) { - otp = "2"; + otp = "淇敼璁㈠崟"; } else if (this.opType == 3L) { - otp = "3"; - } else if (this.opType == 3L) { - otp = "3"; - } else if (this.opType == 3L) { - otp = "3"; + otp = "缁勬墭鍏ュ簱"; + } else if (this.opType == 4L) { + otp = "璁㈠崟鍑哄簱"; + } else if (this.opType == 5L) { + otp = "璋冩嫧鍑哄簱"; + } else if (this.opType == 6L) { + otp = "鍔犲伐鍑哄簱"; + } else if (this.opType == 7L) { + otp = "鍙栨秷鍏ュ簱"; + } else if (this.opType == 8L) { + otp = "鍙栨秷绉诲簱"; + } else if (this.opType == 9L) { + otp = "鍙栨秷璋冩嫧"; } - return ""; + return otp; } diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java index b0f3a46..71d1aa4 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.AgvLocDetl; +import com.zy.asrs.entity.LocDetl; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -25,6 +26,9 @@ @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode}") Double selectSumAnfmeByMatnr(@Param("matnr") String matnr,@Param("threeCode") String threeCode); + @Select("select * from agv_loc_detl where 1=1 and loc_no = #{locNo} and matnr = #{matnr} and three_code = #{csocode}") + AgvLocDetl selectItemByOrderNo(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode); + @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts = 1") Double selectSumAnfmeByMatnrProcess(@Param("matnr") String matnr,@Param("threeCode") String threeCode); diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java index c650abe..187d7cd 100644 --- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java @@ -19,6 +19,8 @@ LocDetl selectItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch,@Param("suppCode")String suppCode); + LocDetl selectItemByOrderNo(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode); + int deleteItem(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("suppCode")String suppCode, @Param("threeCode")String threeCode, @Param("deadTime")String deadTime); int updateAnfme(@Param("anfme")Double anfme, @Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("suppCode")String suppCode, @Param("threeCode")String threeCode, @Param("deadTime")String deadTime); diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java index 31be85f..f605a1b 100644 --- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java @@ -23,6 +23,8 @@ */ OrderDetl selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch, @Param("csocode")String csocode, @Param("isocode")String isocode); + OrderDetl selectItemByOrderNo2(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("threeCode") String threeCode); + OrderDetl selectItemNoneOfBatch(@Param("orderNo")String orderNo, @Param("matnr")String matnr); OrderDetl selectItemOfBatch(@Param("matnr")String matnr, @Param("batch")String batch); diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java index 8a669fe..781e690 100644 --- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java +++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.AgvLocDetl; +import com.zy.asrs.entity.LocDetl; import com.zy.common.model.LocDto; import com.zy.common.model.TaskDto; import org.springframework.web.multipart.MultipartFile; @@ -14,6 +15,8 @@ public void addLocDetlInfo(String locNo, int taskCode); + AgvLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode); + public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type); public void updateStock(String sourceLoc, String targetLoc); diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java index 674438a..d8580cc 100644 --- a/src/main/java/com/zy/asrs/service/LocDetlService.java +++ b/src/main/java/com/zy/asrs/service/LocDetlService.java @@ -13,6 +13,8 @@ LocDetl selectItem(String locNo, String matnr, String batch,String suppCode); + LocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode); + Page<LocDetl> getStockOut(Page<LocDetl> page); /** diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java index 1a7f9c1..02ee354 100644 --- a/src/main/java/com/zy/asrs/service/OrderDetlService.java +++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java @@ -18,6 +18,8 @@ OrderDetl selectItem(String orderNo, String matnr, String batch, String csocode, String isoCode); + OrderDetl selectItem(String orderNo, String matnr, String threeCode); + OrderDetl selectItemNoneOfBatch(String orderNo, String matnr); OrderDetl selectItemOfBatch(String matnr, String batch); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java index 104572f..17fe2ca 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java @@ -9,6 +9,7 @@ import com.zy.asrs.entity.AgvLocDetl; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkDetl; +import com.zy.asrs.entity.LocDetl; import com.zy.asrs.mapper.AgvLocDetlMapper; import com.zy.asrs.service.AgvBasDevpService; import com.zy.asrs.service.AgvLocDetlService; @@ -130,6 +131,11 @@ } @Override + public AgvLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode) { + return this.baseMapper.selectItemByOrderNo(locNo, matnr, batch,csocode,isoCode); + } + + @Override public Double getSumAnfmeProcess(String matnr, String threeCode) { return this.baseMapper.selectSumAnfmeByMatnrProcess(matnr, threeCode); } diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index debe0a6..59d0999 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.LocDetlAdjustParam; @@ -73,6 +74,12 @@ private WrkMastExecuteService wrkMastExecuteService; @Autowired private ConfigService configService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private FlowLogService flowLogService; + @Autowired + private LocDetlServiceImpl locDetlService; /* @@ -143,6 +150,7 @@ //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2))); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); taskDto.getLocDtos().forEach(locDto -> { if (!BaseController.isJSON(locDto.getOrderNo())) { //鏄庣粏妗f墍闇�鍙傛暟 @@ -157,6 +165,36 @@ locDto.getCsocode(), locDto.getIsoseq(), locDto.getProcessSts()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(wrkMast.getSourceLocNo()); + flowLog.setSpare1(containerCode); + flowLog.setOpType(4L); + flowLog.setOrderNo(locDto.getOrderNo()); + flowLog.setThreeCode(locDto.getCsocode()); + flowLog.setMatnr(locDto.getMatnr()); + flowLog.setMaktx(locDto.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme()); + flowLog.setQtyChanged(locDto.getAnfme()); + + flowLog.setLocPrevious(locDetl.getAnfme()); + flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme()); + flowLog.setLocChanged(locDto.getAnfme()); + flowLog.setUserId(userId); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } + }else { List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); orderDtoList.forEach(orderDto -> { @@ -174,6 +212,7 @@ locDto.getProcessSts()); }); } + //淇敼璁㈠崟淇℃伅 modifyOrderDetl(locDto, userId); @@ -217,6 +256,7 @@ //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,containerCode,now,userId,Short.valueOf(containerCode.substring(0,2))); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); taskDto.getLocDtos().forEach(locDto -> { if (!BaseController.isJSON(locDto.getOrderNo())) { //鏄庣粏妗f墍闇�鍙傛暟 @@ -231,6 +271,35 @@ locDto.getCsocode(), locDto.getIsoseq(), locDto.getProcessSts()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + AgvLocDetl locDetl = agvLocDetlService.selectItem(wrkMast.getSourceLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getCsocode(), locDto.getIsoseq()); + + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(wrkMast.getSourceLocNo()); + flowLog.setSpare1(containerCode); + flowLog.setOpType(6L); + flowLog.setOrderNo(locDto.getOrderNo()); + flowLog.setThreeCode(locDto.getCsocode()); + flowLog.setMatnr(locDto.getMatnr()); + flowLog.setMaktx(locDto.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty() + locDto.getAnfme()); + flowLog.setQtyChanged(locDto.getAnfme()); + + flowLog.setLocPrevious(locDetl.getAnfme()); + flowLog.setLocCurrent(locDetl.getAnfme() - locDto.getAnfme()); + flowLog.setLocChanged(locDto.getAnfme()); + flowLog.setUserId(userId); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } }else { List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); orderDtoList.forEach(orderDto -> { @@ -437,7 +506,7 @@ br = 2; } if (agvBasDevp.getLocType1() != br) { - throw new CoolException("绔欑偣寮傚父锛�"); + throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒"); } if (containerType == 40) { locType = 5; @@ -510,8 +579,37 @@ //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType); //鐢熸垚宸ヤ綔妗f槑缁� + long flowId = snowflakeIdWorker.nextId(); agvWaitPakinList.forEach(wp -> { createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts()); + // 娴佹按 -- 鏂板璁㈠崟鏄庣粏 + OrderDetl orderDetl = orderDetlService.selectItem(wp.getOrderNo(), wp.getMatnr(), wp.getThreeCode()); + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(locNo); + flowLog.setSpare1(containerCode); + flowLog.setOpType(3L); + flowLog.setOrderNo(wp.getOrderNo()); + flowLog.setThreeCode(wp.getThreeCode()); + flowLog.setMatnr(wp.getMatnr()); + flowLog.setMaktx(wp.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + flowLog.setQtyPrevious(orderDetl.getQty()-wp.getAnfme()); + flowLog.setQtyCurrent(orderDetl.getQty()); + flowLog.setQtyChanged(wp.getAnfme()); + + flowLog.setLocPrevious(0.0D); + flowLog.setLocCurrent(wp.getAnfme()); + flowLog.setLocChanged(wp.getAnfme()); + + flowLog.setUserId(userId); + flowLog.setAppeTime(now); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } }); //淇敼鍏ュ簱閫氱煡妗g姸鎬� agvWaitPakinService.updateIoStatus(containerCode,"Y"); @@ -760,6 +858,7 @@ @Transactional public void cancelWrkMast(String workNo, Long userId,Integer type) { AgvWrkMast wrkMast = agvWrkMastService.selectById(workNo); + long flowId = snowflakeIdWorker.nextId(); if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } @@ -825,8 +924,36 @@ // 鍥炴粴鍏ュ簱璁㈠崟 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo())); orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme()); + if (!orderDetlService.updateById(orderDetl)) { throw new CoolException("璁㈠崟鍥炴粴澶辫触"); + } + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(locNo); + flowLog.setSpare1(wrkMast.getBarcode()); + flowLog.setOpType(3L); + flowLog.setOrderNo(agvWaitPakin.getOrderNo()); + flowLog.setThreeCode(agvWaitPakin.getThreeCode()); + flowLog.setMatnr(agvWaitPakin.getMatnr()); + flowLog.setMaktx(agvWaitPakin.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty()-agvWaitPakin.getAnfme()); + flowLog.setQtyChanged(-agvWaitPakin.getAnfme()); + + flowLog.setLocPrevious(0.0); + flowLog.setLocCurrent(0.0); + flowLog.setLocChanged(-agvWaitPakin.getAnfme()); + + flowLog.setUserId(userId); + flowLog.setAppeTime(new Date()); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); } // 鍒犻櫎缁勬墭妗� if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) { @@ -857,10 +984,40 @@ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo())); orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); if (!orderDetlService.updateById(orderDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触"); + } + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(locNo); + flowLog.setSpare1(wrkMast.getBarcode()); + flowLog.setOpType(8L); + flowLog.setOrderNo(agvLocDetl.getOrderNo()); + flowLog.setThreeCode(agvLocDetl.getThreeCode()); + flowLog.setMatnr(agvLocDetl.getMatnr()); + flowLog.setMaktx(agvLocDetl.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme()); + flowLog.setQtyChanged(-agvLocDetl.getAnfme()); + + flowLog.setLocPrevious(0.0); + flowLog.setLocCurrent(agvLocDetl.getAnfme()); + flowLog.setLocChanged(agvLocDetl.getAnfme()); + + flowLog.setUserId(userId); + flowLog.setAppeTime(new Date()); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); } } + } else { + } + // 鑷姩璋冩嫧鍑哄簱鍙栨秷 } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) { if (wrkMast.getIoType() == 112) { @@ -895,6 +1052,33 @@ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr()); } + FlowLog flowLog = new FlowLog(); + flowLog.setFid(String.valueOf(flowId)); + flowLog.setSpare2(wrkMast.getWrkNo().toString()); + flowLog.setLocNo(locNo); + flowLog.setSpare1(wrkMast.getBarcode()); + flowLog.setOpType(9L); + flowLog.setOrderNo(agvLocDetl.getOrderNo()); + flowLog.setThreeCode(agvLocDetl.getThreeCode()); + flowLog.setMatnr(agvLocDetl.getMatnr()); + flowLog.setMaktx(agvLocDetl.getMaktx()); + flowLog.setOrderPrevious(orderDetl.getAnfme()); + flowLog.setOrderCurrent(orderDetl.getAnfme()); + flowLog.setOrderChanged(0.0); + + flowLog.setQtyPrevious(orderDetl.getQty()); + flowLog.setQtyCurrent(orderDetl.getQty() - agvLocDetl.getAnfme()); + flowLog.setQtyChanged(- agvLocDetl.getAnfme()); + + flowLog.setLocPrevious(0.0); + flowLog.setLocCurrent(agvLocDetl.getAnfme()); + flowLog.setLocChanged(agvLocDetl.getAnfme()); + + flowLog.setUserId(userId); + flowLog.setAppeTime(new Date()); + if (!flowLogService.insert(flowLog)) { + throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触"); + } } //鍑哄簱鍙栨秷 } else { 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 00fe50d..cb0369f 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java @@ -218,6 +218,11 @@ } @Override + public LocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode) { + return this.baseMapper.selectItemByOrderNo(locNo, matnr, batch,csocode,isoCode); + } + + @Override public List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo) { if (Cools.isEmpty(orderNo) && Cools.isEmpty(matnr) && Cools.isEmpty(maktx) && Cools.isEmpty(specs) && Cools.isEmpty(locNo)) { return new ArrayList<LocDetl>(); 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 9b99ae0..b0e109e 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java @@ -48,6 +48,11 @@ } @Override + public OrderDetl selectItem(String orderNo, String matnr, String threeCode) { + return this.baseMapper.selectItemByOrderNo2(orderNo, matnr, threeCode); + } + + @Override public OrderDetl selectItemNoneOfBatch(String orderNo, String matnr) { return this.baseMapper.selectItemNoneOfBatch(orderNo, matnr); } 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 81c4791..31f28f8 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -84,6 +84,10 @@ private DocTypeService docTypeService; @Autowired private AgvWaitPakinService agvWaitPakinService; + @Autowired + private AgvLocDetlService agvLocDetlService; + @Autowired + private FlowLogService flowLogService; @Override @Transactional @@ -1119,10 +1123,12 @@ throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } // 璁㈠崟鍏宠仈 + long flowId = snowflakeIdWorker.nextId(); List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); for (WrkDetl wrkDetl : wrkDetls) { if (!Cools.isEmpty(wrkDetl.getOrderNo())) { if (!BaseController.isJSON(wrkDetl.getOrderNo())) { + if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme(),wrkDetl.getThreeCode(),wrkDetl.getDeadTime())) { throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); } @@ -1150,6 +1156,7 @@ } } } + } // 鍙栨秷鎿嶄綔浜哄憳璁板綍 wrkMast.setManuType("鎵嬪姩鍙栨秷"); diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml index b12be7f..5dcc275 100644 --- a/src/main/resources/mapper/LocDetlMapper.xml +++ b/src/main/resources/mapper/LocDetlMapper.xml @@ -76,6 +76,22 @@ <include refid="batchSeq"></include> </select> + <select id="selectItemByOrderNo" resultMap="BaseResultMap"> + select * from asr_loc_detl + where 1=1 + and loc_no = #{locNo} + and matnr = #{matnr} + <if test="batch!=null and batch!='' "> + and batch = #{batch} + </if> + <if test="csocode!=null and csocode!='' "> + and three_code = #{csocode} + </if> + <if test="isocode!=null and isocode!='' "> + and dead_time = #{isocode} + </if> + </select> + <delete id="deleteItem"> delete from asr_loc_detl where 1=1 diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml index 339287a..7b50892 100644 --- a/src/main/resources/mapper/OrderDetlMapper.xml +++ b/src/main/resources/mapper/OrderDetlMapper.xml @@ -96,6 +96,17 @@ </if> </select> + <select id="selectItemByOrderNo2" resultMap="BaseResultMap"> + select * from man_order_detl + where 1=1 + and order_no = #{orderNo} + and matnr = #{matnr} + <if test="threeCode!=null and threeCode!='' "> + and three_code = #{threeCode} + </if> + + </select> + <select id="selectItemNoneOfBatch" resultMap="BaseResultMap"> select top 1 * from man_order_detl where 1=1 diff --git a/src/main/webapp/static/js/flowLog/flowLog.js b/src/main/webapp/static/js/flowLog/flowLog.js index c16df4a..d21becb 100644 --- a/src/main/webapp/static/js/flowLog/flowLog.js +++ b/src/main/webapp/static/js/flowLog/flowLog.js @@ -20,14 +20,17 @@ toolbar: '#toolbar', cellMinWidth: 50, height: 'full-120', + even: true, cols: [[ - {type: 'checkbox'} + {type: 'checkbox', merge: ['fid']} ,{field: 'id', align: 'center',title: '鏁版嵁缂栧彿',hide: true} - ,{field: 'fid', align: 'center',title: '娴佹按鍙�'} - ,{field: 'opType', align: 'center',title: '鎿嶄綔绫诲瀷'} + ,{field: 'fid', align: 'center',title: '娴佹按鍙�',merge: true} + ,{field: 'spare2', align: 'center',title: '宸ヤ綔鍙�'} + ,{field: 'opType$', align: 'center',title: '鎿嶄綔绫诲瀷'} ,{field: 'orderNo', align: 'center',title: '璁㈠崟鍙�'} ,{field: 'threeCode', align: 'center',title: '閿�鍞崟鍙�'} ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�'} + ,{field: 'spare1', align: 'center',title: '璐ф灦鐮�'} ,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'} ,{field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О'} ,{field: 'orderPrevious', align: 'center',title: '璁㈠崟鏁伴噺鍙樻洿鍓�'} diff --git a/src/main/webapp/views/flowLog/flowLog.html b/src/main/webapp/views/flowLog/flowLog.html index c02584b..de12354 100644 --- a/src/main/webapp/views/flowLog/flowLog.html +++ b/src/main/webapp/views/flowLog/flowLog.html @@ -19,19 +19,54 @@ <div class="layui-form-item"> <div class="layui-inline"> <div class="layui-input-inline"> - <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> - </div> - </div> - <div class="layui-inline" style="width: 300px"> - <div class="layui-input-inline"> - <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px"> + <input class="layui-input" type="text" name="fid" placeholder="娴佹按鍙�" autocomplete="off"> </div> </div> <div class="layui-inline"> <div class="layui-input-inline"> - <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off"> + <input class="layui-input" type="text" name="spare2" placeholder="宸ヤ綔鍙�" autocomplete="off"> </div> </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="order_no" placeholder="璁㈠崟鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="three_code" placeholder="閿�鍞崟鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="spare1" placeholder="璐ф灦鐮�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="matnr" placeholder="鐗╂枡鍙�" autocomplete="off"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="userId" placeholder="鎿嶄綔鍛�" autocomplete="off"> + </div> + </div> +<!-- <div class="layui-inline" style="width: 300px">--> +<!-- <div class="layui-input-inline">--> +<!-- <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">--> +<!-- </div>--> +<!-- </div>--> +<!-- <div class="layui-inline">--> +<!-- <div class="layui-input-inline">--> +<!-- <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">--> +<!-- </div>--> +<!-- </div>--> <div class="layui-inline">  <button class="layui-btn icon-btn" lay-filter="search" lay-submit> <i class="layui-icon"></i>鎼滅储 @@ -84,6 +119,7 @@ <input class="layui-input" name="fid" placeholder="璇疯緭鍏ユ祦姘村彿"> </div> </div> + <div class="layui-form-item"> <label class="layui-form-label">鎿嶄綔绫诲瀷: </label> <div class="layui-input-block"> -- Gitblit v1.9.1