diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderChild.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderChild.java index 60d07b68..4091c1e0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderChild.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderChild.java @@ -150,6 +150,8 @@ public class PurchaseOrderChild extends BaseEntity @Excel(name = "实际已到货数量") private Integer actualHasArrivedNum; + private List supplierList; + public Integer getNotifyHasArrivedNum() { return notifyHasArrivedNum; } @@ -169,6 +171,15 @@ public class PurchaseOrderChild extends BaseEntity this.purchaseQuoteChildList = purchaseQuoteChildList; } + + public List getPurchaseOrderChildSupplierList() { + return supplierList; + } + + public void setPurchaseOrderChildSupplierList(List supplierList) { + this.supplierList = supplierList; + } + public String getWarehouseDept() { return warehouseDept; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java index b47d8e42..be62b700 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java @@ -284,7 +284,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService materialRmbSum = materialRmbSum.add(suplierMaterialRmbSumLocal); // 设置采购报价单编号和供应商信息到QuoteChild material.setPurchaseOrderCode(purchaseOrder.getPurchaseOrderCode()); - material.setPurchasePlanCorrelationCode(purchasePlan.getCorrelationCode()); + material.setPurchasePlanCorrelationCode(child.getCorrelationCode()); material.setSupplierCode(child.getSupplierCode()); material.setMaterialUnit(child.getMaterialUnit()); material.setWarehouseDept(child.getWarehouseDept()); @@ -316,7 +316,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService material.setEceiptStatus("0"); material.setPaymentStatus("0"); // 执行子表插入操作 - purchaseOrderChildService.insertPurchaseOrderChild(child); + purchaseOrderChildService.insertPurchaseOrderChild(material); PurchasePlan plan = new PurchasePlan(); plan.setPurchasePlanCode(child.getPurchasePlanCode()); plan.setPurchasePlanStatus("1"); @@ -351,7 +351,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService // 设置采购报价单编号和供应商信息到QuoteChild material.setPurchaseOrderCode(purchaseOrder.getPurchaseOrderCode()); material.setCorrelationCode(purchasePlan.getCorrelationCode()); - material.setPurchasePlanCorrelationCode(purchasePlan.getCorrelationCode()); + material.setPurchasePlanCorrelationCode(child.getCorrelationCode()); material.setSupplierCode(child.getSupplierCode()); material.setMaterialUnit(child.getMaterialUnit()); material.setWarehouseDept(child.getWarehouseDept()); @@ -383,7 +383,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService material.setEceiptStatus("0"); material.setPaymentStatus("0"); // 执行子表插入操作 - purchaseOrderChildService.insertPurchaseOrderChild(child); + purchaseOrderChildService.insertPurchaseOrderChild(material); PurchasePlan plan = new PurchasePlan(); plan.setPurchasePlanCode(child.getPurchasePlanCode()); plan.setPurchasePlanStatus("1"); @@ -411,9 +411,6 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService Integer amount = amountSet.size(); purchaseOrder.setMaterialAmount(amount); return purchaseOrderMapper.insertPurchaseOrder(purchaseOrder); - - - } //生成应付账款,根据物料的供应商划分应付供应商,供应商的物料价格合计。 public int purchaseOrderPayment(PurchaseOrder purchaseOrder) { @@ -586,7 +583,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService FinancialAccountsPayable financialAccountsPayable = new FinancialAccountsPayable(); financialAccountsPayable.setAccountsPayableCode(redisCache.generateBillNo("YF")); financialAccountsPayable.setRelevanceCode(purchaseOrder.getPurchaseOrderCode()); - for (PurchaseOrderChild purchaseOrderChild1 : purchaseOrderChildList) { + for (PurchaseOrderChild purchaseOrderChild1 : children) { //如果是如上述的供应商,则进行统计 if (purchaseOrderChild1.getSupplierCode().equals(purchaseOrderChild.getSupplierCode())) { //供应商应付账款 不含税金额 diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml index 7cb2900a..c5a5b76c 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml @@ -5,47 +5,65 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select purchase_order_child_id, purchase_order_code, purchase_plan_code, purchase_plan_correlation_code, supplier_code, supplier_name, @@ -58,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml index 3c9307b2..d0ef9a62 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml @@ -183,34 +183,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update purchase_quote_child set del_flag = '0' where purchase_quote_child_id = #{purchaseQuoteChildId} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/detail.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/detail.html index f9afb5a9..5941bba0 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/detail.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/detail.html @@ -1,10 +1,16 @@ - + +
@@ -12,17 +18,17 @@
- +
-
+
@@ -37,57 +43,61 @@

公司地址:

-
- -
- +
+ +
+
- -
- +
+
+ +
+
-
- -
- +
+ +
+
- -
- +
+
+ +
+
-
- -
- +
+ +
+

订单合计:

-
- -
- +
+ +
+
-
- -
- +
+ +
+
-
- -
- +
+ +
+
-
- -
- +
+ +
+
@@ -122,7 +132,6 @@ // 假设qualityOrderCode已经定义或者可以通过某种方式获取到 $(function() { // 初始化时默认加载仓库ID列表 - loadWarehouseCodes(); // 假设purchaseOrderCode已经定义或者可以通过某种方式获取到 var purchaseOrderCode = [[${purchaseOrder.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 var purchaseOrderId = [[${purchaseOrder.purchaseOrderId}]]; @@ -152,6 +161,16 @@ createTableForSupplier(supplierCode, supplierData); } } + loadWarehouseCodes(); + //物料合计 = 物料实际采购数合计,不含税总价,含税采购总价不为null的情况可以合计物料,否则跳过 + $("#purchaseMaterialSum").val(purchaseOrder.materialSum); + //采购数量合计 + $('#purchaseSum').val(purchaseOrder.materialSum); + //采购不含税总价 + $('#purchaseNoRmbSum').val(purchaseOrder.noRmbSum); + //采购含税总价 + $('#purchaseRmbSum').val(purchaseOrder.rmbSum); + $('#stockNo').val(purchaseOrder.stockNo); //按照物料的维度查看采购订单信息 // 初始化表格 @@ -165,14 +184,27 @@ var $tableWrapper = $('
'); // 将整个物料信息容器添加到页面 $('#purchasePlanMaterial').append($tableWrapper); + var uniqueSuppliers = []; + ////如果物料相同,则添加供应商信息,并对比现在的关系采购计划关联单号是否有包含,没有添加。有则不添加 + material.purchaseOrderChildSupplierList.forEach(supplier => { + const key = `${supplier.supplierCode}_${supplier.materialCode}`; + if (!uniqueSuppliers.map(s => `${s.supplierCode}_${s.materialCode}`).includes(key)) { + uniqueSuppliers.push(supplier); + } + }); // 添加关联销售订单号信息 // 创建表格的容器 var $headerDiv = - $('

' + - '物料 ' + (index + 1) + ': 关联订单号: ' + material.purchasePlanCorrelationCode - + '' + - '

' + '
' + - ''); + $('
' + + '
' + + '

' + + '物料 ' + (index + 1) + ': 关联订单号: ' + material.purchasePlanCorrelationCode + '' + + '

' + + '
' + + '
' + '
' + + '' + + '' + + ''); $tableWrapper.append($headerDiv); //创建物料库存容器 var $stockWrapper = $('
'+ @@ -190,57 +222,60 @@ var materialData = [materialObj]; materialList.push(material); tables(materialTable, materialData); - var $supplierInfo = $('
'); + + var supplierCode = material.supplierCode; + if (supplierCodes.includes(supplierCode)) { + var supplierInfo = $('#supplierInfo_' + tableId); + if (supplierInfo.length === 0) { + var $supplierInfo = $('
'); + $tableWrapper.append($supplierInfo); + } + var supplierData = material.purchaseOrderChildSupplierList; + supplierData.forEach(function (supplier) { + var supplierCode = supplier.supplierCode; + }); + } //如果物料下的供应商为空,则不需要添加供应商信息,并在容器中添加一个提示信息:暂无供应商信息,请先添加供应商信息。 - const uniqueSuppliers = []; - if (material.purchaseSupplierList.length <= 0) { + if (material.purchaseOrderChildSupplierList.length <= 0) { var $noSupplierDiv = $('
暂无供应商信息,请先添加供应商信息。
'); $tableWrapper.append($noSupplierDiv); } else{ - material.purchaseSupplierList.forEach(supplier => { - const key = `${supplier.supplierCode}_${supplier.materialCode}`; - if (!uniqueSuppliers.map(s => `${s.supplierCode}_${s.materialCode}`).includes(key)) { - uniqueSuppliers.push(supplier); - } - }); // 循环处理每个供应商的信息 uniqueSuppliers.forEach(function (supplier, supplierIndex) { //如果供应商相同,则不需要再次添加供应商信息 // 卡片样式容器,用于包裹每个供应商的信息 // 构建供应商信息头部 var $headerContent = - $('
' + - '
' + - '
'+ - '

供应商 ' + (supplierIndex + 1) + ':' + '

' + - '' + supplier.supplierCode + '' + '-' + - '' + supplier.supplierName + '' + - '-最新不含税采购价: ' +'' + supplier.materialNoRmb +''+ - ' RMB 最新含税采购价: ' +'' + supplier.materialRmb + ' RMB ' + - '' + - '' + - '' + - '
' + - '
' + - '
' + - '
' + - '' + - '
' + - '' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '' + - '' + - '
' + - '
' + - '
' + - '
' + + $( '
' + + '
' + + '
'+ + '供应商 ' + (supplierIndex + 1) + ': ' + '' + supplier.supplierCode + '' + '-' + '' + supplier.supplierName + '' + + '-最新不含税采购价: ' +'' + supplier.materialRealNoRmb +''+ + ' RMB 最新含税采购价: ' +'' + supplier.materialRealRmb + ' RMB ' + + '' + + '' + + '' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '
' + + '' + + '' + + '
' + + '
' + + '
' + + '
' + '
'); if (supplier.supplierCode != undefined && supplier.supplierCode != '' && supplier.supplierCode != null) { $supplierInfo.append($headerContent); @@ -357,6 +392,127 @@ $tableWrapper.append($header).append($table); $('#supplierMaterial').append($tableWrapper); } + // 新增函数:重新计算某物料的采购数量合计、不含税采购总价和含税采购总价 + function recalculateTotals(tableId) { + var $tableWrapper = $('#material-' + tableId); + var totalNoRmb = 0; + var totalRmb = 0; + var totalActualPurchase = 0; + var $suplierInfo = $tableWrapper.find('.supplier-card'); + //获取所有物料表中供应商列表数据,实际采购数合计,不含税总价,含税采购总价 + $suplierInfo.find('.supplier_card').each(function() { + let purchaseNum = parseFloat($(this).find('.actualPurchaseNum').val()) || 0; + let noRmbPrice = parseFloat($(this).find('.supplierMaterialNoRmb').text().trim()) || 0; + let rmbPrice = parseFloat($(this).find('.supplierMaterialRmb').text().trim()) || 0; + totalNoRmb += purchaseNum * noRmbPrice; + totalRmb += purchaseNum * rmbPrice; + totalActualPurchase = totalActualPurchase + purchaseNum; + }); + //物料的实际采购数合计 + $('#materialAmountSum_' + tableId).val(totalActualPurchase); + //物料的实际不含税采购总价: + $('#materialNoRmbSum_' + tableId).val(parseFloat(totalNoRmb)); + //物料的实际含税总价: + $('#materialRmbSum_' + tableId).val(parseFloat(totalRmb)); + // 采购物料合计 + materialActualPurchaseSum(); + } + function materialActualPurchaseSum(){ + var totalNoRmb = 0; + var totalRmb = 0; + var totalActualPurchase = 0; + var materialAmount = 0; + tableIdList.forEach(function (material, index) { + var tableId = tableIdList[index]; + var $tableWrapper = $('#material-' + tableId); + //采购合计 = 所有物料的采购数量合计 + //采购不含税总价 = 所有物料的不含税总价合计 + //采购含税总价 = 所有物料的含税总价合计 + //查询物料表下吗整合的物料的实际采购数合计,物料的实际不含税采购总价,物料的实际含税总价 + var supplierInfo = $tableWrapper.find('#supplierInfo_' + tableId ); + let purchaseNum = parseInt(supplierInfo.find('.actualPurchaseTotalSum').val()) || 0; + let noRmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotal').val()) || 0; + let rmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotalTax').val()) || 0; + if (purchaseNum > 0) { + materialAmount += 1; + } + totalActualPurchase += purchaseNum; + totalNoRmb += noRmbPrice; + totalRmb += rmbPrice; + }); + //物料合计 = 物料实际采购数合计,不含税总价,含税采购总价不为null的情况可以合计物料,否则跳过 + $("#purchaseMaterialSum").val(materialAmount); + //采购数量合计 + $('#purchaseSum').val(totalActualPurchase); + //采购不含税总价 + $('#purchaseNoRmbSum').val(totalNoRmb); + //采购含税总价 + $('#purchaseRmbSum').val(totalRmb); + } + function tableSetup(element, tableId) { + var $totalSection = $( + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
'+ + '
'); + element.append($totalSection); + } + // 创建表格并添加到页面 + function tables(tableId, data) { + $('#' + tableId).bootstrapTable({ + showExport: false, + showFooter: false, + showSearch: false, + showRefresh: false, + showColumns: false, + showToggle: false, + data: data, + height: 70, + columns: [ + {checkbox: false}, + {title: '料号', field: 'materialCode'}, + {title: '图片', field: 'photoUrl', formatter: function (value, row, index) { + return $.table.imageView(value); + } + }, + {title: '物料名称', field: 'materialName'}, + {title: '物料类型', field: 'materialType', align: 'center', formatter: function (value, row, index) { + return $.table.selectCategoryLabel(materialTypeDatas, value); + } + }, + {title: '物料描述', field: 'describe'}, + {title: '品牌', field: 'brand'}, + {title: '加工类型', field: 'processMethod', align: 'center', formatter: function (value, row, index) { + return $.table.selectDictLabel(processMethodDatas, value); + } + }, + {title: '单位', field: 'unit', align: 'center', }, + {title: '入库部门', field: 'warehouseDept', align: 'center', formatter: function (value, row, index) { + return $.table.selectDictLabel(warehouseDeptDatas, value); + }}, + {title: '计划采购数', field: 'materialNum'}, + ], + }); + } + // 加载仓库Id列表函数 $("#form-cgjl-edit").validate({focusCleanup: true}); //open打开时,模态框foot下新增审核通过和审核拒绝按钮 @@ -412,7 +568,6 @@ $.each(data, function(index, item) { selectElement.append(''); }); // 遍历返回的数据,添加为下拉框的选项 - // $('#warehouseCode').val(purchaseOrder.stockNO); } else { $.modal.errMsg("数据为空"); } diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgjlVerify.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgjlVerify.html index 4fac5f43..b713aa70 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgjlVerify.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgjlVerify.html @@ -3,34 +3,34 @@ +
-
+ + - -
' + '
' + - ''); + $('
' + + '
' + + '

' + + '物料 ' + (index + 1) + ': 关联订单号: ' + material.purchasePlanCorrelationCode + '' + + '

' + + '
' + + '
' + '
' + + '' + + '' + + ''); $tableWrapper.append($headerDiv); //创建物料库存容器 var $stockWrapper = $('
'+ @@ -235,37 +263,40 @@ var materialData = [materialObj]; materialList.push(material); tables(materialTable, materialData); - var $supplierInfo = $('
'); + + var supplierCode = material.supplierCode; + if (supplierCodes.includes(supplierCode)) { + var supplierInfo = $('#supplierInfo_' + tableId); + if (supplierInfo.length === 0) { + var $supplierInfo = $('
'); + $tableWrapper.append($supplierInfo); + } + var supplierData = material.purchaseOrderChildSupplierList; + supplierData.forEach(function (supplier) { + var supplierCode = supplier.supplierCode; + }); + } //如果物料下的供应商为空,则不需要添加供应商信息,并在容器中添加一个提示信息:暂无供应商信息,请先添加供应商信息。 - const uniqueSuppliers = []; - if (material.purchaseSupplierList.length <= 0) { + if (material.purchaseOrderChildSupplierList.length <= 0) { var $noSupplierDiv = $('
暂无供应商信息,请先添加供应商信息。
'); $tableWrapper.append($noSupplierDiv); } else{ - material.purchaseSupplierList.forEach(supplier => { - const key = `${supplier.supplierCode}_${supplier.materialCode}`; - if (!uniqueSuppliers.map(s => `${s.supplierCode}_${s.materialCode}`).includes(key)) { - uniqueSuppliers.push(supplier); - } - }); // 循环处理每个供应商的信息 uniqueSuppliers.forEach(function (supplier, supplierIndex) { //如果供应商相同,则不需要再次添加供应商信息 // 卡片样式容器,用于包裹每个供应商的信息 // 构建供应商信息头部 var $headerContent = - $('
' + + $( '
' + '
' + '
'+ - '

供应商 ' + (supplierIndex + 1) + ':' + '

' + - '' + supplier.supplierCode + '' + '-' + - '' + supplier.supplierName + '' + - '-最新不含税采购价: ' +'' + supplier.materialNoRmb +''+ - ' RMB 最新含税采购价: ' +'' + supplier.materialRmb + ' RMB ' + + '供应商 ' + (supplierIndex + 1) + ': ' + '' + supplier.supplierCode + '' + '-' + '' + supplier.supplierName + '' + + '-最新不含税采购价: ' +'' + supplier.materialRealNoRmb +''+ + ' RMB 最新含税采购价: ' +'' + supplier.materialRealRmb + ' RMB ' + '' + - '' + + '' + '' + '
' + '
' + @@ -273,14 +304,14 @@ '
' + '' + '
' + - '' + + '' + '
' + '
' + '
' + '' + '
' + '
' + - '' + + '' + '' + '
' + '
' + @@ -402,69 +433,6 @@ $tableWrapper.append($header).append($table); $('#supplierMaterial').append($tableWrapper); } - // 加载仓库Id列表函数 - $("#form-cgjl-edit").validate({focusCleanup: true}); - //open打开时,模态框foot下新增审核通过和审核拒绝按钮 - function submitHandler() { - if ($.validate.form()) { - if ($('textarea[name="comment"]').val()) { - $('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); - } - var taskId = [[${taskId}]]; - $.operate.save(prefix + "/complete/" + taskId, $('#form-cgjl-edit').serialize()); - } - } - //获取仓库相关信息Select2,根据仓库ID查询仓库名称 - $('#stockNo').on('change', function() { - var selectedWarehouseCode = $(this).val(); // 获取选中的仓库ID - if (selectedWarehouseCode) { - // 发起Ajax请求获取仓库名称 - $.ajax({ - type: 'GET', - url: ctx +'stock/stockInfo/getStockNameByWarehouseCode/' + selectedWarehouseCode, - dataType: 'json', // 假设返回的数据格式是JSON - success: function(data) { - console.log(data); - // 将获取到的仓库名称填充到输入框 - if(data.data == null){ - // 如果返回的数据有问题,可以给出提示或处理 - $.modal.alertWarning('未能获取到仓库名称!'); - } - $('input[name="stockName"]').val(data.data.stockName); - $('input[name="stockAddress"]').val(data.data.stockAddr); - $('input[name="stockContact"]').val(data.data.stockManager); - $('input[name="stockPhone"]').val(data.data.stockManagerPhone); - }, - error: function(jqXHR, textStatus, errorThrown) { - console.error('Error:', textStatus, errorThrown); - $.modal.alertWarning('查询仓库名称时发生错误!'); - } - }); - } - else {$('input[name="warehouseName"]').val('');}// 如果没有选择仓库ID,清空仓库名称输入框 - }); - // 加载仓库Id列表函数 - function loadWarehouseCodes() { - var url = ctx + 'stock/stockInfo/getAllWarehouseCode'; - $.ajax({ - type: 'GET', // 请求类型 - url: url, // 后端接口URL - dataType: 'json', // 预期服务器返回的数据类型 - success: function(data) { - if (data && Array.isArray(data)) { - var selectElement = $('#stockNo'); // 获取仓库编号下拉框元素 - selectElement.empty();// 清空下拉框现有选项 - $.each(data, function(index, item) { - selectElement.append(''); - }); // 遍历返回的数据,添加为下拉框的选项 - // $('#warehouseCode').val(formData.stockNO); - } else { - $.modal.errMsg("数据为空"); - } - } - }); - } - // 新增函数:重新计算某物料的采购数量合计、不含税采购总价和含税采购总价 function recalculateTotals(tableId) { var $tableWrapper = $('#material-' + tableId); @@ -503,9 +471,9 @@ //采购含税总价 = 所有物料的含税总价合计 //查询物料表下吗整合的物料的实际采购数合计,物料的实际不含税采购总价,物料的实际含税总价 var supplierInfo = $tableWrapper.find('#supplierInfo_' + tableId ); - let purchaseNum = parseInt(supplierInfo.find('.actualPurchaseTotalSum').val().trim()) || 0; - let noRmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotal').val().trim()) || 0; - let rmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotalTax').val().trim()) || 0; + let purchaseNum = parseInt(supplierInfo.find('.actualPurchaseTotalSum').val()) || 0; + let noRmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotal').val()) || 0; + let rmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotalTax').val()) || 0; if (purchaseNum > 0) { materialAmount += 1; } @@ -526,28 +494,29 @@ var $totalSection = $( '
' + '
' + - '
' + - '' + - '
' + - '' + + '
' + + '' + + '
' + + '' + '
' + '
' + - '
' + - '' + - '
' + - '' + + '' + + '
' + + '' + '
' + '
' + - '
' + - '' + - '
' + - '' + + '
' + + '' + + '
' + + '' + '
' + '
' + '
'+ '
'); element.append($totalSection); } + // 创建表格并添加到页面 function tables(tableId, data) { $('#' + tableId).bootstrapTable({ showExport: false, @@ -584,92 +553,65 @@ ], }); } - function submitHandlerPurchaseOrder() { - if ($.validate.form()) { - var materialSum = 0; - var materialRealSum = 0; - var materialNoRmbSum = 0; - var materialRmbSum = 0; - //添加去除供应商编号数组 - var supplierNumList = []; - var purchaseOrder = { - supplierNum: 0, materialNum: 0, noRmbSum: 0, rmbSum: 0, - stockNo: $("#stockNo").val(), - stockName: $("#stockName").val(), - stockAddress: $("#stockAddress").val(), - stockContact: $("#stockContact").val(), - stockPhone: $("#stockPhone").val(), - purchaseOrderChildList: [], - }; - // 遍历每个物料容器 - $('.table-materialCode').each(function (index, tableElement) { - var tableId = tableIdList[index]; - let materialObj = materialList[index]; - var $tableWrapper = $('#material-' + tableId); - if (typeof materialObj === 'undefined') return; - var $suplierInfo = $tableWrapper.find('.supplier-card'); - $suplierInfo.find('.supplier_card').each(function (supplierIndex, supplierCard) { - var supplierCode = $(this).find('.supplierCode').text().trim(); - var supplierName = $(this).find('.supplierName').text().trim(); - var materialRealNum = parseInt($(this).find('.actualPurchaseNum').val()) || 0; - var materialRealRmb = parseFloat($(this).find('.supplierMaterialRmb').text()) || 0; - var materialRealNoRmb = parseFloat($(this).find('.supplierMaterialNoRmb').text()) || 0; - var deliveryTime = $(this).find('.supplierDeliveryTime').val(); - var purchasePlanCode = $(this).find('.supplierPurchasePlanCode').text().trim(); - var correlationCode = $(this).find('.supplierCorrelationCode').text().trim(); - var purchaseQuoteCode = $(this).find('.supplierPurchaseQuoteCode').text().trim(); - var materialRealRmbSum = parseFloat(materialRealRmb * materialRealNum); - var materialRealNoRmbSum = parseFloat(materialRealNoRmb * materialRealNum); - materialRealSum += materialRealNum; - materialNoRmbSum += materialRealNoRmbSum; - materialRmbSum += materialRealRmbSum; - if (supplierNumList.indexOf(supplierCode) === -1) { - supplierNumList.push(supplierCode); - purchaseOrder.supplierNum += 1; + + // 加载仓库Id列表函数 + $("#form-cgjl-edit").validate({focusCleanup: true}); + //open打开时,模态框foot下新增审核通过和审核拒绝按钮 + //获取仓库相关信息Select2,根据仓库ID查询仓库名称 + function loadWarehouseCodes() { + var url = ctx + 'stock/stockInfo/getAllWarehouseCode'; + $.ajax({ + type: 'GET', // 请求类型 + url: url, // 后端接口URL + dataType: 'json', // 预期服务器返回的数据类型 + success: function(data) { + if (data && Array.isArray(data)) { + var selectElement = $('#stockNo'); // 获取仓库编号下拉框元素 + selectElement.empty();// 清空下拉框现有选项 + $.each(data, function(index, item) { + selectElement.append(''); + }); // 遍历返回的数据,添加为下拉框的选项 + } else { + $.modal.errMsg("数据为空"); + } + } + }); + } + $('#stockNo').on('change', function() { + var selectedWarehouseCode = $(this).val(); // 获取选中的仓库ID + if (selectedWarehouseCode) { + // 发起Ajax请求获取仓库名称 + $.ajax({ + type: 'GET', + url: ctx +'stock/stockInfo/getStockNameByWarehouseCode/' + selectedWarehouseCode, + dataType: 'json', // 假设返回的数据格式是JSON + success: function(data) { + console.log(data); + // 将获取到的仓库名称填充到输入框 + if(data.data == null){ + // 如果返回的数据有问题,可以给出提示或处理 + $.modal.alertWarning('未能获取到仓库名称!'); } - var materialData = { - materialCode: materialObj.materialCode, - materialName: materialObj.materialName, - materialType: materialObj.materialType, - materialBrand: materialObj.brand, - materialDescribe: materialObj.describe, - materialProcessMethod: materialObj.processMethod, - materialUnit: materialObj.unit, - materialPhotoUrl: materialObj.photoUrl, - warehouseDept: materialObj.warehouseDept, - materialNum: materialObj.materialNum, - supplierCode: supplierCode, - supplierName: supplierName, - materialNoRmb: materialObj.materialNoRmb, - materialRmb: materialObj.materialRmb, - materialRealNum: materialRealNum, - materialRealRmb: materialRealRmb, - materialRealNoRmb: materialRealNoRmb, - materialRealRmbSum: materialRealRmbSum, - materialRealNoRmbSum: materialRealNoRmbSum, - deliveryTime: deliveryTime, - purchasePlanCode: purchasePlanCode, - correlationCode: correlationCode, - purchaseQuoteCode: purchaseQuoteCode, - }; - purchaseOrder.purchaseOrderChildList.push(materialData); - }); + $('input[name="stockName"]').val(data.data.stockName); + $('input[name="stockAddress"]').val(data.data.stockAddr); + $('input[name="stockContact"]').val(data.data.stockManager); + $('input[name="stockPhone"]').val(data.data.stockManagerPhone); + }, + error: function(jqXHR, textStatus, errorThrown) { + console.error('Error:', textStatus, errorThrown); + $.modal.alertWarning('查询仓库名称时发生错误!'); + } }); - // 获取采购物料合计,采购物料实际合计,采购物料实际非人民币合计,采购物料实际人民币合计 - var purchaseAmount = parseFloat($('#purchaseMaterialSum').val()); - var purchaseSum = parseFloat($('#purchaseSum').val()); - var purchaseNoRmbSum = parseFloat($('#purchaseNoRmbSum').val()); - var purchaseRmbSum = parseFloat($('#purchaseRmbSum').val()); - // 将合计值附加到purchaseOrder对象 - purchaseOrder.materialAmount = purchaseAmount; - purchaseOrder.materialSum = purchaseSum; - purchaseOrder.materialNoRmbSum = purchaseNoRmbSum; - purchaseOrder.materialRmbSum = purchaseRmbSum; - purchaseOrder.supplierNum = supplierNumList.length; - - // 发送数据到后端API - $.operate.saveJson(prefix + "/addPurchaseOrder", JSON.stringify(purchaseOrder)); - + } + else {$('input[name="warehouseName"]').val('');}// 如果没有选择仓库ID,清空仓库名称输入框 + }); + function submitHandler() { + if ($.validate.form()) { + if ($('textarea[name="comment"]').val()) { + $('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); + } + var taskId = [[${taskId}]]; + $.operate.save(prefix + "/complete/" + taskId, $('#form-purchaseOrder-cgjl').serialize()); } } diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgzgVerify.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgzgVerify.html index e563be33..a5d692db 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgzgVerify.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskCgzgVerify.html @@ -1,45 +1,129 @@ - + +
-
+ + - -
- -
- -
-
- -
+ -
+ -
+ +
+ +
+ +
+
+
+ + +
+
+
+ +
+
+
+
+ +
+
+
+
+
+

公司地址:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+

订单合计:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
@@ -59,25 +143,477 @@
+
\ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskFzjlVerify.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskFzjlVerify.html index f8ecb7b0..8970e97c 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskFzjlVerify.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskFzjlVerify.html @@ -1,45 +1,129 @@ - + +
-
+ + - -
- -
- -
-
- -
+ -
+ -
+ +
+ +
+ +
+
+
+ + +
+
+
+ +
+
+
+
+ +
+
+
+
+
+

公司地址:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+

订单合计:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
@@ -59,6 +143,7 @@
+
@@ -66,17 +151,469 @@ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskModifyApply.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskModifyApply.html index 6fafd706..9066e605 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskModifyApply.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/taskModifyApply.html @@ -3,7 +3,15 @@ + + +
@@ -36,6 +44,91 @@
+
+ +
+ +
+
+
+ + +
+
+
+ +
+
+
+
+ +
+
+
+
+
+

公司地址:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+

订单合计:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/addPurchaseOrder.html b/ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/addPurchaseOrder.html index 3c2063d1..e418d337 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/addPurchaseOrder.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/addPurchaseOrder.html @@ -10,6 +10,10 @@ background-color: #f9f9f9; } .inventory-count p {margin: 0;} + .fixed-table-container { + border: 0px solid #ddd; + min-height: 120px; + } /*.inventory-count span {font-weight: bold;}*/ @@ -29,33 +33,33 @@

公司地址:

- +
- +
- +
- +
- +
- +
- +
@@ -64,25 +68,25 @@
- +
- +
- +
- +
@@ -142,10 +146,10 @@ $tableWrapper.append($headerDiv); //创建物料库存容器 var $stockWrapper = $('
' + - '
'+ - '可用库存数:'+'10 '+'注:含其他订单待领取的库存,仅供参考,请以实际为准.'+ - '
' + - '
'); + '

'+ + '可用库存数:'+'10 '+' 注:含其他订单待领取的库存,仅供参考,请以实际为准.'+ + '

' + + '
'); $tableWrapper.append($stockWrapper); var materialObj = { purchasePlanCode: material.purchasePlanCode, @@ -185,36 +189,39 @@ // 构建供应商信息头部 var $headerContent = $('
' + - '
' + - '
'+ - '

供应商 ' + (supplierIndex + 1) + ':' + '

' + - '' + supplier.supplierCode + '' + '-' + - '' + supplier.supplierName + '' + - '-最新不含税采购价: ' +'' + supplier.materialNoRmb +''+ - ' RMB 最新含税采购价: ' +'' + supplier.materialRmb + ' RMB ' + - '' + - '' + - '' + - '
' + + '
' + + '
'+ + '

'+ + '供应商 ' + (supplierIndex + 1) + ':' + '' + + '' + supplier.supplierCode + '' + '-' + + '' + supplier.supplierName + '' + + '-最新不含税采购价: ' +'' + supplier.materialNoRmb +''+ + ' RMB 最新含税采购价: ' +'' + supplier.materialRmb + ' RMB ' + + '' + + '' + + '' + + '

' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + '
' + - '
' + - '
' + - '' + - '
' + - '' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '' + - '' + - '
' + - '
' + - '
' + + '
' + + '
' + + '' + + '
' + + '
' + + '' + + '' + + '
' + '
' + - '
'); + '
' + + '
' + + + '
'); if (supplier.supplierCode != undefined && supplier.supplierCode != '' && supplier.supplierCode != null) { $supplierInfo.append($headerContent); // 构建供应商信息下的输入表单 @@ -340,28 +347,27 @@ $('#purchaseRmbSum').val(totalRmb); } function tableSetup(element, tableId) { - var $totalSection = $( - '
' + - '
' + - '
' + - '' + - '
' + - '' + - '
' + - '
' + - '
' + - '' + - '
' + - '' + - '
' + - '
' + - '' + - '
' + - '' + - '
' + - '
' + - '
'+ + var $totalSection = $('
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
' + + '
'+ '
'); element.append($totalSection); } @@ -431,9 +437,9 @@ var materialRealNum = parseInt($(this).find('.actualPurchaseNum' ).val()) || 0; var materialRealRmb = parseFloat($(this).find('.supplierMaterialRmb').text()) || 0; var materialRealNoRmb = parseFloat($(this).find('.supplierMaterialNoRmb').text()) || 0; - var deliveryTime = $(this).find('.supplierDeliveryTime' ).val(); + var deliveryTime = $(this).find('.supplierDeliveryTime').val(); var purchasePlanCode = $(this).find('.supplierPurchasePlanCode').text().trim(); - var correlationCode = $(this).find('.supplierCorrelationCode' ).text().trim(); + var correlationCode = $(this).find('.supplierCorrelationCode').text().trim(); var purchaseQuoteCode = $(this).find('.supplierPurchaseQuoteCode').text().trim(); var materialRealRmbSum = parseFloat(materialRealRmb * materialRealNum); var materialRealNoRmbSum = parseFloat(materialRealNoRmb * materialRealNum);