Shi Kejing пре 3 година
родитељ
комит
7897ec5eef

+ 15 - 1
common/common-entity/sql记录

@ -1294,4 +1294,18 @@ CREATE TABLE base_patient_out_bed (
  `status` varchar(50) DEFAULT NULL COMMENT '在床状态0离床1在床',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建日期 即起床时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='患者离床时间';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='患者离床时间';
-- 20210819 skj 导入居民签约数据 (未执行)
CREATE TABLE `base_patient_add` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `idcard` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '身份证号',
  `mobile` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `doc_mobile` varchar(50) NOT NULL COMMENT '医生手机号',
  `start` varchar(255) DEFAULT NULL COMMENT '签约开始时间',
  `end` varchar(255) DEFAULT NULL COMMENT '签约结束时间',
  `service_package` varchar(255) DEFAULT NULL COMMENT '服务包',
  `team_code` varchar(255) DEFAULT NULL COMMENT '签约团队code',
  `del` int(1) DEFAULT '1' COMMENT '1有效  0失效',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -48,6 +48,17 @@ public class SignEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ServicePackageService servicePackageService;
    @PostMapping(value = "addPatientSignList")
    @ApiOperation(value = "添加签约数据")
    public Envelop addPatientSignList () throws Exception {
        try{
            servicePackageService.addPatientSignList();
            return success("添加成功");
        }catch (Exception e){
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "findSignOrg")
    @ApiOperation(value = "查找签约机构")
    public ListEnvelop findSignOrg (

+ 81 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -36,6 +36,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -82,6 +83,86 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    @Autowired
    private DictService dictService;
    public void addPatientSignList(){
        String lableCode = "0";
        //根据idcard/mobile导入居民信息
        String sql = "SELECT p.idcard,p.id,p.`name`,d.id AS doctor,d.name AS doctorName,pa.start,pa.end,pa.service_package AS servicePackage,pa.team_code AS teamCode FROM base_patient_add pa,base_patient p,base_doctor d WHERE d.mobile = pa.mobile AND d.del = 1 AND pa.del = 1 AND p.del =1 AND p.idcard = pa.idcard OR p.mobile = pa.mobile group by p.id ";
        List<Map<String , Object>> mapList = jdbcTemplate.queryForList(sql);
        ServicePackageSignRecordDO signRecordDO = new ServicePackageSignRecordDO();
        String patientId = "";
        String patientName = "";
        String doctorId = "";
        String doctorName = "";
        String idcard = "";
        String signId = "";
        for (int i=0;i<mapList.size();i++){
            try {
                patientId = (String) mapList.get(i).get("id");
                patientName = (String) mapList.get(i).get("name");
                doctorId = (String) mapList.get(i).get("doctor");
                doctorName = (String) mapList.get(i).get("doctorName");
                idcard = (String) mapList.get(i).get("idcard");
                List<ServicePackageSignRecordDO> signRecordDOs = servicePackageSignRecordDao.findByStatusAndPatient(1,patientId);
                if (signRecordDOs.size() == 0) {
                    signRecordDO.setPatient(patientId);
                    signRecordDO.setName(patientName);
                    signRecordDO.setSignDoctor(doctorId);
                    signRecordDO.setSignDoctorName(doctorName);
                    if (StringUtils.isNotBlank((String) mapList.get(i).get("start"))){
                        signRecordDO.setStartTime((Date) mapList.get(i).get("start"));
                    }else {
                        signRecordDO.setStartTime(new Date());
                    }
                    if (StringUtils.isNotBlank((String) mapList.get(i).get("end"))){
                        signRecordDO.setEndTime((Date) mapList.get(i).get("end"));
                    }else {
                        signRecordDO.setEndTime(new Date(System.currentTimeMillis() + 365*24*60*60*1000));
                    }
                    signRecordDO.setStatus(1);
                    servicePackageSignRecordDao.save(signRecordDO);
                    ServicePackageRecordDO packageRecordDO = new ServicePackageRecordDO();
                    packageRecordDO.setPatient(patientId);
                    packageRecordDO.setCreateTime(new Date());
                    packageRecordDO.setSignId(signRecordDO.getId());
                    packageRecordDO.setServicePackageId((String) mapList.get(i).get("servicePackage"));
                    packageRecordDO.setTeamCode((String) mapList.get(i).get("teamCode"));
                    servicePackageRecordDao.save(packageRecordDO);
                    //建档状态
                    ArchiveDO archiveDO = new ArchiveDO();
                    archiveDO.setCreateTime(new Date());
                    archiveDO.setArchiveOperatorName(doctorName);
                    archiveDO.setPatient(patientId);
                    archiveDO.setSickName(patientName);
                    archiveDO.setIdcard(idcard);
                    archiveDO.setSignStatus(1);
                    archiveDao.save(archiveDO);
                    //居民标签
                    WlyyPatientLabelDO patientLabelDO = new WlyyPatientLabelDO();
                    patientLabelDO.setCzrq(new Date());
                    patientLabelDO.setLabelType("1");
                    patientLabelDO.setPatient((String) mapList.get(i).get("patient"));
                    patientLabelDO.setLabelCode(lableCode);
                    patientLabelDO.setLabelName(dictService.fingByNameAndCode(ConstantUtil.DICT_SERVICE_TYPE,lableCode));
                    patientLabelDao.save(patientLabelDO);
                }else {
                    logger.info("居民已签约,patient:"+patientId);
                }
            }catch (Exception e){
                logger.info(e.getMessage());
            }
        }
    }
    /**
     * 查找签约机构
     * @param patient