Prechádzať zdrojové kódy

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

zd_123 7 rokov pred
rodič
commit
b0f0239aae

+ 10 - 6
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/survey/QuestionnaireService.java

@ -152,7 +152,7 @@ public class QuestionnaireService extends BaseJpaService {
            }
        });
        //奖品类型
        //奖品类型(不能为空)
        dataMap.put(1, new ExcelData() {
            @Override
            public void transform(String data) {
@ -163,7 +163,7 @@ public class QuestionnaireService extends BaseJpaService {
            }
        });
        //兑奖码
        //兑奖码(不能为空)
        dataMap.put(2, new ExcelData() {
            @Override
            public void transform(String data) {
@ -174,7 +174,7 @@ public class QuestionnaireService extends BaseJpaService {
            }
        });
        //兑奖密码
        //兑奖密码(不能为空)
        dataMap.put(3, new ExcelData() {
            @Override
            public void transform(String data) {
@ -190,9 +190,13 @@ public class QuestionnaireService extends BaseJpaService {
            @Override
            public void transform(String data) {
                try {
                    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm");
                    Date validity = format.parse(data);
                    prize.setValidity(validity);
                    if (StringUtils.isNotEmpty(data)){
                        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm");
                        Date validity = format.parse(data);
                        prize.setValidity(validity);
                    }else {
                        prize.setValidity(null);
                    }
                } catch (ParseException e) {
                    e.printStackTrace();
                }

+ 2 - 2
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/util/RivaEDCode.java

@ -171,12 +171,12 @@ public class RivaEDCode {
	
	
	//测试-加密解密
	public static void main(String[] args)
	/*public static void main(String[] args)
	{
		//解密
//		System.out.println(RivaEDCode.passDecode("LUZ7TN3KOT8AWCD3ZA4NBMI5VNF7E50F6XYEP2WZM68JQYY5JE02L4L5FS9R4NGUGMHSCAPW9AL","C3SHUI8OWBOA4ZASS7FEYJ6RIVXA9SW6U5OA56ERUYZTRFHCRZO8AHT4TTW2MAGT80MGXN","7A778B7F8D8D6E918F7B87756A9B"));
		
		//加密
//		System.out.println(RivaEDCode.passEncode("LUZ7TN3KOT8AWCD3ZA4NBMI5VNF7E50F6XYEP2WZM68JQYY5JE02L4L5FS9R4NGUGMHSCAPW9AL","C3SHUI8OWBOA4ZASS7FEYJ6RIVXA9SW6U5OA56ERUYZTRFHCRZO8AHT4TTW2MAGT80MGXN","1234567"));
	}
	}*/
}

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/DoctorFeldsherTemplateJob.java

@ -78,7 +78,7 @@ public class DoctorFeldsherTemplateJob implements Job {
                    Time tempTime = Time.valueOf("00:00:00");
                    long tempTo = tempTime.getTime();
                    long from = beforeBreakfastTime.getTime();
                    int minutes = (int) ((from - tempTo) / (1000 * 60));
                    int minutes = (int) ((from - to) / (1000 * 60));
                    try {
                        sendPatientHealth(minutes,1,schemecode,tempTime,beforeBreakfastTime,"早餐前");
                    } catch (Exception e) {
@ -169,7 +169,7 @@ public class DoctorFeldsherTemplateJob implements Job {
                    Time tempTime = Time.valueOf("00:00:00");
                    long tempTo = tempTime.getTime();
                    long from = earlyMorningTime.getTime();
                    int minutes = (int) ((from - tempTo) / (1000 * 60));
                    int minutes = (int) ((from - to) / (1000 * 60));
                    try {
                        sendPatientHealth(minutes,2,schemecode,tempTime,earlyMorningTime,"");
                    } catch (Exception e) {

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/resources/system.properties

@ -98,8 +98,8 @@ prescription_pay_query_job=0 0/3 * * * ?
#居民24小时未回复的咨询自动关闭 每小时59分开始执行一次
finish_consult_job=0 59 * * * ?
#提醒有监测方案的居民上传数据,每29分钟执行一次
doctor_feldsher_template_job=0 0/29 * * * ?
#提醒有监测方案的居民上传数据,每隔30分钟执行一次
doctor_feldsher_template_job=0 */30 * * * ?
# 病患者定标情况同步JOB (每天2点一次)
patient_disease_contion_syn_job=0 0 2 * * ?

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/InitiSysProService.java

@ -25,7 +25,7 @@ public class InitiSysProService {
			SystemConfig.sysPropertiesSets.clear();
		}
		Map<String,String> sysPropertiesSets = new HashMap<>();
		List<SystemProperties> sysvalueList = systemPropertiesDao.findSystemPropertiesByClientAndSpaValue(1);
		List<SystemProperties> sysvalueList = systemPropertiesDao.findSystemPropertiesByClientAndSpaValue(0);
		if(!sysvalueList.isEmpty()){
			for (SystemProperties systemProperties : sysvalueList) {
				System.out.println("key:"+systemProperties.getKey());

+ 46 - 33
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireService.java

@ -48,7 +48,7 @@ import java.util.*;
public class QuestionnaireService extends BaseService {
	
	private static final Logger logger = LoggerFactory.getLogger(QuestionnaireService.class);
	static Object obj = new Object();
	
	@Autowired
	private ElasticFactory elasticFactory;
	@Autowired
@ -116,9 +116,6 @@ public class QuestionnaireService extends BaseService {
	 */
	public List<QuestionnaireWinningESDO> questionnaireLottery(QuestionnaireUsers questionnaireUsers)throws Exception{
		
		List<QuestionnaireWinningESDO> result = new ArrayList<>();
		QuestionnaireWinningESDO one = new QuestionnaireWinningESDO();
		
		if(StringUtils.isBlank(questionnaireUsers.getIdcard()) || "undefined".equals(questionnaireUsers.getIdcard())){
			throw new Exception("身份证号为空或者异常:"+questionnaireUsers.getIdcard());
		}
@ -127,6 +124,10 @@ public class QuestionnaireService extends BaseService {
			throw new Exception("openid为空或者异常:"+questionnaireUsers.getIdcard());
		}
		
		List<QuestionnaireWinningESDO> result = new ArrayList<>();
		QuestionnaireWinningESDO one = new QuestionnaireWinningESDO();
		
		// 从redis获取剩余奖品数量
		// 判断奖品池的奖品是否已经发完
		Integer prizeCount = gerPrizeCountFromRedis();
@ -154,14 +155,16 @@ public class QuestionnaireService extends BaseService {
			//中奖
			if("YES".equals(lotteryItem.getAwardName())){
				logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果01:YES,判断数据库是否有中奖纪录");
				List<QuestionnaireWinning> winningList = questionnaireWinningDao.findByUserIdcardAndUserOpenid(questionnaireUsers.getIdcard(),questionnaireUsers.getOpenid());
				if(winningList.isEmpty()){
					//从redis奖品池捞取一个奖品
					QuestionnairePrize questionnairePrize = getQuestionnairePrizeFromRedis();
					//如果抽中的奖品对象为空,则直接返回未中奖
					if(questionnairePrize != null){
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:成功捞取到一个奖品,奖品CODE:"+questionnairePrize.getCode());
						try {
							questionnaireWinning.setWinning(1);
							questionnaireWinning.setWinning(1);//---中奖
							questionnaireWinning.setPrizeType(questionnairePrize.getType());
							questionnaireWinning.setPrizeName(questionnairePrize.getPrizeName());
							questionnaireWinning.setPrizeCode(questionnairePrize.getPrizeCode());
@ -170,48 +173,57 @@ public class QuestionnaireService extends BaseService {
							questionnaireWinning.setValidity(questionnairePrize.getValidity());
							//只有中奖的记录才保存到数据库
							questionnaireWinning = questionnaireWinningDao.save(questionnaireWinning);
							logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果03:中奖结果成功保存到数据库,奖品CODE:"+questionnairePrize.getCode());
						}catch (Exception e){
							//如果保存报错,则将奖品重新放回奖品池,返回未中奖
							String prizejson = JSON.toJSONString(questionnairePrize);
							redisTemplate.opsForValue().set("questionnaire:prize:code:" + questionnairePrize.getCode(), prizejson);
							
							questionnaireWinning.setWinning(0);
							questionnaireWinning.setWinning(0);//--未中奖
							questionnaireWinning.setPrizeType(0);
							questionnaireWinning.setPrizeName("");
							questionnaireWinning.setPrizeCode("");
							questionnaireWinning.setPrizePsw("");
							questionnaireWinning.setAddress("");
							questionnaireWinning.setValidity(new Date());
							
							logger.info("mysql 保存中奖结果报错,将奖品重新放回奖品池,返回未中奖");
							logger.info(e.getMessage());
//					    e.printStackTrace();
							logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果03:mysql 保存中奖结果报错,将奖品重新放回奖品池,返回未中奖,奖品CODE:"+questionnairePrize.getCode());
					        e.printStackTrace();
						}
						one = doToESDO(questionnaireWinning);
						result.add(one);
						//将中奖记录信息缓存到ES
						//将已中奖记录信息缓存到ES
						esQuestionnaireWinningESData(result);
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果04:中奖结果成功保存到ES,奖品CODE:"+questionnairePrize.getCode());
						return result;
					}
					logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:没捞取到奖品,返回");
				}else{
					
					for (QuestionnaireWinning obj:winningList) {
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:从数据库中获取到中奖纪录,奖品CODE:"+obj.getPrizeCode());
						QuestionnaireWinningESDO a = doToESDO(obj);
						result.add(a);
					}
					return result;
				}
			}else{
				questionnaireWinning.setWinning(0);//未中奖
				questionnaireWinning.setWinning(0);//--未中奖
			}
		}else{
			questionnaireWinning.setWinning(0);//未中奖
			questionnaireWinning.setWinning(0);//--未中奖
		}
		one = doToESDO(questionnaireWinning);
		result.add(one);
		//将未中奖记录信息缓存到ES
		esQuestionnaireWinningESData(result);
		return result;
	}
	
	//中奖对象转成ES对象
	/**
	 * 中奖对象转成ES对象
	 * @param questionnaireWinning
	 * @return
	 */
	private QuestionnaireWinningESDO doToESDO(QuestionnaireWinning questionnaireWinning){
		QuestionnaireWinningESDO questionnaireWinningESDO = new QuestionnaireWinningESDO();
		questionnaireWinningESDO.setCode(questionnaireWinning.getCode());
@ -237,19 +249,19 @@ public class QuestionnaireService extends BaseService {
	 */
	synchronized public QuestionnairePrize getQuestionnairePrizeFromRedis(){
		try {
				QuestionnairePrize questionnairePrize = new QuestionnairePrize();
				Set<String> exists = redisTemplate.keys("questionnaire:prize:code:*");
				if(exists.size() > 0){
					String key = "";
					String prizeJsonStr = "";
					for (String setkey :exists) {
						if(StringUtils.isNotBlank(setkey)){
							key = setkey;
							break;
						}
			QuestionnairePrize questionnairePrize = new QuestionnairePrize();
			Set<String> exists = redisTemplate.keys("questionnaire:prize:code:*");
			if(exists.size() > 0){
				String key = "";
				String prizeJsonStr = "";
				for (String setkey :exists) {
					if(StringUtils.isNotBlank(setkey)){
						key = setkey;
						break;
					}
					if(StringUtils.isNotBlank(key)){
						prizeJsonStr = redisTemplate.opsForValue().get(key);
				}
				if(StringUtils.isNotBlank(key)){
					prizeJsonStr = redisTemplate.opsForValue().get(key);
//					JSONObject jsonObject = JSONObject.parseObject(prizeJsonStr);
//					questionnairePrize.setUsed(jsonObject.getInteger("used"));
//					questionnairePrize.setAddress(jsonObject.getString("address"));
@ -260,15 +272,16 @@ public class QuestionnaireService extends BaseService {
//					questionnairePrize.setValidity(jsonObject.getDate("validity"));
//					questionnairePrize.setCreateTime(jsonObject.getDate("createTime"));
//					questionnairePrize.setUpdateTime(jsonObject.getDate("updateTime"));
						questionnairePrize = JSON.parseObject(prizeJsonStr,QuestionnairePrize.class);
						//捞取完之后,从redis缓存中删掉
						redisTemplate.delete(key);
						return questionnairePrize;
					}
				}else{
					return null;
					questionnairePrize = JSON.parseObject(prizeJsonStr,QuestionnairePrize.class);
					//捞取完之后,从redis缓存中删掉
					redisTemplate.delete(key);
					return questionnairePrize;
				}
			}else{
				return null;
			}
		}catch (Exception e){
			logger.info("从redis奖品池捞取一个奖品出错,错误信息:"+e.getMessage());
		    e.printStackTrace();
			return null;
		}