Procházet zdrojové kódy

报餐功能-截止时间

yusm před 2 týdny
rodič
revize
a2f386c6c6

+ 44 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FactoryController.java

@@ -3,6 +3,7 @@ package com.management.platform.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.Factory;
+import com.management.platform.entity.MealTypes;
 import com.management.platform.service.FactoryService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalDateTime;
+
 /**
  * <p>
  *  前端控制器
@@ -31,6 +34,47 @@ public class FactoryController {
        return msg;
     }
 
+    @RequestMapping("/updateFactory")
+    public HttpRespMsg updateMeal(Factory factory){
+        HttpRespMsg msg = new HttpRespMsg();
+        LocalDateTime now = LocalDateTime.now();
+        factory.setUpdateAt(now);
+        boolean update = factoryService.updateById(factory);
+        if(update){
+            msg.setCode("ok");
+        }else{
+            msg.setCode("error");
+        }
+        return msg;
+    }
+    @RequestMapping("/deleteFactory")
+    public HttpRespMsg deleteMealType(Integer id){
+        HttpRespMsg msg = new HttpRespMsg();
+        boolean delete = factoryService.removeById(id);
+        if(delete){
+            msg.setCode("ok");
+        }else{
+            msg.setCode("error");
+        }
+        return msg;
+    }
+    @RequestMapping("/addFactory")
+    public HttpRespMsg addMealType(Factory factory){
+        HttpRespMsg msg = new HttpRespMsg();
+        LocalDateTime now = LocalDateTime.now();
+        MealTypes mealType = new MealTypes();
+        mealType.setCreateAt(now);
+        mealType.setName(factory.getName());
+        mealType.setIsActive(factory.getIsActive());
+        boolean save = factoryService.save(factory);
+        if(save){
+            msg.setCode("ok");
+        }else{
+            msg.setCode("error");
+        }
+        return msg;
+    }
+
 
 }
 

+ 14 - 9
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/MealApplicationsController.java

@@ -11,8 +11,10 @@ import com.google.zxing.client.j2se.MatrixToImageWriter;
 import com.google.zxing.common.BitMatrix;
 import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
 import com.management.platform.entity.MealApplications;
+import com.management.platform.entity.MealTypes;
 import com.management.platform.entity.User;
 import com.management.platform.service.MealApplicationsService;
+import com.management.platform.service.MealTypesService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -27,6 +29,7 @@ import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 
@@ -43,6 +46,8 @@ import java.util.*;
 public class MealApplicationsController {
     @Autowired
     private MealApplicationsService mealApplicationsService;
+    @Autowired
+    private MealTypesService mealTypeService;
     @RequestMapping("/apply")
     public HttpRespMsg apply(HttpServletRequest request,Integer mealType, String factory){
         HttpRespMsg msg = new HttpRespMsg();
@@ -56,21 +61,21 @@ public class MealApplicationsController {
         if (first.isPresent()){
             return msg.fail("已申报过");
         }
-//        HttpRespMsg qrCode = this.getQrCode(request, mealType, factory);
-//        if (qrCode.getCode().equals("ok")){
-//            return  msg.fail("已申报过");
-//        }
+        MealTypes mealCategory = mealTypeService.getById(mealType);
+
         try {
-            // 生成二维码内容
-//            String qrContent = "mealId:" + mealType + ",factoryId:" + factory + ",userId:" + userId;
-//            // 生成二维码图片
-//            String qrCodeBase64 = generateQRCode(qrContent, 300, 300);
             MealApplications mealApplications = new MealApplications();
             mealApplications.setUserId(userId);
             mealApplications.setMealTypeId(mealType);
             mealApplications.setFactoryId(Integer.valueOf(factory));
-//            mealApplications.setQrCode(qrCodeBase64);
             LocalDateTime now = LocalDateTime.now();
+            if (mealCategory != null && mealCategory.getDeadlineTime()!=null && !mealCategory.getDeadlineTime().isEmpty()){
+                LocalTime deadlineTime = LocalTime.parse(mealCategory.getDeadlineTime());
+                LocalDateTime deadlineDateTime = LocalDateTime.of(LocalDate.now(), deadlineTime);
+                if (now.isAfter(deadlineDateTime)){
+                    return msg.fail("已超过截止时间,报餐截止时间为:"+mealCategory.getDeadlineTime());
+                }
+            }
 
             mealApplications.setApplicationDate(now.toLocalDate());
             mealApplications.setAppliedAt(now);

+ 1 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/MealTypesController.java

@@ -68,6 +68,7 @@ public class MealTypesController {
         mealType.setCreateAt(now);
         mealType.setName(mealTypes.getName());
         mealType.setIsActive(mealTypes.getIsActive());
+        mealType.setDeadlineTime(mealTypes.getDeadlineTime());
         boolean save = mealTypesService.save(mealType);
         if(save){
             msg.setCode("ok");

+ 1 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/MealTypes.java

@@ -46,10 +46,8 @@ public class MealTypes extends Model<MealTypes> {
     /**
      * 开始时间
      */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern="yyyy-MM-dd")
     @TableField("deadline_time")
-    private LocalDateTime deadlineTime;
+    private String deadlineTime;
 
 
     /**

+ 10 - 10
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/settings/factorySetting.vue

@@ -2,7 +2,7 @@
   <section>
     <el-col :span="24" class="toolbar" style="padding-bottom: 0px;position:sticky;top:0;z-index:1002">
       <el-form :inline="true">
-        <el-form-item label="餐别设置">
+        <el-form-item label="厂区设置">
         </el-form-item>
       </el-form>
     </el-col>
@@ -14,7 +14,7 @@
 
       <el-table :data="tableData" border style="width: 100%;">
         <el-table-column  type="index" label="序号" width="80" align="center"></el-table-column>
-        <el-table-column prop="name" label="餐别名称" align="center"></el-table-column>
+        <el-table-column prop="name" label="厂区名称" align="center"></el-table-column>
         <el-table-column label="是否启用" width="120" align="center">
           <template slot-scope="scope">
             <el-tag :type="scope.row.isActive === 1 ? 'success' : 'danger'">
@@ -40,8 +40,8 @@
     <!-- 新增/编辑对话框 -->
     <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="500px">
       <el-form :model="formData" :rules="formRules" ref="formRef" label-width="100px">
-        <el-form-item label="餐别名称" prop="name">
-          <el-input v-model="formData.name" placeholder="请输入餐别名称"></el-input>
+        <el-form-item label="厂区名称" prop="name">
+          <el-input v-model="formData.name" placeholder="请输入厂区名称"></el-input>
         </el-form-item>
         <el-form-item label="是否启用">
           <el-switch
@@ -88,7 +88,7 @@
   methods: {
     // 获取数据
     fetchData() {
-      this.http.post('/meal-types/getMeals', {},
+      this.http.post('/factory/getFactories', {},
           res => {
             if (res.code == "ok") {
               this.tableData = res.data;
@@ -118,7 +118,7 @@
 
     // 编辑按钮点击事件
     handleEdit(row) {
-      this.dialogTitle = '编辑餐别';
+      this.dialogTitle = '编辑厂区';
       this.isEdit = true;
       this.formData = { ...row };
       this.dialogVisible = true;
@@ -131,7 +131,7 @@
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        this.http.post('/meal-types/deleteMealType', {
+        this.http.post('/factory/deleteFactory', {
           id: row.id,
         }, res => {
           if (res.code == "ok") {
@@ -170,7 +170,7 @@
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        this.http.post('/meal-types/updateMeal', {
+        this.http.post('/factory/updateFactory', {
           id: row.id,
           isActive: newisActive
         }, res => {
@@ -205,7 +205,7 @@
       this.$refs.formRef.validate((valid) => {
         if (valid) {
           if (this.isEdit) {
-            this.http.post('/meal-types/updateMeal', {
+            this.http.post('/factory/updateFactory', {
                   id: this.formData.id,
                   name: this.formData.name,
                   isActive: this.formData.isActive
@@ -234,7 +234,7 @@
             );
           } else {
 
-            this.http.post('/meal-types/addMealType', this.formData,
+            this.http.post('/factory/addFactory', this.formData,
                 res => {
                   if (res.code == "ok") {
                     this.$message({

+ 16 - 2
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/settings/mealTypeSetting.vue

@@ -15,6 +15,7 @@
       <el-table :data="tableData" border style="width: 100%;">
         <el-table-column  type="index" label="序号" width="80" align="center"></el-table-column>
         <el-table-column prop="name" label="餐别名称" align="center"></el-table-column>
+        <el-table-column prop="deadlineTime" label="申报截止日期" align="center"></el-table-column>
         <el-table-column label="是否启用" width="120" align="center">
           <template slot-scope="scope">
             <el-tag :type="scope.row.isActive === 1 ? 'success' : 'danger'">
@@ -43,6 +44,14 @@
         <el-form-item label="餐别名称" prop="name">
           <el-input v-model="formData.name" placeholder="请输入餐别名称"></el-input>
         </el-form-item>
+        <el-form-item label="截止日期" prop="deadlineTime">
+          <el-time-picker
+              v-model="formData.deadlineTime"
+              value-format="HH:mm:ss"
+              format="HH:mm:ss"
+              placeholder="选择截止时间">
+          </el-time-picker>
+        </el-form-item>
         <el-form-item label="是否启用">
           <el-switch
               v-model="formData.isActive"
@@ -71,11 +80,15 @@
       formData: {
         id: null,
         name: '',
-        isActive: 1
+        isActive: 1,
+        deadlineTime: ''
       },
       formRules: {
         name: [
           { required: true, message: '请输入餐别名称', trigger: 'blur' }
+        ],
+        deadlineTime: [
+          { required: true, message: '请选择截止时间', trigger: 'change' }
         ]
       }
     };
@@ -208,7 +221,8 @@
             this.http.post('/meal-types/updateMeal', {
                   id: this.formData.id,
                   name: this.formData.name,
-                  isActive: this.formData.isActive
+                  isActive: this.formData.isActive,
+                  deadlineTime: this.formData.deadlineTime
                 },
               res => {
                 if (res.code == "ok") {