From ef52300bf4d6a6a6ce36237e32c0bde285c0ec5e Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Tue, 2 Sep 2025 13:30:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=81=A5=E5=BA=B7=E4=BD=93?= =?UTF-8?q?=E6=A3=80=E6=8E=A5=E5=8F=A3=E3=80=81=E5=81=A5=E5=BA=B7=E4=BD=93?= =?UTF-8?q?=E6=A3=80=E4=B8=80=E4=BD=93=E6=9C=BA=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/healthmachine/bean/BodyResponse.java | 10 ++- .../core/healthmachine/bean/UserData.java | 13 ++-- .../controller/HealthMachineController.java | 33 ++++++++-- .../mapper/HealthMachineMapper.java | 24 +++++++ .../ZhhqPhysicalExaminationController.java | 65 +++++++++++++++++++ .../zhhq/domain/PhysicalExaminationDTO.java | 19 ++++++ .../zhhq/domain/PhysicalExaminationVO.java | 29 +++++++++ .../mapper/ZhhqPhysicalExaminationMapper.java | 25 +++++++ .../mapper/cook/CookMaterialMapper.xml | 2 +- .../mapper/health/HealthChronicMapper.xml | 16 ++--- .../healthmachine/HealthMachineMapper.xml | 23 +++++++ .../zhhq/ZhhqPhysicalExaminationMapper.xml | 29 +++++++++ 12 files changed, 264 insertions(+), 24 deletions(-) create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/mapper/HealthMachineMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqPhysicalExaminationController.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationVO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqPhysicalExaminationMapper.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/healthmachine/HealthMachineMapper.xml create mode 100644 bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqPhysicalExaminationMapper.xml diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/BodyResponse.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/BodyResponse.java index 0bbdfd9..4cec40d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/BodyResponse.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/BodyResponse.java @@ -45,9 +45,15 @@ public class BodyResponse { private T data; // 快速创建成功响应 - public static BodyResponse success(T data) { + public static BodyResponse success() { BodyResponse response = new BodyResponse<>(); - response.setData(data); + response.setReturnCode("FAIL"); + response.setReturnMsg("数据上传成功"); + response.setSuccess(true); + response.setResCode(200); + response.setMessage("数据上传成功"); + response.setStatusCode(200); + response.setResMsg("数据上传成功"); return response; } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/UserData.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/UserData.java index dd669a0..cb33797 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/UserData.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/bean/UserData.java @@ -1,5 +1,7 @@ package com.bonus.canteen.core.healthmachine.bean; +import com.fasterxml.jackson.annotation.JsonProperty; + public class UserData { private String userId; private String nickName; @@ -10,7 +12,6 @@ public class UserData { // 构造方法 public UserData() { - this.isSure = false; // 默认值 } public UserData(String userId, String nickName, String sex, String avatar, int age, boolean isSure) { @@ -62,12 +63,12 @@ public class UserData { public void setAge(int age) { this.age = age; } - - public boolean isSure() { + @JsonProperty("isSure") + public boolean getIsSure() { return isSure; } - - public void setSure(boolean sure) { - isSure = sure; + @JsonProperty("isSure") + public void setIsSure(boolean isSure) { + this.isSure = isSure; } } \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/controller/HealthMachineController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/controller/HealthMachineController.java index e4cfc2d..04e0853 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/controller/HealthMachineController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/controller/HealthMachineController.java @@ -1,12 +1,17 @@ package com.bonus.canteen.core.healthmachine.controller; +import com.alibaba.fastjson.JSON; import com.bonus.canteen.core.healthmachine.bean.*; +import com.bonus.canteen.core.healthmachine.mapper.HealthMachineMapper; +import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.houqin.utils.SM4EncryptUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.validation.Valid; @@ -21,19 +26,33 @@ import javax.validation.Valid; @RequestMapping("/api/anthropometer") @Slf4j public class HealthMachineController extends BaseController { + @Resource + private HealthMachineMapper healthMachineMapper; + private static final String MINUS_ONE = "-1"; @ApiOperation("检查人员是否存在并获取人员信息") @GetMapping({"/getPhoneUser/restful"}) - public BaseUserResponse checkUserIsExist(@Valid UserDTO dto) { - UserData userData = new UserData("1","张三","13800138000","http://example.com/photo.jpg",22,false); - System.out.println("dto = " + dto); - return BaseUserResponse.success(userData); + public String checkUserIsExist(@Valid UserDTO dto) { + //从数据库查询是否存在当前手机 + dto.setPhoneNumber(SM4EncryptUtils.sm4Encrypt(dto.getPhoneNumber())); + UserData userData = healthMachineMapper.checkIsExistCurrentUser(dto); + if (userData == null){ + userData = new UserData("-1","外部人员","man","",18,true); + } + return JSON.toJSONString(BaseUserResponse.success(userData)); } @ApiOperation("健康体检一体机-体检数据上传") @PostMapping({"/userTest/restful"}) - public BodyResponse physicalExaminationDataUpload(@RequestBody @Valid BodyMeasurement dto) { - System.out.println("dto = " + dto); - return BodyResponse.success(dto); + public String physicalExaminationDataUpload(@RequestBody @Valid BodyMeasurement dto) { + try { + if (MINUS_ONE.equals(dto.getUserId())){ + return JSON.toJSONString(BodyResponse.success()); + } + healthMachineMapper.addPhysicalExaminationData(dto); + }catch (Exception e){ + return JSON.toJSONString(BodyResponse.fail("上传数据失败",500,"上传数据失败")); + } + return JSON.toJSONString(BodyResponse.success()); } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/mapper/HealthMachineMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/mapper/HealthMachineMapper.java new file mode 100644 index 0000000..e0ab9a4 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/healthmachine/mapper/HealthMachineMapper.java @@ -0,0 +1,24 @@ +package com.bonus.canteen.core.healthmachine.mapper; + +import com.bonus.canteen.core.healthmachine.bean.BodyMeasurement; +import com.bonus.canteen.core.healthmachine.bean.UserDTO; +import com.bonus.canteen.core.healthmachine.bean.UserData; +import org.apache.ibatis.annotations.Param; + +/** + * @author tqzhang + */ +public interface HealthMachineMapper { + /** + * 从数据库查询是否存在当前手机 + * @param dto 入参 + * @return 用户数据集 + */ + UserData checkIsExistCurrentUser(UserDTO dto); + + /** + * 添加体检数据 + * @param dto 入参 + */ + void addPhysicalExaminationData(@Param("dto") BodyMeasurement dto); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqPhysicalExaminationController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqPhysicalExaminationController.java new file mode 100644 index 0000000..7d02b30 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqPhysicalExaminationController.java @@ -0,0 +1,65 @@ +package com.bonus.canteen.core.zhhq.controller; + +import cn.hutool.core.collection.CollUtil; +import com.bonus.canteen.core.account.constants.AccStatusEnum; +import com.bonus.canteen.core.account.domain.param.AccountInfoQueryParam; +import com.bonus.canteen.core.account.domain.vo.AccInfoDetailsVO; +import com.bonus.canteen.core.account.service.IAccInfoService; +import com.bonus.canteen.core.common.utils.HeaderFetchUtil; +import com.bonus.canteen.core.zhhq.domain.AccountInfoDTO; +import com.bonus.canteen.core.zhhq.domain.AccountInfoVO; +import com.bonus.canteen.core.zhhq.domain.PhysicalExaminationDTO; +import com.bonus.canteen.core.zhhq.domain.PhysicalExaminationVO; +import com.bonus.canteen.core.zhhq.mapper.ZhhqPhysicalExaminationMapper; +import com.bonus.common.core.exception.ServiceException; +import com.bonus.common.core.utils.encryption.Sm4Utils; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.houqin.constant.GlobalConstants; +import com.bonus.common.houqin.utils.SM4EncryptUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import java.util.Map; + +import static com.bonus.canteen.core.common.utils.DateUtil.getCurrentDateStr; + +/** + * 体检信息Controller + * + * @author tqzhang + * @date 2025-09-02 + */ +@Api(tags = "健康体检一体机数据接口") +@RestController +@RequestMapping("/api/zhhq/physical_examination") +@Slf4j +public class ZhhqPhysicalExaminationController extends BaseController { + @Resource + private ZhhqPhysicalExaminationMapper mapper; + + @ApiOperation("根据手机号获取体检数据") + @PostMapping({"/recordByPhone"}) + public AjaxResult recordByPhone(@RequestHeader Map requestHeader, @RequestBody @Valid PhysicalExaminationDTO dto) { + if (!(GlobalConstants.JYY + getCurrentDateStr()).equals(Sm4Utils.decrypt(HeaderFetchUtil.getSign(requestHeader)))) { + throw new ServiceException("访问缺少认证信息"); + } + try { + dto.setSelectPhone(SM4EncryptUtils.sm4Encrypt(dto.getPhone())); + List list = this.mapper.selectRecordByPhone(dto); + if(CollUtil.isEmpty(list)) { + return AjaxResult.error("暂无相关体检数据"); + } + return AjaxResult.success("体检数据查询成功", list); + } catch (Exception e) { + log.error(e.toString(), e); + return AjaxResult.error(null); + } + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationDTO.java new file mode 100644 index 0000000..d3a3592 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationDTO.java @@ -0,0 +1,19 @@ +package com.bonus.canteen.core.zhhq.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author tqzhang + * @version 1.0 + * @date 2025/9/2 + */ +@Data +public class PhysicalExaminationDTO { + @ApiModelProperty(value = "手机号") + @NotNull(message = "手机号不能为空") + private String phone; + private String selectPhone; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationVO.java new file mode 100644 index 0000000..7b5e2ac --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/domain/PhysicalExaminationVO.java @@ -0,0 +1,29 @@ +package com.bonus.canteen.core.zhhq.domain; + +import lombok.Data; + +/** + * @author tqzhang + * @version 1.0 + * @date 2025/9/2 + */ +@Data +public class PhysicalExaminationVO { + private String machineId; + private String userId; + private String userName; + private String sex; + private Integer age; + private Double height; + private Integer weight; + private Double bmi; + private Double bodyFat; + private Double muscle; + private Double boneMass; + private Double waterContent; + private Double extwater; + private Double protein; + private Integer metabolism; + private Integer fatLevel; + private Integer bodyAge; +} \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqPhysicalExaminationMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqPhysicalExaminationMapper.java new file mode 100644 index 0000000..1d1399b --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/mapper/ZhhqPhysicalExaminationMapper.java @@ -0,0 +1,25 @@ +package com.bonus.canteen.core.zhhq.mapper; + +import com.bonus.canteen.core.zhhq.domain.PhysicalExaminationDTO; +import com.bonus.canteen.core.zhhq.domain.PhysicalExaminationVO; +import com.bonus.canteen.core.zhhq.domain.WeekRecipeDetailVO; +import com.bonus.canteen.core.zhhq.domain.WeekRecipeIngredientVO; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.util.List; + +/** + * 获取体检信息接口 + * + * @author tqzhang + * @date 2025-09-02 + */ +public interface ZhhqPhysicalExaminationMapper { + /** + * 根据手机号查询体检记录 + * @param dto 手机号 + * @return 体检记录集合 + */ + List selectRecordByPhone(PhysicalExaminationDTO dto); +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookMaterialMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookMaterialMapper.xml index aa333a8..032394b 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookMaterialMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/cook/CookMaterialMapper.xml @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select cm.material_id, material_name, material_code,cm.img_url, + select DISTINCT cm.material_id, material_name, material_code,cm.img_url, cm.goods_type, bar_code, sale_price, unit_price, sales_mode, shelf_life_type, shelf_life_days, pur_price_ceiling, big_category_id, size, cm.description,cm.create_by, diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/health/HealthChronicMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/health/HealthChronicMapper.xml index a53bb05..91069ef 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/health/HealthChronicMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/health/HealthChronicMapper.xml @@ -1,7 +1,7 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> @@ -19,16 +19,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + insert into health_chronic @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, remark, - + #{chronicName}, #{createBy}, @@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{updateTime}, #{remark}, - + @@ -67,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from health_chronic where chronic_id in + delete from health_chronic where chronic_id in #{chronicId} diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/healthmachine/HealthMachineMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/healthmachine/HealthMachineMapper.xml new file mode 100644 index 0000000..a2ffef3 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/healthmachine/HealthMachineMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + insert into kitchen_staff_physical_examination(staff_id, device_id, sex, age, height, weight, bmi, bodyFat, muscle, boneMass, + waterContent, extwater, protein, metabolism, fatLevel, bodyAge) + values (#{dto.userId},#{dto.machineId},#{dto.sex},#{dto.age},#{dto.height},#{dto.weight},#{dto.bmi},#{dto.bodyFat},#{dto.muscle},#{dto.boneMass},#{dto.waterContent},#{dto.extwater},#{dto.protein} + ,#{dto.metabolism},#{dto.fatLevel},#{dto.bodyAge}) + + \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqPhysicalExaminationMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqPhysicalExaminationMapper.xml new file mode 100644 index 0000000..a29dae6 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/zhhq/ZhhqPhysicalExaminationMapper.xml @@ -0,0 +1,29 @@ + + + + + + +