From 91d029713fc92b224f887fc9b54cad4a20a4fce0 Mon Sep 17 00:00:00 2001 From: xiaoning <1097449274@qq.com> Date: Mon, 15 Apr 2024 09:02:42 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=AE=BE=E5=A4=87=E4=BA=A7=E8=83=BD=E5=8A=A0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=9A=E7=94=9F=E4=BA=A7=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=A0=87=E8=AF=86=EF=BC=8C=E8=B7=A8=E4=BD=8D=202.=E6=8C=89?= =?UTF-8?q?=E8=B7=A8=E4=BD=8D=E6=8E=92=E4=BA=A7=EF=BC=88=E5=A4=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=EF=BC=89=EF=BC=8C=E5=8F=8D=E5=86=99=E5=90=84=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E8=AE=BE=E5=A4=87=E7=BC=96=E5=8F=B7=203.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=89=E6=9C=88=E6=BB=9A=E5=8A=A8=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2/=E6=8E=92=E4=BA=A7=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E8=BF=94=E5=9B=9Eexcel=E6=9C=88=E5=BA=A6=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E6=95=B0=E6=8D=AE=EF=BC=9B=E5=9B=A0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=94=B9=E5=8A=A8=E5=90=8E=EF=BC=8C=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9=204.=E4=BA=A7?= =?UTF-8?q?=E8=83=BD=E4=B8=AD=E5=BF=83=EF=BC=8C=E5=8F=96=E6=B6=88=E4=B8=8E?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E8=AE=BE=E5=A4=87=E5=85=B3=E8=81=94=EF=BC=8C?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=B8=BA=E4=B8=8E=E8=B7=A8=E4=BD=8D=E5=85=B3?= =?UTF-8?q?=E8=81=94=205.=E4=B8=AD=E6=97=A5=E7=A8=8B/=E5=89=8D=E6=96=B9?= =?UTF-8?q?=E9=92=A2=E6=96=99=E9=9C=80=E6=B1=82=EF=BC=88=E4=B8=89=E6=9C=88?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E8=AE=B0=E5=BD=95=E5=8E=86=E5=8F=B2=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E6=8D=AE=206.=E5=89=8D=E6=96=B9=E9=92=A2?= =?UTF-8?q?=E6=96=99=E9=9C=80=E6=B1=82=EF=BC=88=E4=B8=89=E6=9C=88=EF=BC=89?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=AF=BC=E5=85=A5=E6=97=B6=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEexcel=E6=9C=88=E5=BA=A6=E4=B8=8B=E5=8F=91=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=92=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/jcsj/EmSbjbb.java | 4 + .../com/dsic/gj_erp/bean/jhgk/DmSygdMx.java | 7 + .../dsic/gj_erp/bean/jhgk/DmSygdxqOld.java | 102 ++++++++++++ .../com/dsic/gj_erp/bean/jhgk/DmYdjhxf.java | 92 +++++++++++ .../com/dsic/gj_erp/bean/jhgk/DmZrcjhOld.java | 136 ++++++++++++++++ .../dsic/gj_erp/bean/request/EmSbjbbBean.java | 2 + .../controller/jhgk/DmQfxqController.java | 12 +- .../controller/jhgk/DmSygdMxController.java | 52 ++++--- .../controller/jhgk/DmSygdxqController.java | 4 +- .../com/dsic/gj_erp/handler/ComputePlan.java | 23 ++- .../dsic/gj_erp/handler/dto/RealCapacity.java | 1 + .../gj_erp/mapper/jhgk/DmSygdMxMapper.java | 3 + .../gj_erp/mapper/jhgk/DmSygdxqMapper.java | 4 + .../gj_erp/mapper/jhgk/DmSygdxqOldMapper.java | 17 ++ .../gj_erp/mapper/jhgk/DmZrcjhOldMapper.java | 17 ++ .../service/jcsj/impl/EmSbjbbServiceImpl.java | 5 +- .../gj_erp/service/jhgk/DmSygdMxService.java | 2 + .../service/jhgk/DmSygdxqOldService.java | 17 ++ .../service/jhgk/DmZrcjhOldService.java | 17 ++ .../service/jhgk/impl/DmQfxqServiceImpl.java | 2 + .../jhgk/impl/DmSygdMxServiceImpl.java | 147 ++++++++++++++---- .../jhgk/impl/DmSygdxqOldServiceImpl.java | 21 +++ .../jhgk/impl/DmSygdxqServiceImpl.java | 44 +++++- .../jhgk/impl/DmZrcjhOldServiceImpl.java | 21 +++ .../service/jhgk/impl/DmZrcjhServiceImpl.java | 12 +- .../resources/mappers/jhgk/DmSygdMxMapper.xml | 117 +++++++++++++- .../mappers/jhgk/DmSygdxqOldMapper.xml | 6 + .../mappers/jhgk/DmZrcjhOldMapper.xml | 5 + 28 files changed, 808 insertions(+), 84 deletions(-) create mode 100644 src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxqOld.java create mode 100644 src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhxf.java create mode 100644 src/main/java/com/dsic/gj_erp/bean/jhgk/DmZrcjhOld.java create mode 100644 src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqOldMapper.java create mode 100644 src/main/java/com/dsic/gj_erp/mapper/jhgk/DmZrcjhOldMapper.java create mode 100644 src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqOldService.java create mode 100644 src/main/java/com/dsic/gj_erp/service/jhgk/DmZrcjhOldService.java create mode 100644 src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqOldServiceImpl.java create mode 100644 src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhOldServiceImpl.java create mode 100644 src/main/resources/mappers/jhgk/DmSygdxqOldMapper.xml create mode 100644 src/main/resources/mappers/jhgk/DmZrcjhOldMapper.xml diff --git a/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbjbb.java b/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbjbb.java index 33f85a8..8f0b0e9 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbjbb.java +++ b/src/main/java/com/dsic/gj_erp/bean/jcsj/EmSbjbb.java @@ -307,5 +307,9 @@ public class EmSbjbb implements Serializable { private String cndw; + private String kw; + + private String scbs;//1 + } 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 f41b3ad..18e14e1 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 @@ -88,6 +88,8 @@ public class DmSygdMx implements Serializable { @ApiModelProperty(value = "上料日期") private String slrq; + private String slsb; + @ApiModelProperty(value = "上料人员") private String slry; @@ -187,5 +189,10 @@ public class DmSygdMx implements Serializable { @TableField(exist = false) private String endTime; + private String llsb; + private String pksb; + private String dmsb; + private String qsb; + } diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxqOld.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxqOld.java new file mode 100644 index 0000000..c355b2d --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxqOld.java @@ -0,0 +1,102 @@ +package com.dsic.gj_erp.bean.jhgk; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2024-04-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DmSygdxqOld对象", description="") +public class DmSygdxqOld implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "分段") + @TableField("DC_FD") + private String dcFd; + + @ApiModelProperty(value = "总段号") + private String zdh; + + @ApiModelProperty(value = "大组极重") + private Double dzjz; + + @ApiModelProperty(value = "总装部最新分段需求期") + private String zxfdxq; + + @ApiModelProperty(value = "钢料需求") + private String xzglxq; + + @ApiModelProperty(value = "X大板") + private String xdb; + + @ApiModelProperty(value = "X数控件") + private String xskj; + + @ApiModelProperty(value = "X平铁") + private String xpt; + + @ApiModelProperty(value = "X压弯") + private String xyw; + + @ApiModelProperty(value = "X型材") + private String xxc; + + @ApiModelProperty(value = "X二次装T型材") + private String xtxc; + + @ApiModelProperty(value = "D曲板") + private String dqb; + + @ApiModelProperty(value = "D型材T") + private String dxc; + + @ApiModelProperty(value = "D散件") + private String dsj; + + @ApiModelProperty(value = "D大板") + private String ddb; + + @ApiModelProperty(value = "导入人") + private String drr; + + @ApiModelProperty(value = "导入日期") + private String drrq; + + @ApiModelProperty(value = "导入次数") + private Integer drcs; + + @ApiModelProperty(value = "原钢料需求") + private String xzglxqOld; + + @ApiModelProperty(value = "需求状态:0 正常 1提前 2延期") + private String xqzt; + + @ApiModelProperty(value = "大组钢料需求期") + private String dzglxq; + + private String dzglxqOld; + + private String dcCh; + + private String dcPl; + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + +} diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhxf.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhxf.java new file mode 100644 index 0000000..b38b405 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhxf.java @@ -0,0 +1,92 @@ +package com.dsic.gj_erp.bean.jhgk; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + + +@Data +public class DmYdjhxf implements Serializable { + + private static final long serialVersionUID=1L; + + private String dcCh; + private String dcPl; + private String dcFd; + @ApiModelProperty(value = "板数") + private Double bs; + @ApiModelProperty(value = "上料") + private String sl; + @ApiModelProperty(value = "型材抛丸") + private String xcpw; + @ApiModelProperty(value = "抛丸") + private String pw; + @ApiModelProperty(value = "一垮龙门板数") + private String yklm; + @ApiModelProperty(value = "一垮数控板数") + private String yksk; + @ApiModelProperty(value = "坡口切割结束") + private String ykpkjs; + @ApiModelProperty(value = "二垮数控板数") + private String eksk; + @ApiModelProperty(value = "数控切割开始") + private String ekskks; + + @ApiModelProperty(value = "二垮数控板数") + private String eksk2; + @ApiModelProperty(value = "数控切割开始") + private String ekskks2; + @ApiModelProperty(value = "坡口切割结束") + private String ekpkjs; + @ApiModelProperty(value = "三垮数控板数") + private String sksk; + @ApiModelProperty(value = "数控切割开始") + private String skskqgks; + @ApiModelProperty(value = "坡口切割结束") + private String skpkjs; + @ApiModelProperty(value = "三垮平铁板数") + private String skpt; + @ApiModelProperty(value = "平铁切割开始") + private String ptks; + @ApiModelProperty(value = "平铁切割结束") + private String ptjs; + @ApiModelProperty(value = "曲平铁转结束") + private String qpt_zjs; + @ApiModelProperty(value = "曲平铁结束") + private String qptjs; + @ApiModelProperty(value = "曲外板结束") + private String qwbjs; + @ApiModelProperty(value = "组立") + private String zl; + @ApiModelProperty(value = "数控板数") + private String skbs; + @ApiModelProperty(value = "数控切割开始") + private String skqgks; + @ApiModelProperty(value = "数控板数") + private String skbs2; + @ApiModelProperty(value = "数控切割开始") + private String skqgks2; + @ApiModelProperty(value = "坡口切割结束") + private String pkqgjs; + @ApiModelProperty(value = "面板挤边") + private String mbjb; + @ApiModelProperty(value = "七垮型材米数") + private String qkxcms; + @ApiModelProperty(value = "型材面板") + private String xcmb; + @ApiModelProperty(value = "分段需求") + private String fdxq; + @ApiModelProperty(value = "光电结束") + private String gdjs; + @ApiModelProperty(value = "备注") + private String bz; + + + +} diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmZrcjhOld.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmZrcjhOld.java new file mode 100644 index 0000000..a7dd3a9 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmZrcjhOld.java @@ -0,0 +1,136 @@ +package com.dsic.gj_erp.bean.jhgk; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xn + * @since 2024-04-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="DmZrcjhOld对象", description="") +public class DmZrcjhOld implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "船号") + @TableField("DC_CH") + private String dcCh; + + @ApiModelProperty(value = "区域") + private String qy; + + @ApiModelProperty(value = "总段号") + private String zdh; + + @ApiModelProperty(value = "预组段") + private String yzd; + + @ApiModelProperty(value = "分段号") + @TableField("DC_FD") + private String dcFd; + + @ApiModelProperty(value = "重量") + @TableField("ZL") + private Double zl; + + @ApiModelProperty(value = "批量号") + @TableField("DC_PL") + private String dcPl; + + @ApiModelProperty(value = "大组开始") + private String kssjDz; + + @ApiModelProperty(value = "钢加大组结束") + private String gjjsDz; + + @ApiModelProperty(value = "小组结束") + private String jssjXz; + + @ApiModelProperty(value = "小组周期") + private String xzzq; + + @ApiModelProperty(value = "小组开始") + private String kssjXz; + + @ApiModelProperty(value = "线表重量") + private Double xbzl; + + @ApiModelProperty(value = "批量表(钢加大组结束)") + private String gjjsDzPl; + + @ApiModelProperty(value = "时间差(L-P)") + private String sjcLp; + + @ApiModelProperty(value = "钢加小组结束") + private String gjjsXz; + + @ApiModelProperty(value = "批量表(钢加小组结束)") + private String gjjsXzPl; + + @ApiModelProperty(value = "时间差(R-S)") + private String sjcRs; + + @ApiModelProperty(value = "钢加开始") + private String gjks; + + @ApiModelProperty(value = "批量表(钢加开始)") + private String gjksPl; + + @ApiModelProperty(value = "时间差(U-V)") + private String sjcUv; + + @ApiModelProperty(value = "套料图下发") + private String xfqTlt; + + @ApiModelProperty(value = "套料图接收") + private String jsqTlt; + + @ApiModelProperty(value = "板材领取表下发") + private String xfqLqb; + + @ApiModelProperty(value = "板材领取表接收") + private String jsqLqb; + + @ApiModelProperty(value = "零件配套表下发") + private String xfqPtb; + + @ApiModelProperty(value = "零件配套表接收") + private String jsqPtb; + + @ApiModelProperty(value = "订货清单号") + private String dhqd; + + @ApiModelProperty(value = "订货清单下发") + private String xfqDhqd; + + @ApiModelProperty(value = "实际订货日期") + private String sjdhq; + + @ApiModelProperty(value = "板材计划到齐") + private String bcdq; + + @ApiModelProperty(value = "状态; 0编辑1提交2审核;默认为0;") + private String zt; + + private String bzrq; + + @TableId(value = "xh", type = IdType.ASSIGN_UUID) + private String xh; + + private String bzr; + + +} diff --git a/src/main/java/com/dsic/gj_erp/bean/request/EmSbjbbBean.java b/src/main/java/com/dsic/gj_erp/bean/request/EmSbjbbBean.java index 14bbb69..e51ea85 100644 --- a/src/main/java/com/dsic/gj_erp/bean/request/EmSbjbbBean.java +++ b/src/main/java/com/dsic/gj_erp/bean/request/EmSbjbbBean.java @@ -11,4 +11,6 @@ public class EmSbjbbBean { private String szcs; @ApiModelProperty(value = "供应商") private String gysbm; + + private String scbs; } diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java index 732955b..92eac54 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmQfxqController.java @@ -2,6 +2,7 @@ package com.dsic.gj_erp.controller.jhgk; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; @@ -83,6 +84,7 @@ public class DmQfxqController { EasyExcel.read(file.getInputStream(), GdxqExcel1.class, objectListener1).sheet(1).headRowNumber(1).doRead(); List objList1 = objectListener1.getObjectList(); + List list = BeanUtil.copyToList(objList, DmQfxq.class); List list1 = BeanUtil.copyToList(objList1, DmQfxq.class); String username=(String) req.getAttribute("yhms"); @@ -91,15 +93,15 @@ public class DmQfxqController { List list2=new ArrayList<>(list); if (list1.size()>0){ list1= service.saveDzList(list1,username,day); - for (DmQfxq qfxq : list1) { - for (DmQfxq dmQfxq : list) { - if (qfxq.getId().equals(dmQfxq.getId())){ + for (DmQfxq qfxq : list1) {//循环大组 + for (DmQfxq dmQfxq : list) {//循环小组 + if (qfxq.getId().equals(dmQfxq.getId())){//小组有 int index= list.indexOf(dmQfxq); list2.set(index,qfxq); - }else { - list2.add(qfxq); + break; } } + list2.add(qfxq); } } service.generateYdjh(list2); 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 dd37257..4fce21e 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 @@ -14,6 +14,7 @@ import com.dsic.gj_erp.bean.jcsj.EmSbjbb; import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.DmSygd; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; +import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.service.jcsj.EmGcrlService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService; @@ -58,22 +59,23 @@ public class DmSygdMxController { @RequestMapping("/getList") @AuthFunction public ResultBean getList(@RequestBody DmSygdMx sygd){ - List list= service.list(new QueryWrapper() - .eq(StrUtil.isNotEmpty(sygd.getDcCh()),"dc_ch",sygd.getDcCh()) - .eq(StrUtil.isNotEmpty(sygd.getDcPl()),"dc_pl",sygd.getDcPl()) - .ge(StrUtil.isNotEmpty(sygd.getBeginTime()),"jssj",sygd.getBeginTime()) - .le(StrUtil.isNotEmpty(sygd.getEndTime()),"jssj", - DateUtil.endOfMonth(DateUtil.parseDate(sygd.getEndTime())).toString("yyyy/MM/dd")) - .orderByAsc("jssj,dc_ch,dc_pl") - ); +// List list= service.list(new QueryWrapper() +// .eq(StrUtil.isNotEmpty(sygd.getDcCh()),"dc_ch",sygd.getDcCh()) +// .eq(StrUtil.isNotEmpty(sygd.getDcPl()),"dc_pl",sygd.getDcPl()) +// .ge(StrUtil.isNotEmpty(sygd.getBeginTime()),"jssj",sygd.getBeginTime()) +// .le(StrUtil.isNotEmpty(sygd.getEndTime()),"jssj", +// DateUtil.endOfMonth(DateUtil.parseDate(sygd.getEndTime())).toString("yyyy/MM/dd")) +// .orderByAsc("jssj,dc_ch,dc_pl") +// ); Map map=new HashMap(); - if (list.size()>0){ - String beginTime=list.get(0).getJssj(); - String endTime=list.get(list.size()-1).getJssj(); - List emGcrls= gcrlService.list(new QueryWrapper().select("gl").between("gl",beginTime,endTime).eq("xxr","0")); - List gcrl = emGcrls.stream().map(EmGcrl::getGl).collect(Collectors.toList()); - map.put("gcrl",gcrl); - } +// if (list.size()>0){ +// String beginTime=list.get(0).getJssj(); +// String endTime=list.get(list.size()-1).getJssj(); +// List emGcrls= gcrlService.list(new QueryWrapper().select("gl").between("gl",beginTime,endTime).eq("xxr","0")); +// List gcrl = emGcrls.stream().map(EmGcrl::getGl).collect(Collectors.toList()); +// map.put("gcrl",gcrl); +// } + List list= this.service.tqSygd1(sygd.getBeginTime(),sygd.getEndTime()); map.put("list",list); return new ResultBean(map); } @@ -86,16 +88,20 @@ public class DmSygdMxController { @RequestMapping("/symxhz") @AuthFunction - public ResultBean symxhz(@RequestBody List list){ + public ResultBean symxhz(@RequestBody Map mapObj){ Map map=new HashMap<>(); - //1.根据上料时间 从近到远排序 +//// 1.根据上料时间 从近到远排序 + List list=service.list(new QueryWrapper().between("jssj",mapObj.get("beginTime"),mapObj.get("endTime"))); list = list.stream() .filter(mx -> Objects.nonNull(mx.getJssj())) .sorted(Comparator.comparing(DmSygdMx::getJssj, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); - //2.时间范围内线表计划数据 - String year = list.get(0).getJssj().substring(0, 4); - String begin = list.get(0).getJssj().substring(5, 7); - String end = list.get(list.size() - 1).getJssj().substring(5, 7); +// //2.时间范围内线表计划数据 +// String year = list.get(0).getJssj().substring(0, 4); +// String begin = list.get(0).getJssj().substring(5, 7); +// String end = list.get(list.size() - 1).getJssj().substring(5, 7); + String year = mapObj.get("beginTime").substring(0, 4); + String begin = mapObj.get("beginTime").substring(5, 7); + String end = mapObj.get("endTime").substring(5, 7); map.put("xbList",service.getXBList(list,year,begin,end)); map.put("plList",service.getPl(list.get(0).getJssj(),list.get(list.size() - 1).getJssj())); @@ -123,14 +129,16 @@ public class DmSygdMxController { @AuthFunction public ResultBean saveList( @RequestBody List list ){ service.saveBatch(list); - //TODO 重新排产 return new ResultBean(); } + + @RequestMapping("/tqSygd") @AuthFunction public ResultBean tqSygd(@RequestBody List list){ return service.tqSygd(); } + } diff --git a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java index 0db9e4c..a602412 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jhgk/DmSygdxqController.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.bean.ResultBean; +import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.DmSygdxq; import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel; import com.dsic.gj_erp.bean.jhgk.excel.GdxqExcel1; @@ -70,11 +71,12 @@ public class DmSygdxqController { List objList1 = objectListener1.getObjectList(); List list = BeanUtil.copyToList(objList, DmSygdxq.class); List list1 = BeanUtil.copyToList(objList1, DmSygdxq.class); + String username=(String) req.getAttribute("yhms"); String day=DateUtil.format(DateUtil.date(), "yyyy/MM/dd"); service.saveXzList(list,username,day); service.saveDzList(list1,username,day); - sygdMxService.sygdPC(); + return new ResultBean(); } diff --git a/src/main/java/com/dsic/gj_erp/handler/ComputePlan.java b/src/main/java/com/dsic/gj_erp/handler/ComputePlan.java index 233ddc0..37b7c8d 100644 --- a/src/main/java/com/dsic/gj_erp/handler/ComputePlan.java +++ b/src/main/java/com/dsic/gj_erp/handler/ComputePlan.java @@ -37,7 +37,7 @@ public class ComputePlan { List gcrlList; - Map> realCapacityMap; + Map>> realCapacityMap; List deviceList; List sbcnList; @@ -65,7 +65,7 @@ public class ComputePlan { * @param to 结束日期 */ public static void computeRealCapacity(Date from, Date to) { - Map> _realCapacity = instance().realCapacityMap = new TreeMap<>(); + Map>> _realCapacity = instance().realCapacityMap = new TreeMap<>(); //加载工厂日历 initGcrl(); @@ -93,23 +93,29 @@ public class ComputePlan { //日可用设备 for (int i = 0; i < realDeviceList.getJSONArray(gcrl.getGl()).size(); i++) { JSONObject deviceJson = realDeviceList.getJSONArray(gcrl.getGl()).getJSONObject(i); - //日实际产能 //todo 设备和产能对应关系,找出当前设备产能 (日期 产能 工序 图纸名称) RealCapacity realCapacity = initRealCapacity(gcrl, deviceJson); if (realCapacity.getCapacity()==0){ continue; } + String kwgx= realCapacity.getKw()+realCapacity.getGx(); if (_realCapacity.containsKey(gcrl.getGl())) { - _realCapacity.get(gcrl.getGl()). -// put(realCapacity.getDeviceName(), realCapacity.getCapacity()); - add(realCapacity); + if(_realCapacity.get(gcrl.getGl()).containsKey(kwgx)){ + _realCapacity.get(gcrl.getGl()).get(kwgx).add(realCapacity); + }else { + List list=new ArrayList<>(); + list.add(realCapacity); + _realCapacity.get(gcrl.getGl()).put(kwgx, list); + } } else { // JSONObject object = new JSONObject(); // object.put(realCapacity.getDeviceName(), realCapacity.getCapacity()); + Map> kwANDgX= new TreeMap<>(); List list=new ArrayList<>(); list.add(realCapacity); - _realCapacity.put(gcrl.getGl(), list); + kwANDgX.put(kwgx, list); + _realCapacity.put(gcrl.getGl(), kwANDgX); } } }); @@ -230,7 +236,7 @@ public class ComputePlan { * 加载设备信息表 */ public static void initDevice() { - instance().deviceList = getBean(EmSbjbbService.class).list(Wrappers.lambdaQuery().like(EmSbjbb::getSzcs,"FP")); + instance().deviceList = getBean(EmSbjbbService.class).list(Wrappers.lambdaQuery().like(EmSbjbb::getScbs,"1")); } public synchronized static ComputePlan instance() { @@ -272,6 +278,7 @@ public class ComputePlan { capacity.setDeviceName(deviceJson.getString("sbbh")); capacity.setDate(gcrl.getGl()); capacity.setGx(deviceJson.getString("gx")); + capacity.setKw(deviceJson.getString("kw")); return capacity; } diff --git a/src/main/java/com/dsic/gj_erp/handler/dto/RealCapacity.java b/src/main/java/com/dsic/gj_erp/handler/dto/RealCapacity.java index 8274398..63860ba 100644 --- a/src/main/java/com/dsic/gj_erp/handler/dto/RealCapacity.java +++ b/src/main/java/com/dsic/gj_erp/handler/dto/RealCapacity.java @@ -11,4 +11,5 @@ public class RealCapacity { String date; Double capacity; String gx; + String kw; } 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 20dcf1c..91a110a 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 @@ -4,6 +4,7 @@ package com.dsic.gj_erp.mapper.jhgk; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj; +import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.bean.jhgk.dto.Dhdto; import com.dsic.gj_erp.bean.jhgk.dto.Kwdto; import com.dsic.gj_erp.bean.jhgk.dto.Pldto; @@ -32,4 +33,6 @@ public interface DmSygdMxMapper extends BaseMapper { List updateQgjssj( List ljList); List cgjhdhqk(Map map); + + List tqSygd1(@Param("begin") String begin,@Param("end")String end); } 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 3f0c5e3..e2caed7 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 @@ -2,7 +2,11 @@ package com.dsic.gj_erp.mapper.jhgk; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdxq; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqOldMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqOldMapper.java new file mode 100644 index 0000000..44ca491 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqOldMapper.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.mapper.jhgk; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jhgk.DmSygdxqOld; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xn + * @since 2024-04-14 + */ +public interface DmSygdxqOldMapper extends BaseMapper { + +} diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmZrcjhOldMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmZrcjhOldMapper.java new file mode 100644 index 0000000..fe2f6bf --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmZrcjhOldMapper.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.mapper.jhgk; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.jhgk.DmZrcjhOld; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xn + * @since 2024-04-14 + */ +public interface DmZrcjhOldMapper extends BaseMapper { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbjbbServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbjbbServiceImpl.java index b5a6484..0251e8a 100644 --- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbjbbServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/EmSbjbbServiceImpl.java @@ -51,7 +51,10 @@ public class EmSbjbbServiceImpl extends ServiceImpl impl if(StringUtils.isNotEmpty(gysbm)){ queryWrapper.eq("GYSBM",gysbm); } - queryWrapper.like("SZCS","FP%"); +// queryWrapper.like("SZCS","FP%"); + if(StringUtils.isNotEmpty(emSbjbbBean.getScbs())){ + queryWrapper.eq("scbs",emSbjbbBean.getScbs()); + } queryWrapper.orderByAsc("szcs"); List emSbjbbs=emSbjbbMapper.selectList(queryWrapper); return emSbjbbs; diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdMxService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdMxService.java index 1fe5026..c36fb62 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdMxService.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdMxService.java @@ -3,6 +3,7 @@ package com.dsic.gj_erp.service.jhgk; import com.baomidou.mybatisplus.extension.service.IService; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; +import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.bean.jhgk.dto.*; import org.springframework.web.bind.annotation.RequestBody; @@ -27,6 +28,7 @@ public interface DmSygdMxService extends IService { List getTZList(List list); List getDhList(List list); ResultBean tqSygd(); + List tqSygd1(String begin, String end); Object cgjhdhqk(Map map); } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqOldService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqOldService.java new file mode 100644 index 0000000..0dbf16c --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqOldService.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.service.jhgk; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsic.gj_erp.bean.jhgk.DmSygdxqOld; + +/** + *

+ * 服务类 + *

+ * + * @author xn + * @since 2024-04-14 + */ +public interface DmSygdxqOldService extends IService { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmZrcjhOldService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmZrcjhOldService.java new file mode 100644 index 0000000..8eba7bc --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmZrcjhOldService.java @@ -0,0 +1,17 @@ +package com.dsic.gj_erp.service.jhgk; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsic.gj_erp.bean.jhgk.DmZrcjhOld; + +/** + *

+ * 服务类 + *

+ * + * @author xn + * @since 2024-04-14 + */ +public interface DmZrcjhOldService extends IService { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java index dee482c..d9cf377 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmQfxqServiceImpl.java @@ -92,6 +92,7 @@ public class DmQfxqServiceImpl extends ServiceImpl impleme }else { l.setDrr(username); l.setDrrq(day); + l.setXqzt("0"); this.save(l); list1.add(l); } @@ -138,6 +139,7 @@ public class DmQfxqServiceImpl extends ServiceImpl impleme }else { l.setDrr(username); l.setDrrq(day); + l.setXqzt("0"); this.save(l); list1.add(l); } 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 3db9b23..e1e21b3 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 @@ -89,8 +89,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl i // String begin=DateUtil.format(DateUtil.nextMonth(),"yyyy/MM/01"); // String end =DateUtil.format(DateUtil.endOfMonth(DateUtil.offsetMonth(DateUtil.date(),3)),"yyyy/MM/dd"); //测试日期 - String begin = "2024/04/01"; - String end = "2024/05/01"; + String begin = "2023/08/01"; + String end = "2023/10/31"; //todo 零件 ljService.remove(new QueryWrapper().between("xzglxq", begin, end)); //todo 三月滚动明细 @@ -111,7 +111,10 @@ public class DmSygdMxServiceImpl extends ServiceImpl i ypc(mxList); this.saveBatch(mxList); baseMapper.setParent(begin, end); - ResultBean r = new ResultBean(mxList); + + List list= tqSygd1(begin,end); +// ResultBean r = new ResultBean(mxList); + ResultBean r = new ResultBean(list); r.setSuccess(true); return r; } @@ -125,7 +128,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl i // Map> mxMap = list.stream().filter(l->StrUtil.isNotEmpty(l.getTzbh())).collect(Collectors.groupingBy(l -> l.getKw() + l.getZl())); ComputePlan c=ComputePlan.instance(); c.computeRealCapacity(DateUtil.beginOfMonth(DateUtil.date()), DateUtil.endOfMonth(DateUtil.date())); - Map> rel=c.getRealCapacityMap(); + Map>> rel=c.getRealCapacityMap(); //加工工序list List sbcnp =c.getSbcnList(); @@ -146,48 +149,65 @@ public class DmSygdMxServiceImpl extends ServiceImpl i * @param l 当前加工钢板 * @param list 加工顺序 */ - public void jggx(Map> rel,DmSygdMx l,List list){ + public void jggx( Map>> rel,DmSygdMx l,List list){ String date=""; + Map map=new TreeMap<>(); for (EmSbcnp cn : list) { //上料 if (cn.getGx().equals("19")) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),1, date); + map=xhcn(rel,null,cn.getGx(),1, date); + date=map.get("jgsj"); l.setSlrq(date); + l.setSlsb(map.get("sbbh")); } //抛丸 if (cn.getGx().equals("20")) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),1, date); + map=xhcn(rel,null,cn.getGx(),1, date); + date=map.get("jgsj"); l.setPwrq(date); + l.setPwsb(map.get("sbbh")); } //理料 if (cn.getGx().equals("21")) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),1, date); + map=xhcn(rel,null,cn.getGx(),1, date); + date=map.get("jgsj"); l.setLlrq(date); + l.setLlsb(map.get("sbbh")); } // 划线 if ("01,02".indexOf(cn.getGx()) > -1 && l.getHxcd()>0) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),l.getHxcd(), date); + map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); + date=map.get("jgsj"); l.setHxrq(date); + l.setHxsb(map.get("sbbh")); } //切割 if ("03,04,05,06,07".indexOf(cn.getGx()) > -1 && l.getQgcd()>0) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),l.getQgcd(), date); + map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); + date=map.get("jgsj"); l.setQgrq(date); + l.setQgsb(map.get("sbbh")); } // 坡口 if (ObjectUtil.isNotEmpty(l.getPkcd()) && ("08,10".indexOf(cn.getGx()) > 0)) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),l.getPkcd(), date); + map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); + date=map.get("jgsj"); l.setPkrq(date); + l.setPksb(map.get("sbbh")); } // 打磨 if (ObjectUtil.isNotEmpty(l.getDmcd()) && ("16,13".indexOf(cn.getGx()) > 0)) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),l.getDmcd(), date); + map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); + date=map.get("jgsj"); l.setDmrq(date); + l.setDmsb(map.get("sbbh")); } // 曲 (个) if (StrUtil.isNotEmpty(l.getQbs()) && cn.getGx().equals("18")) { - date=xhcn(rel,cn.getSbbh(),cn.getGx(),l.getLjsl(), date); + map=xhcn(rel,cn.getKw(),cn.getGx(),1, date); + date=map.get("jgsj"); l.setQjgrq(date); + l.setQsb(map.get("sbbh")); } // 号料 手工切割 倒棱 切端头 自由边 预组 @@ -197,38 +217,56 @@ public class DmSygdMxServiceImpl extends ServiceImpl i /** * 消耗产能 * @param rel 实际产能,默认未来三个月 - * @param sbbh 设备编号 + * @param kw 跨位 * @param gx 工序 * @param gzl 工作量 * @param kssj 上一道工序的加工时间 * @return */ - public String xhcn(Map> rel,String sbbh,String gx,double gzl ,String kssj){ - String jgsj=""; - if (gzl==0)return jgsj; + public Map xhcn(Map>> rel,String kw,String gx,double gzl ,String kssj){ + Map map=new TreeMap<>(); + map.put("jgsj",""); + map.put("sbbh",""); + if (gzl==0)return map; + String kwAndGx=kw+gx; for (String date:rel.keySet()){ - if (date.compareTo(kssj)>=0||StrUtil.isEmpty(kssj)){ - for (RealCapacity l:rel.get(date)){ - if (l.getDeviceName().equals(sbbh)&&l.getGx().equals(gx)){ - if (l.getCapacity()>=gzl){ - int index = rel.get(date).indexOf(l); - l.setCapacity(l.getCapacity()-gzl); - rel.get(date).set(index,l); - jgsj=l.getDate(); - return jgsj; - }else if (l.getCapacity()!=0.0){ - gzl=gzl-l.getCapacity(); - l.setCapacity(new Double(0.0)); - int index = rel.get(date).indexOf(l); - rel.get(date).set(index,l); - break; - } + if (StrUtil.isEmpty(kssj)||date.compareTo(kssj)>=0){ + //日期下 跨位+工序分组 + Map> kwMap= rel.get(date); + if (ObjectUtil.isEmpty(kwMap.get(kwAndGx)))break; + for (RealCapacity l : kwMap.get(kwAndGx)) { + if (l.getCapacity()>=gzl){ + int index = rel.get(date).get(kwAndGx).indexOf(l); + l.setCapacity(l.getCapacity()-gzl); + rel.get(date).get(kwAndGx).set(index,l); + map.put("jgsj",l.getDate()); + map.put("sbbh",l.getDeviceName()); + return map; + }else if (l.getCapacity()!=0.0){ + gzl=gzl-l.getCapacity(); + l.setCapacity(new Double(0.0)); + int index = rel.get(date).get(kwAndGx).indexOf(l); + rel.get(date).get(kwAndGx).set(index,l); + map.put("jgsj",l.getDate()); + map.put("sbbh",l.getDeviceName()); +// break; } } +// for (String kwAndGx :kwMap.keySet()){ +// if (kwAndGx.equals(kw+gx)){ +// // 设备 list +// } +// } +// for (RealCapacity l:rel.get(date)){ +// //设备 改为 跨位 +// if (l.getKw().equals(kw)&&l.getGx().equals(gx)){ +// +// } +// } } } - return jgsj; + return map; } @@ -762,4 +800,45 @@ public class DmSygdMxServiceImpl extends ServiceImpl i sygdService.saveBatch(sygdList); return new ResultBean(sygdList); } + + @Transactional + public List tqSygd1(String begin,String end){ + + 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()); + list2.add(l); + list2.add(ydjhxf1); + } + + return list2; + } } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqOldServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqOldServiceImpl.java new file mode 100644 index 0000000..5f93291 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqOldServiceImpl.java @@ -0,0 +1,21 @@ +package com.dsic.gj_erp.service.jhgk.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jhgk.DmSygdxqOld; +import com.dsic.gj_erp.mapper.jhgk.DmSygdxqOldMapper; +import com.dsic.gj_erp.service.jhgk.DmSygdxqOldService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author xn + * @since 2024-04-14 + */ +@Service +public class DmSygdxqOldServiceImpl extends ServiceImpl implements DmSygdxqOldService { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java index 41efdc7..f15f9f1 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java @@ -1,13 +1,23 @@ package com.dsic.gj_erp.service.jhgk.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jcsj.DmBom; +import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdxq; +import com.dsic.gj_erp.bean.jhgk.DmSygdxqOld; import com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper; +import com.dsic.gj_erp.service.jcsj.DmBomService; +import com.dsic.gj_erp.service.jhgk.DmSygdMxService; +import com.dsic.gj_erp.service.jhgk.DmSygdxqOldService; import com.dsic.gj_erp.service.jhgk.DmSygdxqService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +34,12 @@ import java.util.List; @Service public class DmSygdxqServiceImpl extends ServiceImpl implements DmSygdxqService { + @Autowired + DmSygdxqOldService oldService; + @Autowired + DmSygdMxService sygdMxService; + @Autowired + DmBomService bomService; @Override @Transactional public void saveXzList(List list,String username,String day){ @@ -35,6 +51,9 @@ public class DmSygdxqServiceImpl extends ServiceImpl i .eq("DC_FD",l.getDcFd()) ); if (ObjUtil.isNotEmpty(sygdxq)){ + //存进备份表 + DmSygdxqOld old= BeanUtil.copyProperties(sygdxq, DmSygdxqOld.class); + oldService.save(old); l.setDrcs(sygdxq.getDrcs()+1); l.setXzglxqOld(sygdxq.getXzglxq()); l.setDrr(username); @@ -63,13 +82,13 @@ public class DmSygdxqServiceImpl extends ServiceImpl i .eq("dc_pl",l.getDcPl()) .eq("DC_FD",l.getDcFd()) ); + //todo 修正三月滚动 + correctSygdmx(l.getDcCh(),l.getDcPl(),l.getDcFd(),l.getXzglxq()); }else { l.setDrr(username); l.setDrrq(day); this.save(l); } - - }); } @@ -105,11 +124,30 @@ public class DmSygdxqServiceImpl extends ServiceImpl i this.save(l); } }); + } //零件信息 - public void generateLjxx(List list){ + public void correctSygdmx(String ch,String pl,String fd,String xqsj){ //根据:本次导入的三月需求期 提取BOM 生成三月需求零件信息 + List list= sygdMxService.list(new QueryWrapper() + .eq("dc_ch",ch) + .eq("dc_pl",pl) + .in("tzbh"," SELECT dm_bom.tzbh FROM dm_bom WHERE dm_bom.dcch='"+ch+"' and dm_bom.pl='"+pl+"' and dm_bom.fd='"+fd+"'")); + DateTime dateTime= DateUtil.parse(xqsj,"yyyy/MM/dd"); + list.forEach(l->{ + l.setJssj(xqsj); + l.setSlrq(DateUtil.offsetDay(dateTime,-9).toString());//8 + if (l.getKw().equals("16")){//型材 + l.setPwrq(DateUtil.offsetDay(dateTime,-5).toString());//4 + }else { + l.setPwrq(DateUtil.offsetDay(dateTime,-8).toString());//7 + } + + l.setHxrq(DateUtil.offsetDay(dateTime,-3).toString());//2 + l.setQgrq(DateUtil.offsetDay(dateTime,-3).toString());//2 + sygdMxService.save(l); + }); } } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhOldServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhOldServiceImpl.java new file mode 100644 index 0000000..6929a62 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhOldServiceImpl.java @@ -0,0 +1,21 @@ +package com.dsic.gj_erp.service.jhgk.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jhgk.DmZrcjhOld; +import com.dsic.gj_erp.mapper.jhgk.DmZrcjhOldMapper; +import com.dsic.gj_erp.service.jhgk.DmZrcjhOldService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author xn + * @since 2024-04-14 + */ +@Service +public class DmZrcjhOldServiceImpl extends ServiceImpl implements DmZrcjhOldService { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhServiceImpl.java index 4c2f690..032c5ea 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmZrcjhServiceImpl.java @@ -1,16 +1,16 @@ package com.dsic.gj_erp.service.jhgk.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.poi.excel.ExcelReader; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsic.gj_erp.bean.jhgk.DmJtsyjh; -import com.dsic.gj_erp.bean.jhgk.DmXbjh; -import com.dsic.gj_erp.bean.jhgk.DmZrcjh; +import com.dsic.gj_erp.bean.jhgk.*; import com.dsic.gj_erp.mapper.jhgk.DmZrcjhMapper; +import com.dsic.gj_erp.service.jhgk.DmZrcjhOldService; import com.dsic.gj_erp.service.jhgk.DmZrcjhService; import com.dsic.gj_erp.util.ExcelUtil; import com.google.common.collect.Lists; @@ -43,6 +43,9 @@ public class DmZrcjhServiceImpl extends ServiceImpl impl @Resource ModelMapper modelMapper; + @Resource + DmZrcjhOldService oldService; + @Override public List getList(JSONObject json) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -97,6 +100,9 @@ public class DmZrcjhServiceImpl extends ServiceImpl impl queryWrapper.eq("DC_FD", dmZrcjh.getDcFd()); DmZrcjh dmZrcjhOne = dmZrcjhMapper.selectOne(queryWrapper); if (ObjectUtil.isNotEmpty(dmZrcjhOne)) { + //存进备份表 + DmZrcjhOld old= BeanUtil.copyProperties(dmZrcjhOne, DmZrcjhOld.class); + oldService.save(old); String dmZrcjhOneBzr = dmZrcjhOne.getBzr(); String dmZrcjhOneBzrq = dmZrcjhOne.getBzrq(); if (dmZrcjhOneBzr.contains(bzr)) { diff --git a/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml b/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml index 2797626..e1daa5a 100644 --- a/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml +++ b/src/main/resources/mappers/jhgk/DmSygdMxMapper.xml @@ -177,21 +177,25 @@ xcgs, xcshms as xcms, bclqzl, - bcshzl, - bcylzl, - bcljtlzl, - ylbhgg, +-- bcshzl, +-- bcylzl, +-- bcljtlzl, +-- ylbhgg, bcqpyld, hxkc_cd, qgkc_cd from dm_sygd_mx_lj where - dm_sygd_mx_lj.xzglxq between #{begin} and #{end} + dm_sygd_mx_lj.xzglxq between #{begin} and #{end} GROUP BY dcch, mbch, sjch, PL, tzbh , lqlb, kw, zl, wpcz, wpgg, ljsl, pklx, qbs, pkbs - , pkcd, dmbs, dmcd, hxcd,qgcd, xcgs, xcshms, bclqzl - ,bcshzl, bcylzl, bcljtlzl, ylbhgg, bcqpyld,hxkc_cd, + , pkcd, dmbs, dmcd, hxcd,qgcd, xcgs, xcshms, bclqzl, +-- bcshzl, 板材实耗重量 +-- bcylzl,板材余料重量 +-- bcljtlzl, -- 板材零件套料重量 +-- ylbhgg, + bcqpyld,hxkc_cd, qgkc_cd order BY jssj, dcch, pl, tzbh @@ -408,4 +412,103 @@ and MS_DDJBP.sxrq<=#{jsrq} + + + diff --git a/src/main/resources/mappers/jhgk/DmSygdxqOldMapper.xml b/src/main/resources/mappers/jhgk/DmSygdxqOldMapper.xml new file mode 100644 index 0000000..479151d --- /dev/null +++ b/src/main/resources/mappers/jhgk/DmSygdxqOldMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/mappers/jhgk/DmZrcjhOldMapper.xml b/src/main/resources/mappers/jhgk/DmZrcjhOldMapper.xml new file mode 100644 index 0000000..41b4096 --- /dev/null +++ b/src/main/resources/mappers/jhgk/DmZrcjhOldMapper.xml @@ -0,0 +1,5 @@ + + + + +