From eddd13490f2d17c70841d468cf5cac3779f9886b Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期三, 24 四月 2024 15:02:42 +0800 Subject: [PATCH] 添加图号 --- src/main/java/com/zy/asrs/controller/LocDetlController.java | 198 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 194 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java index 90c99f6..c227b76 100644 --- a/src/main/java/com/zy/asrs/controller/LocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java @@ -1,5 +1,7 @@ package com.zy.asrs.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -10,12 +12,16 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; -import com.zy.asrs.entity.LocDetl; -import com.zy.asrs.service.LocDetlService; +import com.zy.asrs.entity.*; +import com.zy.asrs.mapper.LocDetlMapper; +import com.zy.asrs.service.*; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; import java.util.*; @RestController @@ -23,11 +29,44 @@ @Autowired private LocDetlService locDetlService; + @Autowired + private LocMastService locMastService; + @Autowired + private AdjDetlService adjDetlService; + + @Autowired + private LocDetlMapper locDetlMapper; + @Autowired + private MatService matService; + + @RequestMapping(value = "/locDetl/update") + public R update1() { + if (!locDetlService.updateLocNo("0402805", "0402804")) { + return R.error(); + } + return R.ok(); + } @RequestMapping(value = "/locDetl/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { return R.ok(locDetlService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/locDetl/auth") + @ManagerAuth + public R stockOutList(@RequestParam(value = "locNos[]") List<String> locNos){ + if (!locNos.isEmpty()) { + List<LocDetl> res = new ArrayList<>(); + for (String locNo : new HashSet<>(locNos)) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); + if (!locDetls.isEmpty()) { + res.addAll(locDetls); + } + } + return R.ok().add(res); + } + return R.parse(BaseRes.EMPTY); } @RequestMapping(value = "/stock/out/list/auth") @@ -47,7 +86,7 @@ return R.ok(locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class))); } - @RequestMapping(value = "/locDetl/list/auth") + @RequestMapping(value = "/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂 @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @@ -55,13 +94,29 @@ @RequestParam(required = false)String orderByType, @RequestParam(required = false)String condition, @RequestParam Map<String, Object> param){ - excludeTrash(param); +// String row = ""; EntityWrapper<LocDetl> 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(LocDetl.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 +"%'"); +// } return R.ok(locDetlService.selectPage(new Page<>(curr, limit), wrapper)); } + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ @@ -102,6 +157,78 @@ locDetlService.updateById(locDetl); return R.ok(); } + @RequestMapping(value = "/locDetl/updateBatch/auth") + @ManagerAuth(memo = "鍚堝悓鍙凤紙鎵瑰彿锛変慨鏀�") + public R updateBatch(LocDetl locDetl){ + if (Cools.isEmpty(locDetl) || null==locDetl.getMatnr()){ + return R.error("鍙傛暟寮傚父"); + }else if (locDetl.getBatch().equals(locDetl.getSku())){ + return R.error("鍓嶅悗鍚堝悓鍙蜂竴鑷达紝鏃犻渶淇敼锛侊紒锛�"); + } + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo())); + if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("F")){ + return R.error("搴撲綅鍙峰繀椤诲瓨鍦ㄥ苟涓斿簱浣嶇姸鎬佷负鈥淔鈥濓紒锛侊紒"); + } + try{ + LocDetl locDetlSource = locDetlService.selectItem(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch()); + if (Cools.isEmpty(locDetlSource) || (locDetl.getBatch()==null && locDetlSource.getBatch()!=null)){ + locDetlSource = locDetlService.selectOne(new EntityWrapper<LocDetl>() + .eq("loc_no",locDetl.getLocNo()).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getBatch())); + if (Cools.isEmpty(locDetlSource)){ + return R.error("寮傚父"); + } + } + LocDetl locDetlEnd = locDetlService.selectItem(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getSku()); + if (!Cools.isEmpty(locDetlEnd) && locDetl.getSku()==null && locDetlEnd.getBatch()!=null){ + locDetlEnd = locDetlService.selectOne(new EntityWrapper<LocDetl>() + .eq("loc_no",locDetl.getLocNo()).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getSku())); + } + AdjDetl adjDetlSource = new AdjDetl(locDetl.getLocNo(),locDetl.getMatnr(),locDetl.getBatch(),null,locDetlSource.getAnfme(),null,null,locDetlSource.getAnfme()-locDetl.getAnfme(),null,"淇敼鍚堝悓鍙�:"+locDetl.getBatch()+"鈫�"+locDetl.getSku(),getUserId(),new Date(),getUserId(),new Date()); + AdjDetl adjDetlEnd=null; + if (Cools.isEmpty(locDetlEnd)){ + adjDetlEnd = new AdjDetl(locDetl.getLocNo(),locDetl.getMatnr(),locDetl.getSku(),null,0.0,null,null,locDetl.getAnfme(),null,"淇敼鍚堝悓鍙�:"+locDetl.getBatch()+"鈫�"+locDetl.getSku(),getUserId(),new Date(),getUserId(),new Date()); + }else { + adjDetlEnd = new AdjDetl(locDetl.getLocNo(),locDetl.getMatnr(),locDetl.getSku(),null,locDetlEnd.getAnfme(),null,null,locDetlEnd.getAnfme()+locDetl.getAnfme(),null,"淇敼鍚堝悓鍙�:"+locDetl.getBatch()+"鈫�"+locDetl.getSku(),getUserId(),new Date(),getUserId(),new Date()); + } + if (locDetlSource.getAnfme()-locDetl.getAnfme()==0){ + if (Cools.isEmpty(locDetlEnd)){ + locDetlSource.setBatch(locDetl.getSku()); + if (locDetl.getBatch()==null || locDetl.getBatch()==""){ + locDetlService.update(locDetlSource,new EntityWrapper<LocDetl>() + .eq("loc_no",locDetlSource.getLocNo()).eq("matnr",locDetlSource.getMatnr()).isNull("batch").or().eq("batch","")); + }else { + locDetlService.update(locDetlSource,new EntityWrapper<LocDetl>() + .eq("loc_no",locDetlSource.getLocNo()).eq("matnr",locDetlSource.getMatnr()).eq("batch",locDetl.getBatch())); + } + }else { + locDetlService.updateAnfme(locDetlEnd.getAnfme()+locDetl.getAnfme(),locDetlEnd.getLocNo(),locDetlEnd.getMatnr(),locDetlEnd.getBatch()); + if (locDetl.getBatch()==null || locDetl.getBatch()==""){ + locDetlService.delete(new EntityWrapper<LocDetl>() + .eq("loc_no",locDetlSource.getLocNo()).eq("matnr",locDetlSource.getMatnr()).isNull("batch").or().eq("batch","")); + }else { + locDetlService.delete(new EntityWrapper<LocDetl>() + .eq("loc_no",locDetlSource.getLocNo()).eq("matnr",locDetlSource.getMatnr()).eq("batch",locDetlSource.getBatch())); + } + } + }else if (locDetlSource.getAnfme()>locDetl.getAnfme()){ + locDetlService.updateAnfme(locDetlSource.getAnfme()-locDetl.getAnfme(),locDetlSource.getLocNo(),locDetlSource.getMatnr(),locDetlSource.getBatch()); + if (Cools.isEmpty(locDetlEnd)){ + locDetlSource.setAnfme(locDetl.getAnfme()); + locDetlSource.setBatch(locDetl.getSku()); + locDetlService.insert(locDetlSource); + }else { + locDetlService.updateAnfme(locDetlEnd.getAnfme()+locDetl.getAnfme(),locDetlEnd.getLocNo(),locDetlEnd.getMatnr(),locDetlEnd.getBatch()); + } + }else { + return R.error("杈撳叆鏁伴噺鏈夎锛岃瑙勮寖鎿嶄綔锛侊紒锛�"); + } + adjDetlService.insert(adjDetlSource); + adjDetlService.insert(adjDetlEnd); + }catch (Exception e){ + return R.error("寮傚父锛侊紒锛佽瑙勮寖鎿嶄綔锛侊紒锛�"); + } + return new R(201,"鍚堝悓鍙蜂慨鏀规垚鍔燂紝璇峰埛鏂伴〉闈紒锛侊紒"); + } @RequestMapping(value = "/locDetl/delete/auth") @ManagerAuth(memo = "搴撲綅鏄庣粏鍒犻櫎") @@ -122,7 +249,22 @@ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl")); + String row = ""; + if (map.get("row") != null) { + String chooseRow = (String) map.get("row"); + if (chooseRow.length() == 1) { + row = "0" + chooseRow; + map.remove("row"); + }else { + row = chooseRow; + map.remove("row"); + } + } convert(map, wrapper); + if (!row.equals("")){ + wrapper.and() + .where("loc_no like '" +row +"%'"); + } List<LocDetl> list = locDetlService.selectList(wrapper); return R.ok(exportSupport(list, fields)); } @@ -153,4 +295,52 @@ return R.ok(); } + @RequestMapping(value = "/locDetl/statis/auth") + @ManagerAuth + public R statis(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam Map<String, Object> param) { + Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class)); + for (LocDetl locDetl : stockStatis.getRecords()) { + Mat mat = matService.selectByMatnr(locDetl.getMatnr()); + if (mat != null) { + locDetl.sync(mat); + } + } + return R.ok().add(stockStatis); + } + + @Autowired + private LocDetlMapper LocDetlMapper; + + @RequestMapping(value = "/locDetl/statis/export") +// @ManagerAuth + public void statisExport(HttpServletResponse response) throws IOException { + List<LocDetl> excel = LocDetlMapper.getStockStatisExcel(); + for (LocDetl locDetl : excel) { + Mat mat = matService.selectByMatnr(locDetl.getMatnr()); + if (mat != null) { + locDetl.sync(mat); + } + } + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("搴撳瓨鏄庣粏缁熻鎶ヨ〃", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), LocDetl.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .sheet("琛�1") + .doWrite(excel); + } + + /** + * 鑾峰彇搴撳瓨鎬绘暟 + * @return + */ + @RequestMapping("/locDetl/count") + public R getAllCount(){ + Integer sum = locDetlService.sum(); + return R.ok(sum); + } + } -- Gitblit v1.9.1