|  | @@ -0,0 +1,112 @@
 | 
	
		
			
				|  |  | +package thyyxxk.webserver.service.dictionary;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.config.exception.ExceptionEnum;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.dao.his.dictionary.ServiceNumberDao;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.dao.his.dictionary.ZdHealthEducationDao;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.entity.ResultVo;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.entity.dictionary.CodeName;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.entity.dictionary.ZdHealthEducation;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.utils.ResultVoUtil;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.utils.StringUtil;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  | +import java.util.Optional;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @ClassName ServiceNumberService
 | 
	
		
			
				|  |  | + * @Author hsh
 | 
	
		
			
				|  |  | + * @Date 2024/3/22 8:54
 | 
	
		
			
				|  |  | + * @Version 1.0
 | 
	
		
			
				|  |  | + * @Description 服务号相关字典
 | 
	
		
			
				|  |  | + **/
 | 
	
		
			
				|  |  | +@Service
 | 
	
		
			
				|  |  | +@Slf4j
 | 
	
		
			
				|  |  | +public class ServiceNumberService {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private final ServiceNumberDao dao;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private final ZdHealthEducationDao healthEducationDao;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public ServiceNumberService(ServiceNumberDao dao, ZdHealthEducationDao healthEducationDao) {
 | 
	
		
			
				|  |  | +        this.dao = dao;
 | 
	
		
			
				|  |  | +        this.healthEducationDao = healthEducationDao;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public ResultVo<Map<String, List<CodeName>>> selectServiceNumberDict(){
 | 
	
		
			
				|  |  | +        Map<String, List<CodeName>> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        List<CodeName> list = dao.selectHealthEducationType();
 | 
	
		
			
				|  |  | +        map.put("HEType", list);
 | 
	
		
			
				|  |  | +        return ResultVoUtil.success(map);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public ResultVo<List<ZdHealthEducation>> selectHealthEducation(){
 | 
	
		
			
				|  |  | +        return ResultVoUtil.success(healthEducationDao.selectHealthEducation());
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public ResultVo<Map<String, Object>> saveHealthEducation(ZdHealthEducation zdHealthEducation){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(null == zdHealthEducation){
 | 
	
		
			
				|  |  | +            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "健康教育字典信息不存在,请检查!");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Map<String, Object> resultMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        String code = zdHealthEducation.getCode();
 | 
	
		
			
				|  |  | +        ZdHealthEducation healthEducation = healthEducationDao.selectHealthEducationByCode(code);
 | 
	
		
			
				|  |  | +        // 设置健康教育类型名称
 | 
	
		
			
				|  |  | +        List<CodeName> he = dao.selectHealthEducationType();
 | 
	
		
			
				|  |  | +        Optional<CodeName> s = he.stream().filter(codeName -> codeName.getCode().equals(zdHealthEducation.getType())).findFirst();
 | 
	
		
			
				|  |  | +        s.ifPresent(codeName -> zdHealthEducation.setTypeName(codeName.getName()));
 | 
	
		
			
				|  |  | +        int num;
 | 
	
		
			
				|  |  | +        try{
 | 
	
		
			
				|  |  | +            if(null != healthEducation){
 | 
	
		
			
				|  |  | +                num = healthEducationDao.updateHealthEducationByCode(zdHealthEducation);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                String maxCode = healthEducationDao.selectMaxCodeOfHealthEducation();
 | 
	
		
			
				|  |  | +                String newCode;
 | 
	
		
			
				|  |  | +                if(maxCode.startsWith("0")){
 | 
	
		
			
				|  |  | +                    int number = Integer.parseInt(maxCode.replace("0", ""));
 | 
	
		
			
				|  |  | +                    if(number == 9){
 | 
	
		
			
				|  |  | +                        newCode = (number + 1) + "";
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        newCode = "0" + (number + 1);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    int number = Integer.parseInt(maxCode);
 | 
	
		
			
				|  |  | +                    newCode = (number + 1) + "";
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                zdHealthEducation.setCode(newCode);
 | 
	
		
			
				|  |  | +                num = healthEducationDao.insert(zdHealthEducation);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(num == 0){
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "保存健康教育字典信息失败!");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            resultMap.put("cg", "保存健康教育字典信息成功!");
 | 
	
		
			
				|  |  | +            return ResultVoUtil.success(resultMap);
 | 
	
		
			
				|  |  | +        } catch(Exception e){
 | 
	
		
			
				|  |  | +            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "保存健康教育字典信息失败!");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public ResultVo<Map<String, Object>> delHealthEducationByCode(String code) {
 | 
	
		
			
				|  |  | +        if (StringUtil.isBlank(code)) {
 | 
	
		
			
				|  |  | +            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有健康教育字典编码,请检查!");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Map<String, Object> resultMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        try{
 | 
	
		
			
				|  |  | +            int num = healthEducationDao.deleteHealthEducationByCode(code);
 | 
	
		
			
				|  |  | +            if(num == 0){
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "删除健康教育字典失败!");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            resultMap.put("cg", "删除健康教育字典成功!");
 | 
	
		
			
				|  |  | +            return ResultVoUtil.success(resultMap);
 | 
	
		
			
				|  |  | +        } catch(Exception e){
 | 
	
		
			
				|  |  | +            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "删除健康教育字典失败!");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |