ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
@@ -1,9 +1,13 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.Objects; import java.text.SimpleDateFormat; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.entity.ServiceOrderAppVo; import com.ruoyi.common.enums.DataSourceType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -77,8 +81,9 @@ return success(serviceOrderService.selectServiceOrderById(serviceOrdId)); } /** * 新增服务订单 /* 新增订单 */ @PreAuthorize("@ss.hasPermi('system:order:add')") @Log(title = "服务订单", businessType = BusinessType.INSERT) ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TbOrdersController.java
@@ -1,9 +1,18 @@ package com.ruoyi.web.controller.system; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.entity.ServiceOrderAppResultVo; import com.ruoyi.common.core.domain.entity.ServiceOrderAppVo; import com.ruoyi.common.utils.civilAviation.ServiceOrderUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -70,14 +79,66 @@ } /** * 新增orders * 提供外部接口可以调用 * @param tbOrders * @return */ @PreAuthorize("@ss.hasPermi('system:orders:add')") @Log(title = "orders", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TbOrders tbOrders) // @Anonymous(needSign = true) @Anonymous // @Log(title = "orders", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody TbOrders tbOrders) { try { if (tbOrders == null || tbOrders.getOrderID() == null) { return AjaxResult.error("传输数据为空!"); } tbOrders.setCreateTime(new Date()); int insertNum = tbOrdersService.insertTbOrders(tbOrders); if(insertNum<1) { return toAjax(tbOrdersService.insertTbOrders(tbOrders)); return AjaxResult.error("上传失败!"); } ServiceOrderAppVo model = new ServiceOrderAppVo(); model.setMethod("ServiceOrder_APP"); // 设置接口名称 model.setAppId("GDS-000001"); // 设置商户 APPID model.setOrdType(tbOrders.getTypeCode().intValue()); model.setCoPhone(tbOrders.getLinkTel()); // 客户联系电话 model.setCoName(tbOrders.getLinkPerson()); // 客户姓名 // model.setCoTies("家属"); // 随机设置客户联系人与患者关系 // 设置预约时间为一天后 Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd%20HH:mm"); model.setApptDate(sdf.format(tbOrders.getBookingDate())); // 格式化预约运送时间 model.setPtName(tbOrders.getPatientName()); // 患者姓名 model.setPtAge(tbOrders.getAge()); // 随机生成患者年龄 model.setPtSex(tbOrders.getSex() == 1 ? "男" : "女"); // 随机生成患者性别 // model.setPtNat("中国"); // 设置患者国籍 model.setOutHosp(tbOrders.getLocalAddress()); // 设置转出医院 model.setInHosp(tbOrders.getSendAddress()); // 设置转入医院 // model.setPtServices("科室" + (int) (Math.random() * 10)); // 随机设置患者所在科室 model.setPtDiagnosis(tbOrders.getComplaint()); // 设置诊断信息 model.setCondition(tbOrders.getRemark()); // 设置备注信息 // model.setDoctor("医生" + (int) (Math.random() * 10)); // 随机设置患者医生 // model.setDoctorPhone("13" + (int) (Math.random() * 900000000 + 100000000)); // 随机生成患者医生电话 model.setOfferPrice(tbOrders.getBookingPrice().doubleValue()); // 随机生成报价 // model.setReferrals("推介人" + (int) (Math.random() * 10)); // 随机设置推介人信息 // model.setUnitRemarks("商户随机备注信息"); // 随机设置商户备注 // model.setPayQRcodeURL("https://example.com/qrcode/" + (int) (Math.random() * 100)); // 随机生成外部支付二维码链接 ServiceOrderAppResultVo result = ServiceOrderUtil.CreateServiceOrder(model); if (result.getResult() == 1) { return AjaxResult.success(result); } else { return AjaxResult.error("提交失败"); } } catch (Exception e) { return AjaxResult.error("提交失败"); } } /** ruoyi-admin/src/main/resources/application.yml
@@ -74,7 +74,7 @@ # 地址 host: localhost # 端口,默认为6379 port: 6379 port: 16379 # 数据库索引 database: 0 # 密码 ruoyi-common/src/main/java/com/ruoyi/common/utils/civilAviation/ServiceOrderUtil.java
@@ -31,7 +31,7 @@ */ public static ServiceOrderAppResultVo CreateServiceOrder(ServiceOrderAppVo model) { if (AddServiceOrederAPI.isEmpty()) { log.info("AddServiceOrederAPI 未设置,请先设置接口地址。"); // log.info("AddServiceOrederAPI 未设置,请先设置接口地址。"); return null; } @@ -50,7 +50,7 @@ params.put(field.getName(), value.toString()); } } catch (IllegalAccessException e) { log.error("获取对象属性值时出错", e); // log.error("获取对象属性值时出错", e); } } @@ -76,7 +76,7 @@ .append(value.toString()); } } catch (Exception e) { log.error("拼接表单数据时出错", e); // log.error("拼接表单数据时出错", e); } } @@ -84,15 +84,15 @@ if (responseData != null && !responseData.isEmpty()) { log.info("接口响应: " + responseData); // log.info("接口响应: " + responseData); try { // 使用 FastJSON 将响应数据转换为 ServiceOrderAppResultVo 对象 return JSON.parseObject(responseData, ServiceOrderAppResultVo.class); } catch (Exception e) { log.info("解析接口响应数据失败: " + e.getMessage()); // log.info("解析接口响应数据失败: " + e.getMessage()); } } else { log.info("接口调用失败,未获取到有效响应数据"); // log.info("接口调用失败,未获取到有效响应数据"); } return null; @@ -107,7 +107,7 @@ */ public static ServiceOrderAppResultVo CancelServiceOrder(ServiceOrderDelVo model) { if (AddServiceOrederAPI.isEmpty()) { log.info("AddServiceOrederAPI 未设置,请先设置接口地址。"); // log.info("AddServiceOrederAPI 未设置,请先设置接口地址。"); return null; } @@ -126,7 +126,7 @@ params.put(field.getName(), value.toString()); } } catch (IllegalAccessException e) { log.error("获取对象属性值时出错", e); // log.error("获取对象属性值时出错", e); } } @@ -150,21 +150,21 @@ .append(value.toString()); } } catch (Exception e) { log.error("拼接表单数据时出错", e); // log.error("拼接表单数据时出错", e); } } String responseData = HttpUtils.sendPost(AddServiceOrederAPI, formData.toString(), "application/x-www-form-urlencoded"); if (responseData != null && !responseData.isEmpty()) { log.info("接口响应: " + responseData); // log.info("接口响应: " + responseData); try { return JSON.parseObject(responseData, ServiceOrderAppResultVo.class); } catch (Exception e) { log.info("解析接口响应数据失败: " + e.getMessage()); // log.info("解析接口响应数据失败: " + e.getMessage()); } } else { log.info("接口调用失败,未获取到有效响应数据"); // log.info("接口调用失败,未获取到有效响应数据"); } return null; @@ -173,9 +173,9 @@ public static void main(String[] args) { // 创建服务单应用值对象并设置相关模拟属性 // test(); test(); testCancelServiceOrder(); // testCancelServiceOrder(); } //测试取消服务单 @@ -211,8 +211,8 @@ model.setPtAge((int) (Math.random() * 100) + "岁"); // 随机生成患者年龄 model.setPtSex(Math.random() > 0.5 ? "男" : "女"); // 随机生成患者性别 model.setPtNat("中国"); // 随机设置患者国籍 model.setOutHosp("随机转出医院" + (int) (Math.random() * 10)); // 随机设置转出医院 model.setInHosp("随机转入医院" + (int) (Math.random() * 10)); // 随机设置转入医院 model.setOutHosp("广州天河"); // 随机设置转出医院 model.setInHosp("广州海珠"); // 随机设置转入医院 model.setPtServices("科室" + (int) (Math.random() * 10)); // 随机设置患者所在科室 model.setPtDiagnosis("随机诊断信息"); // 随机设置诊断信息 model.setCondition("随机备注信息"); // 随机设置备注信息 ruoyi-system/src/main/java/com/ruoyi/system/domain/TbOrders.java
@@ -3,6 +3,8 @@ import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -14,149 +16,190 @@ * @author wzp * @date 2025-05-01 */ @Getter public class TbOrders extends BaseEntity { private static final long serialVersionUID = 1L; /** 广交的订单 ID,系统唯一创建订单 */ @JsonProperty("OrderID") private Long OrderID; /** 联系人 */ @Excel(name = "联系人") @JsonProperty("LinkPerson") private String LinkPerson; /** 联系电话 */ @Excel(name = "联系电话") @JsonProperty("LinkTel") private String LinkTel; /** 受理电话,来电电话 */ @Excel(name = "受理电话,来电电话") @JsonProperty("AlarmTel") private String AlarmTel; /** 患者姓名 */ @Excel(name = "患者姓名") @JsonProperty("PatientName") private String PatientName; /** 患者性别 */ @Excel(name = "患者性别") @JsonProperty("Sex") private Integer Sex; /** 患者年龄 */ @Excel(name = "患者年龄") @JsonProperty("Age") private String Age; /** 患者体重 */ @Excel(name = "患者体重") @JsonProperty("Kg") private String Kg; /** 患者有无意识 */ @Excel(name = "患者有无意识") @JsonProperty("Sense") private String Sense; /** 现场地址 */ @Excel(name = "现场地址") @JsonProperty("LocalAddress") private String LocalAddress; /** 现场地址经度(目前是 gcj02 坐标系) */ @Excel(name = "现场地址经度", readConverterExp = "目=前是,g=cj02,坐=标系") @JsonProperty("LocalLongitude") private Long LocalLongitude; /** 现场地址纬度 */ @Excel(name = "现场地址纬度") @JsonProperty("LocalLatitude") private Long LocalLatitude; /** 现场所在省 */ @Excel(name = "现场所在省") @JsonProperty("LocalProvince") private String LocalProvince; /** 现场所在城市 */ @Excel(name = "现场所在城市") @JsonProperty("LocalCity") private String LocalCity; /** 现场所在区 */ @Excel(name = "现场所在区") @JsonProperty("LocalDistrict") private String LocalDistrict; /** 送往地址 */ @Excel(name = "送往地址") @JsonProperty("SendAddress") private String SendAddress; /** 送往经度 */ @Excel(name = "送往经度") @JsonProperty("SendLongitude") private Long SendLongitude; /** 送往纬度 */ @Excel(name = "送往纬度") @JsonProperty("SendLatitude") private Long SendLatitude; /** 送往所在省 */ @Excel(name = "送往所在省") @JsonProperty("SendProvince") private String SendProvince; /** 送往所在城市 */ @Excel(name = "送往所在城市") @JsonProperty("SendCity") private String SendCity; /** 送往所在区 */ @Excel(name = "送往所在区") @JsonProperty("SendDistrict") private String SendDistrict; /** 预估金额 */ @Excel(name = "预估金额") @JsonProperty("BookingPrice") private BigDecimal BookingPrice; /** 预约时间(时间类型,精确到小时) */ @Excel(name = "预约时间", readConverterExp = "时=间类型,精确到小时") @JsonProperty("BookingDate") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date BookingDate; /** 病人情况 */ @Excel(name = "病人情况") @JsonProperty("Complaint") private String Complaint; /** 人数 */ @Excel(name = "人数") @JsonProperty("PatientCount") private Long PatientCount; /** 预估预约公里 */ @Excel(name = "预估预约公里") @JsonProperty("BookingKM") private Long BookingKM; /** 普通护送,监护护送(可按照第三方的字典新增或赋值) */ @Excel(name = "普通护送,监护护送", readConverterExp = "可=按照第三方的字典新增或赋值") @JsonProperty("EscortCode") private Long EscortCode; /** 步梯或电梯 */ @Excel(name = "步梯或电梯") @JsonProperty("LiftingCode") private Long LiftingCode; /** 楼层 */ @Excel(name = "楼层") @JsonProperty("LiftingFloor") private Long LiftingFloor; /** 监护,重症(可按照第三方的字典新增或赋值) */ @Excel(name = "监护,重症(可按照第三方的字典新增或赋值)") @JsonProperty("RequirementCode") private Long RequirementCode; /** 转运类型(市内,市外,省外等,可按照第三方的字典新增或赋值) */ @Excel(name = "转运类型", readConverterExp = "市=内,市外,省外等,可按照第三方的字典新增或赋值") @JsonProperty("TypeCode") private Long TypeCode; /** 第三方调用接口返回结果,1-成功,2-失败 */ @Excel(name = "第三方调用接口返回结果,1-成功,2-失败") @JsonProperty("ThirdPartyResult") private Integer ThirdPartyResult; /** 第三方服务ID */ @Excel(name = "第三方服务ID") @JsonProperty("ServiceOrdID") private String ServiceOrdID; /** 第三方服务单号 */ @Excel(name = "第三方服务单号") @JsonProperty("ServiceOrdNo") private String ServiceOrdNo; @JsonProperty("Remark") private String Remark; @JsonProperty("CreateTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date CreateTime; @JsonProperty("UpdateTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date UpdateTime; public void setOrderID(Long OrderID) @@ -164,19 +207,9 @@ this.OrderID = OrderID; } public Long getOrderID() { return OrderID; } public void setLinkPerson(String LinkPerson) { this.LinkPerson = LinkPerson; } public String getLinkPerson() { return LinkPerson; } public void setLinkTel(String LinkTel) @@ -184,19 +217,9 @@ this.LinkTel = LinkTel; } public String getLinkTel() { return LinkTel; } public void setAlarmTel(String AlarmTel) { this.AlarmTel = AlarmTel; } public String getAlarmTel() { return AlarmTel; } public void setPatientName(String PatientName) @@ -204,19 +227,9 @@ this.PatientName = PatientName; } public String getPatientName() { return PatientName; } public void setSex(Integer Sex) { this.Sex = Sex; } public Integer getSex() { return Sex; } public void setAge(String Age) @@ -224,19 +237,9 @@ this.Age = Age; } public String getAge() { return Age; } public void setKg(String Kg) { this.Kg = Kg; } public String getKg() { return Kg; } public void setSense(String Sense) @@ -244,19 +247,9 @@ this.Sense = Sense; } public String getSense() { return Sense; } public void setLocalAddress(String LocalAddress) { this.LocalAddress = LocalAddress; } public String getLocalAddress() { return LocalAddress; } public void setLocalLongitude(Long LocalLongitude) @@ -264,19 +257,9 @@ this.LocalLongitude = LocalLongitude; } public Long getLocalLongitude() { return LocalLongitude; } public void setLocalLatitude(Long LocalLatitude) { this.LocalLatitude = LocalLatitude; } public Long getLocalLatitude() { return LocalLatitude; } public void setLocalProvince(String LocalProvince) @@ -284,19 +267,9 @@ this.LocalProvince = LocalProvince; } public String getLocalProvince() { return LocalProvince; } public void setLocalCity(String LocalCity) { this.LocalCity = LocalCity; } public String getLocalCity() { return LocalCity; } public void setLocalDistrict(String LocalDistrict) @@ -304,19 +277,9 @@ this.LocalDistrict = LocalDistrict; } public String getLocalDistrict() { return LocalDistrict; } public void setSendAddress(String SendAddress) { this.SendAddress = SendAddress; } public String getSendAddress() { return SendAddress; } public void setSendLongitude(Long SendLongitude) @@ -324,19 +287,9 @@ this.SendLongitude = SendLongitude; } public Long getSendLongitude() { return SendLongitude; } public void setSendLatitude(Long SendLatitude) { this.SendLatitude = SendLatitude; } public Long getSendLatitude() { return SendLatitude; } public void setSendProvince(String SendProvince) @@ -344,19 +297,9 @@ this.SendProvince = SendProvince; } public String getSendProvince() { return SendProvince; } public void setSendCity(String SendCity) { this.SendCity = SendCity; } public String getSendCity() { return SendCity; } public void setSendDistrict(String SendDistrict) @@ -364,19 +307,9 @@ this.SendDistrict = SendDistrict; } public String getSendDistrict() { return SendDistrict; } public void setBookingPrice(BigDecimal BookingPrice) { this.BookingPrice = BookingPrice; } public BigDecimal getBookingPrice() { return BookingPrice; } public void setBookingDate(Date BookingDate) @@ -384,19 +317,9 @@ this.BookingDate = BookingDate; } public Date getBookingDate() { return BookingDate; } public void setComplaint(String Complaint) { this.Complaint = Complaint; } public String getComplaint() { return Complaint; } public void setPatientCount(Long PatientCount) @@ -404,19 +327,9 @@ this.PatientCount = PatientCount; } public Long getPatientCount() { return PatientCount; } public void setBookingKM(Long BookingKM) { this.BookingKM = BookingKM; } public Long getBookingKM() { return BookingKM; } public void setEscortCode(Long EscortCode) @@ -424,19 +337,9 @@ this.EscortCode = EscortCode; } public Long getEscortCode() { return EscortCode; } public void setLiftingCode(Long LiftingCode) { this.LiftingCode = LiftingCode; } public Long getLiftingCode() { return LiftingCode; } public void setLiftingFloor(Long LiftingFloor) @@ -444,19 +347,9 @@ this.LiftingFloor = LiftingFloor; } public Long getLiftingFloor() { return LiftingFloor; } public void setRequirementCode(Long RequirementCode) { this.RequirementCode = RequirementCode; } public Long getRequirementCode() { return RequirementCode; } public void setTypeCode(Long TypeCode) @@ -464,19 +357,9 @@ this.TypeCode = TypeCode; } public Long getTypeCode() { return TypeCode; } public void setThirdPartyResult(Integer ThirdPartyResult) { this.ThirdPartyResult = ThirdPartyResult; } public Integer getThirdPartyResult() { return ThirdPartyResult; } public void setServiceOrdID(String ServiceOrdID) @@ -484,30 +367,14 @@ this.ServiceOrdID = ServiceOrdID; } public String getServiceOrdID() { return ServiceOrdID; } public void setServiceOrdNo(String ServiceOrdNo) { this.ServiceOrdNo = ServiceOrdNo; } public String getServiceOrdNo() { return ServiceOrdNo; } public String getRemark(){return Remark;} public void setRemark(String Remark){this.Remark =Remark;} public Date getCreateTime(){return CreateTime;} public void setCreateTime(Date CreateTime){this.CreateTime =CreateTime;} public Date getUpdateTime(){return UpdateTime;} public void setUpdateTime(Date UpdateTime){this.UpdateTime =UpdateTime;} ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml
@@ -95,9 +95,10 @@ where OrderID = #{OrderID} </select> <insert id="insertTbOrders" parameterType="TbOrders" useGeneratedKeys="true" keyProperty="OrderID"> <insert id="insertTbOrders" parameterType="TbOrders"> insert into tb_orders <trim prefix="(" suffix=")" suffixOverrides=","> <if test="OrderID != null">OrderID,</if> <if test="LinkPerson != null">LinkPerson,</if> <if test="LinkTel != null">LinkTel,</if> <if test="AlarmTel != null">AlarmTel,</if> @@ -136,6 +137,7 @@ <if test="UpdateTime != null">UpdateTime,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="OrderID != null">#{OrderID},</if> <if test="LinkPerson != null">#{LinkPerson},</if> <if test="LinkTel != null">#{LinkTel},</if> <if test="AlarmTel != null">#{AlarmTel},</if>