Просмотр исходного кода

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

wangzhinan 7 лет назад
Родитель
Сommit
2a72065864
25 измененных файлов с 381 добавлено и 48 удалено
  1. 1 1
      edu-article/JkEdu/src/Article.sql.xml
  2. 1 1
      edu-article/JkEdu/src/com/yihu/jk/api/ArticleApi.java
  3. 9 0
      edu-article/JkEdu/src/com/yihu/jk/vo/ArticleStatistic.java
  4. 12 10
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/datastatic/WeChatStaticController.java
  5. 10 1
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/wechat/WechatSignVO.java
  6. 24 10
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/wechat/WechatService.java
  7. 3 3
      patient-co-manage/wlyy-manage/src/main/resources/application.yml
  8. 1 2
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/questionnaire/template/add_template.jsp
  9. 13 8
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/static_wechat.jsp
  10. 25 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/static_wechat_js.jsp
  11. 2 0
      patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/common/qrcode/QrCodeController.java
  12. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/SurveyScreenResultDao.java
  13. 5 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java
  14. 89 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/survey/SurveyScreenResultService.java
  15. 10 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/survey/ManagerQuestionnaireService.java
  16. 47 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/qrcode/QrCodeController.java
  17. 23 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/survey/DoctorSurveyScreenResultController.java
  18. 41 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/ylzpay/ThirdQrcodeController.java
  19. 45 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java
  20. 1 1
      patient-co/patient-co-wlyy/src/main/resources/application-devtest.yml
  21. 2 0
      patient-co/patient-co-wlyy/src/main/resources/system.properties
  22. 5 0
      patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu.txt
  23. 5 0
      patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu_haicang.txt
  24. 5 0
      patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu_jimei.txt
  25. BIN
      patient-co/patient-co-wlyy/src/main/webapp/images/currency.png

+ 1 - 1
edu-article/JkEdu/src/Article.sql.xml

@ -31,7 +31,7 @@ User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
		</Sql>-->
		<Sql name='getCollectionArticleList'>
			<![CDATA[
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber from (
select aa.* ,n.BrowseNumber,n.PointNumber,n.CollectionNumber,IFNULL(n.CommentNumber,0) as CommentNumber, IFNULL(n.PushNumber,0) as PushNumber,n.InsertTime as collectionInsertTime from (
select m.* from Org_Article m  INNER JOIN User_ArticleCollection n on  m.articleid=n.ArticleId and  1=1 and  m.ArticleState =1  @UserParam) as aa LEFT JOIN
User_ArticleStatistics n on aa.ArticleId=n.ArticleId where 1=1 @Condition
			]]>

+ 1 - 1
edu-article/JkEdu/src/com/yihu/jk/api/ArticleApi.java

@ -146,7 +146,7 @@ public class ArticleApi {
					jsonObj.put("articleSource", StringUtil.getJSONValue(vbo.getArticleSource()));
					jsonObj.put("articlelevel", StringUtil.getJSONValue(vbo.getArticlelevel()));
					jsonObj.put("articleCover", StringUtil.getJSONValue(vbo.getArticleCover()));
					jsonObj.put("insertTime", StringUtil.getJSONValue(vbo.getInsertTime()));
					jsonObj.put("insertTime", StringUtil.getJSONValue(vbo.getCollectionInsertTime()));
					jsonObj.put("updateTime", StringUtil.getJSONValue(vbo.getUpdateTime()));
					jsonObj.put("operatorName", StringUtil.getJSONValue(vbo.getOperatorName()));
					jsonObj.put("operatorId", StringUtil.getJSONValue(vbo.getOperatorId()));

+ 9 - 0
edu-article/JkEdu/src/com/yihu/jk/vo/ArticleStatistic.java

@ -48,6 +48,7 @@ public class ArticleStatistic {
	private String OperatorRoleLevel;//操作人角色级别
	private Integer UserScope;//使用范围(1、全市使用,2、全区使用,3、全社区使用)
	private Integer RoleType;//1、健管师,2、管理员
	private String collectionInsertTime;//收藏时间
	public String getDeptName() {
		return DeptName;
@ -376,4 +377,12 @@ public class ArticleStatistic {
	public void setPushNumber(Integer pushNumber) {
		PushNumber = pushNumber;
	}
	public String getCollectionInsertTime() {
		return collectionInsertTime;
	}
	public void setCollectionInsertTime(String collectionInsertTime) {
		this.collectionInsertTime = collectionInsertTime;
	}
}

+ 12 - 10
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/datastatic/WeChatStaticController.java

@ -41,9 +41,10 @@ public class WeChatStaticController extends BaseController {
			@RequestParam(value = "town",required = false)String town,
			@RequestParam(value = "hospital",required = false)String hospital,
			@RequestParam(value = "attention",required = false)String attention,
			@RequestParam(value = "signSource",required = false)String signSource,
			HttpServletResponse response){
		try {
			List<WechatSignVO> datalist = wechatService.geSignWechatDataList(hospital,attention);
			List<WechatSignVO> datalist = wechatService.geSignWechatDataList(hospital,attention, signSource);
			response.setContentType("octets/stream");
			response.setHeader("Content-Disposition", "attachment; filename="+ new String( "signWechatDataList.xls"));
			OutputStream os = response.getOutputStream();
@ -120,7 +121,7 @@ public class WeChatStaticController extends BaseController {
			WritableSheet ws;
			ws = wwb.createSheet("sheet",1);
			
			String[] header = {"居民openid","居民姓名","手机号码","openid更新时间", "身份证号","全科医生", "健管师", "社区医院", "居委会","住址","街道","openid重复数"};
			String[] header = {"居民openid","居民姓名","手机号码","openid更新时间","医疗保险号", "身份证号","全科医生", "健管师", "社区医院", "居委会","住址","街道","openid重复数"};
			int k = 0;
			for (String h : header) {
				addCell(ws, 0, k, h);//表名,行,列,header
@ -133,14 +134,15 @@ public class WeChatStaticController extends BaseController {
				addCell(ws, i, 1, m.getPatientname(),"");
				addCell(ws, i, 2, m.getMobile(),"");
				addCell(ws, i, 3, m.getOpenid_time(),"");
				addCell(ws, i, 4, m.getIdcard(),"");
				addCell(ws, i, 5, m.getDoctor_name(),"");
				addCell(ws, i, 6, m.getDoctor_health_name(),"");
				addCell(ws, i, 7, m.getHospital_name(),"");
				addCell(ws, i, 8, m.getSick_village_name(),"");
				addCell(ws, i, 9, m.getAddress(),"");
				addCell(ws, i, 10, m.getStreet_name(),"");
				addCell(ws, i, 11, m.getTcount(),"");
				addCell(ws, i, 4, m.getMedicare_number(), "");
				addCell(ws, i, 5, m.getIdcard(),"");
				addCell(ws, i, 6, m.getDoctor_name(),"");
				addCell(ws, i, 7, m.getDoctor_health_name(),"");
				addCell(ws, i, 8, m.getHospital_name(),"");
				addCell(ws, i, 9, m.getSick_village_name(),"");
				addCell(ws, i, 10, m.getAddress(),"");
				addCell(ws, i, 11, m.getStreet_name(),"");
				addCell(ws, i, 12, m.getTcount(),"");
				i++;
			}
			wwb.write();

+ 10 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/wechat/WechatSignVO.java

@ -11,6 +11,7 @@ public class WechatSignVO {
	private String patientname;
	private String mobile;
	private String openid_time;
	private String medicare_number;
	private String idcard;
	private String doctor_name;
	private String doctor_health_name;
@ -59,7 +60,15 @@ public class WechatSignVO {
	public void setOpenid_time(String openid_time) {
		this.openid_time = openid_time;
	}
	
	public String getMedicare_number() {
		return medicare_number;
	}
	public void setMedicare_number(String medicare_number) {
		this.medicare_number = medicare_number;
	}
	public String getIdcard() {
		return idcard;
	}

+ 24 - 10
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/wechat/WechatService.java

@ -31,7 +31,7 @@ public class WechatService extends BaseService {
	 * @param attention
	 * @return
	 */
	public List<WechatSignVO> geSignWechatDataList(String hospital,String attention) {
	public List<WechatSignVO> geSignWechatDataList(String hospital,String attention, String signSource) {
		Calendar a = Calendar.getInstance();
		int year = a.get(Calendar.YEAR)-1;
		int month = a.get(Calendar.MONTH)+1;
@ -47,6 +47,7 @@ public class WechatService extends BaseService {
					"t.NAME as patientname," +
					"a.mobile," +
					"t.openid_time," +
					"t.medicare_number,"+
					"CONCAT(LEFT (a.idcard,6),'**********',RIGHT (a.idcard,2)) idcard," +
					"a.doctor_name," +
					"a.doctor_health_name," +
@ -54,15 +55,16 @@ public class WechatService extends BaseService {
					"t.address," +
					"a.hospital_name,"+
					"t.street_name FROM (" +
					"SELECT b.patient,b.mobile,b.idcard,b.doctor_name,b.doctor_health_name,b.hospital_name FROM wlyy_sign_family b WHERE b.hospital='"+hospital+"' AND b.sign_year=2017 AND b.STATUS=1 AND b.expenses_status=1) a,wlyy_patient t WHERE t.CODE=a.patient) m," +
					"SELECT b.patient,b.mobile,b.idcard,b.doctor_name,b.doctor_health_name,b.hospital_name FROM wlyy_sign_family b WHERE b.hospital='"+hospital+"' AND b.sign_year='"+year+"' AND b.STATUS=1 AND b.expenses_status=1) a,wlyy_patient t WHERE t.CODE=a.patient) m," +
					"(SELECT t.openid,count(t.openid) tcount FROM wlyy_patient t WHERE t.`code` IN (" +
					"SELECT patient FROM wlyy_sign_family s WHERE s.hospital='"+hospital+"' AND s.sign_year='"+year+"' AND s.expenses_status=1 AND s.STATUS=1) GROUP BY t.openid) n WHERE m.openid=n.openid";
					"SELECT patient FROM wlyy_sign_family s WHERE s.hospital='"+hospital+"' AND s.sign_year='"+year+"' AND s.expenses_status=1 AND s.STATUS=1 AND s.sign_source = '"+signSource+"') GROUP BY t.openid) n WHERE m.openid=n.openid";
		}else if("0".equals(attention)){
			sql = "SELECT m.*FROM (" +
			sql = "SELECT m.* FROM (" +
					"SELECT a.mobile," +
					"a.code as patientcode ," +
					"a.NAME as patientname ," +
					"a.openid_time," +
					"a.medicare_number," +
					"CONCAT(LEFT (a.idcard,6),'**********',RIGHT (a.idcard,2)) idcard," +
					"b.doctor_name," +
					"b.doctor_health_name," +
@ -70,8 +72,8 @@ public class WechatService extends BaseService {
					"a.address," +
					"a.sick_village_name," +
					"a.street_name FROM (" +
					"SELECT t.CODE,t.NAME,t.address,t.sick_village_name,t.street_name,idcard,mobile,openid_time FROM wlyy_patient t WHERE t.`code` IN (" +
					"SELECT patient FROM wlyy_sign_family s WHERE s.hospital='"+hospital+"' AND s.sign_year='"+year+"' AND s.expenses_status=1 AND s.STATUS=1 AND s.expenses_time IS NOT NULL) AND t.openid IS NULL) a,wlyy_sign_family b WHERE b.hospital='"+hospital+"' AND b.sign_year=2017 AND b.STATUS=1 AND b.expenses_status=1 AND a.CODE=b.patient AND b.expenses_time IS NOT NULL) m";
					"SELECT t.CODE,t.NAME,t.address,t.sick_village_name,t.street_name,t.medicare_number,idcard,mobile,openid_time FROM wlyy_patient t WHERE t.`code` IN (" +
					"SELECT patient FROM wlyy_sign_family s WHERE s.hospital='"+hospital+"' AND s.sign_year='"+year+"' AND s.expenses_status=1 AND s.STATUS=1 AND s.expenses_time IS NOT NULL) AND t.openid IS NULL) a,wlyy_sign_family b WHERE b.hospital='"+hospital+"' AND b.sign_year='"+year+"' AND b.STATUS=1 AND b.expenses_status=1 AND a.CODE=b.patient AND b.expenses_time IS NOT NULL AND b.sign_source ='"+signSource+"') m";
		}
		
@ -86,6 +88,12 @@ public class WechatService extends BaseService {
	 */
	public List<WechatTotalVO> hosipitaTotalData() {
		List<WechatTotalVO> list = new ArrayList<>();
		Calendar a = Calendar.getInstance();
		int year = a.get(Calendar.YEAR)-1;
		int month = a.get(Calendar.MONTH)+1;
		if(month >= 7){
			year = a.get(Calendar.YEAR);
		}
		String sql  = "SELECT " +
				"a1.hospital_name as name," +
				"(a1.count/a2.count) as attRate," +
@ -95,10 +103,10 @@ public class WechatService extends BaseService {
				"FROM wlyy_patient p,wlyy_sign_family sf WHERE p.idcard=sf.idcard AND sf.type=2 " +
				"AND sf.STATUS> 0 AND LENGTH(sf.hospital)=10 " +
				"AND sf.admin_team_code IS NOT NULL AND p.openid IS NOT NULL " +
				"AND p.openid_time<= '"+ DateUtil.dateToStrShort(new Date())+"' AND sf.sign_year='2017' GROUP BY sf.hospital ORDER BY count desc) a1," +
				"AND p.openid_time<= '"+ DateUtil.dateToStrShort(new Date())+"' AND sf.sign_year='"+year+"' GROUP BY sf.hospital ORDER BY count desc) a1," +
				"(SELECT a.hospital hospital,count(a.id) count,a.hospital_name hospital_name " +
				"FROM wlyy_sign_family a WHERE STATUS IN (1,2) AND a.type=2 AND expenses_status=1 " +
				"AND a.expenses_time<= '"+ DateUtil.dateToStrShort(new Date())+"' AND a.sign_year='2017' GROUP BY a.hospital ORDER BY count desc) a2 WHERE a1.hospital=a2.hospital";
				"AND a.expenses_time<= '"+ DateUtil.dateToStrShort(new Date())+"' AND a.sign_year='"+year+"' GROUP BY a.hospital ORDER BY count desc) a2 WHERE a1.hospital=a2.hospital";
	
		list =  jdbcTemplate.query(sql,new BeanPropertyRowMapper(WechatTotalVO.class));
		return list ;
@ -111,6 +119,12 @@ public class WechatService extends BaseService {
	 */
	public List<WechatTotalVO> townTotalData() {
		List<WechatTotalVO> list = new ArrayList<>();
		Calendar a = Calendar.getInstance();
		int year = a.get(Calendar.YEAR)-1;
		int month = a.get(Calendar.MONTH)+1;
		if(month >= 7){
			year = a.get(Calendar.YEAR);
		}
		String sql  = "SELECT " +
				"a1.town_name as name," +
				"(a1.count/a2.count) as attRate," +
@ -121,10 +135,10 @@ public class WechatService extends BaseService {
				"FROM wlyy_patient p,wlyy_sign_family sf,dm_hospital h WHERE p.idcard=sf.idcard " +
				"AND sf.type=2 AND sf.STATUS> 0 AND LENGTH(sf.hospital)=10 AND sf.hospital=h.CODE " +
				"AND sf.admin_team_code IS NOT NULL AND p.openid IS NOT NULL " +
				"AND p.openid_time< '"+ DateUtil.dateToStrShort(new Date())+"' AND sf.sign_year='2017' GROUP BY h.town ORDER BY count desc) a1,(" +
				"AND p.openid_time< '"+ DateUtil.dateToStrShort(new Date())+"' AND sf.sign_year='"+year+"' GROUP BY h.town ORDER BY count desc) a1,(" +
				"SELECT count(a.id) count,h.town_name town_name,h.town town FROM wlyy_sign_family a,dm_hospital h" +
				" WHERE STATUS IN (1,2) AND a.type=2 AND expenses_status=1 AND a.hospital=h.CODE " +
				"AND a.expenses_time< '"+ DateUtil.dateToStrShort(new Date())+"' AND a.sign_year='2017' GROUP BY h.town) a2 WHERE a1.town=a2.town";
				"AND a.expenses_time< '"+ DateUtil.dateToStrShort(new Date())+"' AND a.sign_year='"+year+"' GROUP BY h.town) a2 WHERE a1.town=a2.town";
		
		list =  jdbcTemplate.query(sql,new BeanPropertyRowMapper(WechatTotalVO.class));
		return list ;

+ 3 - 3
patient-co-manage/wlyy-manage/src/main/resources/application.yml

@ -102,7 +102,7 @@ reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
#健康活动url
healthbank:
  url: http://localhost:10051/svr-health-bank/
  url: http://172.19.103.33:8660/svr-wlyy-health-bank/svr-health-bank/
wechat:
  appId: wxd03f859efdf0873d
@ -210,7 +210,7 @@ reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
#健康活动url
healthbank:
  url: http://localhost:10051/svr-health-bank/
  url: http://172.19.103.33:8660/svr-wlyy-health-bank/svr-health-bank/
wechat:
  appId: wx1f129f7b51701428
  appSecret: 988f005d8309ed1795939e0f042431fb
@ -317,7 +317,7 @@ reservation:
  zyurl: http://59.61.92.90:8072/wlyy_service
#健康活动url
healthbank:
  url: http://localhost:10051/svr-health-bank/
  url: http://172.19.103.33:8660/svr-wlyy-health-bank/svr-health-bank/
wechat:
  appId: wxad04e9c4c5255acf
  appSecret: ae77c48ccf1af5d07069f5153d1ac8d3

+ 1 - 2
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/questionnaire/template/add_template.jsp

@ -40,7 +40,7 @@
		.div-combox{position: absolute; left: 77px;top: -13px;}
		.f-tac{text-align: center}
		.f-dn{display: none;}
		#div-form{width: 500px;position: absolute;top: 50%;margin-top: -102px;left: 50%;margin-left: -250px;}
		#div-form{width: 500px;position: absolute;top: 35%;margin-top: -102px;left: 50%;margin-left: -250px;}
		.div-next .position-relative{display: inline-block;position: relative;top: -3px;}
		.div-textarea{height: 148px; border: 1px solid #dcdcdc;padding:5px;}
		.div-label{top: 7px;display: inline-block;}
@ -102,7 +102,6 @@
					<input type="text" id="inp_diseaseType" class="ajax useTitle" required-title="疾病类型不能为空">
				</div>
			</div>
		</div>
	</div>

+ 13 - 8
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/static_wechat.jsp

@ -13,20 +13,24 @@
            <div style="position:relative;display:inline;left:10px;top:8px;white-space:nowrap;text-align:center;background-color:#ffffff;font-weight:bold">微信关注量详情</div>
            <div style="height:auto;width:auto;border:#dde7f1 1px solid;">
                <div class="m-form-group f-mt10" id="we_export_div">
                    <div class="m-form-control f-ml15" style="display: none">
                        <input type="text" id="inp_device_name" placeholder="请选择城市" class="f-ml10"/></div>
                    <div class="m-form-control f-ml15 essential" style="display: none">
                        <input type="text" id="inp_device_name" placeholder="请选择城市" class="required useTitle f-ml10" required-title="城市不能为空"/>
                    </div>
                    <br>
                    <div class="m-form-control f-ml15 essential">
                        <input type="text" id="inp_categoryCode" placeholder="请选择市区" class="required useTitle f-ml10" required-title="市区不能为空" />
                    </div>
                    <div class="m-form-control f-ml15">
                    <input type="text" id="inp_categoryCode" placeholder="请选择市区" class="f-ml10"/>
                    <br>
                    <div class="m-form-control f-ml15 essential">
                        <input type="text" id="inp_hos" placeholder="请选择机构" class="required useTitle f-ml10" required-title="机构不能为空"/>
                    </div>
                    <br>
                    <div class="m-form-control f-ml15">
                    <input type="text" id="inp_hos" placeholder="请选择机构" class="f-ml10"/>
                    <div class="m-form-control f-ml15 essential">
                        <input type="text" id="inp_att" placeholder="请选择关注状态" class="required useTitle f-ml10" required-title="关注状态不能为空"  />
                    </div>
                    <br>
                    <div class="m-form-control f-ml15">
                    <input type="text" id="inp_att" placeholder="请选择关注状态" class="f-ml10"/>
                    <div class="m-form-control f-ml15 essential">
                        <input type="text" id="inp_signSource" placeholder="请选择签约来源" class="required useTitle f-ml10" required-title="签约来源不能为空" />
                    </div>
                    <br>
                    <div id="export_list" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
@ -37,6 +41,7 @@
                </div>
            </div>
        </div>
    </div>
        <div style="font-family:微软雅黑;font-size:Small;display:block;clear:left;padding:0;margin:0;margin-left: 5px">
            <div style="position:relative;display:inline;left:10px;top:8px;white-space:nowrap;text-align:center;background-color:#ffffff;font-weight:bold">社区微信关注率</div>

+ 25 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/static_wechat_js.jsp

@ -15,6 +15,7 @@
            // 通用工具类库
            var retrieve = null;
            var inpStarDate = null,inpEndDate = null;
            var jValidation = $.jValidation;
            retrieve = {
                url: {
@ -35,6 +36,7 @@
                $inpStatus:$('#inp_status'),//状态
                $inpStarDate: $('#inp_star_date'),
                $inpEndDate: $('#inp_end_date'),
                $signSource: $('#inp_signSource'),//签约来源
                dnc: null,
                ccc: null,
@ -72,6 +74,15 @@
                        valueField: 'statusId',
                    });
                    //签约来源拉框
                    retrieve.signSourceBox = $('#inp_signSource').ligerComboBox({
                        width: 150,
                        data: [
                            {text: '社区签约', id: '1'},
                            {text: '移动签约', id: '2'},
                        ],
                        initIsTriggerEvent: false,
                    });
                    this.bindEvents();
@ -154,6 +165,13 @@
                    }
                },
                bindEvents: function () {
                    var validator = new jValidation.Validation($("#we_export_div"), {
                        immediate: true, onSubmit: false,
                        onElementValidateForAjax: function (elm) {
                        }
                    });
                    var me = this;
                    //城市下拉
                    me.$inpDeviceName.on( 'change', function () {
@ -169,6 +187,9 @@
                    });
                    //关注量详情导出
                    me.$btnExportList.on('click',function () {
                        if (!validator.validate()) {
                            return;
                        }
                        //定义一个form表单
                        var myform = $("<form></form>");
                        myform.attr('method','post')
@ -186,10 +207,14 @@
                        var attention = $("<input type='hidden' name='attention' />")
                        attention.attr('value',$("#inp_att_val").val());
                        //签约来源
                        var signSource = $("<input type='hidden' name='signSource' />")
                        signSource.attr('value',$("#inp_signSource_val").val());
                        myform.append(town);
                        myform.append(hospital);
                        myform.append(attention);
                        myform.append(signSource);
                        myform.appendTo('body').submit(); //must add this line for higher html spec
                    });

+ 2 - 0
patient-co/patient-co-doctor-assistant/src/main/java/com/yihu/wlyy/web/common/qrcode/QrCodeController.java

@ -6,6 +6,7 @@ import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -345,6 +346,7 @@ public class QrCodeController extends WeixinBaseController {
        }
    }
    /**
     * 下载所有医生的二维码图片
     *

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/SurveyScreenResultDao.java

@ -15,8 +15,8 @@ public interface SurveyScreenResultDao extends PagingAndSortingRepository<Survey
    @Query("select surveyScreenResult from SurveyScreenResult surveyScreenResult where surveyScreenResult.code=?1")
    SurveyScreenResult getSurveyScreenResultByCode(String code);
    @Query(nativeQuery = true, value = "SELECT * FROM `wlyy_survey_screen_result` WHERE template_code=?1 ORDER BY czrq DESC LIMIT 1")
    List<SurveyScreenResult> findNewOneByTemplateCode(String templateCode);
    @Query(nativeQuery = true, value = "SELECT * FROM `wlyy_survey_screen_result` WHERE template_code=?1 and patient_code = ?2 and source=1 ORDER BY czrq DESC LIMIT 1")
    List<SurveyScreenResult> findNewOneByTemplateCode(String templateCode,String patientCode);
    @Query("select a from  SurveyScreenResult a where a.patientCode=?1 and a.templateCode=?2")
    List<SurveyScreenResult> getByPatientCodeAndTemplateCode(String patientCode,String templateCode);

+ 5 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -47,6 +47,7 @@ import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@ -1530,7 +1531,7 @@ public class SignWebService extends BaseService {
                    //发送短信
                    String mobile = (String) signFamily.get("mobile");
                    if (StringUtils.isNotBlank(mobile)) {
                        smsService.sendMsg(mobile, name + "您好!您的家庭医生将于6月30日到期,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                        smsService.sendMsg(mobile, name + "您好!您的家庭医生签约到期时间为"+ DateUtil.getNowYear()+"年6月30号,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                    }
                }
@ -1592,7 +1593,7 @@ public class SignWebService extends BaseService {
                "  wlyy_sign_family a " +
                " WHERE " +
                "  a.patient = t.patient " +
                " AND a.status>0  " +
                " AND a.status>=0  " +
                " AND a.sign_year = '" + DateUtil.getSignYear() + "' " +
                ")";
@ -1651,7 +1652,7 @@ public class SignWebService extends BaseService {
                    //发送短信
                    String mobile = (String) signFamily.get("mobile");
                    if (StringUtils.isNotBlank(mobile)) {
                        smsService.sendMsg(mobile, name + "您好!您的家庭医生将于6月30日到期,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                        smsService.sendMsg(mobile, name + "您好!您的家庭医生签约到期时间为"+ DateUtil.getNowYear()+"年6月30号,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                    }
                }
@ -2296,7 +2297,7 @@ public class SignWebService extends BaseService {
            //发送短信
            String mobile = p.getMobile();
            if (StringUtils.isNotBlank(mobile)) {
                smsService.sendMsg(mobile, name + "您好!您的家庭医生将于6月30日到期,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                smsService.sendMsg(mobile, name + "您好!您的家庭医生签约到期时间为"+ DateUtil.getNowYear()+"年6月30号,为了继续给您提供健康服务,请关注“厦门i健康”公众号,回复“续签”,进行家庭医生线上续签。");
                patientSetReminFlag(patientCode);
                return 2;
            }

+ 89 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/survey/SurveyScreenResultService.java

@ -181,7 +181,7 @@ public class SurveyScreenResultService extends BaseService {
        //查询该筛查的结果设置
        SurveyTemplateResult surveyTemplateResult = surveyTemplateResultDao.getByTemplateCodeAndLowScoreAndHighScore(surveyCode,totalScore);
        //更新上一条数据为不可再次评估
        List<SurveyScreenResult> surveyScreenResultList = surveyScreenResultDao.findNewOneByTemplateCode(surveyCode);
        List<SurveyScreenResult> surveyScreenResultList = surveyScreenResultDao.findNewOneByTemplateCode(surveyCode,patientCode);
        String lastCode = "";
        String originCode = "";
        if (surveyScreenResultList!=null && surveyScreenResultList.size()>0){
@ -251,7 +251,7 @@ public class SurveyScreenResultService extends BaseService {
            return json;
        }
        String idcard = String.valueOf(infoMap.get("idcard"));
        infoMap.put("sex",IdCardUtil.getSexForIdcard(idcard));
        infoMap.put("sex",IdCardUtil.getSexForIdcard_new(idcard));
        infoMap.put("age",IdCardUtil.getAgeForIdcard(idcard));
        String templateCode = String.valueOf(infoMap.get("template_code"));
        //String doctorCode = String.valueOf(infoMap.get("doctor"));
@ -415,8 +415,94 @@ public class SurveyScreenResultService extends BaseService {
        return  resultMap;
    }
    public int getAmountByDoctor(String json,String doctorCode) {
        return getCountByDoctor(json,doctorCode).size();
    }
    public List<String> getCountByDoctor(String json,String doctorCode) {
//        1.服务 2.健康 3疾病
        JSONObject jsonObject = new JSONObject(json);
        String sql = "";
        String sex = jsonObject.get("sex").toString();
        String str = "SELECT DISTINCT lb.patient FROM wlyy_sign_patient_label_info lb,(SELECT DISTINCT ff.patient FROM wlyy_sign_family_server s, " +
                " (SELECT f.`code`,f.patient FROM wlyy_sign_family f,wlyy_patient p WHERE p.CODE=f.patient and (f.doctor='"+doctorCode+"' OR  f.doctor_health='"+doctorCode+"')";
    public void getSpecialDoctorScreenList(String doctor,int type,int pageNo,int pageSize){
        if (!"0".equals(sex)) {
            str += " AND p.sex=  " + sex +
                    " AND f.STATUS>0 AND p.`openid` IS NOT NULL AND p.`openid`!='')ff WHERE ff.CODE=s.sign_code ";
        } else {
            str += " AND f.STATUS>0 AND p.`openid`IS NOT NULL AND p.`openid`!='')ff WHERE ff.CODE=s.sign_code ";
        }
        JSONArray service = jsonObject.getJSONArray("service");
        String ser = "";
        service:
        for (Object serv : service) {
            String type = serv.toString();
            switch (type) {
                case "0":
                    break service;
                default:
                    ser += " s.server_type= " + type;
                    break;
            }
            ser += " OR ";
        }
        if (StringUtils.isNotEmpty(ser)) {
            str += " AND ( " + ser.substring(0, ser.lastIndexOf("OR")) + " ) ";
        }
        str += " )tt WHERE lb.`status` = 1 AND lb.patient=tt.patient ";
        JSONArray healthCondition = jsonObject.getJSONArray("healthCondition");
        String healSql = "";
        String heal = "";
        health:
        for (Object health : healthCondition) {
            String type = health.toString();
            switch (type) {
                case "0":
                    break health;
                default:
                    heal += " lb.label= " + type;
                    break;
            }
            heal += " OR ";
        }
        if (StringUtils.isNotEmpty(heal)) {
            healSql = " (lb.label_type =2 AND ( " + heal.substring(0, heal.lastIndexOf("OR")) + " )  )";
        }
        JSONArray disease = jsonObject.getJSONArray("disease");
        String disSql = "";
        String dis = "";
        disea:
        for (Object disea : disease) {
            String type = disea.toString();
            switch (type) {
                case "0":
                    break disea;
                default:
                    dis += " lb.label= " + type;
                    break;
            }
            dis += " OR ";
        }
        if (StringUtils.isNotEmpty(dis)) {
            disSql= " (lb.label_type =3 AND ( " + dis.substring(0, dis.lastIndexOf("OR")) + " )  )";
        }
        if (StringUtils.isEmpty(heal) && StringUtils.isEmpty(dis)) {
            sql = str;
        } else if (StringUtils.isEmpty(heal) && StringUtils.isNotEmpty(dis)) {
            sql = str + " AND " +disSql;
        } else if (StringUtils.isNotEmpty(heal) && StringUtils.isEmpty(dis)) {
            sql = str + " AND " +healSql;
        } else if (StringUtils.isNotEmpty(heal) && StringUtils.isNotEmpty(dis)) {
            sql = str + " AND ( " + disSql +" OR " +healSql +" ) ";
        }
        System.out.println("=====query sql =======>>>>" + sql);
        List<String> patients = jdbcTemplate.queryForList(sql, String.class);
        return patients;
    }
}

+ 10 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/survey/ManagerQuestionnaireService.java

@ -10,6 +10,7 @@ import com.yihu.wlyy.repository.doctor.*;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.app.survey.SurveyScreenResultService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
@ -86,6 +87,8 @@ public class ManagerQuestionnaireService extends BaseService {
    private PushMsgTask pushMsgTask;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    @Autowired
    private SurveyScreenResultService surveyScreenResultService;
    private Logger logger = LoggerFactory.getLogger(this.getClass());
@ -97,6 +100,7 @@ public class ManagerQuestionnaireService extends BaseService {
        String surveyComment = jsonStr.getString("comment");
        String templateCode = null;
        String send = jsonStr.get("send").toString();
        String templateLabel = jsonStr.getString("label");
        int status = 1;
//        自主创建
        int useType = 1;
@ -238,7 +242,12 @@ public class ManagerQuestionnaireService extends BaseService {
        countJson.put("healthCondition", healthList);
        countJson.put("service", servList);
        List<String> codes = getCount(countJson.toString());
        int amount = codes.size();
        /*if (templateLabel.contains("5")){
            codes = surveyScreenResultService.getCountByDoctor(countJson.toString(),doctor);
        }else {
           codes = getCount(countJson.toString());
        };*/
       int amount = codes.size();
        for (String code : codes) {
//            String code = patient.get("patient").toString();
            SurveyUser user = new SurveyUser(surveyCode, code, 0, 1, new Date(), new Date());

+ 47 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/qrcode/QrCodeController.java

@ -7,6 +7,7 @@ import com.yihu.wlyy.service.common.QrcodeService;
import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -355,6 +356,52 @@ public class QrCodeController extends WeixinBaseController {
        }
    }
    /**
     * 根据场景值获取公众号永久二维码
     *
     * @param scene 场景值
     * @return 返回服务器二维码地址
     * @throws Exception
     */
    @RequestMapping(value = "/getQrcode_Img", method =  {RequestMethod.GET,RequestMethod.POST})
    @ApiOperation(value = "获取公众号二维码接口")
    public void getQrcodeImg(@ApiParam(name = "scene", defaultValue = "") @RequestParam(value = "scene", required = true) String scene,
                             HttpServletResponse response) throws Exception {
        try {
            // 二维码内容
            String content = "jkzl_" +scene;
            // 二维码图片文件名
            String fileName = "jkzl_"+scene;
            String path = QrCodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "")
                    + File.separator + "qrcode";
            // 通过微信接口生成医生二维码
            qrcodeService.makeQrcodeFromWeiXin(content, fileName.replaceAll("\r\n", ""), path, getAccessToken());
            String pathFile = request.getSession().getServletContext().getRealPath("/")
                    + File.separator + "qrcode" + File.separator + fileName.replaceAll("\r\n", "")+".png";
            InputStream inputStream = new FileInputStream(pathFile);
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition", "attachment;fileName=" + fileName.replaceAll("\r\n", "")+".png");
            OutputStream outputStream = response.getOutputStream();
            byte[] b = new byte[2048];
            int length = 0;
            while ((length = inputStream.read(b)) > 0) {
                outputStream.write(b, 0, length);
            }
            outputStream.flush();
            outputStream.close();
            inputStream.close();
        } catch (Exception e) {
            error(e);
        }
    }
    /**
     * 下载所有医生的二维码图片
     *

+ 23 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/survey/DoctorSurveyScreenResultController.java

@ -171,4 +171,27 @@ public class DoctorSurveyScreenResultController extends BaseController {
            return write(-1, "获取数据失败!");
        }
    }
    /**
     * 获取筛选条件数量
     *
     * @param json
     * @return
     */
    @RequestMapping(value = "getAmountByDoctor", method = RequestMethod.POST)
    @ApiOperation(value = "获取筛选条件数量(医生所签约)")
    @ResponseBody
    public String getAmountByDoctor(
            @ApiParam(value = "筛选条件",defaultValue = "{\"sex\":1,\"disease\":[2,5,6],\"healthCondition\":[0],\"service\":[1,3]}")
            @RequestParam String json) {
        try {
            int amount = surveyScreenResultService.getAmountByDoctor(json,getUID());
            return write(200, "查询成功!", "amount", amount);
        } catch (Exception e) {
            e.printStackTrace();
            return write(-1, "查询失败!");
        }
    }
}

+ 41 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/ylzpay/ThirdQrcodeController.java

@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * Created by Reece on 2017/8/30/030.
@ -54,4 +57,42 @@ public class ThirdQrcodeController extends WeixinBaseController {
        }
    }
    /**
     * 根据场景值获取公众号永久二维码
     *
     * @param scene 场景值
     * @return 返回服务器二维码地址
     * @throws Exception
     */
    @RequestMapping(value = "/getQrcodeImg", method = RequestMethod.POST)
    @ApiOperation(value = "获取公众号二维码接口")
    public void getQrcodeImg(@ApiParam(name = "scene", defaultValue = "") @RequestParam(value = "scene", required = true) String scene,
                             HttpServletResponse response) throws Exception {
        try {
            String content = "wechat_" + scene;
            String p = ThirdQrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "");
            // 通过微信接口生成医生二维码
            String result = qrcodeService.getQrcodeFromWeiXin(content, content.replaceAll("\r\n", ""), p, getAccessToken());
            String path = request.getSession().getServletContext().getRealPath("/")
                    + File.separator + "qrcode" + File.separator + content.replaceAll("\r\n", "") + ".png";
            InputStream inputStream = new FileInputStream(path);
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition", "attachment;fileName=" + content.replaceAll("\r\n", ""));
            OutputStream outputStream = response.getOutputStream();
            byte[] b = new byte[2048];
            int length = 0;
            while ((length = inputStream.read(b)) > 0) {
                outputStream.write(b, 0, length);
            }
            outputStream.flush();
            outputStream.close();
            inputStream.close();
        } catch (Exception e) {
            error(e);
        }
    }
}

+ 45 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/process/WeiXinEventProcess.java

@ -451,6 +451,17 @@ public class WeiXinEventProcess {
            setSpDisease(articles,keys[0],keys[1],systemConf);
            // 构建回复消息XMLs
            result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        }else if (StringUtils.isNotEmpty(eventKey) && (eventKey.startsWith("jkzl_")||eventKey.startsWith("qrscene_jkzl_"))){
            // 配置信息
            Properties systemConf = SystemConf.getInstance().getSystemProperties();
            // 图文信息
            List<Map<String, String>> articles = new ArrayList<>();
            // 二维码参数
//            String[] keys = eventKey.replace("qrscene_","").replace("sp_disease_", "").split("_");
            //设置图文消息
            setCurrency(articles,systemConf);
            // 构建回复消息XMLs
            result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        }else {
            // 配置信息
            Properties systemConf = SystemConf.getInstance().getSystemProperties();
@ -545,7 +556,7 @@ public class WeiXinEventProcess {
        picUrlConsult = picUrlConsult.replace("{server}", serverUrl);
        articleConsult.put("Url", urlConsult);
        articleConsult.put("Title", "把健康带回家,流动人口网上回访问卷赢电影票");
        articleConsult.put("Title", "新市民健康城市行,网上回访问卷赢电影票");
        articleConsult.put("Description", "数量有限,小伙伴们千万不要错过!");
        articleConsult.put("PicUrl", picUrlConsult);
@ -824,6 +835,17 @@ public class WeiXinEventProcess {
            setSpDisease(articles,keys[0],keys[1],systemConf);
            // 构建回复消息XMLs
            result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        }else if (StringUtils.isNotEmpty(eventKey) && (eventKey.startsWith("jkzl_")||eventKey.startsWith("qrscene_jkzl_"))){
            // 配置信息
            Properties systemConf = SystemConf.getInstance().getSystemProperties();
            // 图文信息
            List<Map<String, String>> articles = new ArrayList<>();
            // 二维码参数
//            String[] keys = eventKey.replace("qrscene_","").replace("sp_disease_", "").split("_");
            //设置图文消息
            setCurrency(articles,systemConf);
            // 构建回复消息XMLs
            result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        }
        return result;
@ -850,6 +872,28 @@ public class WeiXinEventProcess {
        articles.add(articleConsult);
    }
    public void setCurrency(List<Map<String, String>> articles,Properties systemConf){
        String url = systemDictDao.findByDictName("WX_CURRENCY_QR_PATH").get(0).getCode();
        String title = systemDictDao.findByDictName("WX_CURRENCY_QR_TITLE").get(0).getCode();
        String content = systemDictDao.findByDictName("WX_CURRENCY_QR_CONTENT").get(0).getCode();
        url = url.replace("{appId}", appId);
        logger.info("setCurrency:"+url);
        // 图文消息图片URL
        String picUrlConsult = systemConf.getProperty("currency_url");
        picUrlConsult = picUrlConsult.replace("{server}", serverUrl);
        Map<String, String> articleConsult = new HashMap<>();
        articleConsult.put("Url", url);
        articleConsult.put("Title", title);
        articleConsult.put("Description", content);
        articleConsult.put("PicUrl", picUrlConsult);
        logger.info("setCurrency:"+url+"_"+picUrlConsult+"_"+content+"_"+title);
        articles.add(articleConsult);
    }
    /**
     * 构建单个图文消息工具类
     *

+ 1 - 1
patient-co/patient-co-wlyy/src/main/resources/application-devtest.yml

@ -36,7 +36,7 @@ im:
#专病配置
specialist:
  #url: http://172.19.103.33:9797/svr-wlyy-specialist
  url: http://localhost:10051/svr-wlyy-specialist
  url: http://localhost:8070/
#物联网配置
iot:
#  url: http://192.168.131.24:8088/svr-iot/

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

@ -38,6 +38,8 @@ patient_wifi_pic_url = {server}/images/wifi.png
patient_draw_pic_url = {server}/images/banner01.png
#专科医生签约图片地址
specialist_sign_url = {server}/images/SpBanner.png
#通用活动图片地址
currency_url = {server}/images/currency.png
#居民wifi链接
patient_wifi_url =http://freewifi.mobcb.com/Portal/Wx/login
#就诊记录

+ 5 - 0
patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu.txt

@ -3,6 +3,11 @@
   {
	  "name":"家庭医生",
	  "sub_button":[
	      {
            "type":"view",
           	"name":"健康评估",
           	"url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=appId&redirect_uri=server_url%2fwx%2fhtml%2fjkpg%2fhtml%2fjkpg.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
          },
		  {
			"type":"view",
			"name":"签约管理",

+ 5 - 0
patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu_haicang.txt

@ -3,6 +3,11 @@
   {
	  "name":"家庭医生",
	  "sub_button":[
	      {
            "type":"view",
            "name":"健康评估",
            "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=appId&redirect_uri=server_url%2fwx%2fhtml%2fjkpg%2fhtml%2fjkpg.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
          },
		  {
			"type":"view",
			"name":"签约管理",

+ 5 - 0
patient-co/patient-co-wlyy/src/main/resources/wechat/weixin_menu_jimei.txt

@ -3,6 +3,11 @@
   {
	  "name":"家庭医生",
	  "sub_button":[
	      {
            "type":"view",
            "name":"健康评估",
            "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=appId&redirect_uri=server_url%2fwx%2fhtml%2fjkpg%2fhtml%2fjkpg.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
          },
		  {
			"type":"view",
			"name":"签约管理",

BIN
patient-co/patient-co-wlyy/src/main/webapp/images/currency.png