Commit 33f82d89e2d5df1e2f4ec25bd1d1549fdec17cf9

Authored by zhangchao
1 parent b9cd9b392b
Exists in luanping and in 1 other branch dev

#新增南和服务开通同步功能

Showing 8 changed files with 165 additions and 6 deletions

platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/PatientServiceMapper.java View file @ 33f82d8
... ... @@ -11,6 +11,7 @@
11 11  
12 12 public interface PatientServiceMapper {
13 13 public void addPatientService(PatientService obj);
  14 + void addPatientServiceAll(@Param("serviceList") List<PatientService> serviceList);
14 15  
15 16 public void updatePatientService(PatientService obj);
16 17  
... ... @@ -30,6 +31,8 @@
30 31 */
31 32 List<Map> selectOnlyBzService(PatientServiceQuery query);
32 33  
  34 +
  35 + List<Map<String,String>> selectServiceByHospital(@Param("hospitalId") String hospitalId);
33 36  
34 37 int selectOnlyBzServiceCount(PatientServiceQuery query);
35 38  
platform-biz-service/src/main/java/com/lyms/platform/permission/service/PatientServiceService.java View file @ 33f82d8
... ... @@ -3,13 +3,14 @@
3 3 import com.lyms.platform.permission.model.PatientService;
4 4 import com.lyms.platform.permission.model.PatientServiceQuery;
5 5 import com.lyms.platform.permission.model.ServiceListQuery;
  6 +import org.apache.ibatis.annotations.Param;
6 7  
7 8 import java.util.List;
8 9 import java.util.Map;
9 10  
10 11 public interface PatientServiceService {
11 12 public void addPatientService(PatientService obj);
12   -
  13 + void addPatientServiceAll(List<PatientService> serviceList);
13 14 public void updatePatientService(PatientService obj);
14 15  
15 16 public void deletePatientService(String id);
... ... @@ -32,7 +33,7 @@
32 33 List<Map<String, Object>> getServeDetailList(ServiceListQuery param);
33 34  
34 35 List<String> getHospitalIds(ServiceListQuery param, List<String> ids);
35   -
  36 + List<Map<String,String>> selectServiceByHospital(@Param("hospitalId") String hospitalId);
36 37 /**
37 38 * 查询病人服务list
38 39 *
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/PatientServiceServiceImpl.java View file @ 33f82d8
... ... @@ -7,11 +7,13 @@
7 7 import com.lyms.platform.permission.service.PatientServiceService;
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
10 11  
11 12 import java.util.List;
12 13 import java.util.Map;
13 14  
14 15 @Service
  16 +@Transactional
15 17 public class PatientServiceServiceImpl implements PatientServiceService {
16 18  
17 19 @Autowired
... ... @@ -23,6 +25,11 @@
23 25 }
24 26  
25 27 @Override
  28 + public void addPatientServiceAll(List<PatientService> serviceList) {
  29 + patientServiceMapper.addPatientServiceAll(serviceList);
  30 + }
  31 +
  32 + @Override
26 33 public void updatePatientService(PatientService obj) {
27 34 patientServiceMapper.updatePatientService(obj);
28 35 }
... ... @@ -84,6 +91,11 @@
84 91 @Override
85 92 public List<String> getHospitalIds(ServiceListQuery param, List<String> hospitalIds) {
86 93 return patientServiceMapper.getHospitalIds(param, hospitalIds);
  94 + }
  95 +
  96 + @Override
  97 + public List<Map<String, String>> selectServiceByHospital(String hospitalId) {
  98 + return patientServiceMapper.selectServiceByHospital(hospitalId);
87 99 }
88 100  
89 101 /**
platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml View file @ 33f82d8
... ... @@ -54,6 +54,20 @@
54 54 )
55 55 </insert>
56 56  
  57 + <insert id="addPatientServiceAll" parameterType="java.util.List">
  58 + INSERT INTO patient_service
  59 + (id,parentid,pid,ser_type,ser_doct,create_date,create_user_name,create_user,ser_status,
  60 + update_date,update_user_name,update_user,hospital_id,ser_code,status,receive_date,receive_user,back_date,back_user,order_id,syn_status,is_old,per_type
  61 + ,device,deviceCon,doctorWeek,serviceWeek,serStartWeek,serEndWeek,serStartTime,serEndTime,docStartWeek,docEndWeek,docStartTime,docEndTime
  62 + )
  63 + VALUES
  64 + <foreach collection ="serviceList" item="patientService" separator =",">
  65 + (#{patientService.id},#{patientService.parentid},#{patientService.pid},#{patientService.serType},#{patientService.serDoct},#{patientService.createDate},#{patientService.createUserName},#{patientService.createUser},#{patientService.serStatus},#{patientService.updateDate},
  66 + #{patientService.updateUserName},#{patientService.updateUser},#{patientService.hospitalId},#{patientService.serCode},#{patientService.status},#{patientService.receiveDate},#{patientService.receiveUser},#{patientService.backDate},#{patientService.backUser},#{patientService.orderId},#{patientService.synStatus},#{patientService.isOld},#{patientService.perType}
  67 + ,#{patientService.device},#{patientService.deviceCon},#{patientService.doctorWeek},#{patientService.serviceWeek},#{patientService.serStartWeek},#{patientService.serEndWeek},#{patientService.serStartTime},#{patientService.serEndTime},#{patientService.docStartWeek},#{patientService.docEndWeek},#{patientService.docStartTime},#{patientService.docEndTime}
  68 + )
  69 + </foreach >
  70 + </insert>
57 71  
58 72 <update id="updatePatientService" parameterType="com.lyms.platform.permission.model.PatientService">
59 73 update patient_service
... ... @@ -350,6 +364,16 @@
350 364 from patient_service
351 365 <include refid="PatientServiceCondition"/>
352 366 <include refid="orderAndLimit"/>
  367 + </select>
  368 +
  369 + <select id="selectServiceByHospital" resultType="java.util.HashMap">
  370 + SELECT
  371 + hso.ser_type as serType,hds.doct_id as doctId
  372 +FROM
  373 + `hospital_service_content` hso
  374 +INNER JOIN hospital_doct_service hds
  375 +on hso.id=hds.hosp_service_id
  376 +where hso.hospital_id=#{hospitalId} and hso.ser_type in (3,4,6)
353 377 </select>
354 378  
355 379 <!--查询只开通了标准服务的数据 -->
platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/DateUtils.java View file @ 33f82d8
... ... @@ -232,8 +232,12 @@
232 232 return Math.abs(result);
233 233 }
234 234 public static void main(String[] args) {
235   - System.out.println(DateUtil.getyyyy_MM_dd(DateUtil.addDay(new Date(),33)));
236   - System.out.println(DateUtil.daysBetween(DateUtil.addDay(DateUtil.addDay(new Date(),33),-33),new Date()));
  235 + /*Date startDate = DateUtils.getNewDate(new Date(), -18, "周", 1 + 1);
  236 + Date endDate = DateUtils.getNewDate(new Date(), -13, "周", 1);
  237 + System.out.println(DateUtils.getDateStr(DateUtils.formatDate(startDate, DateUtils.Y_M_D),DateUtils.Y_M_D));
  238 + System.out.println(DateUtils.getDateStr(DateUtils.formatDate(endDate, DateUtils.Y_M_D),DateUtils.Y_M_D));*/
  239 +
  240 + System.out.println(DateUtils.getNewDate(DateUtils.preaseDate("2023-09-26 8:00:00",DateUtils.Y_M_D_H_M_S),13, "周", -1));
237 241 }
238 242 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java View file @ 33f82d8
... ... @@ -24,6 +24,8 @@
24 24 import com.lyms.platform.query.TServiceTimeRecordQuery;
25 25 import net.sf.json.JSONObject;
26 26 import org.apache.commons.collections.CollectionUtils;
  27 +import org.slf4j.Logger;
  28 +import org.slf4j.LoggerFactory;
27 29 import org.springframework.beans.factory.annotation.Autowired;
28 30 import org.springframework.stereotype.Component;
29 31  
... ... @@ -81,7 +83,7 @@
81 83  
82 84 @Autowired
83 85 private AreaCountFacade areaCountFacade;
84   -
  86 + private static Logger logger = LoggerFactory.getLogger(PatientServiceFacade.class);
85 87 public BaseResponse babyServiceInit(Integer userId) {
86 88 Map map = new HashMap();
87 89 //服务类型
... ... @@ -292,6 +294,105 @@
292 294 baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS);
293 295 baseResponse.setErrormsg("成功");
294 296 return baseResponse;
  297 + }
  298 +
  299 + /**
  300 + * 威县开通服务同步任务
  301 + * 只同步 6围产小助理/3血糖管理服务/4血压管理服务
  302 + */
  303 + public void patientServiceSync(){
  304 + logger.info("patientServiceSync start");
  305 + String hospitalId="2100002421";
  306 + List<Map<String, String>> mapList= patientServiceService.selectServiceByHospital(hospitalId);
  307 + if (CollectionUtils.isNotEmpty(mapList)){
  308 + PatientsQuery patientsQuery=new PatientsQuery();
  309 + patientsQuery.setHospitalId(hospitalId);
  310 + patientsQuery.setExtEnable(false);
  311 + patientsQuery.setBuildTypeNot(1);
  312 + patientsQuery.setYn(YnEnums.YES.getId());
  313 + List<Patients> patientsList= patientsService.queryPatient(patientsQuery);
  314 + if (CollectionUtils.isNotEmpty(patientsList)){
  315 + List<PatientService> serviceList=new ArrayList<>();
  316 + for (int i = 0,j=mapList.size(); i < j; i++) {
  317 + Map<String,String> params= mapList.get(i);
  318 + Integer serType= Integer.parseInt(params.get("serType"));
  319 + String createUser=params.get("doctId");
  320 + for (int k = 0,f=patientsList.size(); k < f; k++) {
  321 + Patients patients= patientsList.get(k);
  322 + String parentId= patients.getId();
  323 + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败
  324 + PatientServiceQuery patientQuery = new PatientServiceQuery();
  325 + patientQuery.setParentid(parentId);
  326 + patientQuery.setSerType(serType);
  327 + List<PatientService> patientServices = patientServiceService.queryPatientService(patientQuery);
  328 + if (CollectionUtils.isNotEmpty(patientServices)) {
  329 + continue;
  330 + }
  331 + PatientService pser = new PatientService();
  332 + pser.setCreateUser(createUser);
  333 + pser.setCreateDate(patients.getCreated());
  334 + //设置服务对象类型 服务人类型(1-孕妇、2-儿童)
  335 + pser.setPerType(1);
  336 + pser.setPid(patients.getPid());
  337 + //如果有数据源id,取主档案id
  338 + if (StringUtils.isNotEmpty(patients.getSource())) {
  339 + pser.setParentid(patients.getSource());
  340 + }else {
  341 + pser.setParentid(parentId);
  342 + }
  343 + pser.setId(UUID.randomUUID().toString().replace("-", ""));
  344 + //开通医院
  345 + pser.setHospitalId(hospitalId);
  346 + //默认开通状态
  347 + pser.setSerStatus(PatientSerEnums.SerStatusEnums.kt.getId());
  348 + //服务类型
  349 + pser.setSerType(serType);
  350 + //默认已经领取
  351 + pser.setStatus(2);
  352 + //默认待同步
  353 + pser.setSynStatus(1);
  354 + //领取时间
  355 + pser.setReceiveDate(new Date());
  356 + //领取操作医生id
  357 + pser.setReceiveUser(createUser);
  358 + //服务开通操作时间
  359 + pser.setUpdateDate(new Date());
  360 + //服务开通操作人
  361 + pser.setUpdateUser(createUser);
  362 + //默认是全孕周42
  363 + pser.setDoctorWeek(42);
  364 + pser.setServiceWeek(42);
  365 +
  366 + setServiceRecordAdd(pser, patients);
  367 +
  368 + serviceList.add(pser);
  369 +
  370 + operateLogFacade.addAddOptLog(Integer.valueOf(createUser), Integer.valueOf(hospitalId), pser, OptActionEnums.ADD.getId(), "开通增值服务");
  371 +
  372 +
  373 + if (PatientSerEnums.SerTypeEnums.bzfw.getId().intValue() == serType) {
  374 + PatientServiceQuery query = new PatientServiceQuery();
  375 + query.setParentid(parentId);
  376 + query.setSerType(PatientSerEnums.SerTypeEnums.yqjzzd.getId());
  377 + int count = patientServiceService.queryPatientServiceCount(query);
  378 + //是否有增值服务--没有则处理标准服务
  379 + if (count == 0) {
  380 + Patients patient = new Patients();
  381 + patient.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId());
  382 + patient.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId());
  383 + bookbuildingFacade.updatePatientSerById(parentId, patient);
  384 + }
  385 + }
  386 + }
  387 + }
  388 + if (CollectionUtils.isNotEmpty(serviceList)){
  389 + logger.info("addPatientServiceAll start");
  390 + patientServiceService.addPatientServiceAll(serviceList);
  391 + }
  392 + logger.info("addPatientServiceAll end");
  393 + }
  394 + }
  395 + logger.info("patientServiceSync end");
295 396 }
296 397  
297 398 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java View file @ 33f82d8
... ... @@ -13,7 +13,6 @@
13 13 import com.lyms.platform.pojo.*;
14 14 import com.lyms.platform.query.*;
15 15  
16   -import com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException;
17 16 import org.apache.commons.codec.binary.*;
18 17 import org.apache.commons.codec.binary.Base64;
19 18 import org.apache.commons.collections.CollectionUtils;
platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml View file @ 33f82d8
... ... @@ -655,7 +655,20 @@
655 655 </bean>
656 656  
657 657  
  658 + <!-- 威县开通服务同步任务-->
  659 + <bean id="patientServiceSyncJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  660 + <!-- 要调用的bean -->
  661 + <property name="targetObject" ref="patientServiceFacade"/>
  662 + <!-- 要调用的Method -->
  663 + <property name="targetMethod" value="patientServiceSync"/>
  664 + <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 -->
  665 + <property name="concurrent" value="false"/>
  666 + </bean>
658 667  
  668 + <bean id="patientServiceSyncJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  669 + <property name="jobDetail" ref="patientServiceSyncJob"/>
  670 + <property name="cronExpression" value="0 40 14 * * ?"/>
  671 + </bean>
659 672  
660 673  
661 674 <!-- 总调度,用于启动定时器 -->
... ... @@ -721,6 +734,8 @@
721 734 <ref bean="babyBuildClassifyTrigger"/>
722 735 <!-- 南和课程发布19点推送-->
723 736 <ref bean="coursesTrigger"/>
  737 + <!-- 威县开通服务同步-->
  738 + <ref bean="patientServiceSyncJobTrigger"/>
724 739 </list>
725 740 </property>
726 741 </bean>