diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderChildMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderChildMapper.java index ff217e66..d2c593be 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderChildMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderChildMapper.java @@ -48,6 +48,15 @@ public interface PurchaseOrderChildMapper List selectPurchaseOrderChildByOrderCode(String purchaseOrderCode); + /** + * 通过采购订单号和物料号查询采购订单子表 + * + * @param purchaseOrderChild 采购订单子表 + * @return 采购订单子表集合 + */ + PurchaseOrderChild selectPurchaseOrderChildByCodeAndNo(PurchaseOrderChild purchaseOrderChild); + + /** * 新增采购订单子表 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityOrderServiceImpl.java index 41627e35..2461bb94 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityOrderServiceImpl.java @@ -489,34 +489,38 @@ public class QualityOrderServiceImpl implements IQualityOrderService @Override public void insertQualityOrderByWarehouseStorageOrder(WarehouseStorageOrder warehouseStorageOrder, List storageOrderDetailList) { - QualityOrder qualityOrder = new QualityOrder(); - qualityOrder.setCreateTime(new Date()); - qualityOrder.setCreateBy(warehouseStorageOrder.getCreateBy()); - //使用redis自动生成品质单号 - String qualityOrderCode = redisCache.generateBillNo("PZ"); - - qualityOrder.setQualityOrderCode(qualityOrderCode); - qualityOrder.setInStorageCode(warehouseStorageOrder.getWarehouseStorageCode()); - qualityOrder.setRelatedOrderCode(warehouseStorageOrder.getRelatedOrderCode()); - qualityOrder.setQualityStatus("0"); - qualityOrder.setQualityOrderType("0"); - qualityOrder.setQualityStorageStatus("0"); - //qualityOrder.setThisArrivedNum(warehouseStorageOrder.getActualArrivedNum()); - qualityOrder.setWarehouseCode(warehouseStorageOrder.getWarehouseCode()); - qualityOrder.setWarehouseName(warehouseStorageOrder.getWarehouseName()); - qualityOrder.setDeliveryInspectionTime(warehouseStorageOrder.getDeliveryInspectionTime()); - qualityOrder.setCreateBy(ShiroUtils.getLoginName()); - qualityOrder.setCreateTime(new Date()); - qualityOrderMapper.insertQualityOrder(qualityOrder); - //新增三个子表的数据 for (WarehouseStorageOrderDetail detail : storageOrderDetailList) { + + QualityOrder qualityOrder = new QualityOrder(); + //使用redis自动生成品质单号 + String qualityOrderCode = redisCache.generateBillNo("PZ"); + qualityOrder.setQualityOrderCode(qualityOrderCode); + qualityOrder.setInStorageCode(warehouseStorageOrder.getWarehouseStorageCode()); + qualityOrder.setRelatedOrderCode(warehouseStorageOrder.getRelatedOrderCode()); + qualityOrder.setQualityStatus("0"); + qualityOrder.setQualityOrderType("0"); + qualityOrder.setQualityStorageStatus("0"); + qualityOrder.setMaterialNo(detail.getMaterialNo()); + qualityOrder.setMaterialName(detail.getMaterialName()); + qualityOrder.setQualityQualifiedNum(0); + qualityOrder.setQualityUnqualifiedNum(0); + qualityOrder.setPendingReviewNum(0); + qualityOrder.setThisArrivedNum(detail.getTemporaryQualifiedNum()); + qualityOrder.setWarehouseCode(warehouseStorageOrder.getWarehouseCode()); + qualityOrder.setWarehouseName(warehouseStorageOrder.getWarehouseName()); + qualityOrder.setDeliveryInspectionTime(warehouseStorageOrder.getDeliveryInspectionTime()); + qualityOrder.setCreateBy(ShiroUtils.getLoginName()); + qualityOrder.setCreateTime(new Date()); + int insertQualityOrderResult = qualityOrderMapper.insertQualityOrder(qualityOrder); + if(insertQualityOrderResult<=0){ + throw new BusinessException("新增品质单失败"); + } + // 构建QualityOrderDetail,假设其他属性与QualityOrder相同,故不重复设置 insertQualityOrderDetailByWarehouseStorageOrder(warehouseStorageOrder, detail, qualityOrderCode); - insertQualityOrderReportByWarehouseStorageOrder(detail,qualityOrderCode); - insertQualityOrderUnqualifiedByWarehouseStorageOrder(detail); - // ... + } } @@ -980,19 +984,19 @@ public class QualityOrderServiceImpl implements IQualityOrderService qualityOrderDetail.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); qualityOrderDetail.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); qualityOrderDetail.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); - //暂时生成品质单本来应该是实际到货数 prd有误暂时这样处理 - qualityOrderDetail.setCheckNum(warehouseStorageOrderDetail.getActualArriveNum()); - qualityOrderDetail.setSupplierCode(warehouseStorageOrderDetail.getSupplierCode()); - qualityOrderDetail.setSupplierName(warehouseStorageOrderDetail.getSupplierName()); - qualityOrderDetail.setSupplierAddress(warehouseStorageOrderDetail.getSupplierAddress()); - qualityOrderDetail.setCustomerContact(warehouseStorageOrderDetail.getCustomerContact()); - qualityOrderDetail.setContactNumber(warehouseStorageOrderDetail.getContactNumber()); - qualityOrderDetail.setQualityHasqualifiedNum(warehouseStorageOrderDetail.getQualityHasQualifiedNum()); + qualityOrderDetail.setMaterialModel(warehouseStorageOrderDetail.getMaterialModel()); + qualityOrderDetail.setCheckNum(warehouseStorageOrderDetail.getTemporaryQualifiedNum()); + qualityOrderDetail.setSupplierCode(warehouseStorageOrder.getSupplierCode()); + qualityOrderDetail.setSupplierName(warehouseStorageOrder.getSupplierName()); + qualityOrderDetail.setSupplierAddress(warehouseStorageOrder.getSupplierAddress()); + qualityOrderDetail.setCustomerContact(warehouseStorageOrder.getCustomerContact()); + qualityOrderDetail.setContactNumber(warehouseStorageOrder.getContactNumber()); + qualityOrderDetail.setDeliveryInspectionTime(warehouseStorageOrder.getDeliveryInspectionTime()); qualityOrderDetail.setCreateTime(new Date()); qualityOrderDetail.setCreateBy(warehouseStorageOrderDetail.getCreateBy()); int insertResult= orderDetailMapper.insertQualityOrderDetail(qualityOrderDetail); - if (insertResult <= 0){ - throw new BusinessException("插入品质单详情失败"); + if (insertResult <= 0){ + throw new BusinessException("新增品质单详情失败"); } } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java index ded0a48e..84291fdb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java @@ -173,11 +173,10 @@ public class WarehouseStorageOrderController extends BaseController */ @ResponseBody @RequestMapping("/temporaryPurchaseWarehouseDetailList") - public Map> temporaryPurchaseWarehouseDetail(String warehouseStorageCode){ - List allDetails = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); - List filterAllDetails = allDetails.stream().filter(wso -> "0".equals(wso.getMaterialDeptType())).collect(Collectors.toList()); - Map> groupedDetails = filterAllDetails.stream().collect(Collectors.groupingBy(WarehouseStorageOrderDetail::getSupplierCode)); - return groupedDetails; + public TableDataInfo temporaryPurchaseWarehouseDetail(String warehouseStorageCode){ + startPage(); + List list = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); + return getDataTable(list); } @@ -358,11 +357,10 @@ public class WarehouseStorageOrderController extends BaseController */ @ResponseBody @RequestMapping("/storagePurchaseDetailList") - public Map> storagePurchaseDetail(String warehouseStorageCode){ - List allDetails = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); - List filterAllDetails = allDetails.stream().filter(wso -> "1".equals(wso.getMaterialDeptType())).collect(Collectors.toList()); - Map> groupedDetails = filterAllDetails.stream().collect(Collectors.groupingBy(WarehouseStorageOrderDetail::getSupplierCode)); - return groupedDetails; + public TableDataInfo storagePurchaseDetail(String warehouseStorageCode){ + startPage(); + List list = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); + return getDataTable(list); } @@ -421,11 +419,10 @@ public class WarehouseStorageOrderController extends BaseController */ @ResponseBody @RequestMapping("/storagePurchaseWarehouseDetailList") - public Map> storagePurchaseWarehouseDetail(String warehouseStorageCode){ - List allDetails = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); - List filterAllDetails = allDetails.stream().filter(wso -> "0".equals(wso.getMaterialDeptType())).collect(Collectors.toList()); - Map> groupedDetails = filterAllDetails.stream().collect(Collectors.groupingBy(WarehouseStorageOrderDetail::getSupplierCode)); - return groupedDetails; + public TableDataInfo storagePurchaseWarehouseDetail(String warehouseStorageCode){ + startPage(); + List list = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); + return getDataTable(list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index 4cafa3ed..bbffbf5b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java @@ -13,6 +13,7 @@ import com.ruoyi.erp.domain.ErpDevelopModifyorder; import com.ruoyi.erp.domain.ErpMaterial; import com.ruoyi.erp.mapper.ErpDevelopModifyorderMapper; import com.ruoyi.erp.mapper.ErpMaterialMapper; +import com.ruoyi.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.domain.PurchaseOrderChild; import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper; import com.ruoyi.quality.domain.QualityOrder; @@ -368,8 +369,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate()); //改变状态为已暂收 warehouseStorageOrder.setWarehouseStorageStatus("2"); - //设置品质状态,为待品质 - //warehouseStorageOrder.setWarehouseQualityStatus("0"); + //设置品质状态,为全部品质 + warehouseStorageOrder.setWarehouseQualityStatus("2"); warehouseStorageOrder.setWarehouseEmployee(loginName); List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); @@ -407,6 +408,14 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS if (updateDetailResult != warehouseStorageOrder.getWarehouseStorageOrderDetailList().size()) { throw new BusinessException("更新入库单明细记录失败"); } + + //更新采购订单子表 + int updatePurchaseOrderChildResult = updateTemporaryPurchaseOrderChild(warehouseStorageOrder); + if (updatePurchaseOrderChildResult != warehouseStorageOrder.getWarehouseStorageOrderDetailList().size()){ + throw new BusinessException("更新采购订单子表记录失败"); + } + + int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder); if (updateResult <= 0) { throw new BusinessException("更新入库单主记录失败"); @@ -435,6 +444,26 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS return updateResult; } + //更新采购订单子表 + private int updateTemporaryPurchaseOrderChild(WarehouseStorageOrder warehouseStorageOrder) { + int result = 0; + String purchaseOrderCode = warehouseStorageOrder.getRelatedOrderCode(); + List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); + if (CollectionUtils.isEmpty(warehouseStorageOrderDetailList)){ + return 0; + } + + for (WarehouseStorageOrderDetail warehouseStorageOrderDetail : warehouseStorageOrderDetailList) { + PurchaseOrderChild purchaseOrderChild = new PurchaseOrderChild(); + purchaseOrderChild.setPurchaseOrderCode(purchaseOrderCode); + purchaseOrderChild.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo()); + purchaseOrderChild = purchaseOrderChildMapper.selectPurchaseOrderChildByCodeAndNo(purchaseOrderChild); + purchaseOrderChild.setTemporaryNum(warehouseStorageOrderDetail.getTemporaryQualifiedNum()); + result += purchaseOrderChildMapper.updatePurchaseOrderChild(purchaseOrderChild); + } + return result; + } + /** * 修改保存暂收-委外单(委外入库) * */ @@ -1022,7 +1051,6 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS List warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); - int actualArriveNum = 0; //检查填写的实际到货数是否有空值 boolean hasActualArriveNumNull = warehouseStorageOrderDetailList.stream() @@ -1035,21 +1063,16 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS actualArriveNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getActualArriveNum).sum(); int temporaryQualifiedNum = 0; - //检查填写的品质合格数是否有空值 + //检查填写的暂收合格数是否有空值 boolean hasTemporaryQualifiedNumNull = warehouseStorageOrderDetailList.stream() .anyMatch(item -> item.getTemporaryQualifiedNum() == null); if (hasTemporaryQualifiedNumNull) { - throw new BusinessException("存在品质合格数为空,请检查!"); + throw new BusinessException("存在暂收合格数为空,请检查!"); } //入库单主表的暂收合格数为子表的合计 temporaryQualifiedNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getTemporaryQualifiedNum).sum(); - - if (actualArriveNum < temporaryQualifiedNum) { - throw new BusinessException("暂收合格数不能大于实际到货数"); - } - //插入实际到货数 warehouseStorageOrder.setActualArrivedNum(actualArriveNum); //插入暂收合格数 @@ -1062,6 +1085,14 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS if (updateDetailResult != warehouseStorageOrder.getWarehouseStorageOrderDetailList().size()) { throw new BusinessException("更新入库单明细记录失败"); } + + //更新采购订单子表 + int updatePurchaseOrderChildResult = updateTemporaryPurchaseOrderChild(warehouseStorageOrder); + if (updatePurchaseOrderChildResult != warehouseStorageOrder.getWarehouseStorageOrderDetailList().size()){ + throw new BusinessException("更新采购订单子表记录失败"); + } + + int updateResult = warehouseStorageOrderMapper.updateWarehouseStorageOrder(warehouseStorageOrder); if (updateResult <= 0) { throw new BusinessException("更新入库单主记录失败"); @@ -1140,7 +1171,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS private int updateTemporaryPurchaseDetails(WarehouseStorageOrder warehouseStorageOrder) { int updateResultDetails = 0; List details = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); - if (org.springframework.util.CollectionUtils.isEmpty(details)){ + if (CollectionUtils.isEmpty(details)){ return 0; } for (WarehouseStorageOrderDetail detail : details) { diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml index 0cd9fad5..dbad73a9 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderChildMapper.xml @@ -63,6 +63,14 @@ where purchase_order_code = #{purchaseOrderCode} + + + + insert into purchase_order_child diff --git a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchase.html b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchase.html index 618651f6..9e60d089 100644 --- a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchase.html +++ b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchase.html @@ -15,7 +15,7 @@
-
+
@@ -37,6 +37,38 @@
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
@@ -76,11 +108,11 @@
+
-
-
- +
+
@@ -95,67 +127,62 @@ var warehouseStorageCode = [[${warehouseStorageOrder.warehouseStorageCode}]] var warehouseCode = [[${warehouseStorageOrder.warehouseCode}]] var prefix = ctx + "warehouse/storageOrder"; - $("#form-temporaryPurchaseWarehouse-edit").validate({ + $("#form-storagePurchase-edit").validate({ focusCleanup: true }); - //生成的不同table的id集合 - var tableDatas = []; function submitHandler() { - const storageOrderData = $("#form-temporaryPurchaseWarehouse-edit").serializeArray().reduce((obj, item) => { - obj[item.name] = item.value; - return obj; - }, {}); - // 初始化一个数组用于存放所有表格的数据 - let allMaterialDataList = []; - for(let i in tableDatas){ - $('#' + tableDatas[i]).each(function() { - const tableData = $(this).bootstrapTable('getData'); - console.log(JSON.stringify(tableData)); - // 将表数据转换成与qualityReportData格式一致的数组 - var materialDataList = tableData.map(function (item) { - // 根据实际字段名调整 - return { - "warehouseStorageDetailId":item.warehouseStorageDetailId, - "supplierCode": item.supplierCode, - "materialNo": item.materialNo, - "materialName": item.materialName, - "materialType": item.materialType, - "materialPhotourl": item.materialPhotourl, - "materialDescribe": item.materialDescribe, - "materialBrand": item.materialBrand, - "materialUnit": item.materialUnit, - "materialProcessMethod": item.materialProcessMethod, - "notifyHasArrivedNum": item.notifyHasArrivedNum, - "actualHasArrivedNum": item.actualHasArrivedNum, - "temporaryHasQualifiedNum": item.temporaryHasQualifiedNum, - "hasStorageNum": item.hasStorageNum, - "notifyArriveNum": item.notifyArriveNum, - "actualArriveNum": item.actualArriveNum, - "temporaryQualifiedNum": item.temporaryQualifiedNum, - "temporaryRemark": item.temporaryRemark, - "temporaryReportUrl": item.temporaryReportUrl, - "storageNum": item.storageNum, - "storageLocation": item.storageLocation, - - // ...其他字段 - }; - }); - allMaterialDataList = allMaterialDataList.concat(materialDataList); + if ($.validate.form()) { + + + const storageOrderData = $("#form-storagePurchase-edit").serializeArray().reduce((obj, item) => { + obj[item.name] = item.value; + return obj; + }, {}); + + + var table = $('#bootstrap-table').bootstrapTable("getData"); + + var materialDataList = table.map(function(item) { + // 根据实际字段名调整 + return { + "warehouseStorageDetailId":item.warehouseStorageDetailId, + "supplierCode": item.supplierCode, + "materialNo": item.materialNo, + "materialName": item.materialName, + "materialType": item.materialType, + "materialPhotourl": item.materialPhotourl, + "materialDescribe": item.materialDescribe, + "materialModel": item.materialModel, + "materialBrand": item.materialBrand, + "materialUnit": item.materialUnit, + "materialProcessMethod": item.materialProcessMethod, + "notifyHasArrivedNum": item.notifyHasArrivedNum, + "actualHasArrivedNum": item.actualHasArrivedNum, + "temporaryHasQualifiedNum": item.temporaryHasQualifiedNum, + "hasStorageNum": item.hasStorageNum, + "notifyArriveNum": item.notifyArriveNum, + "actualArriveNum": item.actualArriveNum, + "temporaryQualifiedNum": item.temporaryQualifiedNum, + "temporaryRemark": item.temporaryRemark, + "temporaryReportUrl": item.temporaryReportUrl, + "storageNum": item.storageNum, + "storageLocation": item.storageLocation, + // ...其他字段 + }; }); - } - const combinedData = Object.assign({}, storageOrderData, { - warehouseStorageOrderDetailList: allMaterialDataList - }); - // 合并表单数据和表格数据 - // const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData); - console.log(combinedData) - // 使用 JSON.stringify() 序列化数据 - const jsonData = JSON.stringify(combinedData); - // 发送 AJAX 请求到后端接口 - $.operate.saveJson(prefix + "/storagePurchase", jsonData); + const combinedData = Object.assign({}, storageOrderData, { + warehouseStorageOrderDetailList: materialDataList, + }); + // 合并表单数据和表格数据 + console.log(combinedData) + // 使用 JSON.stringify() 序列化数据 + const jsonData = JSON.stringify(combinedData); + // 发送 AJAX 请求到后端接口 + $.operate.saveJson(prefix + "/storagePurchase", jsonData); + } } $("input[name='arrivedTime']").datetimepicker({ @@ -170,38 +197,18 @@ autoclose: true }); - $(function() { - // 假设qualityOrderCode已经定义或者可以通过某种方式获取到 - var warehouseStorageCode = [[${warehouseStorageOrder.warehouseStorageCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 - - $.getJSON(prefix + "/storagePurchaseDetailList?warehouseStorageCode=" + warehouseStorageCode, function(data) { - for (var supplierCode in data) { - if (data.hasOwnProperty(supplierCode)) { - var supplierData = data[supplierCode]; - createTableForSupplier(supplierCode, supplierData); - } - } - }); - }); - function createTableForSupplier(supplierCode, supplierData) { - var tableId = 'bootstrap-table-' + supplierCode.replace(/[^a-z0-9]/gi, '_').toLowerCase(); - tableDatas.push(tableId); - var $tableWrapper = $('
'); - - // 确保supplierData至少有一条记录,并从中提取供应商详细信息 - var supplierInfo = supplierData.length > 0 ? supplierData[0] : {}; // 默认为空对象,以防数据不存在 - - // 构建含有额外供应商信息的标题字符串 - var headerTitle ='供应商'+'
'+supplierCode + ' - ' + (supplierInfo.supplierName || 'N/A') + - '
' + (supplierInfo.customerContact || 'N/A') + - ' - ' + (supplierInfo.contactNumber || 'N/A') + - ' - ' + (supplierInfo.supplierAddress || 'N/A'); - var $header = $('

' + headerTitle + '

'); - var $table = $('
'); - - $table.bootstrapTable({ - data: supplierData, + //物料信息展示列表 + $(function() { + var options = { + modalName: "选择物料", + url: prefix + "/storagePurchaseDetailList", + queryParams: queryParams, + showSearch: false, + showRefresh: false, + showToggle: false, + showColumns: false, + pagination: false, // 设置不分页 columns: [{ checkbox: true }, @@ -235,10 +242,15 @@ title: '物料描述', field: 'materialDescribe', }, + { + title: '物料型号', + field: 'materialModel', + }, { title: '物料品牌', field: 'materialBrand', }, + { title: '物料单位', field: 'materialUnit', @@ -259,7 +271,6 @@ { title: '暂收已合格数', field: 'temporaryHasQualifiedNum', - visible: false, }, { title: '已入库数', @@ -292,17 +303,29 @@ { title: '入库数', field: 'storageNum', - editable:{ - type: 'text', - mode:'inline', - validate: function (v) { - if (!v) return '数量不能为空'; - if (isNaN(v)) return '数量必须是数字'; - var processBadNum = parseInt(v); - if (processBadNum <= 0) return '数量必须是正整数'; + editable: { + validate: function(value) { + if ($.trim(value) === '') { + return '入库数不能为空'; + } + if (isNaN(value)) { + return '请输入有效的数字'; + } + if (value < 0) { + return '入库数不能小于0'; + } + //不能为小数 + if (value % 1 !== 0) { + return '入库数不能为小数'; + } }, }, formatter: function (value, row) { + // 检查 row 是否存在 + if (!row) { + return ""; + } + // 检查 storageNum 是否存在 if (row.storageNum === undefined || row.storageNum === null) { return ""; @@ -324,6 +347,11 @@ mode:'inline', }, formatter: function (value, row) { + // 检查 row 是否存在 + if (!row) { + return ""; + } + // 检查 storageLocation 是否存在 if (row.storageLocation === undefined || row.storageLocation === null) { return ""; @@ -336,17 +364,20 @@ return value; } } - }, - - ] - }); - - $tableWrapper.append($header).append($table); - $('#tablesContainer').append($tableWrapper); + },] + }; + $.table.init(options); + }) + + function queryParams(params) { + var curParams = { + // 传递参数查询参数 + warehouseStorageCode: warehouseStorageCode + }; + return curParams; } - //根据仓库ID查询仓库名称 $(document).ready(function() { // 初始化时默认加载仓库ID列表 diff --git a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseDetail.html b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseDetail.html index aeb95505..1a8abc57 100644 --- a/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseDetail.html +++ b/ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseDetail.html @@ -3,6 +3,7 @@ +