Bladeren bron

增加接口给基卫查询快递面单信息

huangwenjie 7 jaren geleden
bovenliggende
commit
943ddcec02
28 gewijzigde bestanden met toevoegingen van 1411 en 50 verwijderingen
  1. 14 0
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/common/util/DateUtil.java
  2. 411 0
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/BaseController.java
  3. 5 10
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/PrescriptionController.java
  4. 3 3
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/PrescriptionLog.java
  5. 35 7
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java
  6. 2 2
      patient-co/patient-co-statistics/pom.xml
  7. 6 0
      patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/config/SwaggerConfig.java
  8. 1 1
      patient-co/patient-co-wlyy/pom.xml
  9. 2 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/security/WebSecurityConfig.java
  10. 13 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/patient/SignFamily.java
  11. 142 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/Service.java
  12. 151 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/ServiceItem.java
  13. 142 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyService.java
  14. 144 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyServiceItem.java
  15. 19 10
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/redis/RedisMsgPubSubListener.java
  16. 3 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java
  17. 15 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceDao.java
  18. 16 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceItemDao.java
  19. 17 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceDao.java
  20. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceItemDao.java
  21. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionService.java
  22. 176 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignFamilyServiceService.java
  23. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/SFUtils.java
  24. 17 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionInfoController.java
  25. 2 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java
  26. 39 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/PatientSignFamilyServiceController.java
  27. 10 10
      patient-co/patient-co-wlyy/src/main/resources/logback.xml
  28. 1 1
      pom.xml

+ 14 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/common/util/DateUtil.java

@ -64,6 +64,20 @@ public class DateUtil {
        return formatter.format(dateDate);
    }
    /**
     * 将短时间格式时间转换为字符串 yyyy-MM-dd
     *
     * @param dateDate
     * @return
     */
    public static String dateToStr(java.util.Date dateDate, String format) {
        if (dateDate == null) {
            return "";
        }
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        return formatter.format(dateDate);
    }
    /**
     * 获取当前时间 yyyy-MM-dd HH:mm:ss
     * @return

+ 411 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/BaseController.java

@ -0,0 +1,411 @@
package com.yihu.wlyy.service.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.service.common.model.IdEntity;
import com.yihu.wlyy.service.common.util.DateUtil;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.util.ReflectionUtils;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.util.*;
public class BaseController {
    private static Logger logger = LoggerFactory.getLogger(BaseController.class);
    @Autowired
    protected HttpServletRequest request;
    public void error(Exception e) {
        logger.error(DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss")+":"+getClass().getName() + ":", e.getMessage());
        e.printStackTrace();
    }
    public void warn(Exception e) {
        logger.warn(getClass().getName() + ":", e.getMessage());
        e.printStackTrace();
    }
    public void infoMessage(String message) {
        logger.info(message);
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String error(int code, String msg) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return null;
        }
    }
    /**
     * 接口处理成功
     *
     * @param msg
     * @return
     */
    public String success(String msg) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", 200);
            map.put("msg", msg);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return null;
        }
    }
    public String write(int code, String msg) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return null;
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String write(int code, String msg, String key, List<?> list) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            map.put(key, list);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, String key, JSONObject value) {
        try {
            JSONObject json = new JSONObject();
            json.put("status", code);
            json.put("msg", msg);
            json.put(key, value);
            return json.toString();
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, String key, JSONArray value) {
        try {
            JSONObject json = new JSONObject();
            json.put("status", code);
            json.put("msg", msg);
            json.put(key, value);
            return json.toString();
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param total 总数
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, int total, String key, JSONArray value) {
        try {
            JSONObject json = new JSONObject();
            json.put("status", code);
            json.put("msg", msg);
            json.put("total", total);
            json.put(key, value);
            return json.toString();
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, String key, Object value) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            map.put(key, value);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String write(int code, String msg, String key, Page<?> list) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            // 是否为第一页
            map.put("isFirst", list.isFirst());
            // 是否为最后一页
            map.put("isLast", list.isLast());
            // 总条数
            map.put("total", list.getTotalElements());
            // 总页数
            map.put("totalPages", list.getTotalPages());
            map.put(key, list.getContent());
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String write(int code, String msg, String key, Page<?> page, JSONArray array) {
        try {
            JSONObject json = new JSONObject();
            json.put("status", code);
            json.put("msg", msg);
            // 是否为第一页
            json.put("isFirst", page == null ? false : page.isFirst());
            // 是否为最后一页
            json.put("isLast", page == null ? true : page.isLast());
            // 总条数
            json.put("total", page == null ? 0 : page.getTotalElements());
            // 总页数
            json.put("totalPages", page == null ? 0 : page.getTotalPages());
            json.put(key, array);
            return json.toString();
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, String key, Map<?, ?> value) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            map.put(key, value);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @param value 结果数据
     * @return
     */
    public String write(int code, String msg, String key, String value) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            map.put(key, value);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String write(int code, String msg, String key, IdEntity entity) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("status", code);
            map.put("msg", msg);
            map.put(key, entity);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    /**
     * 返回接口处理结果
     *
     * @param code  结果码,成功为200
     * @param msg   结果提示信息
     * @return
     */
    public String write(int code, String msg, boolean isFirst, boolean isLast, long total, int totalPages, String key, Object values) {
        try {
            JSONObject json = new JSONObject();
            json.put("status", code);
            json.put("msg", msg);
            // 是否为第一页
            json.put("isFirst", isFirst);
            // 是否为最后一页
            json.put("isLast", isLast);
            // 总条数
            json.put("total", total);
            // 总页数
            json.put("totalPages", totalPages);
            json.put(key, values);
            return json.toString();
        } catch (Exception e) {
            logger.error("BaseController:", e.getMessage());
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
    public String trimEnd(String param, String trimChars) {
        if (param.endsWith(trimChars)) {
            param = param.substring(0, param.length() - trimChars.length());
        }
        return param;
    }
    /**
     * 无效用户消息返回
     *
     * @param e
     * @param defaultCode
     * @param defaultMsg
     * @return
     */
    public String invalidUserException(Exception e, int defaultCode, String defaultMsg) {
        try {
            // if (e instanceof UndeclaredThrowableException) {
            // UndeclaredThrowableException ute = (UndeclaredThrowableException) e;
            // InvalidUserException iue = (InvalidUserException) ute.getUndeclaredThrowable();
            // if (iue != null) {
            // return error(iue.getCode(), iue.getMsg());
            // }
            // }
            return error(defaultCode, defaultMsg);
        } catch (Exception e2) {
            return null;
        }
    }
    public List<Map<String, Object>> copyBeans(Collection<? extends Object> beans, String... propertyNames) {
        List<Map<String, Object>> result = new ArrayList<>();
        for (Object bean : beans) {
            result.add(copyBeanProperties(bean, propertyNames));
        }
        return result;
    }
    /**
     * 复制特定属性。
     *
     * @param bean
     * @param propertyNames
     * @return
     */
    public Map<String, Object> copyBeanProperties(Object bean, String... propertyNames) {
        Map<String, Object> simplifiedBean = new HashMap<>();
        for (String propertyName : propertyNames) {
            Field field = ReflectionUtils.findField(bean.getClass(), propertyName);
            if (field != null) {
                field.setAccessible(true);
                Object value = ReflectionUtils.getField(field, bean);
                simplifiedBean.put(propertyName, value == null ? "" : value);
            } else {
                simplifiedBean.put(propertyName, "");
            }
        }
        return simplifiedBean;
    }
}

+ 5 - 10
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/PrescriptionController.java

@ -6,7 +6,6 @@ import com.yihu.wlyy.service.service.prescription.PrescriptionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@ -15,14 +14,13 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * 长处方接口
 * */
@Controller
@RequestMapping(value = "/third/prescription/")
@Api(description = "长处方接口")
public class PrescriptionController {
public class PrescriptionController extends BaseController{
	@Autowired
	PrescriptionCAService caService;
@ -89,21 +87,18 @@ public class PrescriptionController {
		}
	}
	@RequestMapping(value = "pharmacistPrescriptionCompletion",method = RequestMethod.POST)
	@RequestMapping(value = "readNewsOnline",method = RequestMethod.POST)
	@ResponseBody
	@ApiOperation("提供在线问诊消息调阅")
	public String readNewsOnline(@ApiParam(name="data",value="json串",defaultValue = "{}")
								 @RequestParam(value = "data",required = true) String data){
		JSONObject jsonObject = new JSONObject();
		try {
			jsonObject.put("status",200);
			jsonObject.put("msg","success");
			jsonObject.put("url","http://www.yihu.com/");
			return write(200,"success","url","http://www.yihu.com/");
		}catch (Exception e){
			e.printStackTrace();
			jsonObject.put("msg",e.getMessage());
			return error(-1,e.getMessage());
		}
		return jsonObject.toString();
	}

+ 3 - 3
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/PrescriptionLog.java

@ -58,21 +58,21 @@ public class PrescriptionLog extends IdEntity {
        // 审核不通过
        no_reviewed("审核不通过", -1),
        revieweding("待审核", 0),
        //审核中
        revieweding("待审核", 0),
        changeing("调整中", 2),
        change_success("调整成功",3),
        change_error("调整失败",4),
        Pharmacist_examination_error("药师审核失败",5),
        add_error("开方失败",6),
        reviewed_success(" 医生审核(CA)通过", 10),
        //药师审核中
        Pharmacist_examination("药师审核中",20),
        Pharmacist_examination_error("药师审核失败",21),
        //开方中/药师审核成功
        adding("开方中/药师审核成功",30),
        add_error("开方失败",31),
        //待支付
        wait_pay("开方完成/待支付", 40),

+ 35 - 7
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java

@ -20,7 +20,6 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -53,8 +52,7 @@ public class PrescriptionService extends ZysoftBaseService{
    @Autowired
    private PrescriptionInfoDao prescriptionInfoDao;
    @Value("${redis.channelTopic}")
    private String channelTopic;
    private String channelTopic = "redisPrescription";
    /**
     * 新增续方日志
@ -94,9 +92,9 @@ public class PrescriptionService extends ZysoftBaseService{
            JSONObject pre = json.getJSONObject("Data");
            String prescriptionCode = pre.getString("PRESCRIPTION_CODE");
            Prescription prescription = prescriptionDao.findByCode(prescriptionCode);
            if(prescription.getStatus()==2||prescription.getStatus()==4){
            if(prescription.getStatus()==PrescriptionLog.PrescriptionLogStatus.changeing.getValue()||prescription.getStatus()==PrescriptionLog.PrescriptionLogStatus.change_error.getValue()){
                if(CODE==1){
                    prescription.setStatus(3);
                    prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.change_success.getValue());
                    prescriptionDao.save(prescription);
                    //调整续方的药品信息
@ -137,8 +135,13 @@ public class PrescriptionService extends ZysoftBaseService{
                        prescriptionInfoDao.save(prescriptionInfo);
                    }
                    // redis 的发布
                    redisTemplate.convertAndSend(channelTopic,JSONObject.fromObject(prescription).toString());
                    // redis 的发布 {tilte:redisAddPrescription   state: 1 ,//1:成功,2.失败 mes:'开方成功' prescription : "0001" //续方CODE  }
                    JSONObject message = new JSONObject();
                    message.put("title","adjustPrescription");
                    message.put("state",1);
                    message.put("prescription",prescriptionCode);
                    message.put("mes","调整处方完成");
                    redisTemplate.convertAndSend(channelTopic,message.toString());
                }else {
                    //调整失败
                    prescription.setStatus(4);
@ -177,6 +180,22 @@ public class PrescriptionService extends ZysoftBaseService{
            if(code==1){
                String orderNo = json.getString("ORDER_NO");//挂号编号
                String recipeNo = json.getString("RECIPE_NO");//处方编号
                //修改续方表状态
//                Prescription prescription = prescriptionDao.f
                //修改续方审核表状态
                // redis 的发布 {tilte:redisAddPrescription   state: 1 ,//1:成功,2.失败 mes:'开方成功' prescription : "0001" //续方CODE  }
                JSONObject message = new JSONObject();
                message.put("title","redisAddPrescription");
                message.put("state",1);
                message.put("prescription","fd3b137cd907456dbcc5b11ecd701741");
//                message.put("mes","预结算完成完成");
                message.put("mes","success");
                redisTemplate.convertAndSend(channelTopic,message.toString());
            }
        }catch (JSONException ex){
@ -206,6 +225,15 @@ public class PrescriptionService extends ZysoftBaseService{
            if(code==1){
                String orderNo = json.getString("ORDER_NO");//挂号编号
                String recipeNo = json.getString("RECIPE_NO");//处方编号
                //判断健管师配送要添加续方消息,提示健管师有续方代配送
                JSONObject message = new JSONObject();
                message.put("title","dispensingComplete");
                message.put("state",1);
                message.put("prescription","fd3b137cd907456dbcc5b11ecd701741");
//                message.put("mes","预结算完成完成");
                message.put("mes","success");
                redisTemplate.convertAndSend(channelTopic,message.toString());
            }
        }catch (JSONException ex){

+ 2 - 2
patient-co/patient-co-statistics/pom.xml

@ -49,8 +49,8 @@
        <version.spring-boot>1.3.5.RELEASE</version.spring-boot>
        <version.spring-framework>4.2.5.RELEASE</version.spring-framework>
        <version.spring-session>1.2.0.RELEASE</version.spring-session>
        <version.swagger>2.4.0</version.swagger>
        <version.swagger-ui>2.4.0</version.swagger-ui>
        <version.swagger>2.7.0</version.swagger>
        <version.swagger-ui>2.7.0</version.swagger-ui>
        <version.tomcat-embed>8.0.28</version.tomcat-embed>
    </properties>

+ 6 - 0
patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/config/SwaggerConfig.java

@ -23,6 +23,11 @@ import static springfox.documentation.builders.PathSelectors.regex;
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurerAdapter {
    private static final String PUBLIC_API = "Default";
    /**
     * 解决swagger UI资源映射找不到问题
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
@ -31,6 +36,7 @@ public class SwaggerConfig extends WebMvcConfigurerAdapter {
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    @Bean
    public Docket publicAPI() {
        return new Docket(DocumentationType.SWAGGER_2)

+ 1 - 1
patient-co/patient-co-wlyy/pom.xml

@ -433,7 +433,7 @@
                    <target>1.8</target>
                    <compilerArguments>
                        <verbose/>
                        <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
                        <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
                <version>3.1</version>

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/security/WebSecurityConfig.java

@ -27,6 +27,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                .antMatchers("/configuration/security").authenticated()
                .anyRequest().permitAll()
                .and()
                .headers().frameOptions().disable()
                .and()
                .csrf().disable()
                .formLogin().defaultSuccessUrl("/swagger-ui.html").failureUrl("/login") //登录成功之后的跳转
                .permitAll()

+ 13 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/patient/SignFamily.java

@ -6,6 +6,7 @@ import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
@ -37,7 +38,7 @@ public class SignFamily extends IdEntity {
    private String doctorHealthName;    // 健康管理师姓名
    private Date begin;         // 签约开始日期
    private Date end;           // 签约结束日期
    private Integer status;     // 签约状态(-1患者已取消,-2已拒绝,-3已解约,-4已到期,0待签约,1已签约,2患者申请取消签约
    private Integer status;     // 签约状态(-1患者已取消,-2已拒绝,-3已解约,-4已到期 -5超过1500同步智业不成功 -6智业返回不成功 未建档,0待签约,1已签约,2患者申请取消签约
    private String images;      // 签约图片附件URL,多图以逗号分隔
    private String reason;      // 解约原因
    private Date czrq;          // 操作时间
@ -63,6 +64,9 @@ public class SignFamily extends IdEntity {
    private Long adminTeamId;//行政团队ID
    private Date expensesTime;//缴费时间
    private Integer num;//签约数
    //1.3.3.2新增字段
    //基卫服务类型
    private String serverType;
@ -559,4 +563,12 @@ public class SignFamily extends IdEntity {
    public void setSickVillageName(String sickVillageName) {
        this.sickVillageName = sickVillageName;
    }
    @Transient
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
}

+ 142 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/Service.java

@ -0,0 +1,142 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 服务表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_service")
public class Service extends IdEntity {
    private String code; //非业务主键
    private String name;       //	服务名称	 		 	 
    private String town;          //	可为空 有值时是 某个区的特定服务	 		 	 
    private String hospital;     //	可为空 有值时是 某个机构的特定服务
    private String image;//图片的url
    private String introduce;     //	简介	 		 	 
    private Integer del;//	是否删除  1可用   不可用
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getImage() {
        return image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
}

+ 151 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/ServiceItem.java

@ -0,0 +1,151 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 服务项表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_service_item")
public class ServiceItem extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;// 所属服务code 关联表 wlyy_Service
    private String name;       //	服务名称
    private String image;   //图片的url
    private Integer type;   // 服务类型 1 热线电话 2 中医体检
    private String mobile;  //服务项对应的热线电话
    private String introduce;     //	简介	 		 	 
    private Integer del;    //	是否删除  1可用   不可用
    private Date createTime;  //创建时间
    private String createUser; //	创建人code
    private String createUserName;    //	创建人name
    private Date updateTime;    //修改时间
    private String updateUser;  //	修改人code
    private String updateUserName;    //	修改人name
    private String remark;      //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getImage() {
        return image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 142 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyService.java

@ -0,0 +1,142 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 签约服务表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_sign_family_service")
public class SignFamilyService extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;//所属的服务code
    private String signCode;    //关联的签约
    private String patient;   //所属患者
    private String patientName; //所属患者名称
    private Integer del;    //	是否删除  1可用   不可用
    private Date signTime;  //服务签约时间
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getSignTime() {
        return signTime;
    }
    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 144 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyServiceItem.java

@ -0,0 +1,144 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 签约服务项表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_sign_family_service_item")
public class SignFamilyServiceItem extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;// 所属服务code 关联表 wlyy_Service
    private String signServiceCode;// 签约的包的code 关联 wlyy_sign_family_service code
    private String serviceItemCode;// 所属服务项 关联表wlyy_service_item  code
    private String signCode;//签约code
    private String patient;   //所属患者
    private Integer del;//	是否删除  1可用   不可用				 	 
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getSignServiceCode() {
        return signServiceCode;
    }
    public void setSignServiceCode(String signServiceCode) {
        this.signServiceCode = signServiceCode;
    }
    public String getServiceItemCode() {
        return serviceItemCode;
    }
    public void setServiceItemCode(String serviceItemCode) {
        this.serviceItemCode = serviceItemCode;
    }
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
}

+ 19 - 10
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/redis/RedisMsgPubSubListener.java

@ -1,8 +1,7 @@
package com.yihu.wlyy.redis;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionInfo;
import com.yihu.wlyy.repository.prescription.PrescriptionInfoDao;
import com.yihu.wlyy.service.app.prescription.PrescriptionInfoService;
import com.yihu.wlyy.service.app.prescription.PrescriptionService;
import com.yihu.wlyy.util.HttpUtil;
import org.json.JSONObject;
import org.slf4j.Logger;
@ -19,6 +18,8 @@ public class RedisMsgPubSubListener extends JedisPubSub {
    @Autowired
    private PrescriptionInfoService prescriptionInfoService;
    @Autowired
    private PrescriptionService prescriptionService;
    private static final Logger logger = LoggerFactory.getLogger(HttpUtil.class);
@ -54,16 +55,24 @@ public class RedisMsgPubSubListener extends JedisPubSub {
    @Override
    public void onMessage(String channel, String message) {
        logger.info("redis_onMessage...");
        logger.info("redis_onMessage...:"+message);
        //this.unsubscribe();
        JSONObject json = new JSONObject(message);
        String title =  json.getString("title");
        if("redisAddPrescription".equals(title)){
            logger.info(json.toString());
            //审核消息发送
            prescriptionInfoService.onMesSquareState(message);
        try{
            JSONObject json = new JSONObject(message);
            String title =  json.getString("title");
            if("redisAddPrescription".equals(title)){
                logger.info(json.toString());
                //审核消息发送
                prescriptionInfoService.onMesSquareState(message);
            }else if("dispensingComplete".equals(title)){//配药完成
                //提醒健管师待取药
                String prescriptionCode = json.getString("prescription");
            }
        }catch (Exception e){
            logger.error("redis_error...",e);
        }
    }
    @Override

+ 3 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java

@ -404,15 +404,15 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    SignFamily findOutTimeSigningByPatient(String patient);
    @Query(value = " select a.*  from wlyy_sign_family a where a.patient = ?1  and a.status = -4 and a.team_code = ?2 order by a.apply_date desc limit 0,1", nativeQuery = true)
    SignFamily findOutTimeSigningByPatientAndTeamCode(String patient,String teamCode);
    SignFamily findOutTimeSigningByPatientAndTeamCode(String patient, String teamCode);
    //      完成缴费后更新签约开始时间begin 缴费状态expensesStatus 医保流水号medical_insurance_num  扣费时间expenses_time
    @Modifying
    @Query("update SignFamily a set a.begin = ?2 ,a.medicalInsuranceNum=?3,a.expensesStatus = ?4,a.expensesTime = ?2,a.signPaySource = ?5 where a.code = ?1 ")
    int updatePatientBegin(String code, Date begin,String medicalInsuranceNum,String expensesStatus,int signPaySource );
    int updatePatientBegin(String code, Date begin, String medicalInsuranceNum, String expensesStatus, int signPaySource);
    //查询居民的扣费状态
    @Query( " select a from SignFamily a where a.patient = ?1 ")
    @Query(" select a from SignFamily a where a.patient = ?1 ")
    SignFamily findPatientExpensesStatus(String patient);
}

+ 15 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceDao.java

@ -0,0 +1,15 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.Service;
import com.yihu.wlyy.entity.template.DoctorTeamGuidanceTemplate;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface ServiceDao extends PagingAndSortingRepository<Service, Long>, JpaSpecificationExecutor<Service> {
    @Query("from Service where code=?1 and del=1")
    Service findByCode(String serviceCode);
}

+ 16 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceItemDao.java

@ -0,0 +1,16 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.ServiceItem;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface ServiceItemDao extends PagingAndSortingRepository<ServiceItem, Long>, JpaSpecificationExecutor<ServiceItem> {
    @Query(" from ServiceItem where serviceCode=?1 and del=1")
    List<ServiceItem> findByServiceCode(String serviceCode);
}

+ 17 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceDao.java

@ -0,0 +1,17 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.entity.service.SignFamilyService;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface SignFamilyServiceDao extends PagingAndSortingRepository<SignFamilyService, Long>, JpaSpecificationExecutor<SignFamilyService> {
    @Query("select s from ServiceItem s,SignFamilyServiceItem si where s.code=si.serviceItemCode and si.patient=?1")
    List<ServiceItem> getPatientServiceItems(String patient);
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceItemDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.SignFamilyService;
import com.yihu.wlyy.entity.service.SignFamilyServiceItem;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface SignFamilyServiceItemDao extends PagingAndSortingRepository<SignFamilyServiceItem, Long>, JpaSpecificationExecutor<SignFamilyServiceItem> {
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionService.java

@ -24,6 +24,18 @@ public class PrescriptionService extends BaseService {
     */
    public Prescription findByCode(String prescriptionCode) {
        return prescriptionDao.findByCode(prescriptionCode);
    }
    /**
     * 配药完成
     * @param code
     */
    public void dispensingComplete(String code){
        Prescription prescription = prescriptionDao.findByCode(code);
    }
    /**

+ 176 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignFamilyServiceService.java

@ -0,0 +1,176 @@
package com.yihu.wlyy.service.app.sign;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.service.Service;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.entity.service.SignFamilyService;
import com.yihu.wlyy.entity.service.SignFamilyServiceItem;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.service.ServiceDao;
import com.yihu.wlyy.repository.service.ServiceItemDao;
import com.yihu.wlyy.repository.service.SignFamilyServiceDao;
import com.yihu.wlyy.repository.service.SignFamilyServiceItemDao;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
 * Created by chenweida on 2017/8/8.
 * 签约服务 服务类型
 */
@org.springframework.stereotype.Service
public class SignFamilyServiceService {
    @Autowired
    private ServiceDao serviceDao;
    @Autowired
    private ServiceItemDao serviceItemDao;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private SignFamilyServiceDao signFamilyServiceDao;
    @Autowired
    private SignFamilyServiceItemDao signFamilyServiceItemDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 给患者批量分配服务
     *
     * @param patients    患者code
     * @param serviceCode 服务code
     * @throws Exception
     */
    @Transactional
    public JSONObject patientsAddService(List<String> patients, String serviceCode) throws Exception {
        JSONObject jo = new JSONObject();
        List<String> errorPatient = new ArrayList<>();
        Service service = serviceDao.findByCode(serviceCode);
        List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
        List<SignFamilyService> saveSignFamilyServiceList = new ArrayList<>();
        List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
        for (String patientCode : patients) {
            //判断患者是否有已经扣费的签约
            SignFamily sgnFamily = this.getSignFamily(patientCode);
            if (sgnFamily == null || sgnFamily.getNum() == 0 || sgnFamily.getNum() == null) {
                errorPatient.add(patientCode);
                continue;
            }
            //添加服务
            SignFamilyService signFamilyService = new SignFamilyService();
            signFamilyService.setServiceCode(service.getCode());
            String signServiceCode = UUID.randomUUID().toString();
            signFamilyService.setCode(signServiceCode);
            signFamilyService.setCreateTime(new Date());
            signFamilyService.setSignCode(sgnFamily.getCode());
            signFamilyService.setSignTime(new Date());
            signFamilyService.setDel(1);
            saveSignFamilyServiceList.add(signFamilyService);
            //添加服务项
            for (ServiceItem oneServiceItem : serviceItems) {
                SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
                signFamilyServiceItem.setCode(UUID.randomUUID().toString());
                signFamilyServiceItem.setCreateTime(new Date());
                signFamilyServiceItem.setDel(1);
                signFamilyServiceItem.setServiceCode(service.getCode());
                signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
                signFamilyServiceItem.setSignCode(sgnFamily.getCode());
                signFamilyServiceItem.setSignServiceCode(signServiceCode);
                saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
            }
        }
        signFamilyServiceDao.save(saveSignFamilyServiceList);
        signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
        jo.put("status", 1);//执行成功
        jo.put("errorPatients", errorPatient);//未成功的患者
        return jo;
    }
    /**
     * 给患者分配服务
     *
     * @param patient     患者code
     * @param serviceCode 服务code
     * @throws Exception
     */
    @Transactional
    public boolean patientAddService(String patient, String serviceCode) throws Exception {
        Service service = serviceDao.findByCode(serviceCode);
        List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
        //判断患者是否有已经扣费的签约
        SignFamily sgnFamily = this.getSignFamily(patient);
        //添加服务
        SignFamilyService signFamilyService = new SignFamilyService();
        signFamilyService.setServiceCode(service.getCode());
        String signServiceCode = UUID.randomUUID().toString();
        signFamilyService.setCode(signServiceCode);
        signFamilyService.setCreateTime(new Date());
        signFamilyService.setSignCode(sgnFamily.getCode());
        signFamilyService.setSignTime(new Date());
        signFamilyService.setDel(1);
        //添加服务项
        List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
        for (ServiceItem oneServiceItem : serviceItems) {
            SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
            signFamilyServiceItem.setCode(UUID.randomUUID().toString());
            signFamilyServiceItem.setCreateTime(new Date());
            signFamilyServiceItem.setDel(1);
            signFamilyServiceItem.setServiceCode(service.getCode());
            signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
            signFamilyServiceItem.setSignCode(sgnFamily.getCode());
            signFamilyServiceItem.setSignServiceCode(signServiceCode);
            saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
        }
        signFamilyServiceDao.save(signFamilyService);
        signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
        return true;
    }
    /**
     * 查找患者有哪些服务项
     *
     * @param patient     患者code
     * @param serviceCode 服务code
     * @return
     * @throws Exception
     */
    public List<ServiceItem> getPatientServiceItem(String patient, String serviceCode) throws Exception {
        StringBuffer sql = new StringBuffer(" SELECT " +
                "   s.* " +
                " FROM " +
                "   wlyy_service_item s, " +
                "   wlyy_sign_family_service_item si " +
                " WHERE " +
                "   s.`code` = si.service_item_code ");
        if (!StringUtils.isEmpty(patient)) {
            sql.append(" and si.patient = '" + patient + "'");
        }
        if (!StringUtils.isEmpty(serviceCode)) {
            sql.append(" and si.service_code = '" + serviceCode + "'");
        }
        return jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper(ServiceItem.class));
    }
    private SignFamily getSignFamily(String patient) {
        String sql = "select count(id) num,code from wlyy_sign_family where patient='" + patient + "' ";
        List<SignFamily> signFamilies = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SignFamily.class));
        return signFamilies.get(0);
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/util/SFUtils.java

@ -162,7 +162,7 @@ public class SFUtils {
        xml.append("d_province='"+sfexpress_obj.getProvinceName()+"' ");
        xml.append("d_city='"+sfexpress_obj.getCityName()+"' ");
        xml.append("d_county='"+sfexpress_obj.getTownName()+"' ");
        //快件产品类别:21,医药专运(常温)
        //快件产品类别:11,医药常温
        //付款方式:1:寄方付,2:收方付 3:第三方付
        xml.append("express_type='11' pay_method='2' >");
//        xml.append("express_type='11' pay_method='1' custid='9999999999'>");

+ 17 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionInfoController.java

@ -9,6 +9,8 @@ import com.yihu.wlyy.service.app.prescription.PrescriptionExpressageService;
import com.yihu.wlyy.service.app.prescription.PrescriptionInfoService;
import com.yihu.wlyy.service.app.prescription.PrescriptionPayService;
import com.yihu.wlyy.service.app.prescription.PrescriptionService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.service.third.jw.JwSignService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -35,6 +37,8 @@ public class PrescriptionInfoController extends BaseController{
    private PrescriptionService prescriptionService;
    @Autowired
    private PrescriptionPayService prescriptionPayService;
    @Autowired
    private JwPrescriptionService jwPrescriptionService;
    @RequestMapping(value = "/getPrescriptionFilter", method = RequestMethod.GET)
@ -215,4 +219,17 @@ public class PrescriptionInfoController extends BaseController{
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/getPrescriptionDurgDict", method = RequestMethod.GET)
    @ApiOperation(value = "获取基卫的药品字典")
    public String getPrescriptionDurgDict(
            @RequestParam(required = true,name = "dictName") @ApiParam(value = "字典名称", name = "dictName",required = true)  String dictName
    ){
        try {
            return write(200, "操作成功!", "data",jwPrescriptionService.getDictForI(dictName));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
}

+ 2 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java

@ -1094,8 +1094,9 @@ public class ConsultController extends WeixinBaseController {
            json.put("prescriptionInfo",prescriptionDiagnosisService.getPrescriptionInfo(prescriptionCode));//续方药品信息
            json.put("symptoms",consult1.getSymptoms());//咨询类型--- 1高血压,2糖尿病
            json.put("jwCode",prescription.getJwCode());//基位处方code
            json.put("code",prescription.getCode());//续方code
            return write(200, "查询成功!", "list", json);
            return write(200, "查询成功!", "data", json);
        }catch (Exception e){
            error(e);
            return error(-1, "查询失败!");

+ 39 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/PatientSignFamilyServiceController.java

@ -0,0 +1,39 @@
package com.yihu.wlyy.web.patient.sign;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.service.app.sign.SignFamilyServiceService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
@RestController
@Api(description = "患者签约服务")
@RequestMapping("/patient/sign/service")
public class PatientSignFamilyServiceController extends BaseController {
    @Autowired
    private SignFamilyServiceService signFamilyServiceService;
    @RequestMapping(value = "/getPatientService", method = RequestMethod.GET)
    @ApiOperation("根据患者code获取患者的服务")
    public String getPatientService(
            @RequestParam(required = false, value = "patientCode") @ApiParam(required = false, value = "患者code", name = "patientCode") String patientCode
    ) {
        try {
            List<ServiceItem> serviceItems = signFamilyServiceService.getPatientServiceItem(patientCode, null);
            return write(200, "请求成功", "data", serviceItems);
        } catch (Exception e) {
            return error(-1, e.getMessage());
        }
    }
}

+ 10 - 10
patient-co/patient-co-wlyy/src/main/resources/logback.xml

@ -10,9 +10,9 @@
	</appender>
	<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/tmp/logs/wlyy.log</file>
		<file>/Users/Mewtwo/ideaSpace/log/tmp/logs/wlyy.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/tmp/logs/wlyy.%d{yyyy-MM-dd}.log</fileNamePattern>
			<fileNamePattern>/Users/Mewtwo/ideaSpace/log/tmp/logs/wlyy.%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
@ -21,9 +21,9 @@
	</appender>
	<appender name="business_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/wlyy_logs/business_m.log</file>
		<file>/Users/Mewtwo/ideaSpace/log/wlyy_logs/business_m.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/datadisk/wlyy_logs/rolling/business_m.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
			<fileNamePattern>/Users/Mewtwo/ideaSpace/log/wlyy_logs/rolling/business_m.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
@ -31,9 +31,9 @@
		</encoder>
	</appender>
	<appender name="business_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/wlyy_logs/business.log</file>
		<file>/Users/Mewtwo/ideaSpace/log/wlyy_logs/business.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/datadisk/wlyy_logs/dayLogs/business.%d{yyyy-MM-dd}.log</fileNamePattern>
			<fileNamePattern>/Users/Mewtwo/ideaSpace/log/wlyy_logs/dayLogs/business.%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
@ -41,9 +41,9 @@
		</encoder>
	</appender>
	<appender name="interface_call_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/wlyy_logs/interface_call_m.log</file>
		<file>/Users/Mewtwo/ideaSpace/log/wlyy_logs/interface_call_m.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/datadisk/wlyy_logs/rolling/interface_call_m.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
			<fileNamePattern>/Users/Mewtwo/ideaSpace/log/wlyy_logs/rolling/interface_call_m.%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
@ -51,9 +51,9 @@
		</encoder>
	</appender>
	<appender name="interface_call_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/wlyy_logs/interface_call.log</file>
		<file>/Users/Mewtwo/ideaSpace/log/wlyy_logs/interface_call.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/datadisk/wlyy_logs/dayLogs/interface_call.%d{yyyy-MM-dd}.log</fileNamePattern>
			<fileNamePattern>/Users/Mewtwo/ideaSpace/log/wlyy_logs/dayLogs/interface_call.%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>

+ 1 - 1
pom.xml

@ -30,7 +30,7 @@
        <version.spring-data-commons>1.8.0.RELEASE</version.spring-data-commons>
        <version.spring-data-keyvalue>1.1.2.RELEASE</version.spring-data-keyvalue>
        <version.spring-data-redis>1.7.2.RELEASE</version.spring-data-redis>
        <version.swagger>2.4.0</version.swagger>
        <version.swagger>2.7.0</version.swagger>
        <version.poi>3.15-beta1</version.poi>
        <version.hibernate>4.3.5.Final</version.hibernate>
        <version.hibernate-validator>5.0.3.Final</version.hibernate-validator>