|  | @ -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
 |