Newspaper 1 سال پیش
والد
کامیت
a71dd6d61d

+ 66 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EggProductionController.java

@@ -0,0 +1,66 @@
+package com.huimv.guowei.admin.controller;
+
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.guowei.admin.common.utils.Result;
+import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.EggProduction;
+import com.huimv.guowei.admin.entity.dto.EggProductionDto;
+import com.huimv.guowei.admin.service.IEggProductionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author newspaper
+ * @since 2023-11-28
+ */
+@RestController
+@RequestMapping("/egg-production")
+@CrossOrigin
+public class EggProductionController {
+    @Autowired
+    private IEggProductionService eggProductionService;
+
+    @PostMapping("/list")
+    public Result add(@RequestBody Map<String,String> paramsMap){
+        String farmId = paramsMap.get("farmId");
+        List<EggProduction> eggProductions = eggProductionService.list(new QueryWrapper<EggProduction>().eq("farm_id", farmId).orderByAsc("event_type"));
+        if (CollUtil.isEmpty(eggProductions)){
+            return new Result(ResultCode.SUCCESS,new ArrayList());
+        }
+        return new Result(ResultCode.SUCCESS,eggProductions);
+    }
+
+    @PostMapping("/update")
+    public Result add(@RequestBody EggProductionDto eggProductionDto){
+        List<EggProduction> list = eggProductionDto.getList();
+        EggProduction eggProduction1 = list.stream().filter(eggProduction -> eggProduction.getEventType().equals(0)).findFirst().orElse(null);
+        if (eggProduction1.getStartTime().isAfter(eggProduction1.getEndTime())){
+            return new Result(10001,"起始时间不能晚于结束时间",false);
+        }
+        EggProduction eggProduction2 = list.stream().filter(eggProduction -> eggProduction.getEventType().equals(1)).findFirst().orElse(null);
+        if (eggProduction2.getStartTime().isAfter(eggProduction2.getEndTime())){
+            return new Result(10001,"起始时间不能晚于结束时间",false);
+        }
+        if (isTimeOverlap(eggProduction1.getStartTime(),eggProduction1.getEndTime(),eggProduction2.getStartTime(),eggProduction2.getEndTime())) {
+            return new Result(10001,"存在时间重叠",false);
+        }
+        eggProductionService.saveOrUpdateBatch(list);
+        return Result.SUCCESS();
+    }
+
+    public boolean isTimeOverlap(LocalTime start1, LocalTime end1, LocalTime start2, LocalTime end2) {
+        return !(end1.isBefore(start2) || start1.isAfter(end2));
+    }
+}

+ 57 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/EggProduction.java

@@ -0,0 +1,57 @@
+package com.huimv.guowei.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author newspaper
+ * @since 2023-11-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("egg_production")
+public class EggProduction implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 开始时间
+     */
+    @TableField("start_time")
+    private LocalTime startTime;
+
+    /**
+     * 结束时间
+     */
+    @TableField("end_time")
+    private LocalTime endTime;
+
+    /**
+     * 0:捡蛋 1:上料
+     */
+    @TableField("event_type")
+    private Integer eventType;
+
+    /**
+     * 牧场编号
+     */
+    @TableField("farm_id")
+    private Integer farmId;
+
+
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/dto/EggProductionDto.java

@@ -0,0 +1,11 @@
+package com.huimv.guowei.admin.entity.dto;
+
+import com.huimv.guowei.admin.entity.EggProduction;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EggProductionDto {
+    private List<EggProduction> list;
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EggProductionMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.guowei.admin.mapper;
+
+import com.huimv.guowei.admin.entity.EggProduction;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author newspaper
+ * @since 2023-11-28
+ */
+public interface EggProductionMapper extends BaseMapper<EggProduction> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IEggProductionService.java

@@ -0,0 +1,16 @@
+package com.huimv.guowei.admin.service;
+
+import com.huimv.guowei.admin.entity.EggProduction;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author newspaper
+ * @since 2023-11-28
+ */
+public interface IEggProductionService extends IService<EggProduction> {
+
+}

+ 20 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EggProductionServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.guowei.admin.service.impl;
+
+import com.huimv.guowei.admin.entity.EggProduction;
+import com.huimv.guowei.admin.mapper.EggProductionMapper;
+import com.huimv.guowei.admin.service.IEggProductionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author newspaper
+ * @since 2023-11-28
+ */
+@Service
+public class EggProductionServiceImpl extends ServiceImpl<EggProductionMapper, EggProduction> implements IEggProductionService {
+
+}

+ 10 - 0
huimv-admin/src/main/resources/mapper/EggProductionMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.guowei.admin.mapper.EggProductionMapper">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, start_time, end_time, event_type, farm_id
+    </sql>
+
+</mapper>