feat (farm): 投入品库,灾害库同步

- 投入品-新增,修改,删除 同步至字典表
- 灾害库-新增,修改,删除 同步至字典表
This commit is contained in:
达富斌
2025-08-25 13:46:24 +08:00
parent 2d5ae4222b
commit e2467367ac
10 changed files with 301 additions and 20 deletions

View File

@@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.farm.controller.admin.dict.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @description:
* @author: binda
* @date: 2025/8/25 11:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DisasterDataReqVO {
@Schema(description = "ID")
private String id;
@Schema(description = "灾害类型 1:一般灾害; 2:气象灾害")
private Integer type;
@Schema(description = "灾害名称")
private String name;
}

View File

@@ -17,8 +17,11 @@ public class SysDictReqVO {
private Integer id; private Integer id;
private String dictTypeCode; private String dictTypeCode;
private String field1Code; private String field1Code;
private String field1Name;
private String field2Code; private String field2Code;
private String field2Name;
private String field3Code; private String field3Code;
private String field3Name;
private Integer deleted; private Integer deleted;
public SysDictReqVO(String dictTypeCode, String field1Code,Integer deleted) { public SysDictReqVO(String dictTypeCode, String field1Code,Integer deleted) {

View File

@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.farm.dal.mysql.disasterdata; package cn.iocoder.yudao.module.farm.dal.mysql.disasterdata;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -19,7 +20,6 @@ public interface DisasterDataMapper {
long selectDisasterDataCount(@Param("req") DisasterDataPageReqVO reqVO); long selectDisasterDataCount(@Param("req") DisasterDataPageReqVO reqVO);
DisasterDataDO selectById(String id); DisasterDataDO selectById(String id);
void deleteByIds(List<String> ids); void deleteByIds(List<String> ids);
@@ -29,4 +29,6 @@ public interface DisasterDataMapper {
void updateById(DisasterDataDO updateObj); void updateById(DisasterDataDO updateObj);
void insert(DisasterDataDO disasterData); void insert(DisasterDataDO disasterData);
DisasterDataDO selectOne(DisasterDataReqVO reqVO);
} }

View File

@@ -30,6 +30,8 @@ public interface SysDictMapper {
List<SysDictDO> groupByTypeCode(); List<SysDictDO> groupByTypeCode();
List<SysDictDO> groupByFieldCode(@Param("dictTypeCode") String dictTypeCode);
void insertOne(SysDictDO reqVO); void insertOne(SysDictDO reqVO);
void updateById(SysDictDO reqVO); void updateById(SysDictDO reqVO);

View File

@@ -41,6 +41,14 @@ public class CommonConstants {
public final static String DICT_TYPE_CODE_1 = "common_disaster"; // 一般灾害 public final static String DICT_TYPE_CODE_1 = "common_disaster"; // 一般灾害
public final static String DICT_TYPE_CODE_2 = "weather_disaster"; // 气象灾害 public final static String DICT_TYPE_CODE_2 = "weather_disaster"; // 气象灾害
public final static String DICT_TYPE_CODE_3 = "species_classify_library"; // 物种类别 public final static String DICT_TYPE_CODE_3 = "species_classify_library"; // 物种类别
public final static String DICT_TYPE_CODE_4 = "invest_goods_type"; // 投入品
public final static String DICT_TYPE_CODE_4_1 = "invest_goods_unit_1"; // 投入品单位-1
public final static String DICT_TYPE_CODE_4_2 = "invest_goods_unit_2"; // 投入品单位-2
public final static String DICT_TYPE_CODE_5 = "farming_type"; // 农事类型
public final static String DICT_TYPE_CODE_6 = "farming_name"; // 农事名称
public final static String DICT_TYPE_CODE_7 = "drug_type"; // 药物类型
public final static String COMMON_DISASTER = "1"; // 一般灾害
public final static String WEATHER_DISASTER = "2"; // 气象灾害
} }

View File

@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.farm.service.disasterdata;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataSaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.disasterdata.vo.DisasterDataSaveReqVO;
import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO; import cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO;
@@ -11,7 +13,9 @@ import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper; import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper;
import cn.iocoder.yudao.module.farm.enums.CommonConstants; import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil; import cn.iocoder.yudao.module.farm.framework.util.ImageCollectionUtil;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -22,6 +26,7 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.*;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.DISASTER_DATA_NOT_EXISTS;
/** /**
@@ -41,6 +46,13 @@ public class DisasterDataServiceImpl implements DisasterDataService {
@Override @Override
public String createDisasterData(DisasterDataSaveReqVO createReqVO) { public String createDisasterData(DisasterDataSaveReqVO createReqVO) {
// 名称查重
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setName(createReqVO.getName());
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
if (ObjectUtils.isNotEmpty(obj)) {
return "灾害名称重复";
}
// 插入 // 插入
DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class); DisasterDataDO disasterData = BeanUtils.toBean(createReqVO, DisasterDataDO.class);
// 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换 // 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换
@@ -52,15 +64,59 @@ public class DisasterDataServiceImpl implements DisasterDataService {
disasterData.setCreator(getLoginUser().getId().toString()); disasterData.setCreator(getLoginUser().getId().toString());
disasterData.setTenantId(getLoginUser().getTenantId().toString()); disasterData.setTenantId(getLoginUser().getTenantId().toString());
disasterDataMapper.insert(disasterData); disasterDataMapper.insert(disasterData);
// 同步
this.syncCreateDict(disasterData.getId());
// 返回 // 返回
return disasterData.getId(); return disasterData.getId();
} }
private void syncCreateDict(String id) {
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setId(id);
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
Integer type = obj.getType(); // 灾害类型
String name = obj.getName(); // 灾害名称
SysDictDO insertObj = new SysDictDO();
if (type == 1) {
// 一般灾害 父类编号
String category = obj.getCategory();
// 一般灾害
List<SysDictDO> list = sysDictMapper.groupByFieldCode(DICT_TYPE_CODE_1);
Map<String, String> parentMap = list.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
insertObj.setDictTypeCode(DICT_TYPE_CODE_1);
insertObj.setDictTypeName("一般灾害");
insertObj.setField1Code(category);
insertObj.setField1Name(parentMap.get(category));
insertObj.setField2Code(StrHelperUtil.generate());
insertObj.setField2Name(name);
} else {
// 气象灾害
insertObj.setDictTypeCode(DICT_TYPE_CODE_2);
insertObj.setDictTypeName("气象灾害");
insertObj.setField1Code(StrHelperUtil.generate());
insertObj.setField1Name(name);
}
insertObj.setStatus(CommonConstants.YES_CODE);
insertObj.setDeleted(true);
sysDictMapper.insertOne(insertObj);
}
@Override @Override
public void updateDisasterData(DisasterDataSaveReqVO updateReqVO) { public void updateDisasterData(DisasterDataSaveReqVO updateReqVO) {
// 校验存在 // 校验存在
validateDisasterDataExists(updateReqVO.getId()); validateDisasterDataExists(updateReqVO.getId());
// 名称查重
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setName(updateReqVO.getName());
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
if (ObjectUtils.isNotEmpty(obj)) {
return;
}
// 更新 // 更新
DisasterDataDO updateObj = BeanUtils.toBean(updateReqVO, DisasterDataDO.class); DisasterDataDO updateObj = BeanUtils.toBean(updateReqVO, DisasterDataDO.class);
// 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换 // 将图片集合转换为数据库存储的字符串,仅当前端传了列表时进行转换
@@ -70,8 +126,55 @@ public class DisasterDataServiceImpl implements DisasterDataService {
updateObj.setUpdater(getLoginUser().getId().toString()); updateObj.setUpdater(getLoginUser().getId().toString());
updateObj.setUpdateTime(LocalDateTime.now()); updateObj.setUpdateTime(LocalDateTime.now());
disasterDataMapper.updateById(updateObj); disasterDataMapper.updateById(updateObj);
// 同步
this.syncUpdateDict(updateObj.getId());
} }
private void syncUpdateDict(String id) {
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setId(id);
DisasterDataDO obj = disasterDataMapper.selectOne(reqVO);
Integer type = obj.getType(); // 灾害类型
String name = obj.getName(); // 灾害名称
if (type == 1) {
// 一般灾害
List<SysDictDO> list = sysDictMapper.groupByFieldCode(DICT_TYPE_CODE_1);
Map<String, String> parentMap = list.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
SysDictReqVO query = new SysDictReqVO();
query.setDictTypeCode(DICT_TYPE_CODE_1);
query.setField2Name(name);
SysDictDO aDo = sysDictMapper.getDictByField3Code(query);
// 一般灾害 父类编号
String category = obj.getCategory();
SysDictDO updateObj = new SysDictDO();
updateObj.setId(aDo.getId());
updateObj.setField1Code(category);
updateObj.setField1Name(parentMap.get(category));
updateObj.setField2Code(aDo.getField2Code());
updateObj.setField2Name(name);
sysDictMapper.updateById(updateObj);
} else {
// 气象灾害
SysDictReqVO query = new SysDictReqVO();
query.setDictTypeCode(DICT_TYPE_CODE_2);
query.setField1Name(name);
SysDictDO aDo = sysDictMapper.getDictByField3Code(query);
SysDictDO updateObj = new SysDictDO();
updateObj.setId(aDo.getId());
updateObj.setField1Code(aDo.getField1Code());
updateObj.setField1Name(name);
sysDictMapper.updateById(updateObj);
}
}
@Override @Override
public void deleteDisasterData(String id) { public void deleteDisasterData(String id) {
// 校验存在 // 校验存在
@@ -81,6 +184,24 @@ public class DisasterDataServiceImpl implements DisasterDataService {
aDo.setId(id); aDo.setId(id);
aDo.setDeleted(true); aDo.setDeleted(true);
disasterDataMapper.updateById(aDo); disasterDataMapper.updateById(aDo);
// 同步
this.syncDeleteDict(id);
}
private void syncDeleteDict(String id) {
DisasterDataReqVO reqVO = new DisasterDataReqVO();
reqVO.setId(id);
DisasterDataDO aDo = disasterDataMapper.selectOne(reqVO);
String name = aDo.getName();
SysDictReqVO query = new SysDictReqVO();
query.setField2Name(name);
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
SysDictDO updateObj = new SysDictDO();
updateObj.setId(obj.getId());
updateObj.setDeleted(false);
sysDictMapper.updateById(obj);
} }
@Override @Override
@@ -108,7 +229,7 @@ public class DisasterDataServiceImpl implements DisasterDataService {
@Override @Override
public PageResult<DisasterDataDO> getDisasterDataPage(DisasterDataPageReqVO reqVO) { public PageResult<DisasterDataDO> getDisasterDataPage(DisasterDataPageReqVO reqVO) {
List<SysDictDO> dictList = sysDictMapper.getByTypeCode(CommonConstants.DICT_TYPE_CODE_1); List<SysDictDO> dictList = sysDictMapper.getByTypeCode(DICT_TYPE_CODE_1);
Map<String, String> dictMap = dictList.stream() Map<String, String> dictMap = dictList.stream()
.collect(Collectors.toMap( .collect(Collectors.toMap(
SysDictDO::getField1Code, // key: field1Code SysDictDO::getField1Code, // key: field1Code

View File

@@ -1,28 +1,33 @@
package cn.iocoder.yudao.module.farm.service.inputlibrary; package cn.iocoder.yudao.module.farm.service.inputlibrary;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo.InputLibraryPageReqVO; import cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo.InputLibraryPageReqVO;
import cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo.InputLibrarySaveReqVO; import cn.iocoder.yudao.module.farm.controller.admin.inputlibrary.vo.InputLibrarySaveReqVO;
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO;
import cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictMapper;
import cn.iocoder.yudao.module.farm.enums.CommonConstants;
import cn.iocoder.yudao.module.farm.utils.StrHelperUtil;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO; import cn.iocoder.yudao.module.farm.dal.dataobject.inputlibrary.InputLibraryDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary.InputLibraryMapper; import cn.iocoder.yudao.module.farm.dal.mysql.inputlibrary.InputLibraryMapper;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_3;
import static cn.iocoder.yudao.module.farm.enums.CommonConstants.DICT_TYPE_CODE_4;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.INPUT_LIBRARY_NOT_EXISTS; import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.INPUT_LIBRARY_NOT_EXISTS;
/** /**
@@ -36,44 +41,124 @@ public class InputLibraryServiceImpl implements InputLibraryService {
@Resource @Resource
private InputLibraryMapper inputLibraryMapper; private InputLibraryMapper inputLibraryMapper;
@Resource
private SysDictMapper sysDictMapper;
@Override @Override
public String createInputLibrary(InputLibrarySaveReqVO createReqVO) { public String createInputLibrary(InputLibrarySaveReqVO createReqVO) {
// 投入品名称查重
InputLibraryDO aDo = inputLibraryMapper.selectOne("asset_name", createReqVO.getAssetName());
if (ObjectUtils.isNotEmpty(aDo)) {
return "物种名称重复";
}
LoginUser user = getLoginUser(); LoginUser user = getLoginUser();
// 插入 // 插入
String id = IdUtil.fastUUID();
InputLibraryDO inputLibrary = BeanUtils.toBean(createReqVO, InputLibraryDO.class); InputLibraryDO inputLibrary = BeanUtils.toBean(createReqVO, InputLibraryDO.class);
inputLibrary.setId(IdUtil.fastUUID()); inputLibrary.setId(id);
inputLibrary.setTenantId(String.valueOf(user.getTenantId())); inputLibrary.setTenantId(String.valueOf(user.getTenantId()));
inputLibraryMapper.insert(inputLibrary); inputLibraryMapper.insert(inputLibrary);
// 同步
this.syncCreateDict(id);
// 返回 // 返回
return inputLibrary.getId(); return inputLibrary.getId();
} }
private void syncCreateDict(String id) {
List<SysDictDO> list = sysDictMapper.groupByFieldCode(DICT_TYPE_CODE_4);
Map<String, String> parentMap = list.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
InputLibraryDO aDo = inputLibraryMapper.selectById(id);
String assetType = aDo.getAssetType();// 父类编号
String assetName = aDo.getAssetName();// 子类名称
SysDictDO insertObj = new SysDictDO();
insertObj.setDictTypeCode(DICT_TYPE_CODE_4);
insertObj.setDictTypeName("投入品");
insertObj.setField1Code(assetType);
insertObj.setField1Name(parentMap.get(assetType));
insertObj.setField2Code(StrHelperUtil.generate());
insertObj.setField2Name(assetName);
insertObj.setStatus(CommonConstants.YES_CODE);
insertObj.setDeleted(true);
sysDictMapper.insertOne(insertObj);
}
@Override @Override
public void updateInputLibrary(InputLibrarySaveReqVO updateReqVO) { public void updateInputLibrary(InputLibrarySaveReqVO updateReqVO) {
// 校验存在 // 校验存在
validateInputLibraryExists(updateReqVO.getId()); validateInputLibraryExists(updateReqVO.getId());
// 投入品名称查重
InputLibraryDO aDo = inputLibraryMapper.selectOne("asset_name", updateReqVO.getAssetName());
if (ObjectUtils.isNotEmpty(aDo)) {
return ;
}
// 更新 // 更新
InputLibraryDO updateObj = BeanUtils.toBean(updateReqVO, InputLibraryDO.class); InputLibraryDO updateObj = BeanUtils.toBean(updateReqVO, InputLibraryDO.class);
inputLibraryMapper.updateById(updateObj); inputLibraryMapper.updateById(updateObj);
// 同步
this.syncUpdateDict(updateObj.getId());
} }
@Override private void syncUpdateDict(String id) {
InputLibraryDO aDo = inputLibraryMapper.selectById(id);
String assetType = aDo.getAssetType();// 父类编号
String assetName = aDo.getAssetName();// 子类名称
List<SysDictDO> list = sysDictMapper.groupByFieldCode(DICT_TYPE_CODE_4);
Map<String, String> parentMap = list.stream().collect(Collectors.toMap(SysDictDO::getField1Code, SysDictDO::getField1Name, (v1, v2) -> v1));
SysDictReqVO query = new SysDictReqVO();
query.setDictTypeCode(DICT_TYPE_CODE_4);
query.setField2Name(assetName);
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
SysDictDO updateObj = new SysDictDO();
updateObj.setId(Integer.valueOf(id));
updateObj.setField1Code(assetType);
updateObj.setField1Name(parentMap.get(assetType));
updateObj.setField2Code(obj.getField2Code());
updateObj.setField2Name(assetName);
sysDictMapper.updateById(updateObj);
}
@Override
public void deleteInputLibrary(String id) { public void deleteInputLibrary(String id) {
// 校验存在 // 校验存在
validateInputLibraryExists(id); validateInputLibraryExists(id);
// 删除 // 删除
inputLibraryMapper.deleteById(id); inputLibraryMapper.deleteById(id);
// 同步
this.syncDeleteDict(id);
}
private void syncDeleteDict(String id) {
InputLibraryDO aDo = inputLibraryMapper.selectById(id);
String assetName = aDo.getAssetName();// 子类名称
SysDictReqVO query = new SysDictReqVO();
query.setDictTypeCode(DICT_TYPE_CODE_3);
query.setField2Name(assetName);
SysDictDO obj = sysDictMapper.selectDictByMaxField2Code(query);
SysDictDO updateObj = new SysDictDO();
updateObj.setId(obj.getId());
updateObj.setDeleted(false);
sysDictMapper.updateById(obj);
} }
@Override @Override
public void deleteInputLibraryListByIds(List<String> ids) { public void deleteInputLibraryListByIds(List<String> ids) {
// 删除 // 删除
inputLibraryMapper.deleteByIds(ids); inputLibraryMapper.deleteByIds(ids);
} }
private void validateInputLibraryExists(String id) { private void validateInputLibraryExists(String id) {
if (inputLibraryMapper.selectById(id) == null) { if (inputLibraryMapper.selectById(id) == null) {
throw exception(INPUT_LIBRARY_NOT_EXISTS); throw exception(INPUT_LIBRARY_NOT_EXISTS);
} }

View File

@@ -86,13 +86,13 @@ public class SpeciesLibraryServiceImpl implements SpeciesLibraryService {
@Override @Override
public void updateSpeciesLibrary(SpeciesLibrarySaveReqVO updateReqVO) { public void updateSpeciesLibrary(SpeciesLibrarySaveReqVO updateReqVO) {
// 校验存在
validateSpeciesLibraryExists(updateReqVO.getId());
// 名称重复验证 // 名称重复验证
SpeciesLibraryDO obj = speciesLibraryMapper.selectOne("cultivar_name", updateReqVO.getCultivarName()); SpeciesLibraryDO obj = speciesLibraryMapper.selectOne("cultivar_name", updateReqVO.getCultivarName());
if (ObjectUtils.isNotEmpty(obj)) { if (ObjectUtils.isNotEmpty(obj)) {
return ; return ;
} }
// 校验存在
validateSpeciesLibraryExists(updateReqVO.getId());
// 更新 // 更新
SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class); SpeciesLibraryDO updateObj = BeanUtils.toBean(updateReqVO, SpeciesLibraryDO.class);
speciesLibraryMapper.updateById(updateObj); speciesLibraryMapper.updateById(updateObj);

View File

@@ -33,7 +33,7 @@
SELECT id,field1_code, field1_name, field2_name, field3_code SELECT id,field1_code, field1_name, field2_name, field3_code
FROM farm_sys_dict FROM farm_sys_dict
WHERE dict_type_code = #{dictTypeCode} AND field2_code = #{field2Code} <include refid="where_3"/>
ORDER BY field3_code DESC ORDER BY field3_code DESC
LIMIT 1 LIMIT 1
@@ -45,6 +45,12 @@
SELECT field1_code, field1_name, field2_name, field2_code, field3_code, field3_name SELECT field1_code, field1_name, field2_name, field2_code, field3_code, field3_name
FROM farm_sys_dict FROM farm_sys_dict
<include refid="where_3"/>
DESC LIMIT 1
</select>
<sql id="where_3">
<where> <where>
deleted = 0 deleted = 0
<if test="dictTypeCode != null and dictTypeCode != ''"> <if test="dictTypeCode != null and dictTypeCode != ''">
@@ -56,13 +62,14 @@
<if test="field2Code != null and field2Code != ''"> <if test="field2Code != null and field2Code != ''">
AND field2_code = #{field2Code} AND field2_code = #{field2Code}
</if> </if>
<if test="field2Name != null and field2Name != ''">
AND field2_name = #{field2Name}
</if>
<if test="field3Code != null and field3Code != ''"> <if test="field3Code != null and field3Code != ''">
AND field3_code = #{field3Code} AND field3_code = #{field3Code}
</if> </if>
</where> </where>
DESC LIMIT 1 </sql>
</select>
<select id="selectDictByOne" <select id="selectDictByOne"
parameterType="cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO" parameterType="cn.iocoder.yudao.module.farm.controller.admin.dict.vo.sys.SysDictReqVO"
@@ -184,6 +191,20 @@
</select> </select>
<select id="groupByFieldCode" resultType="cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO">
SELECT field1_code,field1_name
FROM farm_sys_dict
<where>
deleted = 0
<if test="dictTypeCode != null and dictTypeCode != ''">
AND dict_type_code = #{dictTypeCode}
</if>
</where>
GROUP BY field1_code,field1_name
</select>
<insert id="insertOne" parameterType="cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO"> <insert id="insertOne" parameterType="cn.iocoder.yudao.module.farm.dal.mysql.sysDict.SysDictDO">
INSERT INTO farm_sys_dict INSERT INTO farm_sys_dict
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">

View File

@@ -195,4 +195,18 @@
</insert> </insert>
<select id="selectOne"
parameterType="cn.iocoder.yudao.module.farm.controller.admin.dict.vo.DisasterDataReqVO"
resultType="cn.iocoder.yudao.module.farm.dal.dataobject.disasterdata.DisasterDataDO">
SELECT <include refid="all_fields"/> FROM farm_disaster_data
<where>
<if test="id != null and id != ''">AND id = #{id}</if>
<if test="type != null and type != ''">AND type = #{type}</if>
<if test="name != null and name != ''">AND name = #{name}</if>
</where>
</select>
</mapper> </mapper>