Ver Fonte

1、类别为1时创建同步字典

yys há 4 dias atrás
pai
commit
add9b171b5

+ 49 - 24
fs-service/src/main/java/com/fs/his/service/impl/FsPackageCateServiceImpl.java

@@ -28,7 +28,9 @@ import com.fs.his.service.IFsPackageCateService;
 @Service
 public class FsPackageCateServiceImpl implements IFsPackageCateService
 {
+    private static final String DISEASE_TYPE_DICT = "sys_package_disease_type";
     private static final String PRIVATE_TYPE_DICT = "sys_package_private_type";
+    private static final Integer DISEASE_CATE_TYPE = 1;
     private static final Integer PRIVATE_CATE_TYPE = 2;
 
     @Autowired
@@ -82,7 +84,7 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         }
         int rows = fsPackageCateMapper.insertFsPackageCate(fsPackageCate);
         if (rows > 0) {
-            saveOrUpdatePrivateTypeDict(fsPackageCate);
+            saveOrUpdateCateDict(fsPackageCate);
         }
         return rows;
     }
@@ -106,7 +108,7 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         }
         int rows = fsPackageCateMapper.updateFsPackageCate(fsPackageCate);
         if (rows > 0 && oldCate != null) {
-            syncPrivateTypeDictOnUpdate(oldCate, fsPackageCate);
+            syncCateDictOnUpdate(oldCate, fsPackageCate);
         }
         return rows;
     }
@@ -124,7 +126,7 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         for (Long cateId : cateIds) {
             FsPackageCate cate = fsPackageCateMapper.selectFsPackageCateByCateId(cateId);
             if (cate != null) {
-                deletePrivateTypeDict(cate.getCateCode());
+                deleteCateDict(cate);
             }
         }
         return fsPackageCateMapper.deleteFsPackageCateByCateIds(cateIds);
@@ -157,13 +159,28 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         return fsPackageCateMapper.selectFsArticleCateByType(2);
     }
 
-    private void saveOrUpdatePrivateTypeDict(FsPackageCate fsPackageCate) {
-        if (!PRIVATE_CATE_TYPE.equals(fsPackageCate.getType())) {
+    private String getDictTypeByCateType(Integer type) {
+        if (DISEASE_CATE_TYPE.equals(type)) {
+            return DISEASE_TYPE_DICT;
+        }
+        if (PRIVATE_CATE_TYPE.equals(type)) {
+            return PRIVATE_TYPE_DICT;
+        }
+        return null;
+    }
+
+    private void saveOrUpdateCateDict(FsPackageCate fsPackageCate) {
+        String dictType = getDictTypeByCateType(fsPackageCate.getType());
+        if (dictType == null) {
             return;
         }
-        SysDictData dictData = buildPrivateTypeDict(fsPackageCate);
+        saveOrUpdateDict(dictType, fsPackageCate);
+    }
+
+    private void saveOrUpdateDict(String dictType, FsPackageCate fsPackageCate) {
+        SysDictData dictData = buildCateDict(dictType, fsPackageCate);
         SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
-                PRIVATE_TYPE_DICT, String.valueOf(fsPackageCate.getCateCode()));
+                dictType, String.valueOf(fsPackageCate.getCateCode()));
         if (existing != null) {
             dictData.setDictCode(existing.getDictCode());
             dictDataService.updateDictData(dictData);
@@ -172,45 +189,53 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         }
     }
 
-    private void syncPrivateTypeDictOnUpdate(FsPackageCate oldCate, FsPackageCate newCate) {
-        boolean wasPrivate = PRIVATE_CATE_TYPE.equals(oldCate.getType());
-        boolean isPrivate = PRIVATE_CATE_TYPE.equals(newCate.getType());
-        if (wasPrivate && !isPrivate) {
-            deletePrivateTypeDict(oldCate.getCateCode());
-            return;
-        }
-        if (!wasPrivate && isPrivate) {
-            saveOrUpdatePrivateTypeDict(newCate);
+    private void syncCateDictOnUpdate(FsPackageCate oldCate, FsPackageCate newCate) {
+        Integer oldType = oldCate.getType();
+        Integer newType = newCate.getType();
+        if (oldType != null && !oldType.equals(newType)) {
+            String oldDictType = getDictTypeByCateType(oldType);
+            if (oldDictType != null) {
+                deleteDictByCateCode(oldDictType, oldCate.getCateCode());
+            }
+            saveOrUpdateCateDict(newCate);
             return;
         }
-        if (!wasPrivate) {
+        String dictType = getDictTypeByCateType(newType);
+        if (dictType == null) {
             return;
         }
         SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
-                PRIVATE_TYPE_DICT, String.valueOf(oldCate.getCateCode()));
+                dictType, String.valueOf(oldCate.getCateCode()));
         if (existing != null) {
-            SysDictData dictData = buildPrivateTypeDict(newCate);
+            SysDictData dictData = buildCateDict(dictType, newCate);
             dictData.setDictCode(existing.getDictCode());
             dictDataService.updateDictData(dictData);
         } else {
-            saveOrUpdatePrivateTypeDict(newCate);
+            saveOrUpdateDict(dictType, newCate);
+        }
+    }
+
+    private void deleteCateDict(FsPackageCate fsPackageCate) {
+        String dictType = getDictTypeByCateType(fsPackageCate.getType());
+        if (dictType != null) {
+            deleteDictByCateCode(dictType, fsPackageCate.getCateCode());
         }
     }
 
-    private void deletePrivateTypeDict(Long cateCode) {
+    private void deleteDictByCateCode(String dictType, Long cateCode) {
         if (cateCode == null) {
             return;
         }
         SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
-                PRIVATE_TYPE_DICT, String.valueOf(cateCode));
+                dictType, String.valueOf(cateCode));
         if (existing != null) {
             dictDataService.deleteDictDataByIds(new Long[]{existing.getDictCode()});
         }
     }
 
-    private SysDictData buildPrivateTypeDict(FsPackageCate fsPackageCate) {
+    private SysDictData buildCateDict(String dictType, FsPackageCate fsPackageCate) {
         SysDictData dictData = new SysDictData();
-        dictData.setDictType(PRIVATE_TYPE_DICT);
+        dictData.setDictType(dictType);
         dictData.setDictValue(String.valueOf(fsPackageCate.getCateCode()));
         dictData.setDictLabel(fsPackageCate.getCateName());
         dictData.setDictSort(fsPackageCate.getSort() != null ? fsPackageCate.getSort().longValue() : 0L);