You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					205 lines
				
				7.9 KiB
			
		
		
			
		
	
	
					205 lines
				
				7.9 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.common.action;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.action.base.BaseAction;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.HisRecipe;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.NatRecord;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.Patient;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.dao.NatRecordDao;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.dao.PatientDao;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.dao.his.HisRecipeDao;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.DateHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.Result;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.ResultEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.service.RecipeService;
							 | 
						||
| 
								 | 
							
								import lombok.extern.slf4j.Slf4j;
							 | 
						||
| 
								 | 
							
								import org.apache.struts2.convention.annotation.Action;
							 | 
						||
| 
								 | 
							
								import org.apache.struts2.convention.annotation.Namespace;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import java.util.ArrayList;
							 | 
						||
| 
								 | 
							
								import java.util.List;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 处方
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @Author wsq
							 | 
						||
| 
								 | 
							
								 * @Date 2020/11/6 9:45
							 | 
						||
| 
								 | 
							
								 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								@Slf4j
							 | 
						||
| 
								 | 
							
								@Namespace("/recipe")
							 | 
						||
| 
								 | 
							
								public class RecipeAction extends BaseAction {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取已缴费项目
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getPayedList")
							 | 
						||
| 
								 | 
							
								    public Result getPayedList(String patientId, String begDate, String endDate) {
							 | 
						||
| 
								 | 
							
								        log.info("[处方]已缴费项目查询 patientId={}, begDate={}, endDate={}", patientId, begDate, endDate);
							 | 
						||
| 
								 | 
							
								        if (patientId == null || begDate == null || endDate == null) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<HisRecipe> recipeList = new HisRecipeDao().getPaidRecipeList(patientId, begDate, endDate);
							 | 
						||
| 
								 | 
							
								        return Result.success(recipeList);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取未缴费项目
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getUnPayList")
							 | 
						||
| 
								 | 
							
								    public Result getUnPayList(String patientId,  String begDate, String endDate ) {
							 | 
						||
| 
								 | 
							
								        log.info("[处方]未缴费项目查询 patientId={}, begDate={}, endDate={}", patientId, begDate, endDate);
							 | 
						||
| 
								 | 
							
								        if (patientId == null || begDate == null || endDate == null) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        int days = DateHelper.intervalDays(begDate, endDate, true);
							 | 
						||
| 
								 | 
							
								        List<HisRecipe> hisRecipes = new HisRecipeDao().getUnPayRecipe(patientId, days);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<HisRecipe> resultList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								        for (HisRecipe hisRecipe : hisRecipes) {
							 | 
						||
| 
								 | 
							
								            if (hisRecipe.getDate() != null && DateHelper.inDateRange(begDate, endDate, hisRecipe.getDate(), DateHelper.DateEnum.yyyy_MM_dd)) {
							 | 
						||
| 
								 | 
							
								                resultList.add(hisRecipe);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return Result.success(resultList);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    /**
							 | 
						||
| 
								 | 
							
								//     * 获取未缴费项目
							 | 
						||
| 
								 | 
							
								//     */
							 | 
						||
| 
								 | 
							
								//    @Action("getDevUnPayList")
							 | 
						||
| 
								 | 
							
								//    public Result getDevUnPayList(String patientId,  String begDate, String endDate ) {
							 | 
						||
| 
								 | 
							
								//        log.info("[处方]未缴费项目查询 patientId={}, begDate={}, endDate={}", patientId, begDate, endDate);
							 | 
						||
| 
								 | 
							
								//        if (patientId == null || begDate == null || endDate == null) {
							 | 
						||
| 
								 | 
							
								//            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        int days = DateHelper.intervalDays(begDate, endDate, true);
							 | 
						||
| 
								 | 
							
								//        List<HisRecipe> hisRecipes = new DevHisRecipeDao().getDevUnPayRecipe(patientId, days);
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        List<HisRecipe> resultList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								//        for (HisRecipe hisRecipe : hisRecipes) {
							 | 
						||
| 
								 | 
							
								//            if (hisRecipe.getDate() != null && DateHelper.inDateRange(begDate, endDate, hisRecipe.getDate(), DateHelper.DateEnum.yyyy_MM_dd)) {
							 | 
						||
| 
								 | 
							
								//                resultList.add(hisRecipe);
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//        return Result.success(resultList);
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 标准物价查询
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param pageNum   页码
							 | 
						||
| 
								 | 
							
								     * @param pageSize  每页数量
							 | 
						||
| 
								 | 
							
								     * @param pyCode    拼音码
							 | 
						||
| 
								 | 
							
								     * @param type      类型 {1:检查治疗; 2:药品材料; 99:全部}
							 | 
						||
| 
								 | 
							
								     * @param groupFlag 组套标识 { 0:不含组套; 1:包含组套 }
							 | 
						||
| 
								 | 
							
								     * @return 结果
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getStandardPrice")
							 | 
						||
| 
								 | 
							
								    public Result getStandardPrice(Integer pageNum, Integer pageSize, String pyCode, String type, String groupFlag) {
							 | 
						||
| 
								 | 
							
								        return new RecipeService().getStandardPrice(pageNum, pageSize, pyCode, type, groupFlag);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 添加核酸检测记录(德宏)
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("addNatRecord")
							 | 
						||
| 
								 | 
							
								    public Result addNatRecord() {
							 | 
						||
| 
								 | 
							
								        String openid = getString("openid");
							 | 
						||
| 
								 | 
							
								        String patientId = getString("patientId");
							 | 
						||
| 
								 | 
							
								        if (patientId == null || openid == null) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Boolean isRepeat = getBoolean("isRepeat"); // 开启重复填写检查
							 | 
						||
| 
								 | 
							
								        if (isRepeat == null) isRepeat = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        NatRecordDao natRecordDao = new NatRecordDao();
							 | 
						||
| 
								 | 
							
								        if (isRepeat && natRecordDao.hasRecord(patientId, DateHelper.getCurDate())) {
							 | 
						||
| 
								 | 
							
								            return Result.success();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String temperature = getString("temperature"); // 体温
							 | 
						||
| 
								 | 
							
								        String country = getString("country");         // 国籍
							 | 
						||
| 
								 | 
							
								        String greenCode = getString("greenCode");     // 绿码情况
							 | 
						||
| 
								 | 
							
								        String tripCode = getString("tripCode");       // 行程码情况
							 | 
						||
| 
								 | 
							
								        String symptom = getString("symptom");         // 症状
							 | 
						||
| 
								 | 
							
								        String info = getString("info");
							 | 
						||
| 
								 | 
							
								        log.info("[核酸检测]记录 country={}, temperature={}, greenCode={}, tripCode={}, symptom={}", country, temperature, greenCode, tripCode, symptom);
							 | 
						||
| 
								 | 
							
								        if (temperature == null || greenCode == null || tripCode == null) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Patient patient = new PatientDao().selectByOpenidAndPatientId(openid, patientId);
							 | 
						||
| 
								 | 
							
								        if (patient == null) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PATIENT_NOT_FOUND);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        NatRecord natRecord = new NatRecord();
							 | 
						||
| 
								 | 
							
								        natRecord.setOperateUser("蓝旗");
							 | 
						||
| 
								 | 
							
								        natRecord.setPatientId(patientId);
							 | 
						||
| 
								 | 
							
								        natRecord.setIdCardNo(patient.getIdCardNo());
							 | 
						||
| 
								 | 
							
								        natRecord.setName(patient.getName());
							 | 
						||
| 
								 | 
							
								        natRecord.setTel(patient.getTel());
							 | 
						||
| 
								 | 
							
								        natRecord.setSex(patient.getSex());
							 | 
						||
| 
								 | 
							
								        //
							 | 
						||
| 
								 | 
							
								        natRecord.setCountry(country);
							 | 
						||
| 
								 | 
							
								        natRecord.setTemperature(temperature);
							 | 
						||
| 
								 | 
							
								        natRecord.setGreenCode(greenCode);
							 | 
						||
| 
								 | 
							
								        natRecord.setTripCode(tripCode);
							 | 
						||
| 
								 | 
							
								        natRecord.setSymptom(symptom);
							 | 
						||
| 
								 | 
							
								        //
							 | 
						||
| 
								 | 
							
								        natRecord.setInfo(info);
							 | 
						||
| 
								 | 
							
								        boolean isInsert = natRecordDao.insert(natRecord);
							 | 
						||
| 
								 | 
							
								        if (!isInsert) {
							 | 
						||
| 
								 | 
							
								            log.info("[核酸检测] 记录信息失败 patientId={}, openid={}", patientId, openid);
							 | 
						||
| 
								 | 
							
								            return Result.error();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return Result.success();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    /**
							 | 
						||
| 
								 | 
							
								//     * 核酸检测支付
							 | 
						||
| 
								 | 
							
								//     */
							 | 
						||
| 
								 | 
							
								//    @Action("payNat")
							 | 
						||
| 
								 | 
							
								//    public Result payNat() {
							 | 
						||
| 
								 | 
							
								//        String patientId = getString("patientId");
							 | 
						||
| 
								 | 
							
								//        Boolean isDoubleCollect = getBoolean("isDoubleCollect"); // 是否双采
							 | 
						||
| 
								 | 
							
								//        if (StringUtils.isEmpty(patientId)) {
							 | 
						||
| 
								 | 
							
								//            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        // 开申请单
							 | 
						||
| 
								 | 
							
								//        JsonResult JsonResult = new HisRecipeDao().payNat(patientId, isDoubleCollect);
							 | 
						||
| 
								 | 
							
								//        if (JsonResult.isTimeout()) { // 请求超时
							 | 
						||
| 
								 | 
							
								//            return Result.error(JsonResult.getMessage());
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        String mzNum = JsonResult.getDataMapString("MZNum");
							 | 
						||
| 
								 | 
							
								//        String recipeId = JsonResult.getDataMapString("RecipeId");
							 | 
						||
| 
								 | 
							
								//        if (ObjectUtils.isEmpty(recipeId) || ObjectUtils.isEmpty(mzNum)) {
							 | 
						||
| 
								 | 
							
								//            return Result.error(JsonResult.getMessage());
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        if (!JsonResult.success()) {
							 | 
						||
| 
								 | 
							
								//            return Result.error(ResultEnum.RECIPE_REPEAT_BILL, null, JsonResult.getMessage());
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        try {
							 | 
						||
| 
								 | 
							
								//            Map<String, Object> resultData = new HashMap<>();
							 | 
						||
| 
								 | 
							
								//            resultData.put("recipeId", Long.toString(Long.parseLong(recipeId) + 1000000000L));
							 | 
						||
| 
								 | 
							
								//            resultData.put("treatNum", mzNum);
							 | 
						||
| 
								 | 
							
								//            return Result.success(resultData);
							 | 
						||
| 
								 | 
							
								//        } catch (Exception e) {
							 | 
						||
| 
								 | 
							
								//            ErrorHelper.println(e);
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//        return Result.error();
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |