package com.nb.admin; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.RandomUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nb.AdminApplication; import com.nb.web.service.bus.entity.BusClinicEntity; import com.nb.web.service.bus.hospital.his.strategy.HisStrategyEnum; import com.nb.web.service.bus.hospital.his.strategy.HisStrategyHandler; import com.nb.web.service.bus.hospital.his.strategy.HisStrategyManager; import com.nb.web.service.bus.hospital.his.strategy.HisStrategyManagerRegister; import com.nb.web.service.bus.service.LocalBusClinicService; import com.nb.core.enums.SexEnum; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; import java.util.Date; import java.util.List; import static com.nb.admin.BusPatientTest.getName; /** * @Author XX * @Date 2022-04-25 19:00:10 * @Version 1.0 * @Description XXX */ @RunWith(SpringRunner.class) @SpringBootTest(classes = AdminApplication.class) public class HisStrategyTest { @Autowired HisStrategyManagerRegister managerRegister; @Autowired LocalBusClinicService clinicService; String patientCode="120263"; String tenantId="1"; @Test public void allEquals(){ HisStrategyManager hisStrategyManager = managerRegister.get(HisStrategyEnum.ALL); } @Test public void allMoreToLess(){ HisStrategyManager hisStrategyManager = managerRegister.get(HisStrategyEnum.ALL); List sources = new ArrayList<>(); List targets = clinicService.list(new QueryWrapper().lambda().eq(BusClinicEntity::getPatientCode, patientCode).eq(BusClinicEntity::getTenantId, tenantId)); for (BusClinicEntity target : targets) { BusClinicEntity clinic = new BusClinicEntity(); clinic.setStartTime(target.getStartTime()==null? RandomUtil.randomDate(DateUtil.beginOfMonth(new Date()), DateField.HOUR,-30,30):DateUtil.date(target.getStartTime()).offset(DateField.HOUR_OF_DAY,-1)); clinic.setSurgeryName(BusPatientTest.clinicNames.get(RandomUtil.randomInt(BusPatientTest.clinicNames.size()-1))); clinic.setPatientName(getName()); clinic.setPatientGender(EnumUtil.likeValueOf(SexEnum.class,RandomUtil.randomInt(1,2))); clinic.setBedNo(target.getBedNo()); clinic.setWard(target.getWard()); clinic.setWeight(String.valueOf(RandomUtil.randomInt(90,150))); clinic.setWeight(String.valueOf(RandomUtil.randomInt(150,200))); clinic.setAnaDoctor(getName()); clinic.setAnaType(BusPatientTest.anaTypes.get(RandomUtil.randomInt(BusPatientTest.anaTypes.size()-1))); clinic.setAnalType(BusPatientTest.analTypes.get(RandomUtil.randomInt(BusPatientTest.analTypes.size()-1))); clinic.setSurgeryDoctor(getName()); clinic.setConfigPerson(getName()); clinic.setPatientCode(target.getPatientCode()); clinic.setMonitorType(true); clinic.setTenantId("1"); sources.add(clinic); } BusClinicEntity clinic = new BusClinicEntity(); clinic.setStartTime(DateUtil.beginOfDay(new Date())); clinic.setSurgeryName(BusPatientTest.clinicNames.get(RandomUtil.randomInt(BusPatientTest.clinicNames.size()-1))); clinic.setPatientName(getName()); clinic.setPatientGender(EnumUtil.likeValueOf(SexEnum.class,RandomUtil.randomInt(1,2))); clinic.setBedNo("10"); clinic.setWard("10"); clinic.setWeight(String.valueOf(RandomUtil.randomInt(90,150))); clinic.setWeight(String.valueOf(RandomUtil.randomInt(150,200))); clinic.setAnaDoctor(getName()); clinic.setAnaType(BusPatientTest.anaTypes.get(RandomUtil.randomInt(BusPatientTest.anaTypes.size()-1))); clinic.setAnalType(BusPatientTest.analTypes.get(RandomUtil.randomInt(BusPatientTest.analTypes.size()-1))); clinic.setSurgeryDoctor(getName()); clinic.setConfigPerson(getName()); clinic.setPatientCode(patientCode); clinic.setMonitorType(true); clinic.setTenantId("1"); sources.add(clinic); hisStrategyManager.getHandlers() .stream() .filter(handler-> handler.apply(sources,targets)) .forEach(handler->handler.handle(sources,targets)); } @Test public void allLessToMore(){ HisStrategyManager hisStrategyManager = managerRegister.get(HisStrategyEnum.ALL); } @Test public void onlyNew(){ HisStrategyManager hisStrategyManager = managerRegister.get(HisStrategyEnum.NEW); } @Test public void part(){ HisStrategyManager hisStrategyManager = managerRegister.get(HisStrategyEnum.PART); } }