修改服务包内容配置修改接口
This commit is contained in:
parent
af78ce0cde
commit
56d9f7a4ab
@ -177,10 +177,31 @@ public interface ServiceWayContentMapper {
|
||||
/**
|
||||
* 检查除当前记录之外是否存在相同的服务频次
|
||||
*
|
||||
* @param id
|
||||
* @param serviceContentId
|
||||
* @param serviceWayContentEditDTO
|
||||
* @return
|
||||
*/
|
||||
int countByServiceFrequencyExcludingId(@Param("id") Long id, @Param("serviceContentId") Long serviceContentId, @Param("serviceWayContentEditDTO") ServiceWayContentEditDTO serviceWayContentEditDTO);
|
||||
int countByServiceFrequencyExcludingId(@Param("serviceWayContentEditDTO") ServiceWayContentEditDTO serviceWayContentEditDTO);
|
||||
|
||||
/**
|
||||
* 判断当前服务方式下服务内容是否重复
|
||||
*
|
||||
* @param serviceContent
|
||||
* @param serviceWayId
|
||||
* @return
|
||||
*/
|
||||
int selectServiceContentByName(@Param("serviceContent") String serviceContent, @Param("serviceWayId") Long serviceWayId);
|
||||
|
||||
/**
|
||||
* 检查TEXT类型的serviceFrequencyText是否重复
|
||||
* @param serviceWayContentEditDTO
|
||||
* @return
|
||||
*/
|
||||
boolean isServiceFrequencyTextDuplicate(@Param("serviceWayContentEditDTO") ServiceWayContentEditDTO serviceWayContentEditDTO);
|
||||
|
||||
/**
|
||||
* 检查DIGIT类型的serviceFrequencyStart和serviceFrequencyEnd是否重复
|
||||
* @param serviceWayContentEditDTO
|
||||
* @return
|
||||
*/
|
||||
boolean isServiceFrequencyDigitDuplicate(@Param("serviceWayContentEditDTO") ServiceWayContentEditDTO serviceWayContentEditDTO);
|
||||
}
|
||||
|
||||
@ -67,6 +67,7 @@ public class ServiceWayContentServiceImpl implements IServiceWayContentService {
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insertServiceWayContent(ServiceWayContentAddDTO serviceWayContentAddDTO) {
|
||||
// 判断服务内容在服务内容表中是否存在
|
||||
ServiceWayContentVO serviceWayContentVO = serviceWayContentMapper.countByWayIdAndContent(serviceWayContentAddDTO.getServiceWayId(), serviceWayContentAddDTO.getServiceContent());
|
||||
@ -130,91 +131,77 @@ public class ServiceWayContentServiceImpl implements IServiceWayContentService {
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateServiceWayContent(ServiceWayContentEditDTO serviceWayContentEditDTO) {
|
||||
// // 判断服务内容在服务内容表中是否存在
|
||||
// ServiceWayContentVO serviceWayContentVO = serviceWayContentMapper.countByWayIdAndContent(serviceWayContentEditDTO.getServiceWayId(), serviceWayContentEditDTO.getServiceContent());
|
||||
String username = SecurityUtils.getUsername();
|
||||
Date date = DateUtils.getNowDate();
|
||||
ServiceWayContent serviceFrequency = new ServiceWayContent();
|
||||
// 检查除当前记录之外是否存在同名的服务内容
|
||||
if (!serviceWayContentEditDTO.getServiceContent().equals(serviceWayContentMapper.selectServiceWayContentById(serviceWayContentEditDTO.getServiceContentId()))
|
||||
&& serviceWayContentMapper.countByContentExcludingId(serviceWayContentEditDTO.getServiceContentId(), serviceWayContentEditDTO.getServiceWayId(), serviceWayContentEditDTO.getServiceContent()) > 0) {
|
||||
throw new ServiceException("服务内容已存在");
|
||||
// 获取当前的服务频次记录
|
||||
ServiceWayContent currentFrequency = serviceWayContentMapper.selectServiceWayContentById(serviceWayContentEditDTO.getId());
|
||||
if (currentFrequency == null) {
|
||||
throw new ServiceException("未找到对应的服务频次记录");
|
||||
}
|
||||
ServiceWayContent serviceContent = new ServiceWayContent();
|
||||
serviceContent.setId(serviceWayContentEditDTO.getServiceContentId());
|
||||
serviceContent.setServiceWayId(serviceWayContentEditDTO.getServiceWayId());
|
||||
serviceContent.setServiceContent(serviceWayContentEditDTO.getServiceContent());
|
||||
serviceContent.setUpdateBy(username);
|
||||
serviceContent.setUpdateTime(date);
|
||||
if (serviceWayContentMapper.updateServiceWayContent(serviceContent) <= 0) {
|
||||
throw new ServiceException("修改服务内容失败");
|
||||
// 获取当前服务内容的详细信息
|
||||
ServiceWayContent currentServiceContent = serviceWayContentMapper.selectServiceWayContentById(currentFrequency.getServiceContentId());
|
||||
if (currentServiceContent == null) {
|
||||
throw new ServiceException("未找到对应的服务内容记录");
|
||||
}
|
||||
// 检查除当前记录之外是否存在相同的服务频次
|
||||
if (!serviceWayContentEditDTO.equals(serviceWayContentMapper.selectServiceWayContentById(serviceWayContentEditDTO.getId()))
|
||||
&& serviceWayContentMapper.countByServiceFrequencyExcludingId(serviceWayContentEditDTO.getId(), serviceWayContentEditDTO.getServiceContentId(), serviceWayContentEditDTO) > 0) {
|
||||
throw new ServiceException("服务频次已存在");
|
||||
// 检查服务内容名称是否改变
|
||||
boolean serviceContentChanged = !currentServiceContent.getServiceContent().equals(serviceWayContentEditDTO.getServiceContent());
|
||||
// 如果服务内容名称改变
|
||||
if (serviceContentChanged) {
|
||||
// 检查新的服务内容名称是否已存在
|
||||
int existingServiceContent = serviceWayContentMapper.selectServiceContentByName(serviceWayContentEditDTO.getServiceContent(), serviceWayContentEditDTO.getServiceWayId());
|
||||
if (existingServiceContent > 0) {
|
||||
// 如果新服务内容名称已存在,提示错误
|
||||
throw new ServiceException("修改后的服务内容已存在");
|
||||
} else {
|
||||
// 如果新服务内容名称不存在,创建新的服务内容
|
||||
ServiceWayContent newServiceContent = new ServiceWayContent();
|
||||
newServiceContent.setServiceWayId(serviceWayContentEditDTO.getServiceWayId());
|
||||
newServiceContent.setServiceContent(serviceWayContentEditDTO.getServiceContent());
|
||||
newServiceContent.setServiceType(ServiceWayContentServiceType.SERVICE_CONTENT.toString());
|
||||
newServiceContent.setCreateBy(username);
|
||||
newServiceContent.setCreateTime(date);
|
||||
serviceWayContentMapper.insertServiceWayContent(newServiceContent);
|
||||
// 更新当前频次记录的ServiceContentId为新创建的服务内容ID
|
||||
currentFrequency.setServiceContentId(newServiceContent.getId());
|
||||
}
|
||||
}
|
||||
// 如果当前服务内容下服务频次不存在,更新服务频次
|
||||
serviceFrequency.setId(serviceWayContentEditDTO.getId());
|
||||
serviceFrequency.setServiceContentId(serviceWayContentEditDTO.getServiceContentId());
|
||||
serviceFrequency.setServiceFrequencyType(serviceWayContentEditDTO.getServiceFrequencyType());
|
||||
serviceFrequency.setServiceFrequencyText(serviceWayContentEditDTO.getServiceFrequencyText());
|
||||
serviceFrequency.setServiceFrequencyStart(serviceWayContentEditDTO.getServiceFrequencyStart());
|
||||
serviceFrequency.setServiceFrequencyEnd(serviceWayContentEditDTO.getServiceFrequencyEnd());
|
||||
serviceFrequency.setUpdateBy(username);
|
||||
serviceFrequency.setUpdateTime(date);
|
||||
if (serviceWayContentMapper.updateServiceWayContent(serviceFrequency) <= 0) {
|
||||
|
||||
// 检查服务频次是否改变
|
||||
boolean serviceFrequencyChanged = false;
|
||||
boolean isFrequencyDuplicate = false;
|
||||
|
||||
if ("TEXT".equals(serviceWayContentEditDTO.getServiceFrequencyType())) {
|
||||
serviceFrequencyChanged = !currentFrequency.getServiceFrequencyText().equals(serviceWayContentEditDTO.getServiceFrequencyText());
|
||||
if (serviceFrequencyChanged) {
|
||||
// 检查TEXT类型的serviceFrequencyText是否重复
|
||||
isFrequencyDuplicate = serviceWayContentMapper.isServiceFrequencyTextDuplicate(serviceWayContentEditDTO);
|
||||
}
|
||||
} else if ("DIGIT".equals(serviceWayContentEditDTO.getServiceFrequencyType())) {
|
||||
serviceFrequencyChanged = !currentFrequency.getServiceFrequencyStart().equals(serviceWayContentEditDTO.getServiceFrequencyStart())
|
||||
|| !currentFrequency.getServiceFrequencyEnd().equals(serviceWayContentEditDTO.getServiceFrequencyEnd());
|
||||
if (serviceFrequencyChanged) {
|
||||
// 检查DIGIT类型的serviceFrequencyStart和serviceFrequencyEnd是否重复
|
||||
isFrequencyDuplicate = serviceWayContentMapper.isServiceFrequencyDigitDuplicate(serviceWayContentEditDTO);
|
||||
}
|
||||
}
|
||||
// 如果服务频次改变了,检查新服务频次的重复性
|
||||
if (serviceFrequencyChanged && isFrequencyDuplicate) {
|
||||
throw new ServiceException("当前服务内容下服务频次已存在");
|
||||
}
|
||||
|
||||
// 更新服务频次记录
|
||||
currentFrequency.setServiceFrequencyType(serviceWayContentEditDTO.getServiceFrequencyType());
|
||||
currentFrequency.setServiceFrequencyText(serviceWayContentEditDTO.getServiceFrequencyText());
|
||||
currentFrequency.setServiceFrequencyStart(serviceWayContentEditDTO.getServiceFrequencyStart());
|
||||
currentFrequency.setServiceFrequencyEnd(serviceWayContentEditDTO.getServiceFrequencyEnd());
|
||||
currentFrequency.setUpdateBy(username);
|
||||
currentFrequency.setUpdateTime(date);
|
||||
|
||||
if (serviceWayContentMapper.updateServiceWayContent(currentFrequency) <= 0) {
|
||||
throw new ServiceException("修改服务频次失败");
|
||||
}
|
||||
|
||||
|
||||
// if (ObjectUtils.isNotEmpty(serviceWayContentVO)) {
|
||||
// // 判断服务频次是否在服务频次表中是否存在
|
||||
// ServiceFrequencyDTO serviceFrequencyDTO = new ServiceFrequencyDTO();
|
||||
// BeanUtils.copyProperties(serviceWayContentEditDTO, serviceFrequencyDTO);
|
||||
// serviceFrequencyDTO.setServiceContentId(serviceWayContentVO.getId());
|
||||
// // 如果当前服务内容下服务频次已存在
|
||||
// if (serviceWayContentMapper.countByServiceFrequencyDTO(serviceFrequencyDTO) > 0) {
|
||||
// throw new ServiceException("当前服务内容下服务频次已存在");
|
||||
// }
|
||||
// // 如果当前服务内容下服务频次不存在,更新服务频次
|
||||
// serviceFrequency.setId(serviceWayContentEditDTO.getId());
|
||||
// serviceFrequency.setServiceContentId(serviceWayContentVO.getId());
|
||||
// serviceFrequency.setServiceFrequencyType(serviceWayContentEditDTO.getServiceFrequencyType());
|
||||
// serviceFrequency.setServiceFrequencyText(serviceWayContentEditDTO.getServiceFrequencyText());
|
||||
// serviceFrequency.setServiceFrequencyStart(serviceWayContentEditDTO.getServiceFrequencyStart());
|
||||
// serviceFrequency.setServiceFrequencyEnd(serviceWayContentEditDTO.getServiceFrequencyEnd());
|
||||
// serviceFrequency.setUpdateBy(username);
|
||||
// serviceFrequency.setUpdateTime(date);
|
||||
// if (serviceWayContentMapper.updateServiceWayContent(serviceFrequency) <= 0) {
|
||||
// throw new ServiceException("修改服务频次失败");
|
||||
// }
|
||||
// } else {
|
||||
// // 如果服务内容在服务内容表不存在,更新服务内容,更新服务频次
|
||||
// // 修改服务内容
|
||||
// ServiceWayContent serviceContent = new ServiceWayContent();
|
||||
// serviceContent.setId(serviceWayContentEditDTO.getServiceContentId());
|
||||
// serviceContent.setServiceWayId(serviceWayContentEditDTO.getServiceWayId());
|
||||
// serviceContent.setServiceContent(serviceWayContentEditDTO.getServiceContent());
|
||||
// serviceContent.setUpdateBy(username);
|
||||
// serviceContent.setUpdateTime(date);
|
||||
// if (serviceWayContentMapper.updateServiceWayContent(serviceContent) <= 0) {
|
||||
// throw new ServiceException("修改服务内容失败");
|
||||
// }
|
||||
// // 修改服务频次
|
||||
// serviceFrequency.setId(serviceWayContentEditDTO.getId());
|
||||
// serviceFrequency.setServiceContentId(serviceContent.getId());
|
||||
// serviceFrequency.setServiceFrequencyType(serviceWayContentEditDTO.getServiceFrequencyType());
|
||||
// serviceFrequency.setServiceFrequencyText(serviceWayContentEditDTO.getServiceFrequencyText());
|
||||
// serviceFrequency.setServiceFrequencyStart(serviceWayContentEditDTO.getServiceFrequencyStart());
|
||||
// serviceFrequency.setServiceFrequencyEnd(serviceWayContentEditDTO.getServiceFrequencyEnd());
|
||||
// serviceFrequency.setUpdateBy(username);
|
||||
// serviceFrequency.setUpdateTime(date);
|
||||
// if (serviceWayContentMapper.updateServiceWayContent(serviceFrequency) <= 0) {
|
||||
// throw new ServiceException("修改服务频次失败");
|
||||
// }
|
||||
// }
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@ -29,6 +29,12 @@ public class ServiceWayContentAndFrequencyVO {
|
||||
@Excel(name = "服务内容")
|
||||
private String serviceContent;
|
||||
|
||||
/**
|
||||
* 所属服务方式id
|
||||
*/
|
||||
@ApiModelProperty(value = "所属服务方式id")
|
||||
private Long serviceWayId;
|
||||
|
||||
/**
|
||||
* 服务频次id
|
||||
*/
|
||||
|
||||
@ -180,6 +180,7 @@
|
||||
parameterType="java.lang.Long">
|
||||
SELECT swc2.id AS serviceContentId,
|
||||
swc2.service_content,
|
||||
swc2.service_way_id,
|
||||
swc1.id AS serviceFrequencyId,
|
||||
swc1.service_frequency_type,
|
||||
swc1.service_frequency_text,
|
||||
@ -327,8 +328,8 @@
|
||||
select count(1)
|
||||
from service_way_content
|
||||
<where>
|
||||
service_content_id =#{serviceContentId}
|
||||
and id != #{id}
|
||||
service_content_id =#{serviceWayContentEditDTO.serviceContentId}
|
||||
and id != #{serviceWayContentEditDTO.id}
|
||||
<if test="serviceWayContentEditDTO.serviceFrequencyType!=null and serviceWayContentEditDTO.serviceFrequencyType!=''">
|
||||
and service_frequency_type =
|
||||
#{serviceWayContentEditDTO.serviceFrequencyType}
|
||||
@ -346,9 +347,33 @@
|
||||
#{serviceWayContentEditDTO.serviceFrequencyEnd}
|
||||
</if>
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectServiceContentByName" resultType="java.lang.Integer">
|
||||
select count(*)
|
||||
from service_way_content
|
||||
where service_way_id = #{serviceWayId}
|
||||
and service_content = #{serviceContent}
|
||||
</select>
|
||||
|
||||
<select id="isServiceFrequencyTextDuplicate" resultType="java.lang.Boolean">
|
||||
SELECT CASE WHEN COUNT(*) > 0 THEN true ELSE false END
|
||||
FROM service_way_content
|
||||
WHERE service_content_id = #{serviceWayContentEditDTO.serviceContentId}
|
||||
AND service_frequency_text = #{serviceWayContentEditDTO.serviceFrequencyText}
|
||||
AND id != #{serviceWayContentEditDTO.id}
|
||||
</select>
|
||||
|
||||
<select id="isServiceFrequencyDigitDuplicate" resultType="java.lang.Boolean">
|
||||
SELECT CASE WHEN COUNT(*) > 0 THEN true ELSE false END
|
||||
FROM service_way_content
|
||||
WHERE service_content_id = #{serviceWayContentEditDTO.serviceContentId}
|
||||
AND service_frequency_start = #{serviceWayContentEditDTO.serviceFrequencyStart}
|
||||
AND service_frequency_end = #{serviceWayContentEditDTO.serviceFrequencyEnd}
|
||||
AND id != #{serviceWayContentEditDTO.id}
|
||||
</select>
|
||||
|
||||
|
||||
<insert id="insertServiceWayContent" parameterType="ServiceWayContent" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into service_way_content
|
||||
|
||||
@ -233,9 +233,9 @@
|
||||
</if>
|
||||
<if test="diseaseTypeName != null">#{diseaseTypeName},
|
||||
</if>
|
||||
<if test="templateId != null">#{templateId},
|
||||
<if test="wechatTemplateName != null">#{wechatTemplateName},
|
||||
</if>
|
||||
<if test="wechatTemplateName != null">wechat_template_name,
|
||||
<if test="templateId != null">#{templateId},
|
||||
</if>
|
||||
<if test="templateContent != null">#{templateContent},
|
||||
</if>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user