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 52671004..9f6c35b5 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 @@ -4,6 +4,7 @@ import java.util.List; import com.ruoyi.aftersales.domain.AftersalesComplaintNoticeDetail; import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; +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; @@ -63,6 +64,22 @@ public class QualityManufacturingCheckoutController extends BaseController @Log(title = "品质管理制程检验", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody + 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(); + } + + /** + * 导出品质管理制程检验列表 + */ + @RequiresPermissions("quality:manufacturingCheckout:export") + @Log(title = "品质管理制程检验", businessType = BusinessType.EXPORT) + @PostMapping("/exportAll") + @ResponseBody public AjaxResult export(QualityManufacturingCheckout qualityManufacturingCheckout) { List list = qualityManufacturingCheckoutService.selectQualityManufacturingCheckoutList(qualityManufacturingCheckout); @@ -226,7 +243,19 @@ public class QualityManufacturingCheckoutController extends BaseController @PostMapping("/getMaterialListByCode") public TableDataInfo getMaterialListByCode(QualityManufacturingCheckout qualityManufacturingCheckout){ startPage(); - List list = qualityManufacturingCheckoutService.selectMaterialListByCode(qualityManufacturingCheckout.getManufacturingCheckoutCode()); +// List list = qualityManufacturingCheckoutService.selectMaterialListByCode(qualityManufacturingCheckout.getManufacturingCheckoutCode()); + List list = qualityManufacturingCheckoutService.selectMaterialListByCode(qualityManufacturingCheckout.getManufacturingCheckoutCode()); return getDataTable(list); } + + /** + * 制程检验报告详情 + */ + @GetMapping("/checkoutReportDetail/{materialNo}/{manufacturingCheckoutCode}") + public String checkoutReportDetail(@PathVariable("materialNo") String materialNo, @PathVariable("manufacturingCheckoutCode") String manufacturingCheckoutCode,ModelMap mmap) + { + QualityManufacturingCheckoutMaterial qualityManufacturingCheckoutMaterial = qualityManufacturingCheckoutService.selectDetailByCodes(materialNo,manufacturingCheckoutCode); + mmap.put("qualityManufacturingCheckoutMaterial", qualityManufacturingCheckoutMaterial); + return prefix + "/checkoutReportDetail"; + } } 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 b2acad8a..7d811637 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 @@ -102,10 +102,16 @@ public interface IQualityManufacturingCheckoutService /* * 根据制程检验单号查找制程检验物料 * */ - List selectMaterialListByCode(String manufacturingCheckoutCode); + List selectMaterialListByCode(String manufacturingCheckoutCode); /* * 制程检验详情 * */ int detailQualityManufacturingCheckout(QualityManufacturingCheckout qualityManufacturingCheckout); + + /* + * 根据制程检验单号和料号查找制程检验物料及详情 + * */ + QualityManufacturingCheckoutMaterial selectDetailByCodes(String materialNo, String manufacturingCheckoutCode); + } 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 23bd0567..2cbb838b 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 @@ -2,9 +2,7 @@ package com.ruoyi.quality.service.impl; import java.text.DecimalFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; @@ -138,6 +136,7 @@ public class QualityManufacturingCheckoutServiceImpl implements IQualityManufact }else{ for (QualityManufacturingUnqualifiedClass unqualified:unqualifiedClassList) { unqualified.setManufacturingCheckoutCode(newCode); + unqualified.setMaterialNo(process.getMaterialNo()); unqualified.setManufacturingProcessCode(process.getManufacturingProcessCode()); unqualified.setManufacturingProcessName(process.getManufacturingProcessName()); unqualified.setCreateBy(loginName); @@ -329,30 +328,45 @@ public class QualityManufacturingCheckoutServiceImpl implements IQualityManufact } @Override - public List selectMaterialListByCode(String manufacturingCheckoutCode) { - ArrayList checkoutMaterialVOS = new ArrayList<>(); + public List selectMaterialListByCode(String manufacturingCheckoutCode) { List checkoutMaterials = checkoutMaterialMapper.selectCheckoutMaterialByCode(manufacturingCheckoutCode); if (StringUtils.isEmpty(checkoutMaterials)){ // 记录日志 log.warn("未查找到与制程检验单号关联的物料相关数据, 制程检验单号: {}", manufacturingCheckoutCode); } - for (QualityManufacturingCheckoutMaterial checkoutMaterial : checkoutMaterials) { - CheckoutMaterialVO checkoutMaterialVO = new CheckoutMaterialVO(); - checkoutMaterialVO.setMaterialNo(checkoutMaterial.getMaterialNo()); - checkoutMaterialVO.setMaterialBrand(checkoutMaterial.getMaterialBrand()); - checkoutMaterialVO.setMaterialDescribe(checkoutMaterial.getMaterialDescribe()); - checkoutMaterialVO.setMaterialName(checkoutMaterial.getMaterialName()); - checkoutMaterialVO.setMaterialProcessMethod(checkoutMaterial.getMaterialProcessMethod()); - checkoutMaterialVO.setMaterialPhotourl(checkoutMaterial.getMaterialPhotourl()); - checkoutMaterialVO.setMaterialUnit(checkoutMaterial.getMaterialUnit()); - checkoutMaterialVO.setMaterialType(checkoutMaterial.getMaterialType()); - checkoutMaterialVOS.add(checkoutMaterialVO); - } - return checkoutMaterialVOS; + return checkoutMaterials; } @Override public int detailQualityManufacturingCheckout(QualityManufacturingCheckout qualityManufacturingCheckout) { return 1; } + + /* + * 根据制程检验单号和料号查找制程检验物料及详情 + * */ + @Override + public QualityManufacturingCheckoutMaterial selectDetailByCodes(String materialNo, String manufacturingCheckoutCode) { + Map params = new HashMap<>(); + params.put("materialNo", materialNo); + params.put("manufacturingCheckoutCode", manufacturingCheckoutCode); + QualityManufacturingCheckoutMaterial checkoutMaterial = checkoutMaterialMapper.selectCheckoutMaterialByCodes(params); + List materialProcessList = materialProcessMapper.selectCheckoutMaterialProcessByCodes(params); + if (StringUtils.isEmpty(materialProcessList)){ + // 记录日志 + log.warn("未查找到与制程检验单号和料号关联的工序相关数据, 制程检验单号: {}", manufacturingCheckoutCode); + }else{ + for (QualityManufacturingMaterialProcess process:materialProcessList) { + Map codes = new HashMap<>(); + codes.put("manufacturingCheckoutCode", manufacturingCheckoutCode); + codes.put("materialNo", materialNo); + codes.put("manufacturingProcessCode", process.getManufacturingProcessCode()); + List unqualifiedClassList = unqualifiedClassMapper.selectCheckoutUnqualifiedClassByCodes(codes); + process.setUnqualifiedClassList(unqualifiedClassList); + } + } + checkoutMaterial.setMaterialProcessList(materialProcessList); + return checkoutMaterial; + } + } diff --git a/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/checkoutReportDetail.html b/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/checkoutReportDetail.html new file mode 100644 index 00000000..6e58f2d2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/checkoutReportDetail.html @@ -0,0 +1,275 @@ + + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ 制程工序 +
+
+ +
+
+
+ +
+ + + + + + diff --git a/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/detail.html b/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/detail.html index 71682415..dc4e8a8a 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/detail.html +++ b/ruoyi-admin/src/main/resources/templates/quality/manufacturingCheckout/detail.html @@ -12,9 +12,8 @@
- -
@@ -44,9 +43,11 @@ var qualityManufacturingCheckout = [[${qualityManufacturingCheckout}]]; var makeNo = [[${qualityManufacturingCheckout.makeNo}]]; var prefix = ctx + "quality/manufacturingCheckout"; + var processMethodDatas = [[${@dict.getType('processMethod')}]]; $("#form-manufacturingCheckout-edit").validate({focusCleanup: true }); //物料信息展示列表 $(function() { + $('#makeNo').val(makeNo); var options = { url: ctx + "quality/manufacturingCheckout/getMaterialListByCode", showSearch: false, @@ -90,6 +91,9 @@ { title: '物料加工方式', field: 'materialProcessMethod', + formatter: function(value, row, index) { + return $.table.selectDictLabel(processMethodDatas, value); + } }, { title: '订单数', @@ -111,7 +115,7 @@ align: 'center', formatter: function(value, row, index) { var actions = []; - actions.push('检验报告 '); + actions.push('检验报告 '); return actions.join(''); } }, @@ -123,19 +127,9 @@ title: '工序不合格数', field: 'processUnqualifiedNum', }, - { - title: '操作', - align: 'center', - formatter: function(value, row, index) { - var actions = []; - actions.push('删除 '); - return actions.join(''); - } - } ] }; $.table.init(options); - loadAllMakeNos(); }) function queryParams(params) { @@ -158,90 +152,10 @@ }); - - /*加载所有的关联生产单号*/ - function loadAllMakeNos(){ - var url = ctx + 'system/makeorder/getAllMakeNos'; - $.ajax({ - type:'GET',//请求类型 - url:url,//后端接口url - dataType:'json', //预期服务器返回数据类型 - success: function (data){ - if (data && Array.isArray(data)){ - var selectElement = $("#form-manufacturingCheckout-edit select[name='makeNo']"); //获取生产编号下拉框元素 - //清空下拉框现有选项 - selectElement.empty(); - // 添加默认选项(如果需要) - selectElement.append(''); - //遍历返回的数据,添加下拉框的选项 - $.each(data,function (index,item){ - //赋值遍历数据中的makeNo到下拉框中 - selectElement.append(''); - }) - $("#makeNo").val(makeNo); - }else { - $.modal.error("数据为空"); - } - } - }) - } - - - - - /*选择物料按钮*/ - function insertRow() { - var selectedMakeNo = $("#makeNo").val(); - if (!selectedMakeNo) { - $.modal.alertWarning("请先选择生产单号。"); - return; - } - var encodedMakeNo = encodeURIComponent(selectedMakeNo); - var url = ctx + 'quality/manufacturingCheckout/materialSelect?makeNo=' + encodedMakeNo; - var options = { - title: '选择物料', - url: url, - callBack: doSubmit - }; - $.modal.openOptions(options); - } - - - function doSubmit(index, layero,uniqueId){ - console.log(uniqueId); - var iframeWin = window[layero.find('iframe')[0]['name']]; - var rowData = iframeWin.$('#bootstrap-materialSelect-table').bootstrapTable('getSelections')[0]; - console.log("rowData: "+rowData); - $("#bootstrap-table").bootstrapTable('insertRow', { - index:1, - row: { - materialNo:rowData.materialNo, - materialPhotourl:rowData.materialPhotourl, - materialName: rowData.materialName, - materialType: rowData.materialType, - materialDescribe: rowData.materialDescribe, - materialBrand: rowData.materialBrand, - materialUnit: rowData.materialUnit, - materialProcessMethod: rowData.materialProcessMethod, - makeTotal:rowData.makeTotal - } - }) - layer.close(index); - } - - // 逻辑删除前端的一行数据 - function removeRow(materialNo){ - $("#bootstrap-table").bootstrapTable('remove', { - field: 'materialNo', - values: materialNo - }) - } - - /*检验报告*/ function checkoutReport(materialNo){ - var makeNo = $('#makeNo').val(); //获取生产编号下拉框元素 - var url = ctx + 'quality/manufacturingCheckout/checkoutReport/' + materialNo+'/'+makeNo; + var manufacturingCheckoutCode = $('#manufacturingCheckoutCode').val(); //获取制程检验单编号 + var url = ctx + 'quality/manufacturingCheckout/checkoutReportDetail/' + materialNo+'/'+manufacturingCheckoutCode; $.modal.open("制程检验报告",url); }