From e8708ef6700fdd0dcb26f2af567e08c3dd4ade16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Mon, 30 Sep 2024 16:21:28 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BD=9C=E4=B8=9A=E8=AE=A1=E5=88=92=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E7=9C=8B=E6=9D=BF=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=B8=8A?= =?UTF-8?q?=E6=96=99=E6=A0=B8=E5=AF=B9=E5=90=8E=E5=8F=AF=E8=A7=81=202.?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=AE=A1=E5=88=92=E6=89=A7=E8=A1=8C=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E4=BF=AE=E5=A4=8D=E5=90=84=E5=B7=A5=E5=BA=8F=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E6=B4=BE=E5=B7=A5=E5=92=8C=E6=8A=A5=E5=B7=A5bug=203.?= =?UTF-8?q?=E6=9C=88=E5=BA=A6=E8=AE=A1=E5=88=92=E5=90=88=E5=B9=B6=E5=88=86?= =?UTF-8?q?=E6=AE=B5=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/zyjh/ZyjhController.java | 39 ++-- .../jhgk/impl/DmSygdMxServiceImpl.java | 188 +++++++++++++----- src/main/resources/application-ws.yml | 2 +- .../resources/mappers/jhgk/DmQfxqMapper.xml | 23 ++- 4 files changed, 190 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java b/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java index d523c08..8458f08 100644 --- a/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java +++ b/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java @@ -162,6 +162,21 @@ public class ZyjhController { } } + /** + * 派工单查询 + * 可以查询所有已经上料的数据 + */ + @PostMapping("pgd2") + public ResultBean pgd2(@RequestBody PgdSearch search) throws NoSuchFieldException { + List list = zyjhService.list(Wrappers.query() + //执行查询 + + .isNull(search.getField()).ge("zt",11) +// .eq("",search.getUser()).lt("zt",62) + ); + return new ResultBean<>(list); + } + /** * 派工单查询 */ @@ -217,21 +232,6 @@ public class ZyjhController { return new ResultBean<>(list); } -// @PostMapping("sljhWeb") -// public ResultBean sljhWeb(@RequestBody SljhSearch search){ -// String date = DateUtil.date().toString("yyyy/MM/dd"); -// if (StrUtil.isAllNotEmpty(search.getSljhrq())){ -// date=search.getSljhrq(); -// } -// List list = zyjhService.list(Wrappers.lambdaQuery() -// .le(DmYdjh::getSljhrq, date) -// .eq(StrUtil.isNotEmpty(search.getDcch()),DmYdjh::getZt, search.getZt()) -// .eq(StrUtil.isNotEmpty(search.getDcch()),DmYdjh::getDcCh, search.getDcch()) -// .eq(StrUtil.isNotEmpty(search.getPl()),DmYdjh::getDcPl, search.getPl()) -// .eq(StrUtil.isNotEmpty(search.getKw()),DmYdjh::getKw, search.getKw()) -// ); -// return new ResultBean<>(list); -// } /** * 获取预处理垛位信息 @@ -294,4 +294,13 @@ public class ZyjhController { return new ResultBean<>(); } + @PostMapping("test") + public ResultBean test(@RequestBody Message msg){ + wsHandler.tip(msg.toJson()); + if (msg.getCode()==3000){ + wsHandler.zyjhzx(msg.toJson()); + } + return new ResultBean<>(); + } + } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java index d34385e..d976b20 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java @@ -2,7 +2,6 @@ package com.dsic.gj_erp.service.jhgk.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -10,37 +9,29 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jcsj.*; -import com.dsic.gj_erp.bean.jcsj.excel.PlExcel; import com.dsic.gj_erp.bean.jhgk.*; import com.dsic.gj_erp.bean.jhgk.dto.*; import com.dsic.gj_erp.bean.sy.Dm_zhbmp; import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository; import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.handler.dto.RealCapacity; -import com.dsic.gj_erp.mapper.jcsj.DmBomMapper; -import com.dsic.gj_erp.mapper.jcsj.EmGcrlMapper; import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper; -import com.dsic.gj_erp.mapper.jhgk.DmZrcjhMapper; -import com.dsic.gj_erp.service.jcsj.DmCzplpNewService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService; import com.dsic.gj_erp.service.jhgk.*; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Isolation; -import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.sql.Date; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -907,44 +898,151 @@ public class DmSygdMxServiceImpl extends ServiceImpl i return new ResultBean(sygdList); } + private List tqSygd2(String begin,String end){ + List slkw=Arrays.asList("7","8","9","5","6","15","11","14"); + List list = this.list(Wrappers.lambdaQuery().between(DmSygdMx::getJssj, begin, end)); + Map> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl())); + List list2=new ArrayList<>(); + //按批次合并为一行 + collect.forEach((key,val)->{ + Set plSet=new HashSet<>(); + DmYdjhxf dmYdjhxf = new DmYdjhxf(); + dmYdjhxf.setDcCh(key.split("_")[0]); + dmYdjhxf.setDcPl(key.split("_")[1]); + + AtomicReference bs= new AtomicReference<>(0); + AtomicReference yklm= new AtomicReference<>(0); + AtomicReference yksk= new AtomicReference<>(0); + AtomicReference eksk= new AtomicReference<>(0); + AtomicReference eksk2= new AtomicReference<>(0); + AtomicReference sksk= new AtomicReference<>(0); + AtomicReference skpt= new AtomicReference<>(0); + AtomicReference skbs= new AtomicReference<>(0); + AtomicReference skbs2= new AtomicReference<>(0); + val.forEach(item-> { + plSet.add(item.getDcFd()); + if (slkw.contains(item.getKw())){ + bs.updateAndGet(v -> v + 1); + } + if ("7".equals(item.getKw())){ + yklm.updateAndGet(v -> v + 1); + } + if ("8".equals(item.getKw())){ + yksk.updateAndGet(v -> v + 1); + } + if ("9".equals(item.getKw())){ + eksk.updateAndGet(v -> v + 1); + } + if ("5".equals(item.getKw())){ + eksk2.updateAndGet(v -> v + 1); + } + if ("14".equals(item.getKw())){ + sksk.updateAndGet(v -> v + 1); + } + if ("6".equals(item.getKw())){ + skpt.updateAndGet(v -> v + 1); + } + if ("15".equals(item.getKw())){ + skbs.updateAndGet(v -> v + 1); + } + if ("11".equals(item.getKw())){ + skbs2.updateAndGet(v -> v + 1); + } + }); + dmYdjhxf.setDcFd(String.join("/", plSet)); + dmYdjhxf.setBs(Double.valueOf(bs.get())); + + //上料日期 + DmSygdMx minSlrq=val.stream().filter(item->StrUtil.isNotEmpty(item.getSlrq())) + .min(Comparator.comparing(DmSygdMx::getSlrq)).get(); + dmYdjhxf.setSl(minSlrq.getSlrq()); + + //型材抛丸日期 + val.stream().filter(item -> "16".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getSlrq)).ifPresent(item -> dmYdjhxf.setXcpw(item.getSlrq())); + + //抛丸日期 + val.stream().filter(item->StrUtil.isNotEmpty(item.getPwrq())) + .min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setPw(item.getPwrq())); + + //一跨龙门数量 + dmYdjhxf.setYklm(yklm.get()+""); + //一跨数控数量 + dmYdjhxf.setYksk(yksk.get()+""); + //二跨数控数量 + dmYdjhxf.setEksk(eksk.get()+""); + + //二跨数控开始 + val.stream().filter(item -> "9".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setEkskks(item.getQgrq())); + + //二跨数控2 + dmYdjhxf.setEksk2(eksk2.get()+""); + //二跨数控2开始 + val.stream().filter(item -> "5".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setEkskks(item.getQgrq())); + + dmYdjhxf.setSksk(sksk.get()+""); + val.stream().filter(item->"14".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkskqgks(item.getQgrq())); + + dmYdjhxf.setSkpt(skpt.get()+""); + val.stream().filter(item->"6".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setPtks(item.getQgrq())); + + dmYdjhxf.setSkbs(skbs.get()+""); + val.stream().filter(item->"15".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkqgks(item.getQgrq())); + + dmYdjhxf.setSkbs2(skbs2.get()+""); + val.stream().filter(item->"11".equals(item.getKw())) + .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkbs2(item.getQgrq())); + + dmYdjhxf.setFdxq(val.get(0).getJssj()); + list2.add(dmYdjhxf); + }); + return list2; + } + @Transactional public List tqSygd1(String begin,String end){ - List list= baseMapper.tqSygd1(begin,end); - List list2=new ArrayList<>(); +// List list= baseMapper.tqSygd1(begin,end); +// List list2=new ArrayList<>(); + //1行分为两行 - for (DmYdjhxf l : list) { - DmYdjhxf ydjhxf1=new DmYdjhxf();//第二行 - ydjhxf1.setDcCh(l.getDcCh()); - ydjhxf1.setDcPl(l.getDcPl()); - String[] fds= l.getDcFd().split(" "); - double count= fds.length%2; - int index; - if (count>0){ - index= (fds.length/2)+1; - }else { - index= fds.length/2; - } - String fd1= Arrays.toString(Arrays.copyOfRange(fds, 0, index)).replace(","," ");// 截取索引0(包括)到索引index(不包括)的元素 - String fd2= Arrays.toString(Arrays.copyOfRange(fds, index, fds.length)).replace(","," "); - - l.setDcFd(fd1.substring(1,fd1.lastIndexOf("]"))); - ydjhxf1.setDcFd(fd2.substring(1,fd2.lastIndexOf("]"))); - ydjhxf1.setEksk(l.getEksk2()); - ydjhxf1.setEkskks(l.getEkskks2()); - if (StrUtil.isNotEmpty(l.getSkbs())){ - l.setZl("X");//4跨普通板 - } - if (StrUtil.isNotEmpty(l.getSkbs2())){ - ydjhxf1.setZl("Z");//2跨T型材腹板 - } - ydjhxf1.setSkbs(l.getSkbs2()); - ydjhxf1.setSkqgks(l.getSkqgks2()); - ydjhxf1.setFdxq(l.getFdxq()); - list2.add(l); - list2.add(ydjhxf1); - } +// for (DmYdjhxf l : list) { +// DmYdjhxf ydjhxf1=new DmYdjhxf();//第二行 +// ydjhxf1.setDcCh(l.getDcCh()); +// ydjhxf1.setDcPl(l.getDcPl()); +// String[] fds= l.getDcFd().split(" "); +// double count= fds.length%2; +// int index; +// if (count>0){ +// index= (fds.length/2)+1; +// }else { +// index= fds.length/2; +// } +// String fd1= Arrays.toString(Arrays.copyOfRange(fds, 0, index)).replace(","," ");// 截取索引0(包括)到索引index(不包括)的元素 +// String fd2= Arrays.toString(Arrays.copyOfRange(fds, index, fds.length)).replace(","," "); +// +// l.setDcFd(fd1.substring(1,fd1.lastIndexOf("]"))); +// ydjhxf1.setDcFd(fd2.substring(1,fd2.lastIndexOf("]"))); +// ydjhxf1.setEksk(l.getEksk2()); +// ydjhxf1.setEkskks(l.getEkskks2()); +// if (StrUtil.isNotEmpty(l.getSkbs())){ +// l.setZl("X");//4跨普通板 +// } +// if (StrUtil.isNotEmpty(l.getSkbs2())){ +// ydjhxf1.setZl("Z");//2跨T型材腹板 +// } +// ydjhxf1.setSkbs(l.getSkbs2()); +// ydjhxf1.setSkqgks(l.getSkqgks2()); +// ydjhxf1.setFdxq(l.getFdxq()); +// list2.add(l); +// list2.add(ydjhxf1); +// } - return list2; + return this.tqSygd2(begin,end); } } diff --git a/src/main/resources/application-ws.yml b/src/main/resources/application-ws.yml index e7f3638..2e17433 100644 --- a/src/main/resources/application-ws.yml +++ b/src/main/resources/application-ws.yml @@ -9,5 +9,5 @@ ws: maxHttpContentLength: 1048576 maxFramePayloadLength: 1048576 client: - url: ws://127.0.0.1:9000 + url: ws://192.168.13.9:9000 id: abc \ No newline at end of file diff --git a/src/main/resources/mappers/jhgk/DmQfxqMapper.xml b/src/main/resources/mappers/jhgk/DmQfxqMapper.xml index 539bb17..a7c56b0 100644 --- a/src/main/resources/mappers/jhgk/DmQfxqMapper.xml +++ b/src/main/resources/mappers/jhgk/DmQfxqMapper.xml @@ -2,8 +2,29 @@ - + +