Commit 61fc5763 by sdif

Merge remote-tracking branch 'origin/dev' into dev

parents 39d549a5 d5226b50
......@@ -10,6 +10,8 @@ import com.pz.common.core.domain.R;
import com.pz.common.core.domain.dto.RoleDTO;
import com.pz.common.core.domain.model.LoginUser;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.system.domain.bo.DbghOrderBo;
import com.pz.system.domain.bo.OrderColumnarBo;
import com.pz.system.domain.vo.DbghOrderVo;
......@@ -61,6 +63,7 @@ public class DataViewController extends BaseController {
private final IStoreApplyService iStoreApplyService;
/**
* 新增用户统计
*/
......@@ -75,7 +78,7 @@ public class DataViewController extends BaseController {
@GetMapping("/dataEmployees")
public R<DataViewVo> dataEmployees(DataViewBo dataViewBo) {
Long roleId = getLoginUser().getRoleId();
if(null != roleId && roleId == 3){
if (null != roleId && roleId == 3) {
dataViewBo.setUserId(getUserId());
}
return R.ok(iEmployeesService.dataEmployees(dataViewBo));
......@@ -111,7 +114,7 @@ public class DataViewController extends BaseController {
@GetMapping("/platformRevenue")
public R<DataOrderVo> platformRevenue(DataViewBo dataViewBo) {
Long roleId = getLoginUser().getRoleId();
if(null != roleId && roleId == 3){
if (null != roleId && roleId == 3) {
dataViewBo.setUserId(getUserId());
}
return R.ok(iTotalOrderService.platformRevenue(dataViewBo));
......@@ -123,7 +126,7 @@ public class DataViewController extends BaseController {
@GetMapping("/orderQuantity")
public R<DataViewVo> orderQuantity(DataViewBo dataViewBo) {
Long roleId = getLoginUser().getRoleId();
if(null != roleId && roleId == 3){
if (null != roleId && roleId == 3) {
dataViewBo.setUserId(getUserId());
}
DataOrderVo dataOrderVo = iTotalOrderService.orderQuantity(dataViewBo);
......@@ -140,4 +143,14 @@ public class DataViewController extends BaseController {
OrderColumnarBo bo) {
return R.ok(iTotalOrderService.findOrderColumnarVoList(bo));
}
/**
* 机构列表
*/
@GetMapping("/companyList")
public R<List<CompanyVo>> companyList(
CompanyBo bo) {
return R.ok(iCompanyService.queryList(bo));
}
}
......@@ -66,25 +66,30 @@ public class InsertTestOrderTask {
private final EmployeesDivideMapper employeesDivideMapper;
public static List<Integer> businessIds = Arrays.asList(0, 1, 2, 3, 4, 5, 6);
@Scheduled(cron = "0 0 0 * * ?") // 凌晨12点执行
public void insertOrder() throws InterruptedException {
// 就诊人员
List<UserVsitor> userVsitors = userVsitorMapper.selectList(Wrappers.<UserVsitor>lambdaQuery().last("limit 20"));
UserVsitor randomElement = getRandomElement(userVsitors);
// 查询固定机构
List<Company> companies = companyMapper.selectList(Wrappers.<Company>lambdaQuery().in(Company::getId, 5, 14, 15, 16, 17,18,19));
List<Company> companies = companyMapper.selectList(Wrappers.<Company>lambdaQuery().in(Company::getId, 5, 14, 15, 16, 17, 18, 19));
// 加入线程池并发执行
ExecutorService executorService = Executors.newFixedThreadPool(10);
for (Company company : companies) {
Employees employees = employeesMapper.selectOne(Wrappers.<Employees>lambdaQuery().eq(Employees::getCompanyId, company.getId()).last("limit 1"));
executorService.submit(() -> {
List<Hospital> hospitals = hospitalMapper.selectList(Wrappers.<Hospital>lambdaQuery().eq(Hospital::getCityId, employees.getCityId()).last("limit 10"));
List<Hospital> hospitals = hospitalMapper.selectList(Wrappers.<Hospital>lambdaQuery().eq(Hospital::getCityId, company.getCityId()).last("limit 10"));
Hospital hospital = getRandomElement(hospitals);
for (Integer businessId : businessIds) {
//获取服务价格
List<Services> services = servicesMapper.selectList(Wrappers.<Services>lambdaQuery().eq(Services::getBid, businessId).eq(Services::getCityId, company.getCityId()));
// 每日单量
Integer num = RandomUtil.randomInt(30, 50);
Integer num = RandomUtil.randomInt(4, 10);
for (int i = 0; i <= num; i++) {
Long orderId = saveTotalOrder(businessId, employees.getId(), employees.getCityId().intValue(), company.getId());
//接单人员
UserVsitor randomElement = getRandomElement(userVsitors);
for (Services service : services) {
Long orderId = saveTotalOrder(businessId, employees.getId(), company.getCityId().intValue(), company.getId(), service);
switch (businessId) {
case 0:
StoreOrder storeOrder = new StoreOrder();
......@@ -103,7 +108,7 @@ public class InsertTestOrderTask {
yypzOrder.setOrderId(orderId.intValue());
yypzOrder.setPhone(generateRandomPhoneNumber());
yypzOrder.setStatus(2);
yypzOrder.setVisitTime(new Date());
yypzOrder.setVisitTime(randomTime());
yypzOrder.setHid(hospital.getId());
yypzOrder.setVisitor(randomElement.getId());
yypzOrderMapper.insert(yypzOrder);
......@@ -113,7 +118,7 @@ public class InsertTestOrderTask {
dbghOrder.setOrderId(orderId.intValue());
dbghOrder.setHid(hospital.getId());
dbghOrder.setStatus(2);
dbghOrder.setVisitTime(new Date());
dbghOrder.setVisitTime(randomTime());
dbghOrder.setVisitor(randomElement.getId());
dbghOrderMapper.insert(dbghOrder);
break;
......@@ -121,7 +126,7 @@ public class InsertTestOrderTask {
DbwzOrder dbwzOrder = new DbwzOrder();
dbwzOrder.setOrderId(orderId.intValue());
dbwzOrder.setStatus(2);
dbwzOrder.setVisitTime(new Date());
dbwzOrder.setVisitTime(randomTime());
dbwzOrder.setChiefComplaint("电话沟通");
dbwzOrder.setHistoryOfPresentIllness("电话沟通");
dbwzOrder.setLastMedicalTreatmentSituation("电话沟通");
......@@ -138,7 +143,7 @@ public class InsertTestOrderTask {
zyphOrder.setHid(hospital.getId());
zyphOrder.setStatus(2);
zyphOrder.setVisitor(randomElement.getId());
zyphOrder.setOverTime(new Date());
zyphOrder.setOverTime(randomTime());
zyphOrderMapper.insert(zyphOrder);
break;
case 5:
......@@ -156,7 +161,7 @@ public class InsertTestOrderTask {
zqghOrder.setOrderId(orderId.intValue());
zqghOrder.setHid(hospital.getId());
zqghOrder.setStatus(2);
zqghOrder.setOverTime(new Date());
zqghOrder.setOverTime(randomTime());
zqghOrder.setDoctorId(1);
zqghOrderMapper.insert(zqghOrder);
break;
......@@ -165,19 +170,37 @@ public class InsertTestOrderTask {
}
}
}
}
});
}
executorService.shutdown();
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
}
public Long saveTotalOrder(Integer businessId, Integer emId, Integer cityId, Integer companyId) {
//随机服务id
Integer serviceId = RandomUtil.randomInt(1, 12);
public Date randomTime() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 9); // 设置小时为9点
calendar.set(Calendar.MINUTE, 0); // 设置分钟为0分
calendar.set(Calendar.SECOND, 0); // 设置秒钟为0秒
long startTimeInMillis = calendar.getTimeInMillis(); // 获取当天9点的时间戳
// 计算10点与9点之间的毫秒数范围
long range = 60 * 60 * 1000; // 1小时的毫秒数
long randomOffset = (long) (Math.random() * range); // 在范围内生成随机偏移量
// 计算随机时间的时间戳
long randomTimeInMillis = startTimeInMillis + randomOffset;
// 将时间戳转换为Date类型
Date randomTime = new Date(randomTimeInMillis);
return randomTime;
}
public Long saveTotalOrder(Integer businessId, Integer emId, Integer cityId, Integer companyId, Services services) {
//随机评价
Integer i = RandomUtil.randomInt(0, 1);
//获取服务价格
Services services = servicesMapper.selectById(serviceId);
//创建主订单
TotalOrder totalOrder = new TotalOrder();
totalOrder.setStatus(2);
......@@ -185,8 +208,8 @@ public class InsertTestOrderTask {
totalOrder.setPayMoney(services.getPrice().doubleValue());
totalOrder.setIsSatisfaction(i);
totalOrder.setBusinessId(businessId);
totalOrder.setFinishTime(new Date());
totalOrder.setServiceId(serviceId);
totalOrder.setFinishTime(randomTime());
totalOrder.setServiceId(services.getId());
totalOrder.setCityId(cityId);
totalOrder.setOrderSn(RandomUtil.randomNumbers(21));
totalOrder.setEmId(emId);
......
......@@ -119,6 +119,7 @@ public class CompanyServiceImpl implements ICompanyService {
LambdaQueryWrapper<Company> lqw = Wrappers.lambdaQuery();
lqw.eq(null != bo.getStatus(), Company::getStatus,1);
lqw.eq(null != bo.getUid(), Company::getUid,bo.getUid());
lqw.eq(null != bo.getCityId(),Company::getCityId,bo.getCityId());
lqw.like(StringUtils.isNotBlank(bo.getName()), Company::getName, bo.getName());
return lqw;
}
......
......@@ -28,4 +28,14 @@ public class OrderColumnarBo implements Serializable {
* 陪诊员ids
*/
private List<Integer> emIds;
/**
* 城市id
*/
private Long cityId;
/**
* 机构id
*/
private Long companyId;
}
......@@ -1248,20 +1248,6 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
public List<OrderLineVo> findOrderColumnarVoList(OrderColumnarBo bo) {
Long roleId = LoginHelper.getLoginUser().getRoleId();
Long userId = LoginHelper.getUserId();
//商户
if (roleId == 3L) {
//查找该商户
Optional.ofNullable(companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUid, userId).eq(Company::getStatus, 1)))
.ifPresent(company -> {
//获取该商户下所有陪诊员
List<Employees> employees = employeesMapper.selectList(Wrappers.<Employees>lambdaQuery().eq(Employees::getCompanyId, company.getId()));
if (CollectionUtils.isNotEmpty(employees)) {
bo.setEmIds(employees.stream().map(Employees::getId).collect(Collectors.toList()));
} else {
bo.setEmIds(Arrays.asList(999999));
}
});
}
List<OrderLineVo> list = new ArrayList<>();
List<String> recentDates;
switch (bo.getType()) {
......@@ -1277,16 +1263,36 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
default:
return list;
}
// 获取商户和陪诊员信息
if (roleId == 3L) {
Optional.ofNullable(companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUid, userId).eq(Company::getStatus, 1)))
.ifPresent(company -> {
List<Employees> employees = employeesMapper.selectList(Wrappers.<Employees>lambdaQuery().eq(Employees::getCompanyId, company.getId()));
bo.setEmIds(CollectionUtils.isNotEmpty(employees) ? employees.stream().map(Employees::getId).collect(Collectors.toList()) : Arrays.asList(999999));
});
}
// 获取该城市下所有陪诊员信息
if (bo.getCityId() != null) {
List<Company> companies = companyMapper.selectList(Wrappers.<Company>lambdaQuery().eq(Company::getCityId, bo.getCityId()).eq(null != bo.getCompanyId(), Company::getId, bo.getCompanyId()).eq(Company::getStatus, 1));
if (CollectionUtils.isNotEmpty(companies)) {
List<Employees> employees = employeesMapper.selectList(Wrappers.<Employees>lambdaQuery().in(Employees::getCompanyId, companies.stream().map(Company::getId).collect(Collectors.toList())));
bo.setEmIds(CollectionUtils.isNotEmpty(employees) ? employees.stream().map(Employees::getId).collect(Collectors.toList()) : Arrays.asList(999999));
} else {
bo.setEmIds(Arrays.asList(999999));
}
}
// 使用一个 Map 来缓存已经查询过的订单列列表
Map<String, List<OrderColumnarVo>> orderMap = new HashMap<>();
for (String time : recentDates) {
List<OrderColumnarVo> orderColumnarVoList = orderMap.get(time);
if (orderColumnarVoList == null) {
orderColumnarVoList = baseMapper.findOrderColumnarVoList(time, bo.getEmIds());
List<OrderColumnarVo> orderColumnarVoList = orderMap.computeIfAbsent(time, k -> {
List<OrderColumnarVo> columnarVoList = baseMapper.findOrderColumnarVoList(time, bo.getEmIds());
OrderColumnarVo orderColumnarVo = baseMapper.findStoreOrderVoList(time, bo.getEmIds());
orderColumnarVoList.add(orderColumnarVo);
orderMap.put(time, orderColumnarVoList);
}
columnarVoList.add(orderColumnarVo);
return columnarVoList;
});
OrderLineVo orderLineVo = new OrderLineVo();
orderLineVo.setKey(time);
orderLineVo.setList(orderColumnarVoList);
......@@ -1437,7 +1443,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
@Override
public DataOrderVo platformRevenue(DataViewBo dataViewBo) {
if(null != dataViewBo.getUserId()){
if (null != dataViewBo.getUserId()) {
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getUid, dataViewBo.getUserId()));
dataViewBo.setUserId(company.getId().longValue());
return baseMapper.selectPlatformCom(dataViewBo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment