From d2b8972b4f1bb1869a377a15929bdf0413125a1d Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期三, 12 二月 2025 13:05:57 +0800 Subject: [PATCH] 导入时备注是实验料,质量状态设置为实验料,三种出库后都能补传质量指标 --- src/main/java/com/zy/asrs/controller/PakoutController.java | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 276 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/PakoutController.java b/src/main/java/com/zy/asrs/controller/PakoutController.java index 17a8425..1e65ee5 100644 --- a/src/main/java/com/zy/asrs/controller/PakoutController.java +++ b/src/main/java/com/zy/asrs/controller/PakoutController.java @@ -1,21 +1,29 @@ package com.zy.asrs.controller; -import com.alibaba.fastjson.JSONArray; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.core.common.DateUtils; -import com.zy.asrs.entity.Pakout; -import com.zy.asrs.service.PakoutService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.common.R; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.entity.result.PakoutVo; +import com.zy.asrs.service.*; import com.zy.common.web.BaseController; +import com.zy.system.entity.User; +import org.springframework.beans.BeanUtils; 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,6 +31,14 @@ @Autowired private PakoutService pakoutService; + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private ManLocDetlService manLocDetlService; + @Autowired + private PlaService plaService; @RequestMapping(value = "/pakout/{id}/auth") @ManagerAuth @@ -40,6 +56,12 @@ EntityWrapper<Pakout> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); + + User user = getUser(); + if (user.getRoleId() != 2 || user.getRoleId() != 24) { + wrapper.eq("create_by", user.getId()); + } + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} return R.ok(pakoutService.selectPage(new Page<>(curr, limit), wrapper)); } @@ -52,19 +74,217 @@ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); } else { - wrapper.like(entry.getKey(), val); + wrapper.eq(entry.getKey(), val); } } } @RequestMapping(value = "/pakout/add/auth") @ManagerAuth - public R add(Pakout pakout) { - pakoutService.insert(pakout); - return R.ok(); + public R add(@RequestBody OrderDomainParam param) { + if (Cools.isEmpty(param)){ + return R.error("鏁版嵁寮傚父"); + } + if (!Cools.isEmpty(param.getOrderNo())){ + Order order = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(order)){ + return R.error("鍗曟嵁涓嶅瓨鍦�"); + } + List<OrderDetl> orderDetls =orderDetlService.selectList(new EntityWrapper<OrderDetl>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(orderDetls)){ + return R.error("鍗曟嵁鏄庣粏涓虹┖"); + } + for (OrderDetl orderDetl : orderDetls){ + List<ManLocDetl> manLocDetls=null; + try{ + if (Cools.isEmpty(orderDetl.getBatch())){ + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + ); + }else { + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + .eq("batch",orderDetl.getBatch()) + ); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + + if (!Cools.isEmpty(manLocDetls)){ + for (ManLocDetl manLocDetl:manLocDetls){ + Double statusAnfme = 0.0; + if (Cools.isEmpty(manLocDetl.getStatus())){ + manLocDetl.setStatus(1); + } + try{ + if (manLocDetl.getStatus$().equals("绂佺敤")){ + if (Cools.isEmpty(manLocDetl.getBatch())){ + List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (Pakout manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + }else { + List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("batch",manLocDetl.getBatch()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (Pakout manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + } + } + }catch (Exception e){ + return R.error("鏌ヨ搴撳瓨绂佺敤鏁伴噺澶辫触"); + } + Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()); + if (orderDetl.getAnfme() > manLocDetl.getAnfme()-statusAnfme){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()-manLocDetl.getAnfme()-statusAnfme==0){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()<manLocDetl.getAnfme()-statusAnfme){ + Double a=manLocDetl.getAnfme(); + manLocDetl.setAnfme(orderDetl.getAnfme()); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + manLocDetl.setStatus(0); + manLocDetl.setAnfme(a); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else { + return R.error("绯荤粺鍑洪敊,璇疯仈绯荤鐞嗗憳"); + } + if (orderDetl.getAnfme()==0){ + break; + } + } + if (orderDetl.getAnfme()!=0){ + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"搴撳瓨涓嶈冻"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + }else { + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"鏃犲簱瀛�"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + + + } + orderService.updateSettle(order.getId(),(long)2,null); + }else { + return R.error("鍗曟嵁缂栧彿寮傚父"); + } + return R.ok("鎷h揣鍗曟坊鍔犳垚鍔�"); } - @RequestMapping(value = "/pakout/update/auth") + private R addPakOUT(ManLocDetl manLocDetl,String OrderNo){ + Pakout manPakOut=new Pakout(); + manPakOut.setWrkNo(OrderNo+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(manLocDetl.getAnfme()); + manPakOut.setLocNo(manLocDetl.getLocNo()); + manPakOut.setNodeId(manLocDetl.getNodeId()); + manPakOut.setMatnr(manLocDetl.getMatnr()); + manPakOut.setMaktx(manLocDetl.getMaktx()); + manPakOut.setSpecs(manLocDetl.getSpecs()); + manPakOut.setUnit(manLocDetl.getUnit()); + manPakOut.setBarcode(manLocDetl.getBarcode()); + manPakOut.setDocNum(OrderNo); + manPakOut.setStatus(0); + manPakOut.setCreateTime(new Date()); + if (!Cools.isEmpty(manLocDetl.getBatch())){ + manPakOut.setBatch(manLocDetl.getBatch()); + manPakOut.setUpdateTime(new Date()); + }else { + manPakOut.setUpdateTime(manLocDetl.getModiTime());//鐢ㄤ簬璇嗗埆璐х墿 + } + + manPakOut.setMemo(manLocDetl.getMemo()); + if (Cools.isEmpty(pakoutService.selectOne(new EntityWrapper<Pakout>().eq("doc_num",OrderNo)))){ + manPakOut.setName(manLocDetl.getMaktx()); + } + try{ + if (!pakoutService.insert(manPakOut)){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok(); + + } + + @RequestMapping(value = "/pakout/update/auth") @ManagerAuth public R update(Pakout pakout){ if (Cools.isEmpty(pakout) || null==pakout.getMatnr()){ @@ -75,12 +295,25 @@ } @RequestMapping(value = "/pakout/delete/auth") - @ManagerAuth - public R delete(@RequestParam(value="ids[]") Long[] ids){ - for (Long id : ids){ - pakoutService.deleteById(id); + @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟") + public R delete(@RequestParam String docNum){ + try{ + pakoutService.deletePakout(docNum); + }catch (Exception e){ + return R.error(e+""); } - return R.ok(); + return R.ok("鎷h揣鍗曞垹闄ゆ垚鍔�"); + } + + @RequestMapping(value = "/pakout/deleteDetl/auth") + @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟") + public R deleteDetl(@RequestParam String wrkNo){ + try{ + pakoutService.deletePakoutByWrkNo(wrkNo); + }catch (Exception e){ + return R.error(e+""); + } + return R.ok("鎷h揣鍗曞垹闄ゆ垚鍔�"); } @RequestMapping(value = "/pakout/export/auth") @@ -120,4 +353,33 @@ return R.ok(); } + @RequestMapping(value = "/pakout/printExport/auth") + // @ManagerAuth(memo = "鐩樼偣鍗曞鍑�") + public void export(HttpServletResponse response, @RequestParam String orderNo) throws IOException { + //浠庢暟鎹簱鏌ヨ鏁版嵁 + EntityWrapper<Pakout> locCheckEntityWrapper = new EntityWrapper<>(); + locCheckEntityWrapper.eq("doc_num",orderNo); + List<Pakout> list = pakoutService.selectList(locCheckEntityWrapper); + List<PakoutVo> pakoutVos=new ArrayList<>(); + + for (Pakout pakout: list) { + PakoutVo pakoutVo = new PakoutVo(); + Pla pla = plaService.selectOne(new EntityWrapper<Pla>() + .eq("batch", pakout.getBatch()) + .eq("package_no", pakout.getBarcode()) + .eq("brand", pakout.getMaktx())); + BeanUtils.copyProperties(pla,pakoutVo); + BeanUtils.copyProperties(pakout,pakoutVo); + pakoutVos.add(pakoutVo); + } + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("鎷h揣鍗�", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName+ orderNo + ".xlsx"); + EasyExcel.write(response.getOutputStream(), PakoutVo.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .sheet("琛�1") + .doWrite(pakoutVos); + } + } -- Gitblit v1.9.1