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: |
spring: |
||||
profiles: |
profiles: |
||||
active: prod |
active: pre |
||||
include: common, util-prod |
include: common, util-pre |
||||
|
Loading…
Reference in new issue