|  | @@ -38,6 +38,7 @@ import thyyxxk.webserver.entity.querydata.SiSetlinfoTemp;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.entity.querydata.TAutoUploadBill;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.service.PublicServer;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.service.casefrontsheet.CaseFrontSheetMainService;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.service.casefrontsheet.VerifyCaseFrontSheet;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.service.redislike.RedisLikeService;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.service.wxapi.SendWxInfoService;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.utils.*;
 | 
	
	
		
			
				|  | @@ -112,7 +113,7 @@ public class SetlListUpldService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          SetlinfoUpld temp = upldCollection.getData().getSetlinfo();
 | 
	
		
			
				|  |  | -        if (!patNo.contains("-")){
 | 
	
		
			
				|  |  | +        if (!patNo.contains("-")) {
 | 
	
		
			
				|  |  |              if (StringUtil.isBlank(temp.getChfpdrCode())) {
 | 
	
		
			
				|  |  |                  errorMessage.append("主诊医师编码为空。");
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -233,14 +234,17 @@ public class SetlListUpldService {
 | 
	
		
			
				|  |  |          setlinfoUpld.setMedinsFillPsn(getDropdownBox.getName());
 | 
	
		
			
				|  |  |          // 医疗机构填报部门
 | 
	
		
			
				|  |  |          setlinfoUpld.setMedinsFillDept(getDropdownBox.getDeptName());
 | 
	
		
			
				|  |  | -        // 医保机构经办人
 | 
	
		
			
				|  |  | +        // 手术
 | 
	
		
			
				|  |  |          List<OprninfoUpld> oprninfoUpld = dao.oprninfoUplds(patNo, times, flag == 1 ? "batj_ba4_modify" : "batj_ba4");
 | 
	
		
			
				|  |  | -        // 手术计数
 | 
	
		
			
				|  |  | -        setlinfoUpld.setOprnOprtCodeCnt(String.valueOf(oprninfoUpld.size()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for (int i = 0; i < oprninfoUpld.size(); i++) {
 | 
	
		
			
				|  |  | -            // 手术操作类别
 | 
	
		
			
				|  |  | -            oprninfoUpld.get(i).setOprnOprtType(i == 0 ? "1" : "2");
 | 
	
		
			
				|  |  | +        if (ListUtil.notBlank(oprninfoUpld)) {
 | 
	
		
			
				|  |  | +            // 手术计数
 | 
	
		
			
				|  |  | +            setlinfoUpld.setOprnOprtCodeCnt(String.valueOf(oprninfoUpld.size()));
 | 
	
		
			
				|  |  | +            for (int i = 0; i < oprninfoUpld.size(); i++) {
 | 
	
		
			
				|  |  | +                // 手术操作类别
 | 
	
		
			
				|  |  | +                oprninfoUpld.get(i).setOprnOprtType(i == 0 ? "1" : "2");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 离院方式 我们是从 0 开始的所以要加 1
 | 
	
	
		
			
				|  | @@ -300,13 +304,17 @@ public class SetlListUpldService {
 | 
	
		
			
				|  |  |          // 重症监护时间
 | 
	
		
			
				|  |  |          List<IcuinfoUpld> zhongZhenJianHu = getIcuinfoUplds(patNo, times);
 | 
	
		
			
				|  |  |          List<PayinfoUpld> payinfo = dao.payinfoUpld(patNo, times, ledgerSn);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        // 诊断
 | 
	
		
			
				|  |  |          List<DiseinfoUpld> diseinfos = dao.diseinfo(patNo, times, flag == 1 ? "zy_dis_diag_yb_modify" : "zy_dis_diag_yb");
 | 
	
		
			
				|  |  | -        setlinfoUpld.setDiagCodeCnt(String.valueOf(diseinfos.size()));
 | 
	
		
			
				|  |  | +        if (ListUtil.notBlank(diseinfos)) {
 | 
	
		
			
				|  |  | +            setlinfoUpld.setDiagCodeCnt(String.valueOf(diseinfos.size()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for (int i = 0; i < diseinfos.size(); i++) {
 | 
	
		
			
				|  |  | -            diseinfos.get(i).setMaindiagFlag(i == 0 ? "1" : "0");
 | 
	
		
			
				|  |  | +            for (int i = 0; i < diseinfos.size(); i++) {
 | 
	
		
			
				|  |  | +                diseinfos.get(i).setMaindiagFlag(i == 0 ? "1" : "0");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          // 新生儿入院类型写死为1
 | 
	
		
			
				|  |  |          if (StringUtil.notBlank(setlinfoUpld.getNwbBirWt())) {
 | 
	
		
			
				|  |  |              setlinfoUpld.setNwbAdmType("1");
 | 
	
	
		
			
				|  | @@ -1037,27 +1045,36 @@ public class SetlListUpldService {
 | 
	
		
			
				|  |  |              item.setZycs(param.getAdmissTimes());
 | 
	
		
			
				|  |  |              if (!item.getNewData()) {
 | 
	
		
			
				|  |  |                  if (item.getSsrq() == null) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术日期不能为空。");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术日期不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (StringUtil.isBlank(item.getSsys())) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术医生不能为空");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术医生不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (StringUtil.isBlank(item.getSsmc())) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术名称不能为空");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术名称不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (StringUtil.isBlank(item.getSsjb())) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术级别不能为空");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术级别不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (StringUtil.isBlank(item.getSsbm())) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术编码不能为空");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术编码不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  if (StringUtil.isBlank(item.getQkjb()) || StringUtil.isBlank(item.getYhqk())) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "切口愈合等级不能为空");
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,切口愈合等级不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (StringUtil.notBlank(item.getMzys())) {
 | 
	
		
			
				|  |  | +                    if (item.getAnstStartDate() == null) {
 | 
	
		
			
				|  |  | +                        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,麻醉时间不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                List<String> a = VerifyCaseFrontSheet.logicalSurgeryTime(item.getOpStartDate(), item.getOpEndDate(), item.getAnstStartDate(), item.getAnstEndDate());
 | 
	
		
			
				|  |  | +                if (ListUtil.notBlank(a)) {
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,%s", item.getSsmc(), a));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  try {
 | 
	
		
			
				|  |  |                      PublicServer.surgeryTimeLimit(item.getOpStartDate(), item.getOpEndDate(), item.getAnstStartDate(), item.getAnstEndDate());
 | 
	
		
			
				|  |  |                  } catch (BizException e) {
 | 
	
		
			
				|  |  | -                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术名称:【" + item.getSsmc() + "】" + e.getMessage());
 | 
	
		
			
				|  |  | +                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("手术:【%s】,手术日期不能为空", item.getSsmc()));
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -1201,6 +1218,15 @@ public class SetlListUpldService {
 | 
	
		
			
				|  |  |          return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, result.getString(ERROR_MESSAGE));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 门诊患者结算单信息
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param patNo    门诊号
 | 
	
		
			
				|  |  | +     * @param times    次数
 | 
	
		
			
				|  |  | +     * @param ledgerSn 账页号
 | 
	
		
			
				|  |  | +     * @return 返回门诊
 | 
	
		
			
				|  |  | +     * @throws Exception
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      public ResultVo<UpldCollection> outpatInformation(String patNo, Integer times, Integer ledgerSn) throws
 | 
	
		
			
				|  |  |              Exception {
 | 
	
		
			
				|  |  |          UpldCollection upldCollection = new UpldCollection();
 |