From 83474f6e0cd16d8df13059a8d8ee9d926660f365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=AE=8F=E6=96=8C?= <2164406372@qq.com> Date: Wed, 31 Dec 2025 15:46:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=A4=87=E4=BB=B6=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/InventoryStockController.java | 35 +++++++++++ .../sys/modules/pms/data/CoreSparePart.java | 36 +++++++++++ .../pms/mapper/InventoryStockMapper.java | 9 +++ .../Impl/InventoryStockServiceImpl.java | 52 ++++++++++++--- .../pms/service/InventoryStockService.java | 7 +++ .../mapper/pms/InventoryStockMapper.xml | 63 +++++++++++++++---- 6 files changed, 180 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/xujie/sys/modules/pms/data/CoreSparePart.java diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/InventoryStockController.java b/src/main/java/com/xujie/sys/modules/pms/controller/InventoryStockController.java index 0813c90a..c6e08324 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/InventoryStockController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/InventoryStockController.java @@ -1,6 +1,7 @@ package com.xujie.sys.modules.pms.controller; import com.xujie.sys.common.utils.R; import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.pms.data.CoreSparePart; import com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData; import com.xujie.sys.modules.pms.entity.InventoryStockEntity; import com.xujie.sys.modules.pms.entity.InventoryStockVoData; @@ -39,6 +40,40 @@ public class InventoryStockController { PageUtils page = inventoryStockService.queryPage(params); return R.ok().put("page", page); } + /** + * @author: ZHB + * @description: 保存核心备件管理表 + * @return: com.xujie.common.utils.R + * @date: 2025/12/30 15:13 + */ + @RequestMapping("/saveCoreSparePart") + public R saveCoreSparePart(@RequestBody CoreSparePart data){ + inventoryStockService.saveCoreSparePart(data); + return R.ok(); + } + /** + * @author: ZHB + * @description: 删除核心备件管理表 + * @return: com.xujie.common.utils.R + * @date: 2025/12/30 15:58 + */ + @RequestMapping("/deleteCoreSparePart") + public R deleteCoreSparePart(@RequestBody CoreSparePart data){ + inventoryStockService.deleteCoreSparePart(data); + return R.ok(); + } + /** + * @author: ZHB + * @description: 查询核心备件管理表 + * @return: com.xujie.common.utils.R + * @date: 2025/12/30 14:49 + */ + @RequestMapping("/getCoreSparePartList") + public R getCoreSparePartList(@RequestBody CoreSparePart data){ + List list = inventoryStockService.getCoreSparePartList(data); + return R.ok().put("list", list); + } + /** * @author: ZHB * @description: 查询核心备件列表(分为当前核心备件记录 和 未上机备件记录) diff --git a/src/main/java/com/xujie/sys/modules/pms/data/CoreSparePart.java b/src/main/java/com/xujie/sys/modules/pms/data/CoreSparePart.java new file mode 100644 index 00000000..ca8f5a3e --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/pms/data/CoreSparePart.java @@ -0,0 +1,36 @@ +package com.xujie.sys.modules.pms.data; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class CoreSparePart { + private String bu; + private String site; + private String buNo; + private String partNo; + private String partDesc; + //序列号 + private String serialNumber; + private String status; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date arrivalTime; + private String remark; + @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date createTime; + @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date updateTime ; + private String createBy; + private String updateBy; + + private String flag; + private String locationId; + + +} diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/InventoryStockMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/InventoryStockMapper.java index 981b31fc..5c3b353b 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/InventoryStockMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/InventoryStockMapper.java @@ -3,6 +3,7 @@ package com.xujie.sys.modules.pms.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xujie.sys.modules.pms.data.CoreSparePart; import com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData; import com.xujie.sys.modules.pms.entity.InventoryStockEntity; import com.xujie.sys.modules.pms.entity.InventoryStockVoData; @@ -41,4 +42,12 @@ public interface InventoryStockMapper extends BaseMapper { List getEamWorkOrderCoreComponentsList(@Param("query") EamWorkOrderCoreComponentsData data); List getEamWorkOrderCoreComponentsList2(@Param("query") EamWorkOrderCoreComponentsData data); List getEamWorkOrderCoreComponentsList3(@Param("query")EamWorkOrderCoreComponentsData data); + + void saveCoreSparePart(CoreSparePart data); + + List getCoreSparePartList(CoreSparePart data); + + void updateCoreSparePart(CoreSparePart data); + + void deleteCoreSparePart(CoreSparePart data); } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/InventoryStockServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/InventoryStockServiceImpl.java index 28daa562..89af45dd 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/InventoryStockServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/InventoryStockServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.pms.data.CoreSparePart; import com.xujie.sys.modules.pms.data.QcSamplingInspectionPlanData; import com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData; import com.xujie.sys.modules.pms.entity.InventoryStockEntity; @@ -16,6 +17,7 @@ import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -37,21 +39,53 @@ public class InventoryStockServiceImpl extends ServiceImpl getEamWorkOrderCoreComponentsList(EamWorkOrderCoreComponentsData data) { - if (!Objects.isNull(data.getBuNo())){ + if (!Objects.isNull(data.getBuNo()) && data.getBuNo().split("_").length >=2){ data.setSite(data.getBuNo().split("_")[0]); data.setBuNo(data.getBuNo().split("_")[1]); } - List list = null; - if (data.getGroupType().equals("0")){ - list = baseMapper.getEamWorkOrderCoreComponentsList(data); - } else if (data.getGroupType().equals("1")){ - list = baseMapper.getEamWorkOrderCoreComponentsList2(data); - }else if (data.getGroupType().equals("2")){ - list = baseMapper.getEamWorkOrderCoreComponentsList3(data); - } + List list = baseMapper.getEamWorkOrderCoreComponentsList3(data); +// if (data.getGroupType().equals("0")){ +// list = baseMapper.getEamWorkOrderCoreComponentsList(data); +// } else if (data.getGroupType().equals("1")){ +// list = baseMapper.getEamWorkOrderCoreComponentsList2(data); +// }else if (data.getGroupType().equals("2")){ +// list = baseMapper.getEamWorkOrderCoreComponentsList3(data); +// } return list; } + @Override + public void saveCoreSparePart(CoreSparePart data) { + // 获得 site 和 bu + if (data.getBu().split("_").length >= 2 ) { + data.setSite(data.getBu().split("_")[0]); + data.setBuNo(data.getBu().split("_")[1]); + } else { + throw new RuntimeException("工厂和部门有误!"); + } + + if (data.getFlag().equals("1")){ + baseMapper.saveCoreSparePart(data); + } else if (data.getFlag().equals("2")){ + baseMapper.updateCoreSparePart(data); + } + + } + + @Override + public List getCoreSparePartList(CoreSparePart data) { + if (!Objects.isNull(data.getBuNo()) && data.getBuNo().split("_").length >=2){ + data.setSite(data.getBuNo().split("_")[0]); + data.setBuNo(data.getBuNo().split("_")[1]); + } + return baseMapper.getCoreSparePartList(data); + } + + @Override + public void deleteCoreSparePart(CoreSparePart data) { + baseMapper.deleteCoreSparePart(data); + } + @Override public int updateQtyOfPoByIdOfAdd(InventoryStockEntity inventoryStockEntity) { return baseMapper.updateQtyOfPoByIdOfAdd(inventoryStockEntity); diff --git a/src/main/java/com/xujie/sys/modules/pms/service/InventoryStockService.java b/src/main/java/com/xujie/sys/modules/pms/service/InventoryStockService.java index 5be19286..bb613cd1 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/InventoryStockService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/InventoryStockService.java @@ -2,6 +2,7 @@ package com.xujie.sys.modules.pms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.pms.data.CoreSparePart; import com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData; import com.xujie.sys.modules.pms.entity.InventoryStockEntity; import com.xujie.sys.modules.pms.entity.InventoryStockVoData; @@ -28,5 +29,11 @@ public interface InventoryStockService extends IService { int updateQtyOfPoByIdOfSub(InventoryStockEntity inventoryStockEntity); List getEamWorkOrderCoreComponentsList(EamWorkOrderCoreComponentsData data); + + void saveCoreSparePart(CoreSparePart data); + + List getCoreSparePartList(CoreSparePart data); + + void deleteCoreSparePart(CoreSparePart data); } diff --git a/src/main/resources/mapper/pms/InventoryStockMapper.xml b/src/main/resources/mapper/pms/InventoryStockMapper.xml index 0a769dc5..c0b47eae 100644 --- a/src/main/resources/mapper/pms/InventoryStockMapper.xml +++ b/src/main/resources/mapper/pms/InventoryStockMapper.xml @@ -34,6 +34,14 @@ + + insert into core_spare_part(site,bu_no,part_no,part_desc,serial_number,status,arrival_time,remark,create_time,create_by) + values(#{site},#{buNo},#{partNo},#{partDesc},#{serialNumber},#{status},#{arrivalTime},#{remark},GETDATE(),#{createBy}) + + + delete from core_spare_part + where site = #{site} and bu_no = #{buNo} and part_no = #{partNo} and serial_number = #{serialNumber} + SELECT @@ -296,7 +314,7 @@ created_by, created_date FROM eam_workOrder_coreComponents - WHERE oldSerialNo IS NOT NULL + WHERE oldSerialNo IS NOT NULL and site = #{query.site} AND bu_no = #{query.buNo} AND partNo = #{query.partNo} UNION ALL SELECT site, @@ -308,7 +326,7 @@ created_by, created_date FROM eam_workOrder_coreComponents - WHERE newSerialNo IS NOT NULL + WHERE newSerialNo IS NOT NULL and site = #{query.site} AND bu_no = #{query.buNo} AND partNo = #{query.partNo} ), RankedSerials AS ( SELECT @@ -349,6 +367,7 @@ ewc.OrderNo, ewc.partno, ps.part_description, + ps.est_use_qty, ewc.serialNo, ewc.action, ewc.created_by, @@ -361,18 +380,36 @@ LEFT JOIN eam_workOrder ew ON ewc.site = ew.site AND ewc.bu_no = ew.bu_no AND ewc.OrderNo = ew.OrderNo LEFT JOIN eam_defect_feedBack edf on ew.site = edf.site and ew.PlanID = edf.feedBackID and ew.bu_no = edf.bu_no WHERE ps.coreFlag = 'Y' - - and ewc.site = #{query.site} - - - and ewc.bu_no = #{query.buNo} - - - and ewc.partNo = #{query.partNo} - - - and ps.part_description like '%'+ #{query.partDescription} +'%' + + and ewc.serialNo = #{query.serialNo} ORDER BY partno, serialNo, created_date +