From dafe8e604c5edefb825be205470a071efd70ffac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Thu, 22 Aug 2024 14:10:53 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E5=93=81=E8=B4=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8C=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8Ccontroller=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=A4=9A=E9=80=89=E5=92=8C=E5=85=A8=E9=83=A8=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8Cservice=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8C=E5=8D=95=E5=8F=B7=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E5=AF=BC=E5=87=BA=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9Eservic?= =?UTF-8?q?e=E6=9F=A5=E6=89=BE=E5=AF=BC=E5=87=BA=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8C=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=85=AC=E5=85=B1=E9=83=A8=E5=88=86=E8=B5=8B?= =?UTF-8?q?=E5=80=BC=E6=96=B9=E6=B3=95=EF=BC=9B=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E7=89=A9=E6=96=99=E3=80=81=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E5=92=8C=E5=B7=A5=E5=BA=8F=E4=B8=8D=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E6=95=B0=E5=88=9D=E5=A7=8B=E5=8C=96=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=88=97=E8=A1=A8=E6=96=B9=E6=B3=95=EF=BC=9B?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E5=88=B6=E7=A8=8B=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ualityManufacturingCheckoutController.java | 12 +-- .../domain/VO/CheckoutProcessExportVO.java | 80 +++++++++++++++++ .../IQualityManufacturingCheckoutService.java | 11 +++ ...alityManufacturingCheckoutServiceImpl.java | 86 +++++++++++++++++++ 4 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/quality/domain/VO/CheckoutProcessExportVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityManufacturingCheckoutController.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityManufacturingCheckoutController.java index 9f6c35b5..e7e0de27 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityManufacturingCheckoutController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityManufacturingCheckoutController.java @@ -8,6 +8,7 @@ import com.ruoyi.erp.domain.ErpBom; import com.ruoyi.quality.domain.QualityManufacturingCheckoutMaterial; import com.ruoyi.quality.domain.QualityManufacturingProcess; import com.ruoyi.quality.domain.VO.CheckoutMaterialVO; +import com.ruoyi.quality.domain.VO.CheckoutProcessExportVO; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -67,10 +68,9 @@ public class QualityManufacturingCheckoutController extends BaseController public AjaxResult export(@RequestBody String[] checkouts) { String checkoutString = String.join(",", checkouts); // 带分隔符 -// List list = erpBomService.getExportListByNos(bomNos); -// ExcelUtil<> util = new ExcelUtil(ErpBom.class); -// return util.exportExcel(list, bomNoString); - return AjaxResult.success(); + List exportVOS = qualityManufacturingCheckoutService.getExportList(checkouts); + ExcelUtil util = new ExcelUtil(CheckoutProcessExportVO.class); + return util.exportExcel(exportVOS, checkoutString); } /** @@ -82,8 +82,8 @@ public class QualityManufacturingCheckoutController extends BaseController @ResponseBody public AjaxResult export(QualityManufacturingCheckout qualityManufacturingCheckout) { - List list = qualityManufacturingCheckoutService.selectQualityManufacturingCheckoutList(qualityManufacturingCheckout); - ExcelUtil util = new ExcelUtil(QualityManufacturingCheckout.class); + List list = qualityManufacturingCheckoutService.getAllExportList(qualityManufacturingCheckout); + ExcelUtil util = new ExcelUtil(CheckoutProcessExportVO.class); return util.exportExcel(list, "品质管理制程检验数据"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/VO/CheckoutProcessExportVO.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/VO/CheckoutProcessExportVO.java new file mode 100644 index 00000000..f2499b4b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/domain/VO/CheckoutProcessExportVO.java @@ -0,0 +1,80 @@ +package com.ruoyi.quality.domain.VO; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.quality.domain.QualityManufacturingMaterialProcess; +import lombok.Data; + +import java.util.Date; + +@Data +public class CheckoutProcessExportVO { + /** 制程检验单号 */ + @Excel(name = "制程检验单号",sort = 1) + private String manufacturingCheckoutCode; + + /** 生产单号 */ + @Excel(name = "生产单号",sort = 2) + private String makeNo; + + /** 料号 */ + @Excel(name = "料号",sort = 3) + private String materialNo; + + /** 物料名称 */ + @Excel(name = "物料名称",sort = 4) + private String materialName; + + /** 设备名称 */ + @Excel(name = "设备名称",sort = 5) + private String deviceName; + + /** 设备型号 */ + @Excel(name = "设备型号",sort = 6) + private String deviceModelCode; + + /** 制程工序编号 */ + @Excel(name = "工序编号",sort = 7) + private String manufacturingProcessCode; + + /** 车间名称 */ + @Excel(name = "车间名称",sort = 8) + private String workshopName; + + /** 制程工序名称 */ + @Excel(name = "工序名称",sort = 9,dictType = "manufacturing_process_name") + private String manufacturingProcessName; + + /** 工序顺序 */ + @Excel(name = "工序顺序",sort = 10) + private String processSequence; + + /** 零件名称 */ + @Excel(name = "零件名称",sort = 11) + private String modName; + + /** 工序检验项目 */ + @Excel(name = "工序检验项目",sort = 12) + private String processInspectionItem; + + /** 工序检验状态 */ + @Excel(name = "检验状态",sort = 13) + private String processInspectionStatus; + + /** 检验数量(合格/不合格) */ + @Excel(name = "数量",sort = 14) + private int processInspectionsum; + + /** 检验报告 */ + @Excel(name = "检验报告",sort = 15) + private String reportPhotourl; + + /** 完成时间 */ + @Excel(name = "完成时间",sort = 16,dateFormat = "YYYY-MM-dd") + private Date completeDate; + + /** 备注 */ + @Excel(name = "备注",sort = 17) + private String remark; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualityManufacturingCheckoutService.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualityManufacturingCheckoutService.java index 7d811637..65159226 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualityManufacturingCheckoutService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/IQualityManufacturingCheckoutService.java @@ -5,6 +5,7 @@ import com.ruoyi.quality.domain.QualityManufacturingCheckout; import com.ruoyi.quality.domain.QualityManufacturingCheckoutMaterial; import com.ruoyi.quality.domain.QualityManufacturingProcess; import com.ruoyi.quality.domain.VO.CheckoutMaterialVO; +import com.ruoyi.quality.domain.VO.CheckoutProcessExportVO; /** * 品质管理制程检验Service接口 @@ -114,4 +115,14 @@ public interface IQualityManufacturingCheckoutService * */ QualityManufacturingCheckoutMaterial selectDetailByCodes(String materialNo, String manufacturingCheckoutCode); + /* + * 根据制程检验单号查找导出制程检验列表 + * */ + List getExportList(String[] checkoutCodes); + + /* + * 查找导出全部制程检验列表 + * */ + List getAllExportList(QualityManufacturingCheckout qualityManufacturingCheckout); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityManufacturingCheckoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityManufacturingCheckoutServiceImpl.java index 2cbb838b..246107c3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityManufacturingCheckoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityManufacturingCheckoutServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.quality.domain.*; import com.ruoyi.quality.domain.VO.CheckoutMaterialVO; +import com.ruoyi.quality.domain.VO.CheckoutProcessExportVO; import com.ruoyi.quality.mapper.*; import com.ruoyi.system.domain.SysMakeOrder; import com.ruoyi.system.domain.SysMakeorderBom; @@ -369,4 +370,89 @@ public class QualityManufacturingCheckoutServiceImpl implements IQualityManufact return checkoutMaterial; } + public CheckoutProcessExportVO initExportVO(QualityManufacturingCheckoutMaterial material,QualityManufacturingMaterialProcess process){ + CheckoutProcessExportVO exportVO = new CheckoutProcessExportVO(); + exportVO.setManufacturingCheckoutCode(material.getManufacturingCheckoutCode()); + exportVO.setMakeNo(material.getMakeNo()); + exportVO.setMaterialNo(material.getMaterialNo()); + exportVO.setMaterialName(material.getMaterialName()); + exportVO.setDeviceName(process.getDeviceName()); + exportVO.setDeviceModelCode(process.getDeviceModelCode()); + exportVO.setManufacturingProcessCode(process.getManufacturingProcessCode()); + exportVO.setWorkshopName(process.getWorkshopName()); + exportVO.setManufacturingProcessName(process.getManufacturingProcessName()); + exportVO.setProcessSequence(process.getProcessSequence()); + exportVO.setModName(process.getModName()); + exportVO.setProcessInspectionItem(process.getProcessInspectionItem()); + exportVO.setCompleteDate(material.getCheckoutTime()); + return exportVO; + } + @Override + public List getExportList(String[] checkoutCodes) { + + List checkoutProcessExportVOList = new ArrayList<>(); + for (String code:checkoutCodes) { + List materials = checkoutMaterialMapper.selectCheckoutMaterialByCode(code); + if (StringUtils.isEmpty(materials)){ + log.warn("未查找到制程工序物料相关数据: {}"); + }else { + checkoutProcessExportVOList = createExportVOListByMaterialList(materials); + } + } + return checkoutProcessExportVOList; + } + + @Override + public List getAllExportList(QualityManufacturingCheckout qualityManufacturingCheckout) { + List checkoutProcessExportVOList = new ArrayList<>(); + List materials = checkoutMaterialMapper.selectQualityManufacturingCheckoutMaterialList(); + if (StringUtils.isEmpty(materials)){ + log.warn("未查找到制程工序物料相关数据: {}"); + }else { + checkoutProcessExportVOList = createExportVOListByMaterialList(materials); + } + return checkoutProcessExportVOList; + } + + + public List createExportVOListByMaterialList(List materials) { + List checkoutProcessExportVOList = new ArrayList<>(); + if (materials != null) { + for (QualityManufacturingCheckoutMaterial material : materials) { + Map params = new HashMap<>(); + params.put("materialNo", material.getMaterialNo()); + params.put("manufacturingCheckoutCode", material.getManufacturingCheckoutCode()); + List materialProcessList = materialProcessMapper.selectCheckoutMaterialProcessByCodes(params); + for (QualityManufacturingMaterialProcess materialProcess : materialProcessList) { + if (materialProcess.getOkAcceptedNum() != 0) { + CheckoutProcessExportVO exportVO = initExportVO(material, materialProcess); + exportVO.setProcessInspectionsum(materialProcess.getOkAcceptedNum()); + exportVO.setReportPhotourl(materialProcess.getOkAcceptedPhotourl()); + exportVO.setProcessInspectionStatus("OK"); + checkoutProcessExportVOList.add(exportVO); + } + if (materialProcess.getSpecialConcessionsNum() != 0) { + CheckoutProcessExportVO exportVO = initExportVO(material, materialProcess); + exportVO.setProcessInspectionsum(materialProcess.getSpecialConcessionsNum()); + exportVO.setReportPhotourl(materialProcess.getSpecialConcessionsPhotourl()); + exportVO.setProcessInspectionStatus("特采"); + checkoutProcessExportVOList.add(exportVO); + } + params.put("manufacturingProcessCode", materialProcess.getManufacturingProcessCode()); + List unqualifiedClassList = unqualifiedClassMapper.selectCheckoutUnqualifiedClassByCodes(params); + if (unqualifiedClassList != null) { + for (QualityManufacturingUnqualifiedClass unqualified : unqualifiedClassList) { + CheckoutProcessExportVO exportVO = initExportVO(material, materialProcess); + exportVO.setProcessInspectionsum(unqualified.getProcessBadNum()); + exportVO.setReportPhotourl(unqualified.getProcessBadPhotourl()); + exportVO.setProcessInspectionStatus("NG"); + checkoutProcessExportVOList.add(exportVO); + } + } + } + } + } + return checkoutProcessExportVOList; + } + }