From d2adac4e369165ec523c23e7ffd19fc5775d43b5 Mon Sep 17 00:00:00 2001 From: mrzhssss <pro6@qq.com> Date: 星期一, 11 四月 2022 08:14:14 +0800 Subject: [PATCH] Changes --- src/main/java/zy/cloud/wms/manager/controller/PickoutController.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 150 insertions(+), 8 deletions(-) diff --git a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java index 1e03a1c..ffabf05 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java @@ -6,10 +6,8 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; -import zy.cloud.wms.manager.entity.Pickout; -import zy.cloud.wms.manager.entity.PickoutDetl; -import zy.cloud.wms.manager.service.PickoutDetlService; -import zy.cloud.wms.manager.service.PickoutService; +import zy.cloud.wms.manager.entity.*; +import zy.cloud.wms.manager.service.*; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; @@ -27,6 +25,14 @@ private PickoutService pickoutService; @Autowired private PickoutDetlService pickoutDetlService; + @Autowired + private WaveService waveService; + @Autowired + private OrderService orderService; + @Autowired + private WaveDetlService waveDetlService; + @Autowired + private OrderDetlService orderDetlService; @RequestMapping(value = "/pickout/{id}/auth") @ManagerAuth @@ -44,8 +50,11 @@ EntityWrapper<Pickout> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} - return R.ok(pickoutService.selectPage(new Page<>(curr, limit), wrapper)); +// if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + wrapper.orderBy("wrk_sts",true); + Page<Pickout> pickoutPage = pickoutService.selectPage(new Page<>(curr, limit), wrapper); + + return R.ok(pickoutPage); } private void convert(Map<String, Object> map, EntityWrapper wrapper){ @@ -82,9 +91,12 @@ @ManagerAuth public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ - pickoutDetlService.delete(new EntityWrapper<PickoutDetl>() + Pickout picout = pickoutService.selectOne(new EntityWrapper<Pickout>() + .eq("id", id)); + pickoutDetlService.delete(new EntityWrapper<PickoutDetl>() .eq("head_id",id)); pickoutService.deleteById(id); + pickoutService.updateWaveStatus(picout.getWaveNo()); } return R.ok(); } @@ -119,11 +131,141 @@ @RequestMapping(value = "/pickout/check/column/auth") @ManagerAuth public R query(@RequestBody JSONObject param) { - Wrapper<Pickout> wrapper = new EntityWrapper<Pickout>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + Wrapper<Pickout> wrapper = new EntityWrapper<Pickout>() + .eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); if (null != pickoutService.selectOne(wrapper)){ return R.parse(BaseRes.REPEAT).add(getComment(Pickout.class, String.valueOf(param.get("key")))); } return R.ok(); } + /** + * 鎵撳嵃瀹屾垚涔嬪悗,灏�'鏈墦鍗�'鐘舵�佹浛鎹负'鎷h揣涓�' + * @param pickout + * @return + */ + @RequestMapping("/pickout/print/auth") + @ManagerAuth + public R printed(@RequestBody Pickout pickout){ + /** + * 鎵撳嵃瀹屾垚,鍚戝悗鍙版洿鏂版暟鎹� + */ + Date now = new Date(); + pickout.setPrintTimes(pickout.getPrintTimes() + 1); + pickout.setUpdateTime(now); + pickout.setUpdateBy(getUserId().intValue()); + pickout.setPickStaff(getUserId()); + pickout.setPickStart(now); + pickout.setWrkSts(2L); + pickoutService.update(pickout,new EntityWrapper<Pickout>() + .eq("id",pickout.getId())); + return R.ok(); + } + + /** + * 鐐瑰嚮瀹屾垚鎸夐挳鏃�,灏嗙姸鎬佷粠'鎷h揣涓�'璋冩暣鑷�'宸插畬鎴�' + */ + @RequestMapping("/pickout/done/auth") + @ManagerAuth + public R donePickOut(@RequestBody Pickout pickout){ + HashSet<String> orderNos = new HashSet<>(); + /** + * 鍙嶅啓鎷h揣鍗� + */ + pickout.setWrkSts(3L); + pickout.setPickEnd(new Date()); + pickoutService.update(pickout,new EntityWrapper<Pickout>() + .eq("id",pickout.getId())); + List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>() + .eq("head_id", pickout.getId())); + if (Cools.isEmpty(pickoutDetls)) { + return R.error("鎵句笉鍒版嫞璐у崟鏄庣粏"); + } + /** + * 鍙嶅啓娉㈡ + */ + Wave wave = waveService.selectOne(new EntityWrapper<Wave>() + .eq("wave_no", pickout.getWaveNo())); + if (Cools.isEmpty(wave)) { + return R.error("鎵句笉鍒板搴旀尝娆�"); + } + wave.setStatus((short) 2); + waveService.update(wave,new EntityWrapper<Wave>() + .eq("id",wave.getId())); + List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() + .eq("wave_id", wave.getId())); + + + if (Cools.isEmpty(waveDetls)) { + return R.error("鎵句笉鍒板搴旀尝娆℃槑缁�"); + } + + /** + * 鍙嶅啓鍑哄簱璁㈠崟 + */ + for (WaveDetl waveDetl : waveDetls) { + String[] split = waveDetl.getOrderNos().split(","); + for (String s : split) { + orderNos.add(s); + } + } + + /** + * 寰幆鎵�鏈夋嫞璐у崟鏄庣粏,渚濇鍒嗛厤缁欐墍鏈夊嚭搴撳崟 + */ + for (PickoutDetl pickoutDetl : pickoutDetls) { + //鑾峰彇鏈娉㈡鐢熸垚鎷h揣鍗曚箣鍚�,璇ョ墿鏂欐�诲叡鎹′簡澶氬皯 + Double anfme = pickoutDetl.getAnfme(); + String matnr = pickoutDetl.getMatnr(); + /** + * 鑾峰彇鎵�鏈夌殑鐗╂枡鐩稿悓,涓旇鍖呭惈鍦ㄦ尝娆℃槑缁嗛噷鐨勫嚭搴撹鍗� + */ + List<OrderDetl> orderDetls = orderDetlService.selectOutList(matnr,new ArrayList<String>(orderNos)); + for (OrderDetl orderDetl : orderDetls) { + /** + * 濡傛灉鎷h揣鍗曠殑鍓╀綑鏁伴噺绛変簬0,浠h〃璇ョ墿鏂欏凡缁忓垎閰嶅畬鎴�,鐩存帴break + */ + if (anfme == 0.0 ){ + break; + } + /** + * 濡傛灉鎷h揣鍗曠殑鏁伴噺澶т簬璇ュ嚭搴撳崟鐨勬暟閲�,鐩存帴鎶婂嚭搴撴墍闇�閲�(out_qty)鎷夋弧 + */ + if (anfme >= (orderDetl.getAnfme() - orderDetl.getOutQty())){ + orderDetl.setOutQty(orderDetl.getAnfme()); + anfme = anfme - (orderDetl.getAnfme() - orderDetl.getOutQty()); + + orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>() + .eq("id",orderDetl.getId())); + continue; + } + /** + * 濡傛灉鎷h揣鍗曠殑鏁伴噺灏忎簬鍑哄簱鍗曠殑鏁伴噺,璇佹槑璇ユ嫞璐у崟鐨勭墿鏂欏凡缁忎笉澶熷垎浜�,灏� + */ + if (anfme < (orderDetl.getAnfme() - orderDetl.getOutQty())){ + orderDetl.setOutQty(anfme); + anfme = 0.0; + orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>() + .eq("id",orderDetl.getId())); + } + } + } + for (String orderNo : orderNos) { + Order order = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", orderNo)); + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>() + .eq("order_no", orderNo)); + for (OrderDetl orderDetl : orderDetls) { + if (orderDetl.getAnfme() == orderDetl.getOutQty()){ + break; + } + } + order.setSettle(4L); + orderService.update(order,new EntityWrapper<Order>() + .eq("order_no",orderNo)); + } + + return R.ok(); + } + } -- Gitblit v1.9.1