瀏覽代碼

Merge branch 'dev' of huangwenjie/patient-co-management into dev

trick9191 7 年之前
父節點
當前提交
88be85a04f

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

@ -1,12 +1,15 @@
package com.yihu.wlyy.service.controller;
import com.yihu.wlyy.service.common.model.Result;
import com.yihu.wlyy.service.entity.prescription.Prescription;
import com.yihu.wlyy.service.entity.prescription.PrescriptionPay;
import com.yihu.wlyy.service.service.prescription.PrescriptionCAService;
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.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@ -193,12 +196,12 @@ public class PrescriptionController extends BaseController{
	@RequestMapping(value = "executeSickSettle",method = RequestMethod.POST)
	@ApiOperation("院内结算确认接口")
	public Result executeSickSettle(@ApiParam(name="json",value="json",defaultValue = "{}")
									@RequestParam(value = "json",required = true) String json)
	public Result executeSickSettle(
			@ApiParam(name="prescriptionCode",value="长处方单号",defaultValue = "")
			@RequestParam(value = "prescriptionCode",required = true) String prescriptionCode)
	{
		try {
			String re = prescriptionService.executeSickSettle(JSONObject.fromObject(json),null,null);
			String re = prescriptionService.executeSickSettle(prescriptionCode,null,null);
			return Result.success("院内结算确认接口!",re);
		} catch (Exception ex) {
			ex.printStackTrace();
@ -212,7 +215,6 @@ public class PrescriptionController extends BaseController{
								 @RequestParam(value = "json",required = true) String json){
		try {
			String re = prescriptionService.fadeRecipe(JSONObject.fromObject(json),null,null);
			return Result.success("挂号作废处方接口!",re);
		} catch (Exception ex) {
			ex.printStackTrace();

+ 1 - 2
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/PrescriptionPay.java

@ -15,7 +15,6 @@ import java.util.Date;
@Table(name = "wlyy_prescription_pay")
public class PrescriptionPay extends IdEntity {
    private String code;//接入应用业务流水号outChargeNo
    private String prescriptionCode;//开处方的医生code 关联 wlyy_prescription
    private Integer type;//1 医保支付
@ -409,4 +408,4 @@ public class PrescriptionPay extends IdEntity {
    public void setCzrq(Date czrq) {
        this.czrq = czrq;
    }
}
}

+ 4 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionPayService.java

@ -0,0 +1,4 @@
package com.yihu.wlyy.service.service.prescription;
public class PrescriptionPayService {
}

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

@ -1,6 +1,7 @@
package com.yihu.wlyy.service.service.prescription;
import com.yihu.wlyy.service.common.model.Result;
import com.yihu.wlyy.service.common.util.StringUtil;
import com.yihu.wlyy.service.dao.DoctorMappingDao;
import com.yihu.wlyy.service.dao.HospitalDao;
import com.yihu.wlyy.service.dao.PatientDao;
@ -59,6 +60,8 @@ public class PrescriptionService extends ZysoftBaseService{
    private PrescriptionExpressageDao prescriptionExpressageDao;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private PrescriptionPayDao prescriptionPayDao;
    @Value("${redisChannel.prescription}")
    private String channelTopic;
@ -68,7 +71,7 @@ public class PrescriptionService extends ZysoftBaseService{
     * 新增续方日志
     * @param prescription
     */
    public void addPrescriptionLog(Prescription prescription,String remark){
    public void addPrescriptionLog(Prescription prescription, String remark){
        PrescriptionLog log = new PrescriptionLog();
        log.setStatus(prescription.getStatus());
        log.setPrescriptionCode(prescription.getCode());
@ -488,7 +491,7 @@ public class PrescriptionService extends ZysoftBaseService{
     * @return
     * @throws Exception
     */
    public String executeSickSettle(JSONObject json, String hospital, String licence)  throws Exception
    public String executeSickSettle(String prescriptionCode, String hospital, String licence)  throws Exception
    {
        if(hospital==null){
            String[] hospitalMapping = getHospitalMapping(null); //获取机构映射
@ -500,6 +503,58 @@ public class PrescriptionService extends ZysoftBaseService{
        header.put("ORGCODE",hospital);
        header.put("LICENCE",licence);
        Prescription prescription = prescriptionDao.findByCode(prescriptionCode);
        if(prescription == null){
            throw new Exception("未找到该处方!");
        }
        if(StringUtils.isBlank(prescription.getVisitNo())){
            throw new Exception("处方为挂号成功");
        }
        PrescriptionPay prescriptionPay = prescriptionPayDao.findByPrescriptionPay(prescriptionCode);
        if(prescriptionPay == null){
            throw new Exception("支付失败,无法结算,请重新支付!");
        }
        //拼接结算参数
        JSONObject json = new JSONObject();
        json.put("cardNo",prescription.getSsc());// "cardNo": "病人卡号",
//            "saveDept": "开单科室编码",
//            "REGISTER_TYPE": "挂号类型编码",
//            "RATE_TYPE": "费别类型编码",
        json.put("settleDept","结算科室编码");//结算科室编码--------待处理
        String jwdoctor = doctorMappingDao.findByDocotrCodeAndJwDoctorHospital(prescription.getDoctor(),hospital);
        json.put("saveOperator",jwdoctor);// "saveOperator": "开单人员编码",
        json.put("visitNo",prescription.getVisitNo());// "院内挂号号,取费用列表中最小的院内挂号号
        //医保支付需要组装以下参数
        if (1 == prescriptionPay.getType()){
            JSONObject insurResult = new JSONObject();
            insurResult.put("zhzfe0",prescriptionPay.getAccountPay());//个人账户支付(医保个人账户支付)
            insurResult.put("jjzfe0",prescriptionPay.getFundPay());//基金支付(医保统筹基金支付)
            insurResult.put("sybxzf",prescriptionPay.getCommercePay());//商业保险支付
            insurResult.put("bjjjzf",prescriptionPay.getHealthCarePay());//保健基金支付(保健支付)
            insurResult.put("mzbzje",prescriptionPay.getCivilPay());//民政补助金额(民政医疗救助金额)
            insurResult.put("ylzfe0",prescriptionPay.getBdrugPay());//医保乙类支付
            insurResult.put("Cfdxje",prescriptionPay.getExceedAmount());//超封顶线金额
            insurResult.put("gwybz0",prescriptionPay.getCadresPay());//超公务员补助支付
            insurResult.put("grzhye",prescriptionPay.getAccountBalance());//个人账户余额
            insurResult.put("mzlsh0",prescriptionPay.getMiRegisterNo());//医保挂号号(门诊流水号)
            insurResult.put("djlsh0",prescriptionPay.getMiSettleNo());//医保收费单据号(单据流水号)
            insurResult.put("jkzhzf",prescriptionPay.getHeathPay());//健康账户支付
            insurResult.put("Jkzhye",prescriptionPay.getHealthBalance());//健康账户余额
            insurResult.put("gjzhzf",prescriptionPay.getFamilyPay());//共济账户支付
            insurResult.put("bckbcs","");//医保挂号接口返回结果中的本次看病次数
            insurResult.put("gzztmc","");//医保挂号接口返回结果中的工作状态名称
            insurResult.put("grsfen","");//医保挂号接口返回结果中的个人身份名称
            insurResult.put("bjjbie","");//医保挂号接口返回结果中的保健级别
            insurResult.put("dispOverLimit",0);//门诊超限制标志,1是,0否
            insurResult.put("bcbxf0",prescriptionPay.getMiTotalFee());//本次报销总额
            insurResult.put("grzfe0",prescriptionPay.getSelfPay());//个人自付额
            insurResult.put("fybfy0",prescriptionPay.getUnlessAmount());//非医保费用
            json.put("insurResult",insurResult);
        }
        String response = postSecond("executeSickSettle","院内结算确认接口",null,json,header,false,2);
        return response;

+ 5 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/express/SFExpressService.java

@ -313,8 +313,8 @@ public class SFExpressService extends BaseService {
                newlogobj.setCreateTime(new Date());
                newroutinfolist.add(newlogobj);
                sfexpresslogList.add(newlogobj);
                //accept_remark为"已收件",代表派送结束
                if("已收件".equals(accept_remark)){
                //aopcode=80,为已签收
                if("80".equals(opcode)){
                    isContainEndRoutInfo = true;
                }
            }
@ -367,9 +367,9 @@ public class SFExpressService extends BaseService {
    public void SFRoutePushService(String xml) throws Exception{
        Document doc = DocumentHelper.parseText(xml);
        Element root = doc.getRootElement();
        if (root.element("WaybillRoute") != null)     //包含WaybillRoute节点
        if (root.element("Body") != null)     //包含WaybillRoute节点
        {
            root = root.element("WaybillRoute");
            root = root.element("Body");
        }
        List<?> child = root.elements();
@ -440,7 +440,7 @@ public class SFExpressService extends BaseService {
            for (PrescriptionExpressageLog pushlog: pushSFLogs) {
                //判断是否有已收件的路由节点
                if("已收件".equals(pushlog.getAcceptRemark())){
                if("80".equals(pushlog.getOpCode())){
                    isContainEndRoutInfo = true;
                }

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PatientPrescriptionPayService.java

@ -677,7 +677,7 @@ public class PatientPrescriptionPayService extends BaseService {
            params.put("subject", subject);  //订单名称
            params.put("wxToken", accessToken);
            JSONObject jsonParams = prescriptionService.getPayInfo(prescriptionCode);
            JSONObject jsonParams = prescriptionService.getPayInfo(ssc,prescription.getVisitNo());
            JSONObject recipe = jsonParams.getJSONObject("recipeContent");
            params.put("recipeContent", recipe);// 处方主信息
            prescriptionPay.setRecipeContent(recipe.toJSONString());//处方主信息

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

@ -12,6 +12,7 @@ import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.repository.prescription.PrescriptionExpressageDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.MessageType;
import org.apache.commons.lang3.StringUtils;
@ -42,6 +43,9 @@ public class PrescriptionService extends BaseService {
    private PrescriptionNoticesService prescriptionNoticesService;
    @Autowired
    private PatientDao patientDao;
    @Autowired
    private JwPrescriptionService jwPrescriptionService;
    /**
     *  获取处方信息
@ -100,10 +104,14 @@ public class PrescriptionService extends BaseService {
    /**
     * 返回支付信息
     * @param code
     * @param cardNo 医保卡号
     * @param visitNo 挂号号
     * @return
     */
    public JSONObject getPayInfo(String code){
    public JSONObject getPayInfo(String cardNo,String visitNo) throws Exception {
        String result = jwPrescriptionService.getDispUnSettleFeeInfoList(cardNo,visitNo);
        JSONObject json = new JSONObject();
        //处方主信息{"yyksbm":"医生科室编号","bcsfcs":"本次收费次数","yszjhm":"医生证件号码","ysxm00":"医生姓名","mzlb00":"门诊类别","sfydgh":"是否药店挂号",
        // "bcghcs":"本次挂号次数","ghksmc":"挂号科室名称","cfxms0":"明细上传数量","mzlsh0":"医保挂号流水号 如果为空,将自动医保挂号并收费","ghfy00":"挂号费用",

+ 14 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -1,6 +1,12 @@
package com.yihu.wlyy.service.third.jw;
import com.yihu.wlyy.entity.patient.prescription.Prescription;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionPay;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.repository.prescription.PrescriptionPayDao;
import com.yihu.wlyy.service.app.prescription.PrescriptionService;
import com.yihu.wlyy.util.HttpClientUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
@ -118,13 +124,17 @@ public class JwPrescriptionService {
        return response;
    }
    public String executeSickSettle(String dictName) throws Exception{
    /**
     * 院内结算确认接口
     * @param prescriptionCode 处方CODE
     * @return
     * @throws Exception
     */
    public String executeSickSettle(String prescriptionCode) throws Exception{
        String url = jwUrl + "/third/prescription/executeSickSettle";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("dictName", dictName));
        params.add(new BasicNameValuePair("prescriptionCode", prescriptionCode));
        String response = httpClientUtil.post(url, params, "UTF-8");
        return response;
    }

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

@ -1,83 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<include resource="org/springframework/boot/logging/logback/base.xml"/>
	<jmxConfigurator/>
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator/>
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
	<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/tmp/logs/wlyy.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>/tmp/logs/wlyy.%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<encoder>
			<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/tmp/logs/wlyy.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/tmp/logs/wlyy.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
	<appender name="business_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/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>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
	<appender name="business_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/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>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
	<appender name="interface_call_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/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>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
	<appender name="interface_call_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>/datadisk/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>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
			<charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
	</appender>
    <appender name="business_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/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>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <appender name="business_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/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>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <appender name="interface_call_m" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/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>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
    <appender name="interface_call_d" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/datadisk/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>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>
	<!-- project default level -->
	<logger name="com.yihu.wlyy" level="INFO" />
    <!-- project default level -->
    <logger name="com.yihu.wlyy" level="INFO" />
	<!--log4jdbc -->
	<logger name="jdbc.sqltiming" level="INFO"/>
    <!--log4jdbc -->
    <logger name="jdbc.sqltiming" level="INFO"/>
	<logger name="com.yihu.wlyy.logs.BusinessLogs" level="INFO" additivity="false">
		<appender-ref ref="business_m" />
		<appender-ref ref="business_d" />
	</logger>
	<logger name="com.yihu.wlyy.logs.InterfaceCallLogs" level="INFO" additivity="false">
		<appender-ref ref="interface_call_m" />
		<appender-ref ref="interface_call_d" />
	</logger>
    <logger name="com.yihu.wlyy.logs.BusinessLogs" level="INFO" additivity="false">
        <appender-ref ref="business_m" />
        <appender-ref ref="business_d" />
    </logger>
    <logger name="com.yihu.wlyy.logs.InterfaceCallLogs" level="INFO" additivity="false">
        <appender-ref ref="interface_call_m" />
        <appender-ref ref="interface_call_d" />
    </logger>
	<root level="WARN">
		<!--<appender-ref ref="console" />-->
		<appender-ref ref="rollingFile" />
	</root>
    <root level="WARN">
        <!--<appender-ref ref="console" />-->
        <appender-ref ref="rollingFile" />
    </root>
</configuration>