From 214702748e4f2f8424fcb3e8b567df1d530c7459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Wed, 9 Jul 2025 15:58:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=BA=93=E5=AD=98=E7=AE=A1=E7=90=86,?= =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E6=B5=81=E6=B0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/zyjh/DmYlInOut.java | 84 +++++++++++++++++++ .../com/dsic/gj_erp/bean/zyjh/DmYlInfo.java | 30 +++++-- .../gj_erp/controller/zyjh/YlController.java | 73 +++++++++++++--- .../gj_erp/mapper/zyjh/DmYlInOutMapper.java | 11 +++ .../gj_erp/service/zyjh/DmYlInOutService.java | 12 +++ 5 files changed, 192 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInOut.java create mode 100644 src/main/java/com/dsic/gj_erp/mapper/zyjh/DmYlInOutMapper.java create mode 100644 src/main/java/com/dsic/gj_erp/service/zyjh/DmYlInOutService.java diff --git a/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInOut.java b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInOut.java new file mode 100644 index 0000000..329d99b --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInOut.java @@ -0,0 +1,84 @@ +package com.dsic.gj_erp.bean.zyjh; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; + +/** + * 余料出入口流水 + */ +@Getter +@Setter +@TableName("dm_yl_in_out") +public class DmYlInOut { + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + private String 余料编号;//余料编号,套料图中存在编号时产生 + + private String 规格; + + private String 炉批号; + + private String 重量; + + private String 数量="1"; + + private String 来源船号;//来源船号 + + private String 来源批量;//来源批量 + + private String 来源图纸;//来源图纸 + + private String 物品型号; + + private String 物品规格; + + private String 切割日期; + + private String 使用船号;//使用船号 + + private String 使用批量;//使用批量 + + private String 使用分段;//使用分段 + + private String 使用图纸;//使用图纸 + + private String 使用日期;//同打印日期 + + private BigDecimal 板厚; + + private BigDecimal 板宽; + + private BigDecimal 板长; + + private String 出入库日期; + + private String 出入库人; + + private String 出入库;//出库,入库 + + public static DmYlInOut 入库流水(DmYlInfo item, String userCode){ + DmYlInOut dmYlInOut = new DmYlInOut(); + BeanUtil.copyProperties(item,dmYlInOut); + dmYlInOut.setId(null); + dmYlInOut.set出入库("入库"); + dmYlInOut.set出入库人(userCode); + dmYlInOut.set出入库日期(item.get入库日期()); + return dmYlInOut; + } + + public static DmYlInOut 出库流水(DmYlInfo item, String userCode, String 出库日期){ + DmYlInOut dmYlInOut = new DmYlInOut(); + BeanUtil.copyProperties(item,dmYlInOut); + dmYlInOut.set出入库("出库"); + dmYlInOut.set出入库人(userCode); + dmYlInOut.set出入库日期(出库日期); + return dmYlInOut; + } +} diff --git a/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInfo.java b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInfo.java index 526f2c0..e3662e9 100644 --- a/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInfo.java +++ b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYlInfo.java @@ -61,7 +61,14 @@ public class DmYlInfo { private String 使用日期;//同打印日期 - private int 使用状态;//0:未使用;1:已使用;2:已打印;3:已切割 + private String 入库日期; + private String 入库人; + + private String 编制人; + + private String 编制日期; + + private Integer 使用状态;//0:未入库;1:未使用;2:已匹配;3:已打印;4:已切割 public boolean 指定余料编号的上料匹配(String 余料编号){ return StrUtil.isNotEmpty(this.余料编号) && this.余料编号.equals(余料编号); @@ -86,12 +93,25 @@ public class DmYlInfo { &&new BigDecimal(split[1]).compareTo(板长)<=0; } - public void 修正上料信息(DmYdjh ydjh){ + public static DmYlInfo 入库(DmYlInfo item,String userCode,String 编制日期){ + DmYlInfo dmYlInfo = new DmYlInfo(); + dmYlInfo.setId(item.getId()); + dmYlInfo.set垛位(item.get垛位()); + dmYlInfo.set层数(item.get层数()); + dmYlInfo.set入库人(userCode); + dmYlInfo.set入库日期(item.get入库日期()); + dmYlInfo.set编制人(userCode); + dmYlInfo.set编制日期(编制日期); + dmYlInfo.set使用状态(UseStatus.未使用.ordinal()); + return dmYlInfo; + } + + public void 修正匹配信息(DmYdjh ydjh){ 使用船号=ydjh.getDcCh(); 使用批量=ydjh.getDcPl(); 使用分段=ydjh.getDcFd(); 使用图纸=ydjh.getTzbh(); - 使用状态=UseStatus.已使用.ordinal(); + 使用状态=UseStatus.已匹配.ordinal(); } public void 修正退回信息(){ @@ -146,11 +166,11 @@ public class DmYlInfo { dmYlInfo.物品型号=bchxylp.getWpxh(); dmYlInfo.物品规格=ydjh.getWpgg(); dmYlInfo.切割日期= DateUtil.date().toString("yyyy/MM/dd"); - dmYlInfo.使用状态=UseStatus.未使用.ordinal(); + dmYlInfo.使用状态=UseStatus.未入库.ordinal(); return dmYlInfo; } public enum UseStatus{ - 未使用,已使用,已打印,已切割 + 未入库,未使用,已匹配,已打印,已切割 } } diff --git a/src/main/java/com/dsic/gj_erp/controller/zyjh/YlController.java b/src/main/java/com/dsic/gj_erp/controller/zyjh/YlController.java index 46951e4..e40ede0 100644 --- a/src/main/java/com/dsic/gj_erp/controller/zyjh/YlController.java +++ b/src/main/java/com/dsic/gj_erp/controller/zyjh/YlController.java @@ -4,17 +4,22 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.dsic.gj_erp.annotation.AuthFunction; +import com.dsic.gj_erp.annotation.Authorization; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.bean.zyjh.DmYlInOut; import com.dsic.gj_erp.bean.zyjh.DmYlInfo; import com.dsic.gj_erp.controller.zyjh.dto.YlSlDto; import com.dsic.gj_erp.exception.ServiceException; import com.dsic.gj_erp.service.jhgk.DmYdjhService; +import com.dsic.gj_erp.service.zyjh.DmYlInOutService; import com.dsic.gj_erp.service.zyjh.DmYlInfoService; import lombok.AllArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -29,6 +34,7 @@ public class YlController { private final DmYlInfoService ylInfoService; private final DmYdjhService ydjhService; + private final DmYlInOutService dmYlInOutService; @PostMapping("list") public ResultBean list(@RequestBody YlSlDto dto){ @@ -45,12 +51,39 @@ public class YlController { ); } + /** + * 入库 + */ + @AuthFunction + @PostMapping("rk") + @Transactional(rollbackFor = Exception.class) + public ResultBean rk(@RequestBody List list, HttpServletRequest request){ + String userCode=(String) request.getAttribute("yhdm"); + String 编制日期=DateUtil.date().toString("yyyy/MM/dd"); + List ylInOutList=new ArrayList<>(); + List updateList=list.stream().map(item->{ + DmYlInOut dmYlInOut = DmYlInOut.入库流水(item,userCode); + ylInOutList.add(dmYlInOut); + return DmYlInfo.入库(item,userCode,编制日期); + }).collect(Collectors.toList()); + ylInfoService.updateBatchById(updateList); + dmYlInOutService.saveBatch(ylInOutList); + return new ResultBean<>(); + } + /** * 保存功能 */ + @AuthFunction @PostMapping("edit") @Transactional(rollbackFor = Exception.class) - public ResultBean edit(@RequestBody List list){ + public ResultBean edit(@RequestBody List list, HttpServletRequest request){ + String userCode=(String) request.getAttribute("yhdm"); + String 编制日期=DateUtil.date().toString("yyyy/MM/dd"); + list.forEach(item->{ + item.set编制人(userCode); + item.set编制日期(编制日期); + }); ylInfoService.updateBatchById(list); return new ResultBean<>(); } @@ -61,7 +94,6 @@ public class YlController { @PostMapping("rollback") @Transactional(rollbackFor = Exception.class) public ResultBean rollback(@RequestBody List list){ - List updateList=new ArrayList<>(); list.stream() .filter(item->item.get使用状态()<=2) .forEach(item->{ @@ -70,30 +102,41 @@ public class YlController { .eq(DmYdjh::getTzbh, item.get使用图纸()) ); //退回作业计划 - //fixme 修正作业计划,余料上料相关属性 if (ObjectUtil.isNotEmpty(one)){ - + ydjhService.update(Wrappers.update() + .set("yl_ch",null) + .set("yl_ph",null) + .set("yl_th",null) + .set("ylbh",null) + .set("sllph",null) + .set("slfkrq",null) + .set("zt","2") + .eq("id",one.getId())); } //退回余料库存信息 item.修正退回信息(); }); - ydjhService.updateBatchById(updateList); - this.edit(list); + ylInfoService.updateBatchById(list); return new ResultBean<>(); } /** * 打印 */ + @AuthFunction @PostMapping("print") @Transactional(rollbackFor = Exception.class) - public ResultBean print(@RequestBody List list){ + public ResultBean print(@RequestBody List list,HttpServletRequest request){ + String userCode=(String) request.getAttribute("yhdm"); + String 出库日期=DateUtil.date().toString("yyyy/MM/dd"); + ArrayList updateList = new ArrayList<>(); + ArrayList 出库流水数据 = new ArrayList<>(); list.forEach(item->{ - if (StrUtil.isAllNotEmpty(item.get使用船号(),item.get使用船号())){ + if (StrUtil.isAllNotEmpty(item.get使用船号(),item.get使用图纸())){ String date = DateUtil.date().toString("yyyy/MM/dd"); item.set使用日期(date); - item.set使用状态(2);//已打印 + item.set使用状态(DmYlInfo.UseStatus.已打印.ordinal());//已打印 List ydjhList = ydjhService.list(Wrappers.lambdaQuery() .eq(DmYdjh::getDcCh, item.get使用船号()) .eq(DmYdjh::getTzbh,item.get使用图纸()) @@ -114,11 +157,15 @@ public class YlController { }).collect(Collectors.toList()); updateList.addAll(collect); + + DmYlInOut 出库流水 = DmYlInOut.出库流水(item, userCode, 出库日期); + 出库流水数据.add(出库流水); } }); ydjhService.updateBatchById(updateList); ylInfoService.updateBatchById(list); + dmYlInOutService.saveBatch(出库流水数据); return new ResultBean<>(); } @@ -151,14 +198,14 @@ public class YlController { for (DmYdjh ydjh:list){ for(DmYlInfo ylInfo:dto.getYlList()){ if (ylInfo.指定余料编号的上料匹配(ydjh.getJhsyylbh())&&ylInfo.上料匹配(ydjh)){//暂时不支持,仅保留分支流程 - ylInfo.修正上料信息(ydjh); + ylInfo.修正匹配信息(ydjh); 匹配成功的余料信息.add(ylInfo); continue out; } } for (DmYlInfo ylInfo:dto.getYlList()){ if (ylInfo.上料匹配(ydjh)){ - ylInfo.修正上料信息(ydjh); + ylInfo.修正匹配信息(ydjh); 匹配成功的余料信息.add(ylInfo); continue out; } @@ -195,14 +242,14 @@ public class YlController { for (DmYdjh ydjh:list){ for(DmYlInfo ylInfo:dto.getYlList()){ if (ylInfo.指定余料编号的上料匹配(ydjh.getJhsyylbh())&&ylInfo.上料匹配(ydjh)){//暂时不支持,仅保留分支流程 - ylInfo.修正上料信息(ydjh); + ylInfo.修正匹配信息(ydjh); 匹配成功的余料信息.add(ylInfo); continue out; } } for (DmYlInfo ylInfo:dto.getYlList()){ if (ylInfo.上料匹配(ydjh)){ - ylInfo.修正上料信息(ydjh); + ylInfo.修正匹配信息(ydjh); 匹配成功的余料信息.add(ylInfo); continue out; } diff --git a/src/main/java/com/dsic/gj_erp/mapper/zyjh/DmYlInOutMapper.java b/src/main/java/com/dsic/gj_erp/mapper/zyjh/DmYlInOutMapper.java new file mode 100644 index 0000000..742cd52 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/mapper/zyjh/DmYlInOutMapper.java @@ -0,0 +1,11 @@ +package com.dsic.gj_erp.mapper.zyjh; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsic.gj_erp.bean.zyjh.DmYlInOut; +import com.dsic.gj_erp.bean.zyjh.DmYlInfo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DmYlInOutMapper extends BaseMapper { + +} diff --git a/src/main/java/com/dsic/gj_erp/service/zyjh/DmYlInOutService.java b/src/main/java/com/dsic/gj_erp/service/zyjh/DmYlInOutService.java new file mode 100644 index 0000000..11040e3 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/service/zyjh/DmYlInOutService.java @@ -0,0 +1,12 @@ +package com.dsic.gj_erp.service.zyjh; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.zyjh.DmYlInOut; +import com.dsic.gj_erp.bean.zyjh.DmYlInfo; +import com.dsic.gj_erp.mapper.zyjh.DmYlInOutMapper; +import com.dsic.gj_erp.mapper.zyjh.DmYlInfoMapper; +import org.springframework.stereotype.Service; + +@Service +public class DmYlInOutService extends ServiceImpl { +}