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