From 40e9732910820207434c362396bffebbe8c2b447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Fri, 6 Dec 2024 11:40:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1.=E5=90=8C=E6=AD=A5=E5=B0=8F=E6=B1=A0?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=8A=A0=E5=B7=A5=E4=BF=A1=E6=81=AF,?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=A1=E6=81=AF=E6=98=BE=E7=A4=BA=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=202.=E4=BC=98=E5=8C=96=E7=9C=8B=E6=9D=BFpdf=E6=98=BE?= =?UTF-8?q?=E7=A4=BA,=E5=A2=9E=E5=8A=A0=E4=B8=8B=E6=8B=89=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/xiaochi/CutPlan.java | 2 +- .../controller/kban/KbanController.java | 8 +++ .../gj_erp/mapper/xiaochi/CutPlanMapper.java | 2 + .../gj_erp/mapper/xiaochi/DeviceMapper.java | 4 ++ .../com/dsic/gj_erp/service/ApiService.java | 2 +- .../com/dsic/gj_erp/service/KbanService.java | 7 +++ .../jhgk/impl/DmSygdMxServiceImpl.java | 1 + .../service/xiaochi/XiaoChiService.java | 59 ++++++++++--------- .../mappers/xiaochi/CutPlanMapper.xml | 11 ++-- .../mappers/xiaochi/DeviceMapper.xml | 14 +++++ 10 files changed, 73 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java index b5806dc..7c5e523 100644 --- a/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java +++ b/src/main/java/com/dsic/gj_erp/bean/xiaochi/CutPlan.java @@ -20,7 +20,7 @@ public class CutPlan extends Model { private String nestName; - private String nestNameSub1;//套料图号 + private String nestNameSub1;//套料图号 _V:切割;_K:划线 private String nestItaatu;//厚 diff --git a/src/main/java/com/dsic/gj_erp/controller/kban/KbanController.java b/src/main/java/com/dsic/gj_erp/controller/kban/KbanController.java index 07f4479..bfb8758 100644 --- a/src/main/java/com/dsic/gj_erp/controller/kban/KbanController.java +++ b/src/main/java/com/dsic/gj_erp/controller/kban/KbanController.java @@ -59,6 +59,14 @@ public class KbanController { @Value("${pdfUri}") private String pdfUri; + /** + * 设备状态及加工情况 + */ + @GetMapping("/getDeviceStatus") + public ResultBean getDeviceStatus() { + return new ResultBean<>(kbanService.getDeviceStatus()); + } + /** * 中日程表格数据 */ diff --git a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java index 994be3f..8425c77 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/CutPlanMapper.java @@ -9,4 +9,6 @@ public interface CutPlanMapper extends BaseMapper { List getCutPlanList(String st,String ed); void synBom_qgPgd(); + + } diff --git a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java index 039415e..002bdcd 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/xiaochi/DeviceMapper.java @@ -3,5 +3,9 @@ package com.dsic.gj_erp.mapper.xiaochi; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsic.gj_erp.bean.xiaochi.Device; +import java.util.List; + public interface DeviceMapper extends BaseMapper { + + List getDeviceStatus(); } diff --git a/src/main/java/com/dsic/gj_erp/service/ApiService.java b/src/main/java/com/dsic/gj_erp/service/ApiService.java index 03056d8..e103bf8 100644 --- a/src/main/java/com/dsic/gj_erp/service/ApiService.java +++ b/src/main/java/com/dsic/gj_erp/service/ApiService.java @@ -70,7 +70,7 @@ public class ApiService { if (syuserp.getIpAddress()==null ) { throw new CustomException(10201, "登陆失败,IP地址未配置!"); } - if (!syuserp.getIpAddress().equals(ip) ) { + if (!syuserp.getIpAddress().contains("all")&&!syuserp.getIpAddress().equals(ip) ) { throw new CustomException(10201, "登陆失败,IP地址未授权!"); } // if (StrUtil.isNotEmpty(syuserp.getMacAddress())&& !syuserp.getMacAddress().equals(macAddress)) { diff --git a/src/main/java/com/dsic/gj_erp/service/KbanService.java b/src/main/java/com/dsic/gj_erp/service/KbanService.java index b0c67ca..e7f24e3 100644 --- a/src/main/java/com/dsic/gj_erp/service/KbanService.java +++ b/src/main/java/com/dsic/gj_erp/service/KbanService.java @@ -7,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import com.dsic.gj_erp.bean.xiaochi.Device; +import com.dsic.gj_erp.mapper.xiaochi.DeviceMapper; import org.springframework.stereotype.Service; import com.dsic.gj_erp.bean.jhgk.DmYdjh; @@ -21,6 +23,11 @@ import lombok.AllArgsConstructor; public class KbanService { private final KbanMapper kbanMapper; + private final DeviceMapper deviceMapper; + + public List getDeviceStatus(){ + return deviceMapper.getDeviceStatus(); + } public Map zrcTable() { DateTime date = DateUtil.date(); 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 de60c37..10566a6 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 @@ -1064,6 +1064,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i //型材抛丸日期 val.stream().filter(item -> "16".equals(item.getKw())) + .filter(item->StrUtil.isNotEmpty(item.getSlrq())) .min(Comparator.comparing(DmSygdMx::getSlrq)).ifPresent(item -> dmYdjhxf.setXcpw(item.getSlrq())); //抛丸日期 diff --git a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java index c8e6b9e..1d2aea4 100644 --- a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java +++ b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java @@ -6,12 +6,15 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.cron.CronUtil; import cn.hutool.cron.task.Task; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; import com.dsic.gj_erp.bean.pgd.PgdQgjh; import com.dsic.gj_erp.bean.xiaochi.CutPlan; import com.dsic.gj_erp.bean.xiaochi.Device; import com.dsic.gj_erp.bean.xiaochi.XiaochiUser; import com.dsic.gj_erp.mapper.xiaochi.CutPlanMapper; +import com.dsic.gj_erp.mapper.xiaochi.DeviceMapper; import com.dsic.gj_erp.service.pgd.PgdQgjhService; +import com.dsic.gj_erp.service.zyjh.ZyjhService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -24,9 +27,10 @@ import java.util.stream.Collectors; @AllArgsConstructor public class XiaoChiService{ - private final PgdQgjhService qgjhService; + private final ZyjhService zyjhService; private final CutPlanMapper mapper; + /** * 小池同步,先使用手动拉取方式,让钢加人员进行检查 * 后续改为自动拉取 @@ -40,50 +44,47 @@ public class XiaoChiService{ userMap.put(item.getEmployeeNumber(),item); }); Map deviceMap=new HashMap<>(); - devices.forEach(item->{ - deviceMap.put(item.getId(),item); - }); + devices.forEach(item-> deviceMap.put(item.getId(),item)); this.exe(userMap,deviceMap); } private void exe(Map userMap,Map deviceMap){ log.info("========小池同步开始==========="); - //todo sql查询时过滤划线数据 List cutPlans = mapper.getCutPlanList(DateUtil.lastMonth().toString(),DateUtil.today()) .stream().filter(item->StrUtil.isNotEmpty(item.getNestKakuyakuDate())).collect(Collectors.toList()); - List list=new ArrayList<>(); + List list=new ArrayList<>(); cutPlans.forEach(item->{ - PgdQgjh one = qgjhService.getOne(Wrappers.lambdaQuery() - .eq(PgdQgjh::getCzbh, item.getNestExtC02()) - .eq(PgdQgjh::getTlth, item.getNestNameSub1()) - .eq(PgdQgjh::getKw, item.getNestExtC03()) - .eq(PgdQgjh::getPl, item.getNestExtC04()) + DmYdjh one = zyjhService.getOne(Wrappers.lambdaQuery() + .eq(DmYdjh::getDcCh, item.getNestExtC02()) + .eq(DmYdjh::getTzbh, item.getNestNameSub1()) + .eq(DmYdjh::getKw, item.getNestExtC03()) + .eq(DmYdjh::getDcPl, item.getNestExtC04()) ); - if (ObjectUtil.isNotEmpty(one)){ - PgdQgjh _item=new PgdQgjh(); - _item.setId(one.getId()); - Optional.of(userMap.get(item.getNestExtC05())) - .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); - - Optional.of(deviceMap.get(item.getNestCutHo())) - .ifPresent(user-> _item.setQgsbbh(deviceMap.get(item.getNestCutHo()).getMachineName())); - _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); - _item.setQgksrq(item.getQgkssj()); - if (StrUtil.isNotEmpty(item.getQgjssj())){ - _item.setQgjsrq(item.getQgjssj()); - _item.setZt("09"); - } - list.add(_item); - } +// if (ObjectUtil.isNotEmpty(one)){ +// DmYdjh _item=new DmYdjh(); +// _item.setId(one.getId()); +// Optional.of(userMap.get(item.getNestExtC05())) +// .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); +// +// Optional.of(deviceMap.get(item.getNestCutHo())) +// .ifPresent(user-> _item.setQgsbbh(deviceMap.get(item.getNestCutHo()).getMachineName())); +// _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); +// _item.setQgksrq(item.getQgkssj()); +// if (StrUtil.isNotEmpty(item.getQgjssj())){ +// _item.setQgjsrq(item.getQgjssj()); +// _item.setZt("09"); +// } +// list.add(_item); +// } }); - qgjhService.updateBatchById(list,500); +// qgjhService.updateBatchById(list,500); log.info("========小池同步完成==========="); } private void exeAuto(Map userMap,Map deviceMap){ //CronUtil默认为分钟,目前未使用CronUtil.setMatchSecond(true)启动秒级任务,以下表示每30分钟执行一次 //每30分钟执行一次,获取小池今日加工并且未更新切割计划派工单的数据去更新派工单 - CronUtil.schedule("*/30 * * * * *", (Task) () -> { + CronUtil.schedule("* */30 * * * *", (Task) () -> { this.exe(userMap,deviceMap); }); CronUtil.start(); diff --git a/src/main/resources/mappers/xiaochi/CutPlanMapper.xml b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml index b5d0096..bc09fa8 100644 --- a/src/main/resources/mappers/xiaochi/CutPlanMapper.xml +++ b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml @@ -14,14 +14,13 @@ WHERE isnull(a.nest_ext_c02,'') != '' and a.nest_kakuyaku_date between #{st} and #{ed} and nest_cut_lengs>0 and not EXISTS( - select b.czbh as nest_ext_c02,b.kw as nest_ext_c03 ,b.pl as nest_ext_c04 - from pgd_qgjh b + select b.dc_ch as nest_ext_c02,b.kw as nest_ext_c03 ,b.dc_pl as nest_ext_c04 + from dm_ydjh b where - b.czbh=left(a.nest_ext_c02,datalength(a.nest_ext_c02)-1) - and b.tlth=a.nest_name_sub1 + b.dc_ch=left(a.nest_ext_c02,datalength(a.nest_ext_c02)-1) + and b.tzbh=a.nest_name_sub1 and b.kw=a.nest_ext_c03 - and b.pl=a.nest_ext_c04 - and (b.qgksrq is null or qgjsrq is null ) + and b.dcpl=a.nest_ext_c04 ) diff --git a/src/main/resources/mappers/xiaochi/DeviceMapper.xml b/src/main/resources/mappers/xiaochi/DeviceMapper.xml index deeaac6..270c3c3 100644 --- a/src/main/resources/mappers/xiaochi/DeviceMapper.xml +++ b/src/main/resources/mappers/xiaochi/DeviceMapper.xml @@ -2,4 +2,18 @@ + From 8fc046bd0df6f2f43e34724110a7652596caf4f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Tue, 10 Dec 2024 14:06:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E6=9C=88=E5=BA=A6=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/jhgk/impl/YdjhImportService.java | 573 ++++++++++++++++++ 1 file changed, 573 insertions(+) create mode 100644 src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java new file mode 100644 index 0000000..bb36021 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java @@ -0,0 +1,573 @@ +package com.dsic.gj_erp.service.jhgk.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jcsj.DmBom; +import com.dsic.gj_erp.bean.jhgk.DmSygd; +import com.dsic.gj_erp.bean.jhgk.DmSygdMx; +import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj; +import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel; +import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper; +import com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper; +import com.dsic.gj_erp.service.jhgk.DmSygdMxLjService; +import com.dsic.gj_erp.service.jhgk.DmSygdMxService; +import com.dsic.gj_erp.service.jhgk.DmSygdService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +@Service +@AllArgsConstructor +public class YdjhImportService extends ServiceImpl { + + private final DmSygdxqMapper sygdxqMapper; + private final DmSygdMxLjService ljService; + + @Transactional(rollbackFor = Exception.class) + public void handler(List objList){ + List qwb = objList.stream().filter(JhxfExcel::isAvailable) + .filter(item->!item.getDcPl().contains("-"))//去除T型材 + .filter(item->!item.getDcPl().contains("/"))//去除T型材 + .filter(item->item.getDcFd()!=null) + .filter(item -> item.getDcPl().contains("Q")).collect(Collectors.toList()); + this.execute(qwb); + + List list = objList.stream().filter(JhxfExcel::isAvailable) + .filter(item->!item.getDcPl().contains("-"))//去除T型材 + .filter(item->!item.getDcPl().contains("/"))//去除T型材 + .filter(item->item.getDcFd()!=null) + .filter(item -> !item.getDcPl().contains("Q")).collect(Collectors.toList()); + this.execute(list); + } + +// @Transactional(rollbackFor = Exception.class) +// public void handlerLj(List mxList){ +// //处理零件信息 +// List ljList = sygdxqMapper.getSygdLjMx(begin,end); +// ljList.forEach(lj-> mxList.forEach(mx->{ +// if (lj.getDcch().equals(mx.getDcCh()) +// &&lj.getPl().equals(mx.getDcPl()) +// && (StrUtil.isBlank(lj.getTzbh())||lj.getTzbh().equals(mx.getTzbh()))){ +// lj.setParentId(mx.getId()); +// } +// })); +// ljService.saveBatch(ljList,500); +// } + + /** + * 月度计划导入,不使用月度计划只能排产功能前提下使用该功能导入月度计划 + */ + @Transactional(rollbackFor = Exception.class) + public void execute(List objList) { + objList.forEach(item->{ + if (item.getDcPl().contains("A")){ + item.setDcPl(item.getDcPl().replace("A","")); + } + + if (item.getDcPl().contains("B")){ + item.setDcPl(item.getDcPl().replace("B","")); + } + + if (item.getDcPl().contains("C")){ + item.setDcPl(item.getDcPl().replace("C","")); + } + + if (item.getDcPl().contains("Q")){ + item.setDcPl(item.getDcPl().replace("Q","")); + item.setQwbBs(true); + } + + String format = String.format("%03d", Integer.parseInt(item.getDcPl())); + item.setDcPl(format); + + String[] dcfd=item.getDcFd().split("\\."); + + for (int fdIndex=0;fdIndex() + .eq("dc_ch",item.getDcCh()) + .eq("dc_pl",item.getDcPl()) + .eq("dc_fd",dcFd) + ); + ljService.remove(new QueryWrapper() + .eq("dcch",item.getDcCh()) + .eq("pl",item.getDcPl()) + .eq("fd",dcFd) + ); + List addList=new ArrayList<>(); + + if (!item.isAvailable()){ + addList.add(this.initDefault(item,dcFd)); + continue; + } + + List ljList = sygdxqMapper.getSygdLjMx1(item.getDcCh(), item.getDcPl(),dcFd); + + List sygdMxes; + if (item.getQwbBs()){ + sygdMxes = this.initBySl(item,ljList.stream() + .filter(it->"3".equals(it.getTzbh().substring(5,6))) + .collect(Collectors.toList()),dcFd + ); + }else{ + sygdMxes = this.initBySl(item,ljList.stream() + .filter(it->!"3".equals(it.getTzbh().substring(5,6))) + .collect(Collectors.toList()),dcFd + ); + } + + addList.addAll(sygdMxes); + + int _index=0; + int start=0; + int yklmbs=0; + try { + yklmbs=Integer.parseInt(item.getYklm()); + }catch (Exception ignored){} + if (yklmbs>0){ + if (!sygdMxes.isEmpty()){ + _index+=yklmbs; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},一垮龙门板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateByYklm(item,sygdMxes.get(i)); + } + start+=yklmbs; + }else{ + List list = this.initByYklm(item, yklmbs,ljList,dcFd); + addList.addAll(list); + } + } + + int yksk=0; + try { + yksk=Integer.parseInt(item.getYksk()); + }catch (Exception ignored){} + if (yksk>0){ + if (!sygdMxes.isEmpty()){ + _index+=yksk; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},一垮数控板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateByYksk(item,sygdMxes.get(i)); + } + start+=yksk; + }else{ + List list = this.initByYksk(item, yksk,ljList,dcFd); + addList.addAll(list); + } + } + + int eklmbs=0; + try { + eklmbs=Integer.parseInt(item.getEklmbs()); + }catch (Exception ignored){} + if (eklmbs>0){ + if (!sygdMxes.isEmpty()){ + _index+=eklmbs; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},二垮龙门板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateByEklm(item,sygdMxes.get(i)); + } + start+=eklmbs; + }else{ + List list = this.initByEklmbs(item, eklmbs,ljList,dcFd); + addList.addAll(list); + } + } + + int eksk=0; + try { + eksk=Integer.parseInt(item.getEksk()); + }catch (Exception ignored){} + if (eksk>0){ + if (!sygdMxes.isEmpty()){ + _index+=eksk; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},二垮数控板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateByEksk(item,sygdMxes.get(i)); + } + start+=eksk; + }else{ + List list = this.initByEksk(item, eksk,ljList,dcFd); + addList.addAll(list); + } + } + + int sksk=0; + try { + sksk=Integer.parseInt(item.getSksk()); + }catch (Exception ignored){} + if (sksk>0){ + if (!sygdMxes.isEmpty()){ + _index+=sksk; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮数控板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateBySksk(item,sygdMxes.get(i)); + } + start+=sksk; + }else{ + List list = this.initBySksk(item, sksk,ljList,dcFd); + addList.addAll(list); + } + } + + int skpt=0; + try { + skpt=Integer.parseInt(item.getSkpt()); + }catch (Exception ignored){} + if (skpt>0){ + if (!sygdMxes.isEmpty()){ + _index+=skpt; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮平铁板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateBySkpt(item,sygdMxes.get(i)); + } + start+=skpt; + }else{ + List list = this.initBySkpt(item, skpt,ljList,dcFd); + addList.addAll(list); + } + } + + int skbs=0; + try { + skbs=Integer.parseInt(item.getSkbs()); + }catch (Exception ignored){} + if (skbs>0){ + if (!sygdMxes.isEmpty()){ + _index+=skbs; + if (_index>sygdMxes.size()){ + _index=sygdMxes.size(); + //throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮数控板数超过上料张数",item.getDcCh(),item.getDcPl())); + } + for (int i=start;i<_index;i++){ + this.updateBySkbs(item,sygdMxes.get(i)); + } + start+=skbs; + }else{ + List list = this.initBySkbs(item, skbs,ljList,dcFd); + addList.addAll(list); + } + } + this.saveBatch(addList); + + ljList.forEach(lj-> addList.forEach(mx->{ + if (lj.getDcch().equals(mx.getDcCh()) + &&lj.getPl().equals(mx.getDcPl()) + && (StrUtil.isBlank(lj.getTzbh())||lj.getTzbh().equals(mx.getTzbh()))){ + lj.setParentId(mx.getId()); + } + })); + ljService.saveBatch(ljList,500); + } + }); + } + + private DmSygdMx initDefault(JhxfExcel item,String dcFd){ + DmSygdMx dmSygdMx = new DmSygdMx(); + dmSygdMx.setDcCh(item.getDcCh()); + dmSygdMx.setDcPl(item.getDcPl()); + dmSygdMx.setDcFd(dcFd); + dmSygdMx.setJssj(item.getFdxq()); + if (item.getQwbBs()){ + dmSygdMx.setQbs("1"); + } + return dmSygdMx; + } + + private List initBySl(JhxfExcel item,List bomList,String dcFd){ + int slbs=0; + try { + slbs=Integer.parseInt(item.getBs1()); + }catch (Exception ignored){} + + List addList=new ArrayList<>(); + + if (slbs>0){ + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initBySl(item,list.get(i),dcFd); + addList.add(init); + } + } + return addList; + } + + private List initByYklm(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initByYklm(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initByYksk(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initByYksk(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initByEklmbs(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initByEklmbs(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initByEksk(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initByEksk(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initBySksk(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initBySksk(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initBySkpt(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initBySkpt(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private List initBySkbs(JhxfExcel item,int sl,List bomList,String dcFd){ + List addList=new ArrayList<>(); + if (bomList.isEmpty()){ + DmSygdMx dmSygdMx = this.initDefault(item,dcFd); + addList.add(dmSygdMx); + return addList; + } + ArrayList list = bomList.stream().collect( + Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new) + ); + for(int i=0;i=list.size()){ + break; + } + DmSygdMx init = this.initBySkbs(item,list.get(i),dcFd); + addList.add(init); + } + return addList; + } + + private void updateByYklm(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("7"); + dmSygdMx.setQgrq(item.getYkpkjs()); + } + + private void updateByYksk(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("8"); + dmSygdMx.setQgrq(item.getYkpkjs()); + } + + private void updateByEklm(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("5"); + dmSygdMx.setQgrq(item.getLmqgks()); + } + + private void updateByEksk(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("9"); + dmSygdMx.setQgrq(item.getEkskks()); + } + + private void updateBySksk(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("14"); + dmSygdMx.setQgrq(item.getSkskqgks()); + dmSygdMx.setQjgrq(item.getQptjs()); + } + + private void updateBySkpt(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("6"); + dmSygdMx.setQgrq(item.getPtks()); + } + + private void updateBySkbs(JhxfExcel item, DmSygdMx dmSygdMx){ + dmSygdMx.setKw("15"); + dmSygdMx.setQgrq(item.getPkqgjs()); + } + + private DmSygdMx initBySl(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + dmSygdMx.setSlrq(item.getSl()); + dmSygdMx.setXcpw(item.getXcpw()); + dmSygdMx.setPwrq(item.getPw()); + return dmSygdMx; + } + + private DmSygdMx initByYklm(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateByYklm(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initByYksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateByYksk(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initByEklmbs(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateByEklm(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initByEksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateByEksk(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initBySksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateBySksk(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initBySkpt(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateBySkpt(item,dmSygdMx); + return dmSygdMx; + } + + private DmSygdMx initBySkbs(JhxfExcel item, DmSygdMxLj bom,String dcFd){ + DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom); + dmSygdMx.setDcFd(dcFd); + this.updateBySkbs(item,dmSygdMx); + return dmSygdMx; + } + +} From a1a7104d4293e4f5aee5ba7ca859cfefb7428f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Tue, 10 Dec 2024 15:28:01 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=E5=B0=8F=E6=B1=A0=E5=90=8C=E6=AD=A5=202.?= =?UTF-8?q?=E6=9C=88=E5=BA=A6=E8=AE=A1=E5=88=92=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/jhgk/DmSygdMx.java | 6 ++ .../com/dsic/gj_erp/bean/jhgk/DmYdjh.java | 7 ++ .../gj_erp/bean/jhgk/excel/JhxfExcel.java | 8 +++ .../controller/jhgk/DmSygdMxController.java | 7 +- .../gj_erp/listeners/ExcelJhxfListener.java | 24 +++---- .../gj_erp/mapper/jhgk/DmSygdMxMapper.java | 5 ++ .../gj_erp/mapper/jhgk/DmSygdxqMapper.java | 2 + .../jhgk/impl/DmSygdMxServiceImpl.java | 38 +++++++++-- .../service/jhgk/impl/YdjhImportService.java | 25 +++++++ .../service/xiaochi/XiaoChiService.java | 55 +++++++++------- .../resources/mappers/jhgk/DmSygdMxMapper.xml | 14 ++++ .../resources/mappers/jhgk/DmSygdxqMapper.xml | 66 +++++++++++++++++++ .../mappers/xiaochi/CutPlanMapper.xml | 22 +++---- 13 files changed, 224 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdMx.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdMx.java index a79b3be..03e7627 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdMx.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdMx.java @@ -92,6 +92,9 @@ public class DmSygdMx implements Serializable { @ApiModelProperty(value = "上料日期") private String slrq; + @ApiModelProperty(value = "型材抛丸日期") + private String xcpw; + private String slsb; @ApiModelProperty(value = "上料人员") @@ -124,6 +127,9 @@ public class DmSygdMx implements Serializable { @ApiModelProperty(value = "切割日期") private String qgrq; + @ApiModelProperty(value = "切割结束") + private String qgjs; + @ApiModelProperty(value = "抛丸设备") private String pwsb; diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java index 46607e2..8b6a869 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java @@ -392,6 +392,13 @@ public class DmYdjh implements Serializable { public void setZtForSl(){ this.zt=ZyjhzxEnum.SLFK.code; } + public void setZtForHXFK(){ + this.zt=ZyjhzxEnum.HXFK.code; + } + public void setZtForQGFK(){ + this.zt=ZyjhzxEnum.QGFK.code; + } + public static String getSlZt(){ return ZyjhzxEnum.SLFK.code; } diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/JhxfExcel.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/JhxfExcel.java index fd09752..11409cc 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/JhxfExcel.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/excel/JhxfExcel.java @@ -1,5 +1,6 @@ package com.dsic.gj_erp.bean.jhgk.excel; +import cn.hutool.core.util.StrUtil; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; import io.swagger.annotations.ApiModelProperty; @@ -204,4 +205,11 @@ public class JhxfExcel { @ExcelProperty("备注") private String bz; + private Boolean qwbBs=false; + + public boolean isAvailable(){ + return !StrUtil.isAllBlank(this.sl,this.xcpw,this.pw,this.dbqgks,this.ykpkjs,this.lmqgks,this.lmqgjs, + this.ekskks,this.ekpkjs,this.skskqgks,this.skpkjs,this.ptks,this.ptjs,this.qpt_zjs,this.qptjs, + this.qwbjs,this.fbqgks,this.fbqgjs,this.skqgks,this.pkqgjs,this.mbjb,this.xcmb,this.fdxq,this.gdjs); + } } diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java index a929cdb..146781d 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdMxController.java @@ -13,6 +13,7 @@ import com.dsic.gj_erp.listeners.ExcelJhxfListener; import com.dsic.gj_erp.service.jcsj.EmGcrlService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService; import com.dsic.gj_erp.service.jhgk.DmSygdMxService; +import com.dsic.gj_erp.service.jhgk.impl.YdjhImportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -34,6 +35,9 @@ import java.util.stream.Collectors; @RequestMapping("/dmSygdMx") public class DmSygdMxController { + @Autowired + private YdjhImportService ydjhImportService; + @Autowired private DmSygdMxService service; @Autowired @@ -145,7 +149,8 @@ public class DmSygdMxController { EasyExcel.read(file.getInputStream(), JhxfExcel.class, objectListener).sheet(0).headRowNumber(1).doRead(); List objList = objectListener.getObjectList(); - service.ydjhImport(objList); + ydjhImportService.handler(objList); +// service.ydjhImport(objList); return new ResultBean(); diff --git a/src/main/java/com/dsic/gj_erp/listeners/ExcelJhxfListener.java b/src/main/java/com/dsic/gj_erp/listeners/ExcelJhxfListener.java index c100a34..98c9d2b 100644 --- a/src/main/java/com/dsic/gj_erp/listeners/ExcelJhxfListener.java +++ b/src/main/java/com/dsic/gj_erp/listeners/ExcelJhxfListener.java @@ -46,18 +46,18 @@ public class ExcelJhxfListener extends AnalysisEventListener { } boolean a=false; // 9个数量都为空 不导入 - if(StringUtils.isBlank(excelDemo.getBs1()) && - StringUtils.isBlank(excelDemo.getYklm())&& - StringUtils.isBlank(excelDemo.getYksk())&& - StringUtils.isBlank(excelDemo.getEklmbs())&& - StringUtils.isBlank(excelDemo.getEksk())&& - StringUtils.isBlank(excelDemo.getSksk())&& - StringUtils.isBlank(excelDemo.getSkpt())&& - StringUtils.isBlank(excelDemo.getFbbs())&& - StringUtils.isBlank(excelDemo.getSkbs()) - ){ - a=true; - } +// if(StringUtils.isBlank(excelDemo.getBs1()) && +// StringUtils.isBlank(excelDemo.getYklm())&& +// StringUtils.isBlank(excelDemo.getYksk())&& +// StringUtils.isBlank(excelDemo.getEklmbs())&& +// StringUtils.isBlank(excelDemo.getEksk())&& +// StringUtils.isBlank(excelDemo.getSksk())&& +// StringUtils.isBlank(excelDemo.getSkpt())&& +// StringUtils.isBlank(excelDemo.getFbbs())&& +// StringUtils.isBlank(excelDemo.getSkbs()) +// ){ +// a=true; +// } boolean b = ObjConvertUtils.checkObjAllFieldsIsNull(excelDemo); diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdMxMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdMxMapper.java index 93f990f..3b83253 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdMxMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdMxMapper.java @@ -2,6 +2,7 @@ package com.dsic.gj_erp.mapper.jhgk; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jcsj.DmBom; import com.dsic.gj_erp.bean.jcsj.EmGcrlDto; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj; @@ -42,4 +43,8 @@ public interface DmSygdMxMapper extends BaseMapper { List getGlgdxq(DmSygdMx sygdMx); List getMxMap(@Param("begin") String begin, @Param("end")String end); + + List getUniBom(String dcCh,String dcPl,String dcFd); + + List getBom(String dcCh,String dcPl,String dcFd); } diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java index 79a7bc5..cae1c51 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java @@ -22,4 +22,6 @@ public interface DmSygdxqMapper extends BaseMapper { List getSygdLjMx(String begin,String end); + List getSygdLjMx1(String dcch,String pl,String fd); + } 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 10566a6..e38efe2 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 @@ -994,14 +994,26 @@ public class DmSygdMxServiceImpl extends ServiceImpl i } public List tqSygd2(String begin,String end,String zt){ - List slkw=Arrays.asList("7","8","9","5","6","15","11","14"); List list = this.list(Wrappers.lambdaQuery() .eq(StrUtil.isNotEmpty(zt),DmSygdMx::getZt,zt) .between(DmSygdMx::getJssj, begin, end) .orderByAsc(DmSygdMx::getSlrq) ); - Map> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl())); + //合并曲外板项 + Map> collectQ = list.stream().filter(item->"1".equals(item.getQbs())).collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl())); + List qList = this.handler(collectQ,true); + qList=qList.stream().sorted(Comparator.comparing(item->item.getDcCh()+item.getDcPl())).collect(Collectors.toList()); + //合并非曲外板项 + Map> collect = list.stream().filter(item->!"1".equals(item.getQbs())).collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl())); + List list2 = this.handler(collect,false); + + list2=list2.stream().sorted(Comparator.comparing(item->item.getDcCh()+item.getDcPl())).collect(Collectors.toList()); + qList.addAll(list2); + return qList; + } + private List handler(Map> collect,boolean qflag){ + List slkw=Arrays.asList("7","8","9","5","6","15","11","14"); List list2=new ArrayList<>(); //按批次合并为一行 collect.forEach((key,val)->{ @@ -1010,6 +1022,9 @@ public class DmSygdMxServiceImpl extends ServiceImpl i DmYdjhxf dmYdjhxf = new DmYdjhxf(); dmYdjhxf.setDcCh(key.split("_")[0]); dmYdjhxf.setDcPl(key.split("_")[1]); + if (qflag){ + dmYdjhxf.setDcPl(dmYdjhxf.getDcPl()+"Q"); + } AtomicReference bs= new AtomicReference<>(0); AtomicReference yklm= new AtomicReference<>(0); @@ -1026,6 +1041,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i } tzbhList.add(item.getTzbh()); plSet.add(item.getDcFd()); + if (slkw.contains(item.getKw())){ bs.updateAndGet(v -> v + 1); } @@ -1064,8 +1080,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl i //型材抛丸日期 val.stream().filter(item -> "16".equals(item.getKw())) - .filter(item->StrUtil.isNotEmpty(item.getSlrq())) - .min(Comparator.comparing(DmSygdMx::getSlrq)).ifPresent(item -> dmYdjhxf.setXcpw(item.getSlrq())); + .filter(item->StrUtil.isNotEmpty(item.getXcpw())) + .min(Comparator.comparing(DmSygdMx::getXcpw)).ifPresent(item -> dmYdjhxf.setXcpw(item.getXcpw())); //抛丸日期 val.stream().filter(item->StrUtil.isNotEmpty(item.getPwrq())) @@ -1073,7 +1089,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i val.stream().filter(item->StrUtil.isNotEmpty(item.getGdjs())) - .min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setGdjs(item.getGdjs())); + .min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setGdjs(item.getGdjs())); //一跨龙门数量 dmYdjhxf.setYklm(yklm.get()+""); @@ -1098,6 +1114,9 @@ public class DmSygdMxServiceImpl extends ServiceImpl i val.stream().filter(item->"14".equals(item.getKw())) .filter(item->StrUtil.isNotEmpty(item.getQgrq())) .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkskqgks(item.getQgrq())); + val.stream().filter(item->"14".equals(item.getKw())) + .filter(item->StrUtil.isNotEmpty(item.getQgjs())) + .min(Comparator.comparing(DmSygdMx::getQgjs)).ifPresent(item -> dmYdjhxf.setSkpkjs(item.getQgjs())); dmYdjhxf.setSkpt(skpt.get()+""); val.stream().filter(item -> "6".equals(item.getKw())) @@ -1125,7 +1144,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i dmYdjhxf.setFdxq(val.get(0).getJssj()); list2.add(dmYdjhxf); }); - return list2.stream().sorted(Comparator.comparing(item->item.getDcCh()+item.getDcPl())).collect(Collectors.toList()); + return list2; } @Transactional @@ -1170,7 +1189,6 @@ public class DmSygdMxServiceImpl extends ServiceImpl i return this.tqSygd2(begin,end,null); } - @Override @Transactional(rollbackFor = Exception.class) public void ydjhImport(List objList) { @@ -1393,6 +1411,9 @@ public class DmSygdMxServiceImpl extends ServiceImpl i if(yklm>0){ zz=yklm; for (int j = 0; j < yklm; j++) { + if (j>=insertsOne.size()){ + break; + } // 生成数据 insertsOne.get(j).setKw("7"); insertsOne.get(j).setQgrq(jhxfExcel.getYkpkjs()); @@ -1412,6 +1433,9 @@ public class DmSygdMxServiceImpl extends ServiceImpl i if(yksk>0){ for (int j = 0; j =insertsOne.size()){ + break; + } insertsOne.get(zz+j).setKw("8"); insertsOne.get(zz+j).setQgrq(jhxfExcel.getYkpkjs()); zsl++; diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java index bb36021..cee991e 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java @@ -323,6 +323,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initBySl(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } } @@ -345,6 +348,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initByYklm(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -366,6 +372,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initByYksk(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -387,6 +396,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initByEklmbs(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -408,6 +420,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initByEksk(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -429,6 +444,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initBySksk(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -450,6 +468,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initBySkpt(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -471,6 +492,9 @@ public class YdjhImportService extends ServiceImpl { break; } DmSygdMx init = this.initBySkbs(item,list.get(i),dcFd); + if (item.getQwbBs()){ + init.setQbs("1"); + } addList.add(init); } return addList; @@ -499,6 +523,7 @@ public class YdjhImportService extends ServiceImpl { private void updateBySksk(JhxfExcel item, DmSygdMx dmSygdMx){ dmSygdMx.setKw("14"); dmSygdMx.setQgrq(item.getSkskqgks()); + dmSygdMx.setQgjs(item.getSkpkjs()); dmSygdMx.setQjgrq(item.getQptjs()); } diff --git a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java index 1d2aea4..8f7a902 100644 --- a/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java +++ b/src/main/java/com/dsic/gj_erp/service/xiaochi/XiaoChiService.java @@ -7,18 +7,16 @@ import cn.hutool.cron.CronUtil; import cn.hutool.cron.task.Task; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.dsic.gj_erp.bean.jhgk.DmYdjh; -import com.dsic.gj_erp.bean.pgd.PgdQgjh; import com.dsic.gj_erp.bean.xiaochi.CutPlan; import com.dsic.gj_erp.bean.xiaochi.Device; import com.dsic.gj_erp.bean.xiaochi.XiaochiUser; import com.dsic.gj_erp.mapper.xiaochi.CutPlanMapper; -import com.dsic.gj_erp.mapper.xiaochi.DeviceMapper; -import com.dsic.gj_erp.service.pgd.PgdQgjhService; import com.dsic.gj_erp.service.zyjh.ZyjhService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import java.util.*; import java.util.stream.Collectors; @@ -35,7 +33,7 @@ public class XiaoChiService{ * 小池同步,先使用手动拉取方式,让钢加人员进行检查 * 后续改为自动拉取 */ -// @PostConstruct + @PostConstruct public void handler(){ List users = new XiaochiUser().selectAll(); List devices=new Device().selectAll(); @@ -45,7 +43,8 @@ public class XiaoChiService{ }); Map deviceMap=new HashMap<>(); devices.forEach(item-> deviceMap.put(item.getId(),item)); - this.exe(userMap,deviceMap); + this.exeAuto(userMap,deviceMap); + //this.exe(userMap,deviceMap); } private void exe(Map userMap,Map deviceMap){ @@ -57,34 +56,42 @@ public class XiaoChiService{ DmYdjh one = zyjhService.getOne(Wrappers.lambdaQuery() .eq(DmYdjh::getDcCh, item.getNestExtC02()) .eq(DmYdjh::getTzbh, item.getNestNameSub1()) - .eq(DmYdjh::getKw, item.getNestExtC03()) .eq(DmYdjh::getDcPl, item.getNestExtC04()) ); -// if (ObjectUtil.isNotEmpty(one)){ -// DmYdjh _item=new DmYdjh(); -// _item.setId(one.getId()); -// Optional.of(userMap.get(item.getNestExtC05())) -// .ifPresent(user-> _item.setFkry(userMap.get(item.getNestExtC05()).getName())); -// -// Optional.of(deviceMap.get(item.getNestCutHo())) -// .ifPresent(user-> _item.setQgsbbh(deviceMap.get(item.getNestCutHo()).getMachineName())); -// _item.setFkrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm:ss")); -// _item.setQgksrq(item.getQgkssj()); -// if (StrUtil.isNotEmpty(item.getQgjssj())){ -// _item.setQgjsrq(item.getQgjssj()); -// _item.setZt("09"); -// } -// list.add(_item); -// } + if (ObjectUtil.isNotEmpty(one)){ + DmYdjh _item=new DmYdjh(); + _item.setId(one.getId()); + if (item.getNestCutLengs()>0){ + Optional.of(userMap.get(item.getNestExtC05())) + .ifPresent(user-> { + _item.setQgfkry(userMap.get(item.getNestExtC05()).getEmployeeNumber()); + }); + _item.setQgpgrq(item.getQgkssj()); + _item.setQgfkrq(item.getQgjssj()); + _item.setZtForQGFK(); + } + + if (item.getNestMarkLengs()>0){ + Optional.of(userMap.get(item.getNestExtC05())) + .ifPresent(user-> { + _item.setHxfkry(userMap.get(item.getNestExtC05()).getEmployeeNumber()); + + }); + _item.setHxpgrq(item.getQgkssj()); + _item.setHxfkrq(item.getQgjssj()); + _item.setZtForHXFK(); + } + list.add(_item); + } }); -// qgjhService.updateBatchById(list,500); + zyjhService.updateBatchById(list,500); log.info("========小池同步完成==========="); } private void exeAuto(Map userMap,Map deviceMap){ //CronUtil默认为分钟,目前未使用CronUtil.setMatchSecond(true)启动秒级任务,以下表示每30分钟执行一次 //每30分钟执行一次,获取小池今日加工并且未更新切割计划派工单的数据去更新派工单 - CronUtil.schedule("* */30 * * * *", (Task) () -> { + CronUtil.schedule("* */10 * * * *", (Task) () -> { this.exe(userMap,deviceMap); }); CronUtil.start(); diff --git a/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml b/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml index a27c722..c979560 100644 --- a/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml +++ b/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml @@ -596,4 +596,18 @@ + + + + diff --git a/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml index d8f3968..08665c0 100644 --- a/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml +++ b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml @@ -169,4 +169,70 @@ ORDER BY dm_sygdxq.xzglxq,dm_sygdxq.DC_CH,dm_sygdxq.DC_PL,dm_bom.TZBH,dm_sygdxq.DC_FD + + diff --git a/src/main/resources/mappers/xiaochi/CutPlanMapper.xml b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml index bc09fa8..76738e7 100644 --- a/src/main/resources/mappers/xiaochi/CutPlanMapper.xml +++ b/src/main/resources/mappers/xiaochi/CutPlanMapper.xml @@ -4,24 +4,24 @@