19 changed files with 625 additions and 18 deletions
@ -0,0 +1,74 @@ |
|||
package com.ccsens.carbasics.api; |
|||
|
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.ccsens.carbasics.bean.vo.QuestionnaireVo; |
|||
import com.ccsens.carbasics.service.IScreeningService; |
|||
import com.ccsens.cloudutil.annotation.MustLogin; |
|||
import com.ccsens.util.JsonResponse; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestMethod; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Api(tags = "高危筛查问卷相关接口" , description = "") |
|||
@RestController |
|||
@RequestMapping("/screening") |
|||
@Slf4j |
|||
public class ScreeningController { |
|||
|
|||
@Resource |
|||
private IScreeningService screeningService; |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "提交高危筛查问卷", notes = "") |
|||
@RequestMapping(value = "/submit", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse submitQuestionnaire(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.SubmitScreeningQuestionnaire> params) throws Exception { |
|||
log.info("提交高危筛查问卷:{}",params); |
|||
screeningService.submitQuestionnaire(params.getParam(), params.getUserId()); |
|||
log.info("提交高危筛查问卷"); |
|||
return JsonResponse.newInstance().ok(); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "分享问卷(生成分享二维码)", notes = "") |
|||
@RequestMapping(value = "/share", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<QuestionnaireVo.ShareQuestionnaire> shareQuestionnaire(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.ShareQuestionnaire> params) throws Exception { |
|||
log.info("分享问卷:{}",params); |
|||
QuestionnaireVo.ShareQuestionnaire shareQuestionnaire = screeningService.shareQuestionnaire(params.getParam(), params.getUserId()); |
|||
log.info("分享问卷结束:{}",shareQuestionnaire); |
|||
return JsonResponse.newInstance().ok(shareQuestionnaire); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "村医查看工作量", notes = "") |
|||
@RequestMapping(value = "/village/workload", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<QuestionnaireVo.VillageWorkload> villageWorkload(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.VillageWorkload> params) throws Exception { |
|||
log.info("村医查看工作量:{}",params); |
|||
QuestionnaireVo.VillageWorkload villageWorkload = screeningService.villageWorkload(params.getParam(), params.getUserId()); |
|||
log.info("村医查看工作量结束"); |
|||
return JsonResponse.newInstance().ok(villageWorkload); |
|||
} |
|||
|
|||
@MustLogin |
|||
@ApiOperation(value = "卫生院查看村医工作量", notes = "") |
|||
@RequestMapping(value = "/center/workload", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) |
|||
public JsonResponse<QuestionnaireVo.CenterWorkload> centerWorkload(@ApiParam @Validated @RequestBody QueryDto<QuestionnaireDto.CenterWorkload> params) throws Exception { |
|||
log.info("卫生院查看村医工作量:{}",params); |
|||
List<QuestionnaireVo.CenterWorkload> centerWorkload = screeningService.centerWorkload(params.getParam(), params.getUserId()); |
|||
log.info("卫生院查看村医工作量结束"); |
|||
return JsonResponse.newInstance().ok(centerWorkload); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.ccsens.carbasics.service; |
|||
|
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.ccsens.carbasics.bean.vo.QuestionnaireVo; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
public interface IScreeningService { |
|||
|
|||
/** |
|||
* 提交高危筛查问卷 |
|||
* @param param 问卷详情id |
|||
* @param userId userId |
|||
*/ |
|||
void submitQuestionnaire(QuestionnaireDto.SubmitScreeningQuestionnaire param, Long userId); |
|||
|
|||
/** |
|||
* 分享问卷 |
|||
* @param param 问卷类型 |
|||
* @param userId userId |
|||
* @return 返回二维码路径 |
|||
*/ |
|||
QuestionnaireVo.ShareQuestionnaire shareQuestionnaire(QuestionnaireDto.ShareQuestionnaire param, Long userId) throws Exception; |
|||
|
|||
/** |
|||
* 村医查看工作量 |
|||
* @param param 搜索条件 |
|||
* @param userId userId |
|||
* @return 返回工作量 |
|||
*/ |
|||
QuestionnaireVo.VillageWorkload villageWorkload(QuestionnaireDto.VillageWorkload param, Long userId); |
|||
|
|||
/** |
|||
* 卫生院查看工作量 |
|||
* @param param 角色id |
|||
* @param userId userId |
|||
* @return 返回医生列表 |
|||
*/ |
|||
List<QuestionnaireVo.CenterWorkload> centerWorkload(QuestionnaireDto.CenterWorkload param, Long userId); |
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.ccsens.carbasics.service; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.ccsens.carbasics.bean.dto.QuestionnaireDto; |
|||
import com.ccsens.carbasics.bean.po.QuestionnaireDetail; |
|||
import com.ccsens.carbasics.bean.vo.QuestionnaireVo; |
|||
import com.ccsens.carbasics.persist.dao.OrganizationPositionDao; |
|||
import com.ccsens.carbasics.persist.dao.QuestionnaireDao; |
|||
import com.ccsens.carbasics.persist.dao.QuestionnaireDetailDao; |
|||
import com.ccsens.carbasics.util.Constant; |
|||
import com.ccsens.carbasics.util.DefaultCodeError; |
|||
import com.ccsens.util.PropUtil; |
|||
import com.ccsens.util.QrCodeUtil; |
|||
import com.ccsens.util.exception.BaseException; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Propagation; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author 逗 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
public class ScreeningService implements IScreeningService { |
|||
|
|||
@Value("${question.screeningUrl}") |
|||
private String screeningUrl; |
|||
@Resource |
|||
private OrganizationPositionDao positionDao; |
|||
@Resource |
|||
private QuestionnaireDetailDao questionnaireDetailDao; |
|||
@Resource |
|||
private QuestionnaireDao questionnaireDao; |
|||
|
|||
|
|||
@Override |
|||
public void submitQuestionnaire(QuestionnaireDto.SubmitScreeningQuestionnaire param, Long userId) { |
|||
//根据问卷详情id查询问卷
|
|||
QuestionnaireDetail detail = questionnaireDetailDao.selectByPrimaryKey(param.getDetailId()); |
|||
if(ObjectUtil.isNull(detail)){ |
|||
throw new BaseException(DefaultCodeError.QUESTIONNAIRE_DETAIL_ERROR); |
|||
} |
|||
//修改提交状态
|
|||
QuestionnaireDetail questionnaireDetail = new QuestionnaireDetail(); |
|||
questionnaireDetail.setId(param.getDetailId()); |
|||
questionnaireDetail.setSubmitStatus(Constant.SubmitStatus.submit.status); |
|||
questionnaireDetailDao.updateByPrimaryKeySelective(questionnaireDetail); |
|||
} |
|||
|
|||
@Override |
|||
public QuestionnaireVo.ShareQuestionnaire shareQuestionnaire(QuestionnaireDto.ShareQuestionnaire param, Long userId) throws Exception { |
|||
//查找部门和成员名
|
|||
QuestionnaireVo.ShareQuestionnaire shareQuestionnaire = positionDao.getHospitalNameAndDoctorName(param.getRoleId(),userId); |
|||
if(ObjectUtil.isNull(shareQuestionnaire)){ |
|||
throw new BaseException(DefaultCodeError.NO_HOSPITAL); |
|||
} |
|||
if(param.getType() == 1){ |
|||
String qrCode = screeningUrl + "?userId=" + userId; |
|||
String path = QrCodeUtil.getQrCodeWithUtf8(qrCode, PropUtil.path); |
|||
shareQuestionnaire.setQrCode(PropUtil.imgDomain + path); |
|||
} |
|||
return shareQuestionnaire; |
|||
} |
|||
|
|||
@Override |
|||
public QuestionnaireVo.VillageWorkload villageWorkload(QuestionnaireDto.VillageWorkload param, Long userId) { |
|||
long now = System.currentTimeMillis(); |
|||
//查找各等级的数量
|
|||
QuestionnaireVo.VillageWorkload villageWorkload = questionnaireDao.villageWorkloadNum(userId,now); |
|||
//符合条件的提交问卷的患者列表
|
|||
List<QuestionnaireVo.WorkloadList> workloadListList = questionnaireDao.villageGetWorkload(userId,now,param.getType(),param.getName()); |
|||
//返回
|
|||
villageWorkload.setWorkloadLists(workloadListList); |
|||
return villageWorkload; |
|||
} |
|||
|
|||
@Override |
|||
public List<QuestionnaireVo.CenterWorkload> centerWorkload(QuestionnaireDto.CenterWorkload param, Long userId) { |
|||
//查看医生列表
|
|||
List<Long> doctorIdList = questionnaireDao.queryDoctorIdByRoleId(param.getRoleId()); |
|||
//查找每个医生的工作量
|
|||
long now = System.currentTimeMillis(); |
|||
List<QuestionnaireVo.CenterWorkload> centerWorkloadList = new ArrayList<>(); |
|||
if(CollectionUtil.isNotEmpty(doctorIdList)) { |
|||
centerWorkloadList = questionnaireDao.centerWorkload(now,doctorIdList); |
|||
} |
|||
return centerWorkloadList; |
|||
} |
|||
} |
@ -1,4 +1,4 @@ |
|||
spring: |
|||
profiles: |
|||
active: prod |
|||
include: common, util-prod |
|||
active: pre |
|||
include: common, util-pre |
|||
|
Loading…
Reference in new issue