diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/controller/DeviceDetectionController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/controller/DeviceDetectionController.java new file mode 100644 index 0000000..a96ca93 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/controller/DeviceDetectionController.java @@ -0,0 +1,58 @@ +package com.bonus.canteen.core.device.controller; + +import com.bonus.canteen.core.device.domain.SampleDetail; +import com.bonus.canteen.core.device.domain.UploadModel; +import com.bonus.canteen.core.device.service.IDeviceInfoService; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.page.TableDataInfo; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * @author 10752 + */ +@Api(tags = "食品安全检测接口") +@RestController +@RequestMapping("/detection") +public class DeviceDetectionController extends BaseController { + + @Resource + private IDeviceInfoService deviceInfoService; + + private final ObjectMapper objectMapper = new ObjectMapper(); + @PostMapping("/uploadData") + public String uploadData(@RequestParam("modelJson") String modelJson) { + try { + // 将字符串反序列化为对象 + UploadModel model = objectMapper.readValue(modelJson, UploadModel.class); + // 保存 details + deviceInfoService.saveDetails(model.getDetails()); + // TODO: 保存数据库 或 业务处理 + System.out.println("接收到的数据:" + model.getUsername() + " - " + model.getDwmc()); + + if (model.getDetails() != null) { + model.getDetails().forEach(d -> { + System.out.println("样品:" + d.getYangpinmingcheng() + " -> 检测结果:" + d.getJiancejieguo()); + }); + } + + return "{\"code\":200, \"msg\":\"上传成功\"}"; + } catch (Exception e) { + e.printStackTrace(); + return "{\"code\":500, \"msg\":\"数据解析失败\"}"; + } + } + // 根据条件查询 + @GetMapping("/listByCondition") + public TableDataInfo listByCondition(SampleDetail sampleDetail) { + startPage(); + List detailsByCondition = deviceInfoService.getDetailsByCondition(sampleDetail); + return getDataTable(detailsByCondition); + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/SampleDetail.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/SampleDetail.java new file mode 100644 index 0000000..ec2d14d --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/SampleDetail.java @@ -0,0 +1,20 @@ +package com.bonus.canteen.core.device.domain; + +import lombok.Data; + +@Data +public class SampleDetail { + + private String yangpinmingcheng; + private String jiancejieguo; + private String jiancejieguoCode; + private String jianceleixingCode; + private String lianxidianhua; + private String jianceren; + private String jiancezhi; + private String jiancedidian; + private String jiancexiangmu; + private String yangpinbianhao; + private String jianceriqi; + private String shanghumingcheng; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/UploadModel.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/UploadModel.java new file mode 100644 index 0000000..20f92eb --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/domain/UploadModel.java @@ -0,0 +1,14 @@ +package com.bonus.canteen.core.device.domain; + +import lombok.Data; + +import java.util.List; + +@Data +public class UploadModel { + private String yqbh; + private String password; + private String dwmc; + private String username; + private List details; +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java index 21dfa9b..1fa2282 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/mapper/DeviceInfoMapper.java @@ -2,18 +2,19 @@ package com.bonus.canteen.core.device.mapper; import java.util.List; import com.bonus.canteen.core.device.domain.DeviceInfo; +import com.bonus.canteen.core.device.domain.SampleDetail; import org.apache.ibatis.annotations.Param; /** * 设备资料Mapper接口 - * + * * @author xsheng * @date 2025-05-25 */ public interface DeviceInfoMapper { /** * 查询设备资料 - * + * * @param deviceId 设备资料主键 * @return 设备资料 */ @@ -21,7 +22,7 @@ public interface DeviceInfoMapper { /** * 查询设备资料列表 - * + * * @param deviceInfo 设备资料 * @return 设备资料集合 */ @@ -29,7 +30,7 @@ public interface DeviceInfoMapper { /** * 新增设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -37,7 +38,7 @@ public interface DeviceInfoMapper { /** * 修改设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -45,7 +46,7 @@ public interface DeviceInfoMapper { /** * 删除设备资料 - * + * * @param deviceId 设备资料主键 * @return 结果 */ @@ -53,7 +54,7 @@ public interface DeviceInfoMapper { /** * 批量删除设备资料 - * + * * @param deviceIds 需要删除的数据主键集合 * @return 结果 */ @@ -146,4 +147,8 @@ public interface DeviceInfoMapper { int updateTimeBySn(String sn); int updateTimeByKitchenSn(String sn); + + void saveDetails(List details); + + List getDetailsByCondition(SampleDetail sampleDetail); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java index 028f5a3..d753702 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/IDeviceInfoService.java @@ -2,17 +2,18 @@ package com.bonus.canteen.core.device.service; import java.util.List; import com.bonus.canteen.core.device.domain.DeviceInfo; +import com.bonus.canteen.core.device.domain.SampleDetail; /** * 设备资料Service接口 - * + * * @author xsheng * @date 2025-05-25 */ public interface IDeviceInfoService { /** * 查询设备资料 - * + * * @param deviceId 设备资料主键 * @return 设备资料 */ @@ -20,7 +21,7 @@ public interface IDeviceInfoService { /** * 查询设备资料列表 - * + * * @param deviceInfo 设备资料 * @return 设备资料集合 */ @@ -28,7 +29,7 @@ public interface IDeviceInfoService { /** * 新增设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -36,7 +37,7 @@ public interface IDeviceInfoService { /** * 修改设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -44,7 +45,7 @@ public interface IDeviceInfoService { /** * 批量删除设备资料 - * + * * @param deviceIds 需要删除的设备资料主键集合 * @return 结果 */ @@ -52,7 +53,7 @@ public interface IDeviceInfoService { /** * 删除设备资料信息 - * + * * @param deviceId 设备资料主键 * @return 结果 */ @@ -65,4 +66,8 @@ public interface IDeviceInfoService { void updateTimeBySn(String deviceSn); void updateTimeByKitchenSn(String deviceSn); + + void saveDetails(List details); + + List getDetailsByCondition(SampleDetail sampleDetail); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java index 27f81f9..22e5b7d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/device/service/impl/DeviceInfoServiceImpl.java @@ -1,6 +1,9 @@ package com.bonus.canteen.core.device.service.impl; +import java.util.Collections; import java.util.List; + +import com.bonus.canteen.core.device.domain.SampleDetail; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; @@ -15,7 +18,7 @@ import javax.annotation.Resource; /** * 设备资料Service业务层处理 - * + * * @author xsheng * @date 2025-05-25 */ @@ -28,7 +31,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 查询设备资料 - * + * * @param deviceId 设备资料主键 * @return 设备资料 */ @@ -39,7 +42,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 查询设备资料列表 - * + * * @param deviceInfo 设备资料 * @return 设备资料 */ @@ -50,7 +53,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 新增设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -70,7 +73,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 修改设备资料 - * + * * @param deviceInfo 设备资料 * @return 结果 */ @@ -140,7 +143,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 批量删除设备资料 - * + * * @param deviceIds 需要删除的设备资料主键 * @return 结果 */ @@ -154,7 +157,7 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { /** * 删除设备资料信息 - * + * * @param deviceId 设备资料主键 * @return 结果 */ @@ -183,4 +186,14 @@ public class DeviceInfoServiceImpl implements IDeviceInfoService { } } + @Override + public void saveDetails(List details) { + deviceInfoMapper.saveDetails(details); + } + + @Override + public List getDetailsByCondition(SampleDetail sampleDetail) { + return deviceInfoMapper.getDetailsByCondition(sampleDetail); + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqCookRecipeController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqCookRecipeController.java index ac1cb7e..e8900a1 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqCookRecipeController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/zhhq/controller/ZhhqCookRecipeController.java @@ -35,9 +35,9 @@ public class ZhhqCookRecipeController extends BaseController { @ApiOperation("获取一周菜谱详情") @PostMapping({"/getWeekRecipe"}) public AjaxResult getWeekRecipeDetailList(@RequestHeader Map requestHeader, @RequestBody @Valid WeekRecipeDTO dto) { - /* if (!(GlobalConstants.JYY + getCurrentDateStr()).equals(Sm4Utils.decrypt(HeaderFetchUtil.getSign(requestHeader)))) { + if (!(GlobalConstants.JYY + getCurrentDateStr()).equals(Sm4Utils.decrypt(HeaderFetchUtil.getSign(requestHeader)))) { throw new ServiceException("访问缺少认证信息"); - }*/ + } try { return AjaxResult.success(this.zhhqCookRecipeService.getWeekRecipeDetailList(dto)); } catch (Exception e) { diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DeviceInfoMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DeviceInfoMapper.xml index e52b9bc..13f174a 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DeviceInfoMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/device/DeviceInfoMapper.xml @@ -94,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by di.create_time desc - + + insert into device_info @@ -217,6 +229,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" values (#{deviceId}, #{canteenId}, #{stallId},#{recipeId}, #{createBy}, #{createTime}) + + INSERT INTO kitchen_device_detection ( + yangpinbianhao, yangpinmingcheng, shanghumingcheng, + jianceleixing_code, jiancexiangmu, jiancezhi, + jiancejieguo, jiancejieguo_code, jianceren, + lianxidianhua, jiancedidian, jianceriqi + ) + VALUES + + ( + #{item.yangpinbianhao}, #{item.yangpinmingcheng}, #{item.shanghumingcheng}, + #{item.jianceleixingCode}, #{item.jiancexiangmu}, #{item.jiancezhi}, + #{item.jiancejieguo}, #{item.jiancejieguoCode}, #{item.jianceren}, + #{item.lianxidianhua}, #{item.jiancedidian}, #{item.jianceriqi} + ) + + update device_info @@ -299,7 +328,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from device_info where device_id in + delete from device_info where device_id in #{deviceId} @@ -322,4 +351,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" set last_update_time = unix_timestamp() where device_sn = #{sn} - \ No newline at end of file +