Bladeren bron

Merge remote-tracking branch 'origin/master'

lxy_01 2 weken geleden
bovenliggende
commit
1af91c7840

+ 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;
+    }
+
 
 }
 

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

@@ -11,6 +11,7 @@ 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;
@@ -30,6 +31,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.*;
 
@@ -46,6 +48,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();
@@ -59,21 +63,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;
 
 
     /**

+ 5 - 6
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/meal/mealApplication.vue

@@ -4,16 +4,15 @@
     <van-nav-bar title="报餐" left-text="返回"  @click-left="back" fixed  placeholder  left-arrow/>
   </div>
   <div class="meal-application">
-    <!-- 上方tab页签:晚餐/夜宵 -->
+
     <van-tabs v-model:active="mealType" @change="onMealTypeChange">
       <van-tab v-for="item in meals"
                :key="item.id"
-               :title="item.name"
-               :name="item.id"></van-tab>
-
+               :title="item.name + (item.deadlineTime ? ' (申报截止时间:' + item.deadlineTime + ')' : '')"
+               :name="item.id">
+      </van-tab>
     </van-tabs>
 
-    <!-- 下方tab页签:南厂/北厂 -->
     <van-tabs v-model:active="factory" @change="onFactoryChange">
       <van-tab
           v-for="item in factories"
@@ -29,7 +28,6 @@
       <div v-if="qrcodeUrl && qrStatus== 0" class="qrcode-content">
         <img :src="qrcodeUrl" alt="二维码" class="qrcode-image" />
         <p class="qrcode-tip">请扫描此二维码</p>
-
       </div>
       <div v-else-if="qrcodeUrl && qrStatus== 1" class="qrcode-content">
         <img :src="qrcodeUrl" alt="二维码" class="qrcode-image" />
@@ -166,6 +164,7 @@
             return {
               id: item.id,
               name: item.name,
+              deadlineTime: item.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") {