Browse Source

物料资料明细校验

chenw 7 years ago
parent
commit
9c2ef5df9a

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -29,6 +29,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_RELDELETE_UPDATE(79306,"存在关联单据,不允许更新编号"),
     BIZ_RELDELETE_UPDATE(79306,"存在关联单据,不允许更新编号"),
     BIZ_RELDELETE_UPDATEPROD(79307,"存在关联单据,不允许更新"),
     BIZ_RELDELETE_UPDATEPROD(79307,"存在关联单据,不允许更新"),
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
     BIZ_RELDELETE_DELETEPROD(79308,"存在关联单据,不允许删除"),
+    BIZ_PRODWHCODE_REPEAT(79309, "明细仓库重复"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),
     REPEAT_NAME(79501, "名称重复"),

+ 25 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -79,6 +79,10 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         Product product = productListDTO.getMain();
         Product product = productListDTO.getMain();
         List<ProductDetail> productDetailList = productListDTO.getItems();
         List<ProductDetail> productDetailList = productListDTO.getItems();
         DocBaseDTO docBaseDTO = null;
         DocBaseDTO docBaseDTO = null;
+
+        //校验明细仓库是否重复
+        validRepeatWarehouse(productDetailList);
+
         if(product.getId() == 0){
         if(product.getId() == 0){
             //保存
             //保存
             String code = pushMaxnubmer(product.getPr_code(), product.getId());
             String code = pushMaxnubmer(product.getPr_code(), product.getId());
@@ -144,6 +148,27 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         return docBaseDTO;
         return docBaseDTO;
     }
     }
 
 
+    /**
+     * 校验明细仓库是否重复
+     * @param productDetailList
+     */
+    private void validRepeatWarehouse(List<ProductDetail> productDetailList) {
+        if (productDetailList.size() > 0){
+            boolean flag = true;   //假设不重复
+            for (int i = 0; i < productDetailList.size() - 1; i ++){
+                for (int j = i + 1; j < productDetailList.size(); j++){
+                    if (productDetailList.get(i).getPd_whcode().equals(productDetailList.get(i).getPd_whcode())){
+                        flag = false;
+                        break;
+                    }
+                }
+            }
+            if (!flag){
+                throw new BizException(BizExceptionCode.BIZ_PRODWHCODE_REPEAT);
+            }
+        }
+    }
+
     /**
     /**
      * 物料发生过除库存初始化外的出入库单时,不能新增,修改,删除
      * 物料发生过除库存初始化外的出入库单时,不能新增,修改,删除
      * @param id
      * @param id