Min 1 год назад
Родитель
Сommit
3936534062

+ 20 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/HolidaySettingController.java

@@ -1,6 +1,7 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.management.platform.entity.HolidaySetting;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.HolidaySettingService;
@@ -38,20 +39,33 @@ public class HolidaySettingController {
     private HttpServletRequest request;
 
     @RequestMapping("/holidaySetting")
-    public HttpRespMsg holidaySetting(String date,String userIds,String deptIds){
+    public HttpRespMsg holidaySetting(HolidaySetting holidaySetting){
         HttpRespMsg msg=new HttpRespMsg();
-        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        HolidaySetting holidaySetting=new HolidaySetting();
         holidaySetting.setCompanyId(companyId);
-        holidaySetting.setHolidayDate(LocalDate.parse(date,df));
-        holidaySetting.setTargetUsers(userIds);
-        holidaySetting.setTargetDepts(deptIds);
         if(!holidaySettingService.saveOrUpdate(holidaySetting)){
             msg.setError("验证失败");
         }
         return msg;
     }
 
+    @RequestMapping("/list")
+    public HttpRespMsg list(){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<HolidaySetting> holidaySettings = holidaySettingService.list(new LambdaQueryWrapper<HolidaySetting>().eq(HolidaySetting::getCompanyId, companyId));
+        msg.setData(holidaySettings);
+        return msg;
+    }
+
+    @RequestMapping("/delete")
+    public HttpRespMsg delete(Integer id){
+        HttpRespMsg msg=new HttpRespMsg();
+        if(!holidaySettingService.removeById(id)){
+            msg.setError("验证失败");
+        }
+        return msg;
+    }
+
 }
 

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/HolidaySetting.java

@@ -19,7 +19,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2024-04-09
+ * @since 2024-04-10
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -42,6 +42,12 @@ public class HolidaySetting extends Model<HolidaySetting> {
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate holidayDate;
 
+    /**
+     * 0-全公司 1-部分成员 有效范围
+     */
+    @TableField("range_type")
+    private Integer rangeType;
+
     @TableField("target_users")
     private String targetUsers;
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/HolidaySettingMapper.xml

@@ -7,13 +7,14 @@
         <id column="id" property="id" />
         <result column="company_id" property="companyId" />
         <result column="holiday_date" property="holidayDate" />
+        <result column="range_type" property="rangeType" />
         <result column="target_users" property="targetUsers" />
         <result column="target_depts" property="targetDepts" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, holiday_date, target_users, target_depts
+        id, company_id, holiday_date, range_type, target_users, target_depts
     </sql>
 
 </mapper>

Разница между файлами не показана из-за своего большого размера
+ 1400 - 2334
fhKeeper/formulahousekeeper/ops-platform/octopus.log


+ 3 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -463,7 +463,9 @@ return {
     addLoading:false,
     importingData:false,
     showImportResult:false,
-    importResultMsg:null
+    importResultMsg:null,
+    filterText:'',
+    wxFilterText:''
 }
 },
 computed: {},

+ 115 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -432,6 +432,13 @@
             <span v-if="timeType.needDeptAudit == 1" style="margin-left:10px;color:#999;">{{ $t('eachdepartment') }}</span>
         </div>
 
+        <!-- 特殊节假日设置 -->
+        <div class="yanjiu">
+            <p style="margin-left:10px;color:#666;">{{'特殊节假日设置'}}</p>
+            <el-button size="small" type="primary" @click="holidaySeeting()">设置</el-button>
+            <span style="margin-left:10px;color:#999;">{{'设置部门或人员的特殊节假日'}}</span>
+        </div>
+
         <!-- 是否开启主项目管理 -->
         <!-- <div class="yanjiu">
             <p style="margin-left:10px;color:#666;">是否开启主项目管理</p>
@@ -442,6 +449,57 @@
         <div style="width:80px;margin:0 auto;padding:20px;">
             <el-button  type="primary" @click="submitInsert" :loading="addLoading">{{ $t('save') }}</el-button>
         </div>
+        <!-- 特殊节假日设置列表 -->
+        <el-dialog :title="'特殊节假日列表'" show-header="false" v-if="holidaySeetingDialog" :visible.sync="holidaySeetingDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
+            <el-table :data="holidaySeetingDatas" highlight-current-row  height="400" style="width: 100%;">
+            <el-table-column prop="holidayDate" width="120" :label="'日期'">
+            </el-table-column>
+            <el-table-column prop="name" :label="'有效范围'" >
+                <template slot-scope="scope">
+                    {{scope.row.rangeType==0?"全公司":"部分成员"}}
+                </template>
+            </el-table-column>
+            <el-table-column prop="name" :label="'有效部门'" ></el-table-column>
+            <el-table-column prop="name" :label="'有效人员'" ></el-table-column>
+            <el-table-column :label="$t('operation')" width="150">
+                <template slot-scope="scope" >
+                    <el-button size="small" type="primary" @click="addNewHolidaySeeting(scope.row)">{{ $t('bian-ji') }}</el-button>
+                    <el-button size="small" type="danger" @click="deleteSubPro(scope.row)">{{ $t('btn.delete') }}</el-button>
+                </template>
+            </el-table-column>
+            </el-table>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="holidaySeetingDialog = false" >{{ $t('Shutdown') }}</el-button>
+                <el-button type="primary" @click="addNewHolidaySeeting()" >{{ $t('addData') }}</el-button>
+            </div>
+        </el-dialog>
+        <!-- 新增节假日设置 -->
+        <el-dialog :title="'特殊节假日设置'" show-header="false" v-if="addHolidaySeeting" :visible.sync="addHolidaySeeting" :close-on-click-modal="false" customClass="customWidth" width="400px">
+            <el-form ref="form" :model="holidaySeetingForm" label-width="80px">
+                <el-form-item label="日期">
+                    <el-date-picker v-model="holidaySeetingForm.holidayDate"
+                    :editable="false"
+                    format="yyyy-MM-dd" 
+                    value-format="yyyy-MM-dd"
+                    :clearable="false" type="date" 
+                    :placeholder="$t('optiondate')"></el-date-picker>
+                </el-form-item>
+                <el-form-item label="有效范围">
+                    <el-radio v-model="holidaySeetingForm.rangeType" label="0">全公司</el-radio>
+                    <el-radio v-model="holidaySeetingForm.rangeType" label="1">部分成员</el-radio>
+                </el-form-item>
+                <el-form-item v-if="holidaySeetingForm.rangeType==1"label="有效部门">
+
+                </el-form-item>
+                <el-form-item v-if="holidaySeetingForm.rangeType==1" label="有效人员">
+
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="addHolidaySeeting = false" >{{ $t('Shutdown') }}</el-button>
+                <el-button type="primary" @click="submitInsertHolidaySeeting()" >{{'保存'}}</el-button>
+            </div>
+        </el-dialog>
         <!-- 维护数据 -->
         <el-dialog :title="$t('maintenanceDatalist')" show-header="false" v-if="subProjectVisible" :visible.sync="subProjectVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-table :data="subProjectList" highlight-current-row  height="400" style="width: 100%;">
@@ -728,6 +786,12 @@
                 searchPersonnelFlg: false,
                 searchPersonnelFlgnum: 1,
                 options: [],
+                holidaySeetingDialog:false,
+                addHolidaySeeting:false,
+                holidaySeetingForm:{
+                    rangeType:"0"
+                },
+                holidaySeetingDatas:[]
             };
         },
         watch: {
@@ -758,6 +822,26 @@
             }, 1000)
         },
          methods: {
+            submitInsertHolidaySeeting(){
+                this.http.post('/holiday-setting/holidaySetting',this.holidaySeetingForm,res => {
+                    if(res.code == 'ok'){
+                        this.$message({
+                            message: "新增成功",
+                            type: 'success'
+                        })
+                    }else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        })
+                    }
+                },err => {
+                    this.$message({
+                        message: err,
+                        type: 'error'
+                    })
+                })
+            },
             onHideTask() {
                 if (this.timeType.hideTask) {
                     //任务必填属性变为false
@@ -768,7 +852,38 @@
                 if (this.timeType.notAllowedOnNonWorkday) {
                     this.timeType.includeWeekends = false;
                 }
+            },
+            addNewHolidaySeeting(item){
+                if(item) {
+                    this.holidaySeetingForm.holidayDate = item.holidayDate
+                    this.holidaySeetingForm.id = item.id
+                    this.holidaySeetingForm.rangeType = item.rangeType+""
+                }
+                this.addHolidaySeeting = true;
+            },
+            holidaySeeting(){
+                this.holidaySeetingDialog=true,
+                this.getHolidaySeetingList()
             },  
+            // 获取节假日设置列表
+            getHolidaySeetingList(){
+                this.http.post('/holiday-setting/list',{
+                },res => {
+                    if(res.code == 'ok'){
+                        this.holidaySeetingDatas=res.data
+                    }else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        })
+                    }
+                },err => {
+                    this.$message({
+                        message: err,
+                        type: 'error'
+                    })
+                })
+            },
             getDept(){
                 this.http.post('/department/list',{
                 },res => {