From 690362d7b03064490850b738ef16c3e0eb2509e8 Mon Sep 17 00:00:00 2001
From: lige <bestlige@outlook.com>
Date: 星期二, 21 十一月 2023 13:32:44 +0800
Subject: [PATCH] 医生排班

---
 ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/MallSchedulingTime.java     |  131 ++++++++
 ltkj-system/src/main/java/com/ltkj/system/service/ISysDeptService.java                   |    3 
 ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java                   |   28 +
 ltkj-hosp/src/main/java/com/ltkj/hosp/dto/MallSchedulingTimeDto.java                     |   50 +++
 ltkj-system/src/main/java/com/ltkj/system/mapper/SysDeptMapper.java                      |    4 
 ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java                           |   18 +
 ltkj-hosp/src/main/java/com/ltkj/mall/service/IMallSchedulingTimeService.java            |   65 ++++
 ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallTimeConfigMapper.java                   |    1 
 ltkj-system/src/main/java/com/ltkj/system/service/impl/SysDeptServiceImpl.java           |    6 
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/StjSchedulingTimeController.java |  365 ++++++++++++++++++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/mall/MallTimeConfigController.java      |    8 
 ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/DoctorUserVo.java                         |   39 ++
 ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallSchedulingTimeMapper.java               |   79 +++++
 ltkj-hosp/src/main/java/com/ltkj/mall/service/impl/MallSchedulingTimeServiceImpl.java    |   98 ++++++
 14 files changed, 890 insertions(+), 5 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/MallTimeConfigController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/MallTimeConfigController.java
index cda9404..9c44b58 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/MallTimeConfigController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/mall/MallTimeConfigController.java
@@ -83,7 +83,7 @@
     /**
      * 鏌ヨ棰勭害鏃堕棿鍒楄〃
      */
-    @PreAuthorize("@ss.hasPermi('mall:timeConfig:list')")
+    //@PreAuthorize("@ss.hasPermi('mall:timeConfig:list')")
     @GetMapping("/list")
     public TableDataInfo list(MallTimeConfig mallTimeConfig) {
         startPage();
@@ -94,7 +94,7 @@
     /**
      * 瀵煎嚭棰勭害鏃堕棿鍒楄〃
      */
-    @PreAuthorize("@ss.hasPermi('mall:timeConfig:export')")
+    //@PreAuthorize("@ss.hasPermi('mall:timeConfig:export')")
     @Log(title = "棰勭害鏃堕棿", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, MallTimeConfig mallTimeConfig) {
@@ -106,7 +106,7 @@
     /**
      * 鑾峰彇棰勭害鏃堕棿璇︾粏淇℃伅
      */
-    @PreAuthorize("@ss.hasPermi('mall:timeConfig:query')")
+    //@PreAuthorize("@ss.hasPermi('mall:timeConfig:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(mallTimeConfigService.selectMallTimeConfigById(id));
@@ -168,7 +168,7 @@
     /**
      * 鏂板棰勭害鏃堕棿
      */
-    @PreAuthorize("@ss.hasPermi('mall:timeConfig:add')")
+    //@PreAuthorize("@ss.hasPermi('mall:timeConfig:add')")
     @Log(title = "棰勭害鏃堕棿", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody MallTimeConfig mallTimeConfig) {
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/StjSchedulingTimeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/StjSchedulingTimeController.java
new file mode 100644
index 0000000..764c938
--- /dev/null
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/StjSchedulingTimeController.java
@@ -0,0 +1,365 @@
+package com.ltkj.web.controller.system;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ltkj.common.annotation.Log;
+import com.ltkj.common.core.controller.BaseController;
+import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.core.domain.entity.*;
+import com.ltkj.common.core.page.TableDataInfo;
+import com.ltkj.common.enums.BusinessType;
+import com.ltkj.common.utils.DateUtils;
+import com.ltkj.common.utils.poi.ExcelUtil;
+import com.ltkj.hosp.dto.MallSchedulingTimeDto;
+import com.ltkj.hosp.service.IDictUserInfoService;
+import com.ltkj.hosp.vodomain.DoctorUserVo;
+import com.ltkj.mall.service.IMallSchedulingTimeService;
+import com.ltkj.system.service.ISysDeptService;
+import com.ltkj.system.service.ISysDictDataService;
+import com.ltkj.system.service.ISysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+/**
+ * 鎺掔彮鏃堕棿Controller
+ *
+ * @author ltkj_璧典匠璞�&鏉庢牸
+ * @date 2023-07-18
+ */
+@RestController
+@RequestMapping("/mall/schedulingTime")
+@Api(tags = "PC绔尰鐢熸帓鐝帴鍙�")
+public class StjSchedulingTimeController extends BaseController {
+    @Autowired
+    private IMallSchedulingTimeService mallSchedulingTimeService;
+    @Autowired
+    private ISysUserService userService;
+    @Resource
+    private IDictUserInfoService userInfoService;
+    @Autowired
+    private ISysDeptService deptService;
+
+    @Autowired
+    private ISysDictDataService dictDataService;
+
+
+    /**
+     * 鏌ヨ鎺掔彮鏃堕棿鏄惁瀛樺湪
+     */
+    @GetMapping("/isExist")
+    public AjaxResult isExist(@RequestParam String time) {
+        if (time != null) {
+            LambdaQueryWrapper<MallSchedulingTime> wq=new LambdaQueryWrapper<>();
+            wq.eq(MallSchedulingTime::getTime,time);
+            List<MallSchedulingTime> list = mallSchedulingTimeService.list(wq);
+            if (list!=null&&list.size()>0){
+                return AjaxResult.success(1);
+            }else {
+                return AjaxResult.success(0);
+            }
+        }
+        return AjaxResult.error("鍑洪敊浜嗭紝璇疯仈绯诲伐浣滀汉鍛橈紒");
+    }
+
+    /**
+     * 鏌ヨ鎺掔彮鏃堕棿鍒楄〃
+     */
+    @GetMapping("/list")
+    @ApiOperation(value = "鏌ヨ鎺掔彮鏃堕棿鍒楄〃")
+    public TableDataInfo list(MallSchedulingTime mallTimeConfig) {
+        startPage();
+        List<MallSchedulingTime> list = mallSchedulingTimeService.selectMallTimeConfigList(mallTimeConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎺掔彮鏃堕棿鍒楄〃
+     */
+//    @PreAuthorize("@ss.hasPermi('mall:timeConfig:export')")
+    @Log(title = "鎺掔彮鏃堕棿", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MallSchedulingTime mallTimeConfig) {
+        List<MallSchedulingTime> list = mallSchedulingTimeService.selectMallTimeConfigList(mallTimeConfig);
+        ExcelUtil<MallSchedulingTime> util = new ExcelUtil<MallSchedulingTime>(MallSchedulingTime.class);
+        util.exportExcel(response, list, "鎺掔彮鏃堕棿鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鎺掔彮鏃堕棿璇︾粏淇℃伅
+     */
+//    @PreAuthorize("@ss.hasPermi('mall:timeConfig:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(mallSchedulingTimeService.getById(id));
+    }
+
+
+
+
+    /**
+     * 杩斿洖褰撳墠琛ㄤ腑鏈�澶ф椂闂�
+     */
+    @GetMapping("/returnLastTime")
+    public AjaxResult returnLastTime() {
+        final MallSchedulingTime one = mallSchedulingTimeService.getOne(new LambdaQueryWrapper<MallSchedulingTime>().orderByDesc(MallSchedulingTime::getTime).last("limit 1"));
+        if (one!=null&&one.getTime().getTime()>new Date().getTime()){
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(one.getTime());
+            calendar.add(Calendar.DATE, 1);
+            Date nextDate = calendar.getTime();
+            return AjaxResult.success(nextDate);
+        }else if (one!=null&&one.getTime().getTime()<new Date().getTime()){
+            Calendar calendar = Calendar.getInstance();
+            Date currentDate = new Date();
+            calendar.setTime(currentDate);
+            calendar.add(Calendar.DATE, 1);
+            Date nextDate = calendar.getTime();
+            return AjaxResult.success(nextDate);
+        }else {
+            Calendar calendar = Calendar.getInstance();
+            Date currentDate = new Date();
+            calendar.setTime(currentDate);
+            calendar.add(Calendar.DATE, 1);
+            Date nextDate = calendar.getTime();
+            return AjaxResult.success(nextDate);
+        }
+    }
+
+
+    /**
+     * 鏂板鎺掔彮鏃堕棿
+     */
+    @PostMapping
+    @ApiOperation(value = "鏂板鍖荤敓鎺掔彮淇℃伅鏁版嵁鎺ュ彛")
+    public AjaxResult add(@RequestBody List<MallSchedulingTime> schedulingTimeList) {
+      if(null !=schedulingTimeList && schedulingTimeList.size()>0){
+          for (MallSchedulingTime schedulingTime : schedulingTimeList) {
+              LambdaQueryWrapper<MallSchedulingTime> wq = new LambdaQueryWrapper<>();
+              wq.eq(MallSchedulingTime::getDeptId,schedulingTime.getDeptId());
+              wq.eq(MallSchedulingTime::getTime,schedulingTime.getTime());
+              wq.eq(MallSchedulingTime::getTimeSlot,schedulingTime.getTimeSlot());
+              wq.eq(MallSchedulingTime::getUserId,schedulingTime.getUserId());
+              wq.eq(MallSchedulingTime::getMOrA,schedulingTime.getMOrA());
+              MallSchedulingTime mallSchedulingTime = mallSchedulingTimeService.getOne(wq);
+              if(null !=mallSchedulingTime){
+                  continue;
+              }
+              SysDept dept = deptService.getById(schedulingTime.getDeptId());
+              schedulingTime.setHospId(dept.getHospId());
+              schedulingTime.setHospName(dept.getHospName());
+              mallSchedulingTimeService.save(schedulingTime);
+          }
+          return AjaxResult.success("鎿嶄綔鎴愬姛!");
+
+      }
+        return AjaxResult.error("鎿嶄綔澶辫触!");
+    }
+
+
+    /**
+     * 淇敼鎺掔彮鏃堕棿
+     */
+    @PutMapping
+    @ApiOperation(value = "淇敼鍖荤敓鎺掔彮淇℃伅鏁版嵁鎺ュ彛")
+    public AjaxResult edit(@RequestBody MallSchedulingTime mallTimeConfig) {
+        return toAjax(mallSchedulingTimeService.updateById(mallTimeConfig));
+    }
+
+
+    /**
+     * 淇敼鍖荤敓鏄惁鍋滆瘖鐘舵�佹帴鍙�
+     */
+    @PostMapping("/updateIsClose")
+    @ApiOperation(value = "淇敼鍖荤敓鏄惁鍋滆瘖鐘舵�佹帴鍙�")
+    public AjaxResult updateIsClose(@RequestBody MallSchedulingTime mallTimeConfig) {
+        MallSchedulingTime schedulingTime = mallSchedulingTimeService.getById(mallTimeConfig.getId());
+        if(null !=schedulingTime){
+            schedulingTime.setIsClose(mallTimeConfig.getIsClose());
+             if (mallSchedulingTimeService.updateById(schedulingTime)) {
+                if(schedulingTime.getIsClose().equals("Y")){
+                    //鍋滆瘖鍚庡彇娑堟墍鏈夊仠璇婂綋澶╃殑鎸傚彿璁板綍
+//                    LambdaQueryWrapper<GhCusRegisterInfo> wq=new LambdaQueryWrapper<>();
+//                    wq.eq(GhCusRegisterInfo::getUserId,schedulingTime.getUserId());
+//                    wq.between(GhCusRegisterInfo::getRegisterTime,DateUtil.beginOfDay(schedulingTime.getTime()),DateUtil.endOfDay(schedulingTime.getTime()));
+//                    List<GhCusRegisterInfo> infoList = cusRegisterInfoService.list(wq);
+//                    if(null !=infoList && infoList.size()>0){
+//                        for (GhCusRegisterInfo registerInfo : infoList) {
+//                            registerInfo.setIsExpiration("Y");
+//                            registerInfo.setIsVisit("Y");
+//                            cusRegisterInfoService.updateById(registerInfo);
+//                            //鑻ユ敹璐硅繕灏嗛��璐�
+//                            //鐭俊鎴栭偖绠卞憡鐭ュ鎴�
+//                        }
+//                    }
+                }
+                return AjaxResult.success();
+            }
+        }
+        return AjaxResult.error();
+    }
+
+    /**
+     * 鍒犻櫎鎺掔彮鏃堕棿
+     */
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "鍒犻櫎鍖荤敓鎺掔彮鏃堕棿鎺ュ彛")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(mallSchedulingTimeService.removeByIds(Arrays.asList(ids)));
+    }
+
+
+    /**
+     * 鑾峰彇鎺掔彮淇℃伅涓存椂鏁版嵁鎺ュ彛
+     */
+    @PostMapping("/getSchedulingInformation")
+    @ApiOperation(value = "鑾峰彇鎺掔彮淇℃伅涓存椂鏁版嵁鎺ュ彛")
+    public AjaxResult getSchedulingInformation(@RequestBody MallSchedulingTimeDto dto) {
+        List<MallSchedulingTime> list=new ArrayList<>();
+        if(null !=dto){
+            if(null !=dto.getStartTime() && null !=dto.getEndTime()){
+                List<Date> dateList = mallSchedulingTimeService.getDateListByBetweenTime(dto.getStartTime(), dto.getEndTime());
+                if(null !=dateList && dateList.size()>0){
+                    if (dto.getMOrA()==1){
+                        for (Date date : dateList) {
+                            MallSchedulingTime schedulingTime =new MallSchedulingTime();
+                            schedulingTime.setTime(DateUtil.parse(DateUtil.format(date,"yyyy-MM-dd")));
+                            schedulingTime.setAllNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setNowNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setWeek(DateUtils.dateToWeek(date));
+                            schedulingTime.setMOrA("涓婂崍");
+                            schedulingTime.setUserId(dto.getUserId());
+                            schedulingTime.setUserName(dto.getUserName());
+                            schedulingTime.setIsClose("N");
+//                              schedulingTime.setTimeSlot(s);
+                            schedulingTime.setNumType(dto.getNumType());
+                            schedulingTime.setDeptId(dto.getDeptId());
+                            schedulingTime.setDeptName(dto.getDeptName());
+                            list.add(schedulingTime);
+                        }
+                    }else if (dto.getMOrA()==2){
+                        for (Date date : dateList) {
+                            MallSchedulingTime schedulingTime =new MallSchedulingTime();
+                            schedulingTime.setTime(DateUtil.parse(DateUtil.format(date,"yyyy-MM-dd")));
+                            schedulingTime.setAllNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setNowNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setWeek(DateUtils.dateToWeek(date));
+                            schedulingTime.setMOrA("涓嬪崍");
+                            schedulingTime.setUserId(dto.getUserId());
+                            schedulingTime.setUserName(dto.getUserName());
+                            schedulingTime.setIsClose("N");
+//                              schedulingTime.setTimeSlot(s);
+                            schedulingTime.setNumType(dto.getNumType());
+                            schedulingTime.setDeptId(dto.getDeptId());
+                            schedulingTime.setDeptName(dto.getDeptName());
+                            list.add(schedulingTime);
+                        }
+                    }else if (dto.getMOrA()==3){
+                        for (Date date : dateList) {
+                            MallSchedulingTime schedulingTime =new MallSchedulingTime();
+                            schedulingTime.setTime(DateUtil.parse(DateUtil.format(date,"yyyy-MM-dd")));
+                            schedulingTime.setAllNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setNowNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime.setWeek(DateUtils.dateToWeek(date));
+                            schedulingTime.setMOrA("涓婂崍");
+                            schedulingTime.setUserId(dto.getUserId());
+                            schedulingTime.setUserName(dto.getUserName());
+                            schedulingTime.setIsClose("N");
+//                              schedulingTime.setTimeSlot(s);
+                            schedulingTime.setNumType(dto.getNumType());
+                            schedulingTime.setDeptId(dto.getDeptId());
+                            schedulingTime.setDeptName(dto.getDeptName());
+                            list.add(schedulingTime);
+
+                            MallSchedulingTime schedulingTime1 =new MallSchedulingTime();
+                            schedulingTime1.setTime(DateUtil.parse(DateUtil.format(date,"yyyy-MM-dd")));
+                            schedulingTime1.setAllNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime1.setNowNum(Long.valueOf(dto.getAllNum()));
+                            schedulingTime1.setWeek(DateUtils.dateToWeek(date));
+                            schedulingTime1.setMOrA("涓嬪崍");
+                            schedulingTime1.setUserId(dto.getUserId());
+                            schedulingTime1.setUserName(dto.getUserName());
+                            schedulingTime1.setIsClose("N");
+//                              schedulingTime.setTimeSlot(s);
+                            schedulingTime1.setNumType(dto.getNumType());
+                            schedulingTime1.setDeptId(dto.getDeptId());
+                            schedulingTime1.setDeptName(dto.getDeptName());
+                            list.add(schedulingTime1);
+                        }
+                    }
+
+                }
+            }
+        }
+        return AjaxResult.success(list);
+    }
+
+
+
+    /**
+     * 鑾峰彇鎵�鏈夊尰鐢熶俊鎭暟鎹垪琛ㄦ帴鍙�
+     */
+    @GetMapping("/getUserListBySchedulingTimt")
+    @ApiOperation(value = "鑾峰彇鎵�鏈夊尰鐢熶俊鎭暟鎹垪琛ㄦ帴鍙�")
+    public AjaxResult getUserListBySchedulingTimt(@RequestParam(required = false) @ApiParam(value = "鍖荤敓濮撳悕") String userName,
+                                                  @RequestParam(required = false) @ApiParam(value = "绉戝") String deptName,
+                                                  @RequestParam(defaultValue = "1") @ApiParam(value = "鍒嗛〉") Integer pageNum,
+                                                  @RequestParam(defaultValue = "10") @ApiParam(value = "涓�椤靛睍绀烘潯鏁�") Integer pageSize) {
+        Page<SysUser> page=new Page<>(pageNum,pageSize);
+        LambdaQueryWrapper<SysUser> wq=new LambdaQueryWrapper<>();
+        if(null !=userName){
+            wq.like(SysUser::getNickName,userName);
+        }
+        if(null !=deptName && !"".equals(deptName)){
+            wq.in(SysUser::getDeptId,deptService.getSysDeptId(deptName));
+        }
+        Page<SysUser> userPage = userService.page(page, wq);
+        List<SysUser> list = userPage.getRecords();
+        List<DoctorUserVo> voList = new ArrayList<>();
+        if(null !=list && list.size()>0){
+            for (SysUser user : list) {
+                DoctorUserVo vo=new DoctorUserVo();
+                vo.setUserId(String.valueOf(user.getUserId()));
+                vo.setUserName(user.getNickName());
+                vo.setDeptId(String.valueOf(user.getDeptId()));
+                vo.setDeptName(deptService.getById(user.getDeptId()).getDeptName());
+                DictUserInfo info = userInfoService.getOne(new LambdaQueryWrapper<DictUserInfo>().eq(DictUserInfo::getUserId,user.getUserId()));
+                if(null !=info){
+                    vo.setCftitle(info.getCftitle());
+                }
+                List<MallSchedulingTime> timeList = mallSchedulingTimeService.list(new LambdaQueryWrapper<MallSchedulingTime>()
+                        .eq(MallSchedulingTime::getUserId, user.getUserId()).orderByDesc(MallSchedulingTime::getTime));
+                if(null !=timeList && timeList.size()>0){
+                    if(null !=timeList.get(0)){
+                        vo.setTime(timeList.get(0).getTime());
+                    }
+                }
+                voList.add(vo);
+            }
+        }
+        Map<String,Object> map=new HashMap<>();
+        map.put("total",page.getTotal());
+        map.put("voList",voList);
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 鑾峰彇棰勭害鏃堕棿娈靛瓧鍏稿垪琛�
+     */
+//    @GetMapping("/getTimeList")
+//    @ApiOperation(value = "鑾峰彇棰勭害鏃堕棿娈靛瓧鍏稿垪琛�")
+//    public AjaxResult getTimeList() {
+//        LambdaQueryWrapper<SysDictData> wq22 = new LambdaQueryWrapper<>();
+//        wq22.eq(SysDictData::getDictType, "yuyue_time_slot");
+//        final List<SysDictData> list = dictDataService.list(wq22);
+//        return success(list);
+//    }
+
+}
diff --git a/ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/MallSchedulingTime.java b/ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/MallSchedulingTime.java
new file mode 100644
index 0000000..ea912b0
--- /dev/null
+++ b/ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/MallSchedulingTime.java
@@ -0,0 +1,131 @@
+package com.ltkj.common.core.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.ltkj.common.annotation.Excel;
+import com.ltkj.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 棰勭害鏃堕棿瀵硅薄 mall_time_config
+ *
+ * @author ltkj_璧典匠璞�&鏉庢牸
+ * @date 2023-07-18
+ */
+
+@Data
+@ApiModel
+public class MallSchedulingTime extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鏃ユ湡")
+    private Date time;
+
+    /**
+     * 棰勭害闄愬彿
+     */
+    @Excel(name = "棰勭害闄愬彿")
+    @ApiModelProperty(value = "棰勭害闄愬彿")
+    private Long allNum;
+
+    /**
+     * 浣欐暟
+     */
+    @Excel(name = "浣欐暟")
+    @ApiModelProperty(value = "浣欐暟")
+    private Long nowNum;
+
+    @ApiModelProperty(value = "鏄熸湡")
+    private String week;
+
+    @ApiModelProperty(value = "涓婂崍鎴栦笅鍗�")
+    private String mOrA;
+
+    @ApiModelProperty(value = "鍖荤敓id")
+    private String userId;
+
+    @ApiModelProperty(value = "鍖荤敓濮撳悕")
+    private String userName;
+
+    @ApiModelProperty(value = "闄㈠尯id")
+    private String hospId;
+
+    @ApiModelProperty(value = "闄㈠尯鍚嶅瓧")
+    private String hospName;
+
+    @ApiModelProperty(value = "鏄惁鍋滆瘖")
+    private String isClose;
+
+    @ApiModelProperty(value = "鏃堕棿娈�")
+    private String timeSlot;
+
+    @ApiModelProperty(value = "鍙风被")
+    private String numType;
+
+    @ApiModelProperty(value = "绉戝id")
+    private String deptId;
+
+
+    @ApiModelProperty(value = "绉戝鍚�")
+    private String deptName;
+
+    @ApiModelProperty(value = "瑙掕壊鍚嶇О")
+    @TableField(exist = false)
+    private String roleName;
+
+    @ApiModelProperty(value = "鍖荤敓澶村儚")
+    @TableField(exist = false)
+    private String avatar;
+
+    /**
+     * 澶勬柟鑱岀О锛圥T10.01.029)
+     */
+    @ApiModelProperty(value = "澶勬柟鑱岀О")
+    @TableField(exist = false)
+    private String cftitle;
+
+    /**
+     * 绠�浠�
+     */
+    @ApiModelProperty(value = "绠�浠�")
+    @TableField(exist = false)
+    private String profile;
+
+    /**
+     * 鎿呴暱棰嗗煙
+     */
+    @ApiModelProperty(value = "鎿呴暱棰嗗煙")
+    @TableField(exist = false)
+    private String expGoodArea;
+
+
+
+    @TableField(exist = false)
+    private String startTime;
+
+
+    @TableField(exist = false)
+    private String endTime;
+
+
+}
diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
index 39e7d23..452077c 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
@@ -8,6 +8,7 @@
 import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
+import java.util.Calendar;
 import java.util.Date;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -162,4 +163,21 @@
         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
         return Date.from(zdt.toInstant());
     }
+    /**
+     * 鏍规嵁鏃ユ湡鑾峰彇 鏄熸湡
+     * @param
+     * @return
+     */
+    public static String dateToWeek(Date date) {
+
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+        String[] weekDays = {"鏄熸湡鏃�", "鏄熸湡涓�", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�"};
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        //涓�鍛ㄧ殑绗嚑澶�
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        if (w < 0)
+            w = 0;
+        return weekDays[w];
+    }
 }
diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
index 6e8df94..d31baca 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
@@ -7489,4 +7489,32 @@
         }
         return realname;
     }
+
+    /**
+     * 鏍规嵁鏃堕棿娈靛垽鏂笂鍗堣繕鏄笅鍗�
+     *
+     * @param timeSlot
+     * @return
+     */
+//    public static String getMorA(String timeSlot){
+//        String reg="";
+//        switch (timeSlot){
+//            case "1":
+//            case "2":
+//            case "3":
+//            case "4":
+//                reg="涓婂崍";
+//                break;
+//
+//            case "5":
+//            case "6":
+//            case "7":
+//                reg="涓嬪崍";
+//                break;
+//
+//            default:break;
+//        }
+//
+//        return reg;
+//    }
 }
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/dto/MallSchedulingTimeDto.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/dto/MallSchedulingTimeDto.java
new file mode 100644
index 0000000..c5e01c4
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/dto/MallSchedulingTimeDto.java
@@ -0,0 +1,50 @@
+package com.ltkj.hosp.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2023/8/23 11:33
+ */
+
+
+@Data
+@ApiModel
+public class MallSchedulingTimeDto {
+
+
+    @ApiModelProperty(value = "鍖荤敓id")
+    private String userId;
+
+    @ApiModelProperty(value = "鍖荤敓濮撳悕")
+    private String userName;
+
+    @ApiModelProperty(value = "绉戝id")
+    private String deptId;
+
+    @ApiModelProperty(value = "绉戝鍚�")
+    private String deptName;
+
+
+    @ApiModelProperty(value = "涓婂崍/涓嬪崍")
+    private Integer mOrA;
+
+    @ApiModelProperty(value = "鍙风被")
+    private String numType;
+
+
+    @ApiModelProperty(value = "鎬绘暟")
+    private Integer allNum;
+
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    private String startTime;
+
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    private String endTime;
+
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/DoctorUserVo.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/DoctorUserVo.java
new file mode 100644
index 0000000..c29ac63
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/DoctorUserVo.java
@@ -0,0 +1,39 @@
+package com.ltkj.hosp.vodomain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
+ * @Author: zjh
+ * @Date: 2023/8/23 13:39
+ */
+
+@Data
+@ApiModel
+public class DoctorUserVo {
+
+
+    @ApiModelProperty(value = "鍖荤敓id")
+    private String userId;
+
+    @ApiModelProperty(value = "鍖荤敓鍚嶅瓧")
+    private String userName;
+
+    @ApiModelProperty(value = "閮ㄩ棬ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "閮ㄩ棬鍚�")
+    private String deptName;
+
+    @ApiModelProperty(value = "澶勬柟鑱岀О")
+    private String cftitle;
+
+    @ApiModelProperty(value = "鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date time;
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallSchedulingTimeMapper.java b/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallSchedulingTimeMapper.java
new file mode 100644
index 0000000..6b66871
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallSchedulingTimeMapper.java
@@ -0,0 +1,79 @@
+package com.ltkj.mall.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ltkj.common.core.domain.entity.MallSchedulingTime;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 棰勭害鏃堕棿Mapper鎺ュ彛
+ *
+ * @author ltkj_璧典匠璞�&鏉庢牸
+ * @date 2023-07-18
+ */
+@Mapper
+public interface MallSchedulingTimeMapper extends BaseMapper<MallSchedulingTime> {
+    /**
+     * 鏌ヨ棰勭害鏃堕棿
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 棰勭害鏃堕棿
+     */
+    public MallSchedulingTime selectMallSchedulingTimeById(Long id);
+
+    /**
+     * 鏌ヨ棰勭害鏃堕棿鍒楄〃
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 棰勭害鏃堕棿闆嗗悎
+     */
+    public List<MallSchedulingTime> selectMallSchedulingTimeList(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 鏂板棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    public int insertMallSchedulingTime(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 淇敼棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    public int updateMallSchedulingTime(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 鍒犻櫎棰勭害鏃堕棿
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteMallSchedulingTimeById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎棰勭害鏃堕棿
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteMallSchedulingTimeByIds(Long[] ids);
+
+
+
+    @Select("SELECT\n" +
+            " date_add( date_sub(#{startTime},interval 1 day), INTERVAL ( cast( help_topic_id AS signed INTEGER ) + 1 ) day ) day \n" +
+            "FROM\n" +
+            " mysql.help_topic \n" +
+            "WHERE\n" +
+            " help_topic_id < DATEDIFF(#{endTime},date_sub(#{startTime},interval 1 day))\n" +
+            "ORDER BY\n" +
+            " help_topic_id")
+    List<Date> getDateListByBetweenTime(@Param("startTime") String startTime,@Param("endTime") String endTime);
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallTimeConfigMapper.java b/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallTimeConfigMapper.java
index 1d40900..48998d4 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallTimeConfigMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/mall/mapper/MallTimeConfigMapper.java
@@ -3,7 +3,6 @@
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ltkj.mall.domain.MallSearchHistory;
 import com.ltkj.mall.domain.MallTimeConfig;
 import org.apache.ibatis.annotations.Mapper;
 
diff --git a/ltkj-hosp/src/main/java/com/ltkj/mall/service/IMallSchedulingTimeService.java b/ltkj-hosp/src/main/java/com/ltkj/mall/service/IMallSchedulingTimeService.java
new file mode 100644
index 0000000..7fc0168
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/mall/service/IMallSchedulingTimeService.java
@@ -0,0 +1,65 @@
+package com.ltkj.mall.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ltkj.common.core.domain.entity.MallSchedulingTime;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 棰勭害鏃堕棿Service鎺ュ彛
+ *
+ * @author ltkj_璧典匠璞�&鏉庢牸
+ * @date 2023-07-18
+ */
+public interface IMallSchedulingTimeService extends IService<MallSchedulingTime> {
+    /**
+     * 鏌ヨ棰勭害鏃堕棿
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 棰勭害鏃堕棿
+     */
+    public MallSchedulingTime selectMallTimeConfigById(Long id);
+
+    /**
+     * 鏌ヨ棰勭害鏃堕棿鍒楄〃
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 棰勭害鏃堕棿闆嗗悎
+     */
+    public List<MallSchedulingTime> selectMallTimeConfigList(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 鏂板棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    public int insertMallTimeConfig(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 淇敼棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    public int updateMallTimeConfig(MallSchedulingTime mallTimeConfig);
+
+    /**
+     * 鎵归噺鍒犻櫎棰勭害鏃堕棿
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑棰勭害鏃堕棿涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteMallTimeConfigByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎棰勭害鏃堕棿淇℃伅
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteMallTimeConfigById(Long id);
+
+    List<Date> getDateListByBetweenTime(String startTime,String endTime);
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/mall/service/impl/MallSchedulingTimeServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/mall/service/impl/MallSchedulingTimeServiceImpl.java
new file mode 100644
index 0000000..ac4e452
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/mall/service/impl/MallSchedulingTimeServiceImpl.java
@@ -0,0 +1,98 @@
+package com.ltkj.mall.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ltkj.common.core.domain.entity.MallSchedulingTime;
+import com.ltkj.common.utils.DateUtils;
+import com.ltkj.mall.mapper.MallSchedulingTimeMapper;
+import com.ltkj.mall.mapper.MallTimeConfigMapper;
+import com.ltkj.mall.service.IMallSchedulingTimeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 棰勭害鏃堕棿Service涓氬姟灞傚鐞�
+ *
+ * @author ltkj_璧典匠璞�&鏉庢牸
+ * @date 2023-07-18
+ */
+@Service
+public class MallSchedulingTimeServiceImpl extends ServiceImpl<MallSchedulingTimeMapper, MallSchedulingTime>  implements IMallSchedulingTimeService {
+    @Autowired
+    private MallSchedulingTimeMapper mallTimeConfigMapper;
+
+    /**
+     * 鏌ヨ棰勭害鏃堕棿
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 棰勭害鏃堕棿
+     */
+    @Override
+    public MallSchedulingTime selectMallTimeConfigById(Long id) {
+        return mallTimeConfigMapper.selectMallSchedulingTimeById(id);
+    }
+
+    /**
+     * 鏌ヨ棰勭害鏃堕棿鍒楄〃
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 棰勭害鏃堕棿
+     */
+    @Override
+    public List<MallSchedulingTime> selectMallTimeConfigList(MallSchedulingTime mallTimeConfig) {
+        return mallTimeConfigMapper.selectMallSchedulingTimeList(mallTimeConfig);
+    }
+
+    /**
+     * 鏂板棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertMallTimeConfig(MallSchedulingTime mallTimeConfig) {
+                mallTimeConfig.setCreateTime(DateUtils.getNowDate());
+            return mallTimeConfigMapper.insertMallSchedulingTime(mallTimeConfig);
+    }
+
+    /**
+     * 淇敼棰勭害鏃堕棿
+     *
+     * @param mallTimeConfig 棰勭害鏃堕棿
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateMallTimeConfig(MallSchedulingTime mallTimeConfig) {
+                mallTimeConfig.setUpdateTime(DateUtils.getNowDate());
+        return mallTimeConfigMapper.updateMallSchedulingTime(mallTimeConfig);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎棰勭害鏃堕棿
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑棰勭害鏃堕棿涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteMallTimeConfigByIds(Long[] ids) {
+        return mallTimeConfigMapper.deleteMallSchedulingTimeByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎棰勭害鏃堕棿淇℃伅
+     *
+     * @param id 棰勭害鏃堕棿涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteMallTimeConfigById(Long id) {
+        return mallTimeConfigMapper.deleteMallSchedulingTimeById(id);
+    }
+
+    @Override
+    public List<Date> getDateListByBetweenTime(String startTime, String endTime) {
+        return mallTimeConfigMapper.getDateListByBetweenTime(startTime,endTime);
+    }
+}
diff --git a/ltkj-system/src/main/java/com/ltkj/system/mapper/SysDeptMapper.java b/ltkj-system/src/main/java/com/ltkj/system/mapper/SysDeptMapper.java
index 169db50..b8ce296 100644
--- a/ltkj-system/src/main/java/com/ltkj/system/mapper/SysDeptMapper.java
+++ b/ltkj-system/src/main/java/com/ltkj/system/mapper/SysDeptMapper.java
@@ -6,6 +6,7 @@
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import com.ltkj.common.core.domain.entity.SysDept;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 閮ㄩ棬绠$悊 鏁版嵁灞�
@@ -118,4 +119,7 @@
      * @return 缁撴灉
      */
     public int deleteDeptById(Long deptId);
+
+    @Select(" SELECT a.dept_id FROM sys_dept a WHERE a.deleted=0  AND a.dept_name like concat('%',#{deptName},'%')")
+    List<String> getSysDeptId(String deptName);
 }
diff --git a/ltkj-system/src/main/java/com/ltkj/system/service/ISysDeptService.java b/ltkj-system/src/main/java/com/ltkj/system/service/ISysDeptService.java
index 7114b45..1df1256 100644
--- a/ltkj-system/src/main/java/com/ltkj/system/service/ISysDeptService.java
+++ b/ltkj-system/src/main/java/com/ltkj/system/service/ISysDeptService.java
@@ -131,4 +131,7 @@
      * @return 缁撴灉
      */
     public int updateDeptStatus(SysDept dept);
+
+
+    List<String> getSysDeptId(String deptName);
 }
diff --git a/ltkj-system/src/main/java/com/ltkj/system/service/impl/SysDeptServiceImpl.java b/ltkj-system/src/main/java/com/ltkj/system/service/impl/SysDeptServiceImpl.java
index 4c6cf06..ba54151 100644
--- a/ltkj-system/src/main/java/com/ltkj/system/service/impl/SysDeptServiceImpl.java
+++ b/ltkj-system/src/main/java/com/ltkj/system/service/impl/SysDeptServiceImpl.java
@@ -321,4 +321,10 @@
     private boolean hasChild(List<SysDept> list, SysDept t) {
         return getChildList(list, t).size() > 0;
     }
+
+
+    @Override
+    public List<String> getSysDeptId(String deptName) {
+        return deptMapper.getSysDeptId(deptName);
+    }
 }

--
Gitblit v1.8.0