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