Browse Source

🚀 对接接口完毕

master
wangxiang 3 years ago
parent
commit
2e57fd1af2
  1. 4
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/MapTask.java
  2. 4
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/MapTaskPreset.java
  3. 73
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java
  4. 43
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java
  5. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IMapLogisticService.java
  6. 55
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java

4
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/MapTask.java

@ -96,6 +96,10 @@ public class MapTask extends CommonEntity { @@ -96,6 +96,10 @@ public class MapTask extends CommonEntity {
@ApiModelProperty("表格操作key")
private String key;
@TableField(exist = false)
@ApiModelProperty("是否启动去Klab创建报告单")
private Boolean enabledCreateReport = false;
@TableField(exist = false)
@ApiModelProperty("地图交接预设任务列表")
private List<MapTaskPreset> mapTaskPreset;

4
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/MapTaskPreset.java

@ -95,4 +95,8 @@ public class MapTaskPreset extends CommonEntity { @@ -95,4 +95,8 @@ public class MapTaskPreset extends CommonEntity {
@ApiModelProperty("版本控制")
private Integer version;
@TableField(exist = false)
@ApiModelProperty("是否启动去Klab创建报告单")
private Boolean enabledCreateReport = false;
}

73
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
package com.cloud.kicc.commonbiz.controller;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
@ -8,19 +9,26 @@ import com.baomidou.mybatisplus.core.metadata.IPage; @@ -8,19 +9,26 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.MapLogisticPoint;
import com.cloud.kicc.commonbiz.api.entity.MapTask;
import com.cloud.kicc.commonbiz.api.entity.Message;
import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.api.enums.MapTaskStatusEnum;
import com.cloud.kicc.commonbiz.service.IMapTaskService;
import com.cloud.kicc.commonbiz.service.IMessageService;
import com.cloud.kicc.commonbiz.service.*;
import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Response;
import org.springframework.web.bind.annotation.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -38,6 +46,11 @@ public class MapTaskController { @@ -38,6 +46,11 @@ public class MapTaskController {
private final IMapTaskService iMapTaskService;
private final IMessageService iMessageService;
private final OkHttpClient okHttpClient;
private final IMapLogisticService iMapLogisticService;
private final RemoteUserService remoteUserService;
private final HospitalService hospitalService;
private final OrgService orgService;
private LambdaQueryWrapper<MapTask> getQueryWrapper(MapTask mapTask) {
return new LambdaQueryWrapper<MapTask>()
@ -69,6 +82,32 @@ public class MapTaskController { @@ -69,6 +82,32 @@ public class MapTaskController {
@PutMapping("/update")
@ApiOperation(value = "修改", notes = "修改")
public R update(@RequestBody MapTask mapTask) {
if (StrUtil.isNotBlank(mapTask.getReceiptFileId()) && StrUtil.isBlank(mapTask.getBatchCode())) {
// todo: 生成每一批次操作的批次码,需求待讨论
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapTask.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
R<User> user = remoteUserService.selectByUserId(mapTask.getCourierUserId(), SecurityConstants.FROM_IN);
Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
if (StrUtil.isNotBlank(mapTask.getOrgId())) {
Org org = orgService.getById(mapTask.getOrgId());
jsonObject.put("institutionId", org.getKlabOrgAccount());
// todo:交接点位置由自己设置
} else jsonObject.put("institutionId", 0);
// todo:任务科室医生还需讨论需求
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
jsonObject.put("syUserId", user.getData().getKlabUserAccount());
jsonObject.put("batchCode", mapTask.getBatchCode());
jsonObject.put("taskType", mapTask.getTaskType());
jsonObject.put("originImages", mapTask.getReceiptFileId());
jsonObject.put("remark", mapTask.getRemarks());
iMapLogisticService.internalSystemCreateReportForm(jsonObject);
}
iMapTaskService.updateById(mapTask);
return R.ok();
}
@ -111,5 +150,29 @@ public class MapTaskController { @@ -111,5 +150,29 @@ public class MapTaskController {
return R.ok();
}
@GetMapping("/listReport")
@ApiOperation(value = "根据批次码查询Klab报告单数据")
public R listReport(String batchCode) throws Exception{
// 发送post请求并获得响应
okhttp3.Request request = new okhttp3.Request
.Builder()
.url("https://openapi.kanglailab.com/api/kicc/report/listReportData?batchCode=" + batchCode)
.get()
.build();
Response response = okHttpClient.newCall(request).execute();
BufferedReader rd = new BufferedReader(new InputStreamReader(response.body().byteStream()));
StringBuffer result = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
if (response.code() == 200) {
List<Map> list = JSONUtil.toList(result.toString(), Map.class);
return R.ok(list);
} else {
return R.error("Failed to Request the klab System!");
}
}
}

43
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java

@ -1,14 +1,24 @@ @@ -1,14 +1,24 @@
package com.cloud.kicc.commonbiz.controller;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.commonbiz.api.entity.Hospital;
import com.cloud.kicc.commonbiz.api.entity.MapTaskPreset;
import com.cloud.kicc.commonbiz.api.entity.Org;
import com.cloud.kicc.commonbiz.service.HospitalService;
import com.cloud.kicc.commonbiz.service.IMapLogisticService;
import com.cloud.kicc.commonbiz.service.IMapTaskPresetService;
import com.cloud.kicc.commonbiz.service.OrgService;
import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -32,6 +42,10 @@ import java.util.Arrays; @@ -32,6 +42,10 @@ import java.util.Arrays;
public class MapTaskPresetController {
private final IMapTaskPresetService iMapTaskPresetService;
private final RemoteUserService remoteUserService;
private final HospitalService hospitalService;
private final OrgService orgService;
private final IMapLogisticService iMapLogisticService;
private LambdaQueryWrapper<MapTaskPreset> getQueryWrapper(MapTaskPreset mapTaskPreset) {
return new LambdaQueryWrapper<MapTaskPreset>()
@ -64,6 +78,35 @@ public class MapTaskPresetController { @@ -64,6 +78,35 @@ public class MapTaskPresetController {
@PutMapping("/update")
@ApiOperation(value = "修改", notes = "修改")
public R update(@RequestBody MapTaskPreset mapTaskPreset) {
if (StrUtil.isNotBlank(mapTaskPreset.getReceiptFileId()) && StrUtil.isBlank(mapTaskPreset.getBatchCode())) {
// todo: 生成每一批次操作的批次码,需求待讨论
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapTaskPreset.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
R<User> user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId(), SecurityConstants.FROM_IN);
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
// todo:交接点位置由自己设置
} else jsonObject.put("hospitalId", 0);
if (StrUtil.isNotBlank(mapTaskPreset.getDestinationPresetId())) {
Org org = orgService.getById(mapTaskPreset.getDestinationPresetId());
jsonObject.put("institutionId", org.getKlabOrgAccount());
// todo:交接点位置由自己设置
} else jsonObject.put("institutionId", 0);
// todo:任务科室医生还需讨论需求
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
jsonObject.put("syUserId", user.getData().getKlabUserAccount());
jsonObject.put("batchCode", mapTaskPreset);
jsonObject.put("taskType", 1);
jsonObject.put("originImages", mapTaskPreset.getReceiptFileId());
jsonObject.put("remark", mapTaskPreset.getRemarks());
jsonObject.put("batchCode", mapTaskPreset.getBatchCode());
iMapLogisticService.internalSystemCreateReportForm(jsonObject);
}
iMapTaskPresetService.updateById(mapTaskPreset);
return R.ok();
}

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IMapLogisticService.java

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
package com.cloud.kicc.commonbiz.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.kicc.commonbiz.api.entity.MapLogistic;
import com.cloud.kicc.commonbiz.api.entity.MapLogisticPoint;
@ -37,4 +38,7 @@ public interface IMapLogisticService extends IService<MapLogistic> { @@ -37,4 +38,7 @@ public interface IMapLogisticService extends IService<MapLogistic> {
*/
void mapPresetPointConfirmPushMsg(MapLogisticPoint mapLogisticPoint);
/** 内部系统创建报告单 */
void internalSystemCreateReportForm(JSONObject jsonObject);
}

55
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java

@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil; @@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
@ -53,6 +54,8 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo @@ -53,6 +54,8 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
@Override
public void mapSaveOrUpdate(MapLogistic mapLogistic) {
// 生成每一批次操作的批次码
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
// 保存不做过多的处理,直接先删后加,由于前端未做操作记录池功能,不能实现表格数据的增删改
super.removeById(mapLogistic);
iMapTaskService.remove(Wrappers.<MapTask>lambdaUpdate().eq(MapTask::getMapLogisticId, mapLogistic.getId()));
@ -61,14 +64,22 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo @@ -61,14 +64,22 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
super.save(mapLogistic);
mapLogistic.getMapTask().forEach(mapTask -> {
mapTask.setMapLogisticId(mapLogistic.getId());
if (StrUtil.isNotBlank(mapTask.getReceiptFileId()) && StrUtil.isBlank(mapTask.getBatchCode())) {
mapTask.setBatchCode(batchCode);
mapTask.setEnabledCreateReport(true);
}
iMapTaskService.save(mapTask);
// 匹配查找跟地图任务关联的地图标记点数据,不需要包含其他收养样员的交接任务标记点,他们已经与自己的任务进行了id绑定
// 匹配查找跟地图任务关联的地图标记点数据,不需要包含其他收样员的交接任务标记点,他们已经与自己的任务进行了id绑定
mapLogistic.getMapLogisticPoint().stream()
.filter(item -> StrUtil.equals(item.getKey(), mapTask.getKey())).forEach(item -> item.setMapTaskId(mapTask.getId()));
if (ObjectUtil.isNotEmpty(mapTask.getMapTaskPreset())) {
mapTask.getMapTaskPreset().forEach(mapTaskPreset -> {
mapTaskPreset.setMapLogisticId(mapLogistic.getId());
mapTaskPreset.setMapTaskId(mapTask.getId());
if (StrUtil.isNotBlank(mapTaskPreset.getReceiptFileId()) && StrUtil.isBlank(mapTaskPreset.getBatchCode())) {
mapTaskPreset.setBatchCode(batchCode);
mapTaskPreset.setEnabledCreateReport(true);
}
iMapTaskPresetService.save(mapTaskPreset);
// 追加交接转办任务标记点,首次新增没有任何数据,后面会有收样员设置的位置数据覆盖
mapLogistic.getMapLogisticPoint().addAll(ListUtil.of(
@ -97,43 +108,51 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo @@ -97,43 +108,51 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
}
});
mapLogistic.getMapLogisticPoint().forEach(item -> item.setMapLogisticId(mapLogistic.getId()));
createReportFormSetData(mapLogistic);
//ThreadUtil.execute(() -> createReportFormSetData(mapLogistic));
ThreadUtil.execute(() -> createReportFormSetData(mapLogistic));
iMapLogisticPointService.saveBatch(mapLogistic.getMapLogisticPoint());
}
private void createReportFormSetData(MapLogistic mapLogistic) {
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapLogistic.getMapTask().forEach(mapTask -> {
if (StrUtil.isNotEmpty(mapTask.getReceiptFileId())) {
if (mapTask.getEnabledCreateReport()) {
JSONObject jsonObject = new JSONObject();
R<User> user = remoteUserService.selectByUserId(mapTask.getCourierUserId(), SecurityConstants.FROM_IN);
Org org = orgService.getById(mapTask.getOrgId());
Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
JSONObject jsonObject = new JSONObject();
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
jsonObject.put("institutionId", org.getKlabOrgAccount());
if (StrUtil.isNotBlank(mapTask.getOrgId())) {
Org org = orgService.getById(mapTask.getOrgId());
jsonObject.put("institutionId", org.getKlabOrgAccount());
// todo:交接点位置由自己设置
} else jsonObject.put("institutionId", 0);
// todo:任务科室医生还需讨论需求
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
jsonObject.put("syUserId", user.getData().getKlabUserAccount());
jsonObject.put("batchCode", batchCode);
jsonObject.put("taskType", 0);
jsonObject.put("batchCode", mapTask.getBatchCode());
jsonObject.put("taskType", mapTask.getTaskType());
jsonObject.put("originImages", mapTask.getReceiptFileId());
jsonObject.put("remark", mapTask.getRemarks());
internalSystemCreateReportForm(jsonObject);
}
mapTask.getMapTaskPreset().forEach(mapTaskPreset -> {
if (StrUtil.isNotEmpty(mapTaskPreset.getReceiptFileId())) {
JSONObject jsonObject = new JSONObject();
if (mapTaskPreset.getEnabledCreateReport()) {
R<User> taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId(), SecurityConstants.FROM_IN);
JSONObject jsonObject = new JSONObject();
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
// todo:交接点位置由自己设置
jsonObject.put("hospitalId", 0);
jsonObject.put("institutionId", 0);
} else jsonObject.put("hospitalId", 0);
if (StrUtil.isNotBlank(mapTaskPreset.getDestinationPresetId())) {
Org org = orgService.getById(mapTaskPreset.getDestinationPresetId());
jsonObject.put("institutionId", org.getKlabOrgAccount());
// todo:交接点位置由自己设置
} else jsonObject.put("institutionId", 0);
// todo:任务科室医生还需讨论需求
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
@ -142,7 +161,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo @@ -142,7 +161,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
jsonObject.put("taskType", 1);
jsonObject.put("originImages", mapTaskPreset.getReceiptFileId());
jsonObject.put("remark", mapTaskPreset.getRemarks());
jsonObject.put("batchCode", batchCode);
jsonObject.put("batchCode", mapTaskPreset.getBatchCode());
internalSystemCreateReportForm(jsonObject);
}
});
@ -150,7 +169,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo @@ -150,7 +169,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
}
private void internalSystemCreateReportForm(JSONObject jsonObject) {
public void internalSystemCreateReportForm(JSONObject jsonObject) {
okhttp3.Request request = new okhttp3.Request
.Builder()
.url("https://cmsapi.kanglailab.com/reportTask/add")

Loading…
Cancel
Save