Przeglądaj źródła

取药码模块修改

liuwenbin 7 lat temu
rodzic
commit
b2b0a8c2be

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/prescription/PrescriptionDispensaryCodeDao.java

@ -26,4 +26,6 @@ public interface PrescriptionDispensaryCodeDao extends PagingAndSortingRepositor
//    @Query("select p1 from PrescriptionInfo p1 left join Prescription p2 on p1.prescriptionCode=p2.code where p1.prescriptionCode = ?1")
//    List<PrescriptionInfo> getPrescriptionInfo(String prescriptionCode);
    PrescriptionDispensaryCode findByCodeAndIsUse(String code,Integer isUse);
}

+ 8 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/account/DoctorInfoService.java

@ -122,8 +122,8 @@ public class DoctorInfoService extends BaseService {
    private PrescriptionDao prescriptionDao;
    //基卫服务地址
    @Value("${sign.check_upload}")
    private String jwUrl;//="http://192.168.131.105:8011";
//    @Value("${sign.check_upload}")
    private String jwUrl="http://192.168.131.131:8089";
    @Autowired
    private HttpClientUtil HttpClientUtil;
@ -1432,7 +1432,8 @@ public class DoctorInfoService extends BaseService {
                }else{
                    if("0".equals(data)){
                        Doctor doctor = findDoctorByCode(doctorCode);
                        doctor.setIscertified(1);
                        doctor.setCheckPassword(strNewCalledPasswd);//保存密码,以便忘记密码时候使用
                        doctor.setIscertified(1);//说明已经(线上认证,已修改密码)
                        doctorDao.save(doctor);
                        return true;
                    }
@ -1461,8 +1462,8 @@ public class DoctorInfoService extends BaseService {
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("strUserIdcardNum",strUserIdcardNum));
        params.add(new BasicNameValuePair("strRealNameSoftCertCalledPasswd",strRealNameSoftCertCalledPasswd));
        params.add(new BasicNameValuePair("strOriginalData",MD5.GetMD5Code(strOriginalData)));
        String originalDataAbstract = MD5.GetMD5Code(strOriginalData);
        params.add(new BasicNameValuePair("strOriginalData",originalDataAbstract));
//        params.add(new BasicNameValuePair("srcBusinessStreamNO",srcBusinessStreamNO));
        String response = HttpClientUtil.post(url, params, "UTF-8");
        if (!StringUtils.isEmpty(response)){
@ -1484,6 +1485,8 @@ public class DoctorInfoService extends BaseService {
                    Prescription prescription = prescriptionDao.findByCode(prescriptionCode);
                    prescription.setCaMessage(str[0]);
                    prescription.setCaCertData(str[1]);
                    prescription.setDigitalSignNo(str[2]);
                    prescription.setOriginalDataAbstract(originalDataAbstract);
                    prescriptionDao.save(prescription);
//                    String srcBusinessStreamNO = str[2];//CA 数字签名唯一流水号
//                    return verifySignOnMultiServer(str[0],str[1],strOriginalData);

+ 26 - 9
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionDispensaryCodeService.java

@ -119,21 +119,21 @@ public class PrescriptionDispensaryCodeService extends BaseService {
        Calendar cal  = Calendar.getInstance();
        String year = String.valueOf(cal.get(Calendar.YEAR));
        int temp = cal.get(Calendar.MONTH)+1;
        String month = cal.get(Calendar.MONTH)+1<10?"0"+temp:""+temp;
        String day = ""+cal.get(Calendar.DAY_OF_MONTH);
        String ymd = year+month+day;
//        String month = cal.get(Calendar.MONTH)+1<10?"0"+temp:""+temp;
//        String day = ""+cal.get(Calendar.DAY_OF_MONTH);
//        String ymd = year+month+day;
        // 二维码内容
        String code = "";
        synchronized (obj){
            boolean bl = true;
            while (bl){
                String randomNum = randomString("0123456789",6);
                code = ymd +randomNum;
                code = randomString("0123456789",8);
                bl = getResidentQRCodeCount(code);
            }
        }
        // 生成二维码
        InputStream ipt = QrcodeUtil.createQrcode(Base64.encode(code.getBytes()),300,"png");
//        InputStream ipt = QrcodeUtil.createQrcode(Base64.encode(code.getBytes()),300,"png");
        InputStream ipt = QrcodeUtil.createQrcode(code,300,"png");
        ObjectNode imgNode = FastDFSUtil.upload(ipt,"png","QRCode_"+System.currentTimeMillis());
//        Prescription类  取药类型:1 自取 2快递配送 3健管师配送
        String fileUrl = fastdfs_file_url + imgNode.get("groupName").toString().replaceAll("\"","")
@ -146,6 +146,7 @@ public class PrescriptionDispensaryCodeService extends BaseService {
        prescriptionDispensaryCode.setImgUrl(fileUrl);
        prescriptionDispensaryCode.setPrescriptionCode(prescriptionCode);
        prescriptionDispensaryCode.setType(1);
        prescriptionDispensaryCode.setIsUse(0);
        return prescriptionDispensaryCodeDao.save(prescriptionDispensaryCode);
    }
@ -164,7 +165,8 @@ public class PrescriptionDispensaryCodeService extends BaseService {
        //String jgsID= "";//配送员用户ID后4位
//        String jgsCode = code+"1234";//code+jgsID.substring(jgsID.length()-4);
        // 生成二维码
        InputStream ipt = QrcodeUtil.createQrcode(Base64.encode(jgsCode.getBytes()),300,"png");
//        InputStream ipt = QrcodeUtil.createQrcode(Base64.encode(jgsCode.getBytes()),300,"png");
        InputStream ipt = QrcodeUtil.createQrcode(jgsCode,300,"png");
        ObjectNode imgNode = FastDFSUtil.upload(ipt,"png","QRCode_"+System.currentTimeMillis());
//        Prescription类  取药类型:1 自取 2快递配送 3健管师配送
        String fileUrl = fastdfs_file_url + imgNode.get("groupName").toString().replaceAll("\"","")
@ -176,6 +178,7 @@ public class PrescriptionDispensaryCodeService extends BaseService {
        prescriptionDispensaryCode.setImgUrl(fileUrl);
        prescriptionDispensaryCode.setPrescriptionCode(prescriptionCode);
        prescriptionDispensaryCode.setType(type);
        prescriptionDispensaryCode.setIsUse(0);
        return prescriptionDispensaryCodeDao.save(prescriptionDispensaryCode);
    }
@ -192,12 +195,26 @@ public class PrescriptionDispensaryCodeService extends BaseService {
        return sb.toString();
    }
    public Map<String, Object> getQrcode(String dispensaryCode ,String patientCode ,Integer type){
    public Map<String, Object> getQrcode(String prescriptionCode ,String patientCode ,Integer type){
        String sql = "select  p2.is_use as isUse,p2.code as dispensaryCode,p2.img_url,p3.hospital_name as hospitalName  from wlyy_prescription_dispensary_code p2 " +
                " left join  wlyy_prescription p1 on p2.prescription_code=p1.code LEFT JOIN wlyy_prescription_expressage p3 on p1.code=p3.prescription_code " +
                " where p2.prescription_code=? and p1.patient=? and p2.type=?  and p2.is_Use=0 ";
        Map<String, Object> result = jdbcTemplate.queryForMap(sql,dispensaryCode,patientCode,type);
        Map<String, Object> result = jdbcTemplate.queryForMap(sql,prescriptionCode,patientCode,type);
        return result;
    }
    @Transactional
    public PrescriptionDispensaryCode scanQrcode(String code) throws Exception{
        PrescriptionDispensaryCode prescriptionDispensaryCode = prescriptionDispensaryCodeDao.findByCodeAndIsUse(code,0);
        if(prescriptionDispensaryCode!=null){
            prescriptionDispensaryCode.setIsUse(1);
            prescriptionDispensaryCodeDao.save(prescriptionDispensaryCode);
        }else{
            throw new Exception("二维码输入错误或者已过期!");
        }
        return prescriptionDispensaryCode;
    }
}

+ 48 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/account/DoctorController.java

@ -1872,7 +1872,7 @@ public class DoctorController extends BaseController {
    public String isAuthentication(){
        try {
            //0de6a26a62dd11e69faffa163e8aee56
            JSONObject data = doctorInfoService.isAuthentication(getRepUID());
            JSONObject data = doctorInfoService.isAuthentication("0de6a26a62dd11e69faffa163e8aee56");
            return write(200, "获取信息成功!", "data", data);
        }catch (Exception e) {
            error(e);
@ -1889,8 +1889,8 @@ public class DoctorController extends BaseController {
            @RequestParam(value = "strOldCalledPasswd",required = true) String strOldCalledPasswd,
            @RequestParam(value = "strNewCalledPasswd",required = true) String strNewCalledPasswd){
        try {
            Doctor doctor = doctorInfoService.findDoctorByCode(getRepUID());
            boolean b = doctorInfoService.updateAuthenticationPassword(doctor.getIdcard(),strOldCalledPasswd,strNewCalledPasswd,getRepUID());
            Doctor doctor = doctorInfoService.findDoctorByCode("0de6a26a62dd11e69faffa163e8aee56");
            boolean b = doctorInfoService.updateAuthenticationPassword(doctor.getIdcard(),strOldCalledPasswd,strNewCalledPasswd,"0de6a26a62dd11e69faffa163e8aee56");
            if(b){
                return write(200, "修改密码成功!", "data", b);
            }
@ -1901,6 +1901,50 @@ public class DoctorController extends BaseController {
        }
    }
    /**
     * 重置密码
     */
    @ApiOperation("初始设置实名软证书调用保护口令")
    @ObserverRequired
    @ResponseBody
    @RequestMapping(value = "/installAuthenticationPassword", method = RequestMethod.POST)
    public String installAuthenticationPassword(@RequestParam(value = "strNewCalledPasswd",required = true) String strNewCalledPasswd){
        try {
            Doctor doctor = doctorInfoService.findDoctorByCode("0de6a26a62dd11e69faffa163e8aee56");
            boolean b = doctorInfoService.updateAuthenticationPassword(doctor.getIdcard(),"11111111",strNewCalledPasswd,"0de6a26a62dd11e69faffa163e8aee56");
            if(b){
                return write(200, "设置密码成功!", "data", b);
            }
            return error(-1, "设置密码失败!");
        }catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
    /**
     * 重置密码
     */
    @ApiOperation("重置实名软证书调用保护口令")
    @ObserverRequired
    @ResponseBody
    @RequestMapping(value = "/resetAuthenticationPassword", method = RequestMethod.POST)
    public String resetAuthenticationPassword(@RequestParam(value = "strNewCalledPasswd",required = true) String strNewCalledPasswd){
        try {
            Doctor doctor = doctorInfoService.findDoctorByCode("0de6a26a62dd11e69faffa163e8aee56");
            boolean b = doctorInfoService.updateAuthenticationPassword(doctor.getIdcard(),doctor.getCheckPassword(),strNewCalledPasswd,"0de6a26a62dd11e69faffa163e8aee56");
            if(b){
                return write(200, "重置密码成功!", "data", b);
            }
            return error(-1, "重置密码失败!");
        }catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
    /**
     * 请求实名软证书并进行数字签名
     */
@ -1937,7 +1981,7 @@ public class DoctorController extends BaseController {
    public String checkCertificate(@RequestParam(value = "certificateNum",required = true) String certificateNum){
        try {
            boolean b = doctorInfoService.checkCertificate(getRepUID(),certificateNum);
            boolean b = doctorInfoService.checkCertificate("0de6a26a62dd11e69faffa163e8aee56",certificateNum);
            return write(200, "获取信息成功!", "data", b);
        }catch (Exception e) {
            error(e);

+ 8 - 8
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionCodeController.java

@ -113,17 +113,17 @@ public class PrescriptionCodeController extends BaseController{
    /**
     * 医生端获取取药码
     *
     * @param dispensaryCode
     * @param prescriptionCode
     * @return
     */
    @RequestMapping(value = "/dispensaryCode/getDoctorDispensaryQrcode", method = RequestMethod.GET)
    @ObserverRequired
    @ApiOperation("医生端获取取药码")
    public String getDoctorDispensaryQrcode(@RequestParam(value = "dispensaryCode", required = true) String dispensaryCode) {
    public String getDoctorDispensaryQrcode(@RequestParam(value = "prescriptionCode", required = true) String prescriptionCode) {
        try{
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(dispensaryCode,getRepUID(),2);
            map.put("code", Base64.encode(map.get("code").toString().getBytes()));
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(prescriptionCode,getRepUID(),2);
//            map.put("code", Base64.encode(map.get("code").toString().getBytes()));
            return write(200, "获取配送员取药码成功!", "data", map);
        } catch (Exception e) {
            error(e);
@ -134,17 +134,17 @@ public class PrescriptionCodeController extends BaseController{
    /**
     * 医生端获取配送码
     *
     * @param dispensaryCode
     * @param prescriptionCode
     * @return
     */
    @RequestMapping(value = "/dispensaryCode/getDoctorDeliveryQrcode", method = RequestMethod.GET)
    @ObserverRequired
    @ApiOperation("医生端获取配送码")
    public String getDoctorDeliveryQrcode(@RequestParam(value = "dispensaryCode", required = true) String dispensaryCode) {
    public String getDoctorDeliveryQrcode(@RequestParam(value = "prescriptionCode", required = true) String prescriptionCode) {
        try{
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(dispensaryCode,getRepUID(),3);
            map.put("code",Base64.encode(map.get("code").toString().getBytes()));
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(prescriptionCode,getRepUID(),3);
//            map.put("code",Base64.encode(map.get("code").toString().getBytes()));
            return write(200, "获取配送员配送码成功!", "data", map);
        } catch (Exception e) {
            error(e);

+ 25 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prescription/PatientPrescriptionController.java

@ -54,7 +54,7 @@ public class PatientPrescriptionController extends WeixinBaseController {
    @ObserverRequired
    public String saveQRCode(
            //@RequestParam(value = "dispensaryType",required = true) Integer dispensaryType,
            @RequestParam(value = "prescriptionCode",required = true) String prescriptionCode){
            @ApiParam(required = true ,name = "prescriptionCode",value = "处方code")@RequestParam(value = "prescriptionCode",required = true) String prescriptionCode){
//        String token = getAccessToken();
        try {
@ -122,15 +122,15 @@ public class PatientPrescriptionController extends WeixinBaseController {
    /**
     * 居民端获取取药码
     * @param dispensaryCode
     * @param prescriptionCode
     * @return
     */
    @RequestMapping(value = "/dispensaryCode/getPatientQrcode", method = RequestMethod.GET)
    public String getPatientQrcode(@RequestParam(value = "dispensaryCode",required = true) String dispensaryCode) {
    public String getPatientQrcode(@RequestParam(value = "prescriptionCode",required = true) String prescriptionCode) {
        try{
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(dispensaryCode,getRepUID(),1);
            map.put("code",Base64.encode(map.get("code").toString().getBytes()));
            Map<String, Object> map = prescriptionDispensaryCodeService.getQrcode(prescriptionCode,getRepUID(),1);
//            map.put("code",Base64.encode(map.get("code").toString().getBytes()));
            return write(200, "获取居民取药码成功!", "data", map);
        }catch (Exception e) {
            error(e);
@ -166,6 +166,24 @@ public class PatientPrescriptionController extends WeixinBaseController {
        }
    }
    /**
     * 扫码
     * @param code
     * @return
     */
    @RequestMapping(value = "/dispensaryCode/scanQrcode",method = RequestMethod.GET)
    @ResponseBody
    public String scanQrcode(
            @RequestParam(value = "code",required = true) String code){
        try {
            PrescriptionDispensaryCode prescriptionDispensaryCode = prescriptionDispensaryCodeService.scanQrcode(code);
            return write(200, "扫码成功!", "data", prescriptionDispensaryCode);
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());
        }
    }
    /**
     * 判断该居民是否有待取的药的接口
     * @return
@ -225,4 +243,6 @@ public class PatientPrescriptionController extends WeixinBaseController {
        }
    }
}