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 f8a2c758..48a4cd3a 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 @@ -1213,7 +1213,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService PurchaseOrderChild purchaseOrderChild = filterPurchaseOrderChildList.get(0); purchaseStorage.setWarehouseStorageStatus("0"); - purchaseStorage.setWarehouseStorageType("5"); + purchaseStorage.setWarehouseStorageType("0"); purchaseStorage.setWarehouseDeptType(purchaseOrderChild.getWarehouseDept()); purchaseStorage.setWarehouseQualityStatus("0"); purchaseStorage.setWarehouseOrderType("0"); @@ -1255,7 +1255,7 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder(); warehouseStorageOrder.setWarehouseStorageCode(warehouseStorageCode); warehouseStorageOrder.setWarehouseStorageStatus("0"); - warehouseStorageOrder.setWarehouseStorageType("5"); + warehouseStorageOrder.setWarehouseStorageType("0"); warehouseStorageOrder.setWarehouseDeptType(purchaseOrderChild.getWarehouseDept()); warehouseStorageOrder.setWarehouseQualityStatus("0"); warehouseStorageOrder.setWarehouseOrderType("0"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java index ab8b32a7..db199dbf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java @@ -298,10 +298,28 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService */ @Override public int insertSysSalesOrder(SysSalesOrder sysSalesOrder){ + + + List sysSalesOrderChildList = sysSalesOrder.getSysSalesOrderChildList(); + + // 校验子表数据 + checkSysSalesOrderChildList(sysSalesOrder,sysSalesOrderChildList); + + + //数量合计 + int sumMaterialNum = sysSalesOrderChildList.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum(); + //物料合计 + int size = sysSalesOrderChildList.size(); + + String loginName = ShiroUtils.getLoginName(); sysSalesOrder.setCreateBy(loginName); sysSalesOrder.setCreateTime(DateUtils.getNowDate()); sysSalesOrder.setSalesOrderCode(getId()); + sysSalesOrder.setMaterialSum(sumMaterialNum); + sysSalesOrder.setEnterpriseSum(size); + + String commonCurrency = sysSalesOrder.getCommonCurrency(); if(RMB.equals(commonCurrency)){ sysSalesOrder.setConfirmTax("1"); @@ -315,10 +333,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService if (s == 0){ return 0; } - List sysSalesOrderChildList = sysSalesOrder.getSysSalesOrderChildList(); - // 校验子表数据 - checkSysSalesOrderChildList(sysSalesOrderChildList); for (int i = 0; i < s ;i++) { SysSalesOrderChild sysSalesOrderChild = sysSalesOrder.getSysSalesOrderChildList().get(i); @@ -331,28 +346,45 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService //自定义校验 - private void checkSysSalesOrderChildList(List sysSalesOrderChildList) { - // 检查物料数量是否为空 - boolean anyMaterialNum = sysSalesOrderChildList.stream() - .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNum() == null); - if (anyMaterialNum) { - throw new BusinessException("物料数量不能为空"); - } + private void checkSysSalesOrderChildList(SysSalesOrder sysSalesOrder,List sysSalesOrderChildList) { + String commonCurrency = sysSalesOrder.getCommonCurrency(); + if (RMB.equals(commonCurrency)) { + // 检查物料不含税单价RMB是否为空 + boolean anyMaterialNoRmb = sysSalesOrderChildList.stream() + .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNoRmb() == null); + if (anyMaterialNoRmb) { + throw new BusinessException("物料不含税单价RMB不能为空"); + } + } else { + // 检查物料不含税单价美元是否为空 + boolean anyMaterialNoUsd = sysSalesOrderChildList.stream() + .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNoUsd() == null); + if (anyMaterialNoUsd) { + throw new BusinessException("物料不含税单价美元不能为空"); + } - // 检查计划交付时间是否为空 - boolean anyDeliveryTime = sysSalesOrderChildList.stream() - .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getDeliveryTime() == null); - if (anyDeliveryTime) { - throw new BusinessException("计划交付时间不能为空"); } + // 检查物料数量是否为空 + boolean anyMaterialNum = sysSalesOrderChildList.stream() + .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getMaterialNum() == null); + if (anyMaterialNum) { + throw new BusinessException("物料数量不能为空"); + } + + // 检查计划交付时间是否为空 + boolean anyDeliveryTime = sysSalesOrderChildList.stream() + .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getDeliveryTime() == null); + if (anyDeliveryTime) { + throw new BusinessException("计划交付时间不能为空"); + } - // 检查质保天数是否为空 - boolean anyExpiryDay = sysSalesOrderChildList.stream() - .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getExpiryDay() == null); - if (anyExpiryDay) { - throw new BusinessException("质保天数不能为空"); + // 检查质保天数是否为空 + boolean anyExpiryDay = sysSalesOrderChildList.stream() + .anyMatch(sysSalesOrderChild -> sysSalesOrderChild.getExpiryDay() == null); + if (anyExpiryDay) { + throw new BusinessException("质保天数不能为空"); + } } - } /** @@ -575,6 +607,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService if (hasApplyShippingNum == null) { hasApplyShippingNum = 0; // 确保 hasApplyShippingNum 不为 null } + if (hasApplyShippingNum+oldChild.getApplyShippingNum() > oldChild.getMaterialNum()){ throw new BusinessException("申请出货数与已申请出货数之和不能大于订单数量"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java index 10da0763..e83ec932 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java @@ -276,6 +276,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor sysSalesShippingInformDetail.setOutOrderCode(outOrderCode); sysSalesShippingInformDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode()); sysSalesShippingInformDetail.setMaterialName(sysSalesOrderChild.getMaterialName()); + sysSalesShippingInformDetail.setMaterialModel(sysSalesOrderChild.getMaterialModel()); sysSalesShippingInformDetail.setMaterialType(sysSalesOrderChild.getMaterialType()); sysSalesShippingInformDetail.setMaterialBrand(sysSalesOrderChild.getBrand()); sysSalesShippingInformDetail.setMaterialUnit(sysSalesOrderChild.getUnit()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java index 4c24eb1d..59265e3c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java @@ -1102,6 +1102,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService warehouseOutOrderDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode()); warehouseOutOrderDetail.setMaterialName(sysSalesOrderChild.getMaterialName()); warehouseOutOrderDetail.setMaterialType(sysSalesOrderChild.getMaterialType()); + warehouseOutOrderDetail.setMaterialModel(sysSalesOrderChild.getMaterialModel()); warehouseOutOrderDetail.setMaterialBrand(sysSalesOrderChild.getBrand()); warehouseOutOrderDetail.setMaterialUnit(sysSalesOrderChild.getUnit()); warehouseOutOrderDetail.setMaterialDescribe(sysSalesOrderChild.getDescribe()); 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 72cdb0b2..25ac4673 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 @@ -630,9 +630,11 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS //更新已入库数 hasStorageNum = storageNumDetail; oldPurchaseOrderChild.setHasStorageNum(hasStorageNum); + warehouseStorageOrderDetail.setHasStorageNum(hasStorageNum); }else{ hasStorageNum = hasStorageNum + storageNumDetail; oldPurchaseOrderChild.setHasStorageNum(hasStorageNum); + warehouseStorageOrderDetail.setHasStorageNum(hasStorageNum); } if (temporaryQualifiedNum < hasStorageNum){ diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/addPurchaseStorage.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/addPurchaseStorage.html index dbab8cb3..10f62209 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/addPurchaseStorage.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/addPurchaseStorage.html @@ -33,7 +33,7 @@
- +
@@ -114,6 +114,7 @@ "materialPhotourl" : item.materialPhotourl, "materialType": item.materialType, "materialDescribe": item.materialDescribe, + "materialModel": item.materialModel, "materialBrand": item.materialBrand, "materialUnit": item.materialUnit, "materialProcessMethod": item.materialProcessMethod, diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html index 63c745f6..a156a2e1 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesDeliverGoods.html @@ -121,6 +121,12 @@ var salesOrderIdList = [[${salesOrderIdList}]]; + var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; + var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]]; + var processMethodDatas = [[${@dict.getType('processMethod')}]]; + + + var prefix = ctx + "system/salesOrder"; $("#form-salesDeliverGoods-edit").validate({ focusCleanup: true @@ -337,6 +343,9 @@ { title: '物料类型', field: 'materialType', + formatter: function(value, row, index) { + return $.table.selectCategoryLabel(materialTypeDatas, value); + } }, { title: '描述', @@ -345,6 +354,9 @@ { title: '单位', field: 'unit', + formatter: function(value, row, index) { + return $.table.selectDictLabel(sysUnitClassDatas, value); + } }, { title: '型号', @@ -358,6 +370,9 @@ { title: '加工方式', field: 'processMethod', + formatter: function(value, row, index) { + return $.table.selectDictLabel(processMethodDatas, value); + } }, { title: '订单数量',