diff --git a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java index 453dc44..59be9f8 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java +++ b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureApi.java @@ -5,10 +5,23 @@ import android.content.Context; import com.iflytop.profilometer.common.result.Result; import com.iflytop.profilometer.core.bluetooth.BleDeviceDriver; import com.iflytop.profilometer.core.migration.measure.drawer.type.RailProfileMeasureTaskStatus; +import com.iflytop.profilometer.core.migration.measure.drawer.type.XYPoint; import com.iflytop.profilometer.core.system.SystemService; +import com.iflytop.profilometer.dao.ProfileRecordDao; +import com.iflytop.profilometer.dao.ProfileRecordPointSetDao; import com.iflytop.profilometer.model.bo.RailProfileMeasureTaskState; +import com.iflytop.profilometer.model.entity.ProfileRecordDescription; +import com.iflytop.profilometer.model.entity.ProfileRecordPointSet; import com.iflytop.profilometer.service.RailProfileDrawerService; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import cn.hutool.core.convert.impl.UUIDConverter; +import cn.hutool.core.lang.generator.UUIDGenerator; +import cn.hutool.json.JSONUtil; + /** * 测量接口 */ @@ -52,4 +65,30 @@ public class MeasureApi { return Result.success(); } + /** + * 保存测量 + */ + public String save(Map params){ + ProfileRecordDao profileRecordDao = new ProfileRecordDao(context); + ProfileRecordPointSetDao profileRecordPointSetDao = new ProfileRecordPointSetDao(context); + ProfileRecordDescription profileRecordDescription = new ProfileRecordDescription(); + profileRecordDescription.setUuid(UUID.randomUUID().toString()); + profileRecordDescription.setOperatorName(params.get("operatorName"));//操作员名称 + profileRecordDescription.setTrackShapeCode(params.get("trackShapeCode"));//轨形 code + profileRecordDescription.setName(params.get("name"));//测量名称 + profileRecordDescription.setLineName(params.get("lineName"));//线路名称 + profileRecordDescription.setLocation(params.get("location"));//位置 + profileRecordDescription.setDirection(params.get("direction"));//行车方向 + profileRecordDao.insertProfileRecord(profileRecordDescription); + + RailProfileMeasureTaskState taskState = SystemService.getInstance().getTaskState(); + List xyPointList = taskState.getOutlinePointSetList(); + ProfileRecordPointSet profileRecordPointSet = new ProfileRecordPointSet(); + profileRecordPointSet.setProfileRecordUuid(profileRecordDescription.getUuid()); + profileRecordPointSet.setPoints(JSONUtil.toJsonStr(xyPointList)); + profileRecordPointSetDao.insertProfileRecordPointSet(profileRecordPointSet); + + return Result.success(); + } + } diff --git a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt index 687c795..1103b57 100644 --- a/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt +++ b/app/src/main/java/com/iflytop/profilometer/api/measure/MeasureRoutes.kt @@ -31,6 +31,9 @@ fun Routing.measureRoutes(context: Context) { * 保存测量 */ post("/api/measure/save") { + val params = call.receive>() + val jsonResponse = api.save(params) + call.respondText(jsonResponse, ContentType.Application.Json) } /**