From cb19fbb1b76402c87849bb055010701a66efc623 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期二, 23 四月 2024 00:17:23 +0800 Subject: [PATCH] # --- src/main/resources/mapper/OrderDetlMapper.xml | 17 ++++ src/main/java/com/zy/asrs/controller/AgvLocDetlController.java | 53 +++++++++++++ src/main/java/com/zy/asrs/entity/AgvLocDetl.java | 7 + src/main/java/com/zy/asrs/entity/param/PickParam.java | 37 +++++++++ src/main/java/com/zy/asrs/service/OrderDetlService.java | 3 src/main/java/com/zy/asrs/controller/AgvMobileController.java | 9 ++ src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 7 - src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 64 ++++++++++++++++ src/main/java/com/zy/asrs/service/AgvMobileService.java | 6 + 10 files changed, 196 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java index f98d3f4..5964a6e 100644 --- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java @@ -9,8 +9,10 @@ import com.core.common.R; import com.zy.asrs.entity.AgvLocDetl; import com.zy.asrs.entity.Mat; +import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.service.AgvLocDetlService; import com.zy.asrs.service.MatService; +import com.zy.asrs.service.OrderDetlService; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; @@ -31,6 +33,8 @@ private AgvLocDetlService agvLocDetlService; @Autowired private MatService matService; + @Autowired + private OrderDetlService orderDetlService; @RequestMapping(value = "/locDetl/list/auth") @ManagerAuth @@ -72,6 +76,55 @@ return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/locDetl/list/auth/v2") + @ManagerAuth + public R listV2(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam(required = false)String condition, + @RequestParam Map<String, Object> param, + @RequestParam(required = false)Boolean unreason){ + if (!Cools.isEmpty(unreason) && unreason) { + + return R.ok(agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>() + .where(" DATALENGTH( batch ) != 11 or\n" + + " batch LIKE '%[a-z]%'"))); + } + param.remove("unreason"); + String row = ""; + EntityWrapper<AgvLocDetl> wrapper = new EntityWrapper<>(); + if (param.get("row") != null) { + String chooseRow = (String) param.get("row"); + if (chooseRow.length() == 1) { + row = "0" + chooseRow; + param.remove("row"); + }else { + row = chooseRow; + param.remove("row"); + } + } + excludeTrash(param); + convert(param, wrapper); + allLike(AgvLocDetl.class, param.keySet(), wrapper, condition); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + if (!row.equals("")){ + wrapper.and() + .where("loc_no like '" +row +"%'"); + } + Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), wrapper); + for (AgvLocDetl record : agvLocDetlPage.getRecords()) { + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", record.getThreeCode()).eq("matnr", record.getMatnr()).ne("order_no", record.getOrderNo())); + if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { + record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); + } else { + record.setStock(-1D); + } + record.setOrderNo(orderDetl.getOrderNo()); + } + return R.ok(agvLocDetlPage); + } + @RequestMapping(value = "/locDetl/statis/auth") @ManagerAuth(memo = "AGV搴撳瓨鏄庣粏缁熻") public R statis(@RequestParam(defaultValue = "1")Integer curr, diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index d1f5b6f..b72ee5f 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -10,6 +10,7 @@ import com.zy.asrs.entity.param.AgvMobileStartPakin; import com.zy.asrs.entity.param.AgvMobileStartParam; import com.zy.asrs.entity.param.CombParam; +import com.zy.asrs.entity.param.PickParam; import com.zy.asrs.service.*; import com.zy.common.web.BaseController; import lombok.Synchronized; @@ -58,6 +59,14 @@ return R.ok(); } + // 鍐嶆鎷f枡 + @RequestMapping("/pick/again/auth") +// @ManagerAuth(memo = "缁勬墭") + public R pickAgain(@RequestBody PickParam pickParams){ + agvMobileService.pickAgain(pickParams, 1l); + return R.ok("缁勬墭鎴愬姛"); + } + /* 缁戝畾鎵樼洏鏉$爜涓庢殏瀛樹綅 */ diff --git a/src/main/java/com/zy/asrs/entity/AgvLocDetl.java b/src/main/java/com/zy/asrs/entity/AgvLocDetl.java index 1ea03d2..d130781 100644 --- a/src/main/java/com/zy/asrs/entity/AgvLocDetl.java +++ b/src/main/java/com/zy/asrs/entity/AgvLocDetl.java @@ -161,6 +161,13 @@ @ApiModelProperty(value= "搴撳瓨鍐荤粨{1:姝e父,0:鍐荤粨}") private Integer stockFreeze; + /** + * 搴撳瓨鏁伴噺 + */ + @ApiModelProperty(value= "鍙嚭鏁伴噺") + @TableField(exist = false) + private Double stock; + public String getLocNo$(){ LocMastService service = SpringUtils.getBean(LocMastService.class); LocMast locMast = service.selectById(this.locNo); diff --git a/src/main/java/com/zy/asrs/entity/param/PickParam.java b/src/main/java/com/zy/asrs/entity/param/PickParam.java new file mode 100644 index 0000000..6c3c83f --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/PickParam.java @@ -0,0 +1,37 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +import java.util.List; + +@Data +public class PickParam { + + // 宸ヤ綔鍙� + private Integer wrkNo; + + private String locNo; + + // 鎷f枡鏁伴噺 + private List<Pick> picks; + + @Data + public static class Pick { + + // 鐗╂枡缂栧彿 + private String matnr; + + // 鍗曟嵁缂栧彿 + private String orderNo; + + //閿�鍞鍗曞彿 + private String threeCode; + + //閿�鍞鍗曞彿 + private String suppCode; + + // 鎷f枡鏁伴噺 + private Double count; + + } +} diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java index 4aa30a4..c5de0d9 100644 --- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java @@ -45,4 +45,6 @@ List<OrderDetl> selectByMatnr(@Param("matnr") String matnr); + List<OrderDetl> getPakoutDetlPage(Map<String, Object> map); + } diff --git a/src/main/java/com/zy/asrs/service/AgvMobileService.java b/src/main/java/com/zy/asrs/service/AgvMobileService.java index 6ff52ac..0afc65d 100644 --- a/src/main/java/com/zy/asrs/service/AgvMobileService.java +++ b/src/main/java/com/zy/asrs/service/AgvMobileService.java @@ -3,6 +3,7 @@ import com.zy.asrs.entity.AgvBasDevp; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; +import com.zy.asrs.entity.param.PickParam; import java.util.List; @@ -14,6 +15,11 @@ String comb(CombParam param, Long userId); /** + * 缁勬墭 + */ + String pickAgain(PickParam pickParams, Long userId); + + /** * 鐩樼偣 */ void adjust(MobileAdjustParam param, Long userId); diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java index 9dbd0ea..eb0b734 100644 --- a/src/main/java/com/zy/asrs/service/OrderDetlService.java +++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java @@ -12,8 +12,6 @@ Page<OrderDetl> getPakoutPage(Page<OrderDetl> page); - Page<OrderDetl> getPakoutDetlPage(Page<OrderDetl> page); - OrderDetl selectItem(Long orderId, String matnr, String batch, String csocode, String isoCode); OrderDetl selectItem(String orderNo, String matnr, String batch, String csocode, String isoCode); @@ -38,4 +36,5 @@ public OrderDetl selectByOrderNoAndMatnr(String orderNo, String matnr, String csocode, String isoseq); + } diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index 03ff560..66c5915 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -7,6 +7,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; +import com.zy.asrs.entity.param.PickParam; import com.zy.asrs.service.*; import com.zy.common.model.DetlDto; import lombok.extern.slf4j.Slf4j; @@ -44,6 +45,8 @@ private AgvWrkMastService agvWrkMastService; @Autowired private AgvWorkService agvWorkService; + @Autowired + private AgvWrkDetlService agvWrkDetlService; /* @@ -90,6 +93,65 @@ } /* + 缁勬墭 + 缁戝畾鏆傚瓨浣� + */ + @Override + @Transactional + public String pickAgain(PickParam pickParams, Long userId) { + Date now = new Date(); + List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo())); + + for (PickParam.Pick pick : pickParams.getPicks()) { + if (pick.getCount().equals(0D)) continue; + AgvWrkDetl wrkDetl = new AgvWrkDetl(); + Mat mat = matService.selectByMatnr(pick.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�"); + } + wrkDetl.sync(mat); + wrkDetl.setWrkNo(pickParams.getWrkNo()); + wrkDetl.setOrderNo(pick.getOrderNo()); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺 + wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜 + wrkDetl.setAppeUser(userId); + wrkDetl.setAppeTime(now); + wrkDetl.setModiUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setThreeCode(pick.getThreeCode()); + agvWrkDetlService.insert(wrkDetl); + + // 鏇存柊璁㈠崟 + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode())); + orderDetl.setQty(orderDetl.getQty() + pick.getCount()); + if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){ + throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+pick.getOrderNo()+pick.getMatnr()); + } + } + // 纭鏄惁鍏ㄩ儴鍑哄簱 + int sameNumber = 0; + List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo())); + for (AgvLocDetl agvLocDetl : agvLocDetls) { + for (AgvWrkDetl agvWrkDetl : agvWrkDetls) { + if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr()) + && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode()) + && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode()) + && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) { + sameNumber++; + } + } + } + if (agvLocDetls.size() == sameNumber) { + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); + agvWrkMast.setIoType(101); + agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); + } + + + return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�"; + } + + /* AGV鏃犲崟缁勬墭 */ private void NoOrderComb(CombParam param, Long userId){ @@ -102,6 +164,8 @@ }); } + + /* AGV鏈夊崟缁勬墭 */ 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 6b14423..0f8c4b7 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java @@ -31,13 +31,6 @@ } @Override - public Page<OrderDetl> getPakoutDetlPage(Page<OrderDetl> page) { - page.setRecords(baseMapper.getPakoutPage(page.getCondition())); - page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); - return page; - } - - @Override public OrderDetl selectItem(Long orderId, String matnr, String batch, String csocode, String isoCode) { return this.baseMapper.selectItem(orderId,matnr,batch,csocode,isoCode); } diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml index b1ffd1a..92bf0a8 100644 --- a/src/main/resources/mapper/OrderDetlMapper.xml +++ b/src/main/resources/mapper/OrderDetlMapper.xml @@ -282,4 +282,21 @@ and matnr = #{matnr} </select> + <select id="getPakoutDetlPage" resultMap="BaseResultMap"> + select * from + ( + select + ROW_NUMBER() over (order by mo.create_time desc) as row, + mod.* + from man_order_detl mod + inner join man_order mo on mod.order_id = mo.id + inner join man_doc_type mdt on mo.doc_type = mdt.doc_id + where 1=1 + and mo.settle <= 2 + and mo.status = 1 + and mdt.pakout = 1 + <include refid="pakOutPageCondition"></include> + ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) + </select> + </mapper> -- Gitblit v1.9.1