前后餐次时间不能重叠

This commit is contained in:
sxu 2025-07-04 11:19:34 +08:00
parent bd136aad44
commit d07a6d1072
2 changed files with 132 additions and 119 deletions

View File

@ -1,119 +1,119 @@
package com.bonus.canteen.core.basic.controller; //package com.bonus.canteen.core.basic.controller;
//
import java.util.List; //import java.util.List;
import javax.servlet.http.HttpServletResponse; //import javax.servlet.http.HttpServletResponse;
import com.bonus.common.log.enums.OperaType; //import com.bonus.common.log.enums.OperaType;
//import com.bonus.canteen.core.basic.common.annotation.PreventRepeatSubmit; ////import com.bonus.canteen.core.basic.common.annotation.PreventRepeatSubmit;
import io.swagger.annotations.Api; //import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; //import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping; //import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping; //import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable; //import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; //import org.springframework.web.bind.annotation.RestController;
import com.bonus.common.log.annotation.SysLog; //import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.security.annotation.RequiresPermissions; //import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.canteen.core.basic.domain.BasicStallMealtime; //import com.bonus.canteen.core.basic.domain.BasicStallMealtime;
import com.bonus.canteen.core.basic.service.IBasicStallMealtimeService; //import com.bonus.canteen.core.basic.service.IBasicStallMealtimeService;
import com.bonus.common.core.web.controller.BaseController; //import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; //import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.utils.poi.ExcelUtil; //import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.page.TableDataInfo; //import com.bonus.common.core.web.page.TableDataInfo;
//
/** ///**
* 档口餐次配置Controller // * 档口餐次配置Controller
* // *
* @author xsheng // * @author xsheng
* @date 2025-05-25 // * @date 2025-05-25
*/ // */
@Api(tags = "档口餐次配置接口") //@Api(tags = "档口餐次配置接口")
@RestController //@RestController
@RequestMapping("/basic_stall_mealtime") //@RequestMapping("/basic_stall_mealtime")
public class BasicStallMealtimeController extends BaseController { //public class BasicStallMealtimeController extends BaseController {
@Autowired // @Autowired
private IBasicStallMealtimeService basicStallMealtimeService; // private IBasicStallMealtimeService basicStallMealtimeService;
//
/** // /**
* 查询档口餐次配置列表 // * 查询档口餐次配置列表
*/ // */
@ApiOperation(value = "查询档口餐次配置列表") // @ApiOperation(value = "查询档口餐次配置列表")
//@RequiresPermissions("basic:mealtime:list") // //@RequiresPermissions("basic:mealtime:list")
@GetMapping("/list") // @GetMapping("/list")
public TableDataInfo list(BasicStallMealtime basicStallMealtime) { // public TableDataInfo list(BasicStallMealtime basicStallMealtime) {
startPage(); // startPage();
List<BasicStallMealtime> list = basicStallMealtimeService.selectBasicStallMealtimeList(basicStallMealtime); // List<BasicStallMealtime> list = basicStallMealtimeService.selectBasicStallMealtimeList(basicStallMealtime);
return getDataTable(list); // return getDataTable(list);
} // }
//
/** // /**
* 导出档口餐次配置列表 // * 导出档口餐次配置列表
*/ // */
@ApiOperation(value = "导出档口餐次配置列表") // @ApiOperation(value = "导出档口餐次配置列表")
//@PreventRepeatSubmit // //@PreventRepeatSubmit
//@RequiresPermissions("basic:mealtime:export") // //@RequiresPermissions("basic:mealtime:export")
@SysLog(title = "档口餐次配置", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出档口餐次配置") // @SysLog(title = "档口餐次配置", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出档口餐次配置")
@PostMapping("/export") // @PostMapping("/export")
public void export(HttpServletResponse response, BasicStallMealtime basicStallMealtime) { // public void export(HttpServletResponse response, BasicStallMealtime basicStallMealtime) {
List<BasicStallMealtime> list = basicStallMealtimeService.selectBasicStallMealtimeList(basicStallMealtime); // List<BasicStallMealtime> list = basicStallMealtimeService.selectBasicStallMealtimeList(basicStallMealtime);
ExcelUtil<BasicStallMealtime> util = new ExcelUtil<BasicStallMealtime>(BasicStallMealtime.class); // ExcelUtil<BasicStallMealtime> util = new ExcelUtil<BasicStallMealtime>(BasicStallMealtime.class);
util.exportExcel(response, list, "档口餐次配置数据"); // util.exportExcel(response, list, "档口餐次配置数据");
} // }
//
/** // /**
* 获取档口餐次配置详细信息 // * 获取档口餐次配置详细信息
*/ // */
@ApiOperation(value = "获取档口餐次配置详细信息") // @ApiOperation(value = "获取档口餐次配置详细信息")
//@RequiresPermissions("basic:mealtime:query") // //@RequiresPermissions("basic:mealtime:query")
@GetMapping(value = "/{id}") // @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) { // public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(basicStallMealtimeService.selectBasicStallMealtimeById(id)); // return success(basicStallMealtimeService.selectBasicStallMealtimeById(id));
} // }
//
/** // /**
* 新增档口餐次配置 // * 新增档口餐次配置
*/ // */
@ApiOperation(value = "新增档口餐次配置") // @ApiOperation(value = "新增档口餐次配置")
//@PreventRepeatSubmit // //@PreventRepeatSubmit
//@RequiresPermissions("basic:mealtime:add") // //@RequiresPermissions("basic:mealtime:add")
@SysLog(title = "档口餐次配置", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增档口餐次配置") // @SysLog(title = "档口餐次配置", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增档口餐次配置")
@PostMapping // @PostMapping
public AjaxResult add(@RequestBody BasicStallMealtime basicStallMealtime) { // public AjaxResult add(@RequestBody BasicStallMealtime basicStallMealtime) {
try { // try {
return toAjax(basicStallMealtimeService.insertBasicStallMealtime(basicStallMealtime)); // return toAjax(basicStallMealtimeService.insertBasicStallMealtime(basicStallMealtime));
} catch (Exception e) { // } catch (Exception e) {
return error(e.getMessage()); // return error(e.getMessage());
} // }
} // }
//
/** // /**
* 修改档口餐次配置 // * 修改档口餐次配置
*/ // */
@ApiOperation(value = "修改档口餐次配置") // @ApiOperation(value = "修改档口餐次配置")
//@PreventRepeatSubmit // //@PreventRepeatSubmit
//@RequiresPermissions("basic:mealtime:edit") // //@RequiresPermissions("basic:mealtime:edit")
@SysLog(title = "档口餐次配置", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改档口餐次配置") // @SysLog(title = "档口餐次配置", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改档口餐次配置")
@PostMapping("/edit") // @PostMapping("/edit")
public AjaxResult edit(@RequestBody BasicStallMealtime basicStallMealtime) { // public AjaxResult edit(@RequestBody BasicStallMealtime basicStallMealtime) {
try { // try {
return toAjax(basicStallMealtimeService.updateBasicStallMealtime(basicStallMealtime)); // return toAjax(basicStallMealtimeService.updateBasicStallMealtime(basicStallMealtime));
} catch (Exception e) { // } catch (Exception e) {
return error(e.getMessage()); // return error(e.getMessage());
} // }
} // }
//
/** // /**
* 删除档口餐次配置 // * 删除档口餐次配置
*/ // */
@ApiOperation(value = "删除档口餐次配置") // @ApiOperation(value = "删除档口餐次配置")
//@PreventRepeatSubmit // //@PreventRepeatSubmit
//@RequiresPermissions("basic:mealtime:remove") // //@RequiresPermissions("basic:mealtime:remove")
@SysLog(title = "档口餐次配置", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除档口餐次配置") // @SysLog(title = "档口餐次配置", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除档口餐次配置")
@PostMapping("/del/{ids}") // @PostMapping("/del/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) { // public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(basicStallMealtimeService.deleteBasicStallMealtimeByIds(ids)); // return toAjax(basicStallMealtimeService.deleteBasicStallMealtimeByIds(ids));
} // }
} //}

View File

@ -83,6 +83,7 @@ public class BasicStallServiceImpl implements IBasicStallService {
} }
int stallCount = basicStallMapper.insertBasicStall(basicStall); int stallCount = basicStallMapper.insertBasicStall(basicStall);
if (stallCount > 0 && !CollectionUtils.isEmpty(basicStall.getBasicStallMealtimeList())) { if (stallCount > 0 && !CollectionUtils.isEmpty(basicStall.getBasicStallMealtimeList())) {
checkMealtimeList(basicStall.getBasicStallMealtimeList());
basicStallMealtimeMapper.deleteBasicStallMealtimeByStallId(basicStall.getStallId()); basicStallMealtimeMapper.deleteBasicStallMealtimeByStallId(basicStall.getStallId());
List<BasicStallMealtime> mealtimes = basicStall.getBasicStallMealtimeList(); List<BasicStallMealtime> mealtimes = basicStall.getBasicStallMealtimeList();
mealtimes.stream().forEach(o -> o.setStallId(basicStall.getStallId())); mealtimes.stream().forEach(o -> o.setStallId(basicStall.getStallId()));
@ -94,6 +95,17 @@ public class BasicStallServiceImpl implements IBasicStallService {
} }
} }
private void checkMealtimeList(List<BasicStallMealtime> basicStallMealtimeList) {
for (int i = 0; i < basicStallMealtimeList.size() - 1; i++) {
BasicStallMealtime current = basicStallMealtimeList.get(i);
BasicStallMealtime next = basicStallMealtimeList.get(i+1);
if (current.getStartTime().isAfter(next.getStartTime()) || current.getStartTime().isAfter(next.getEndTime()) ||
current.getEndTime().isAfter(next.getStartTime()) || current.getEndTime().isAfter(next.getEndTime())) {
throw new ServiceException("前后餐次时间不能重叠");
}
}
}
/** /**
* 修改档口信息 * 修改档口信息
* *
@ -114,6 +126,7 @@ public class BasicStallServiceImpl implements IBasicStallService {
} }
int stallCount = basicStallMapper.updateBasicStall(basicStall); int stallCount = basicStallMapper.updateBasicStall(basicStall);
if (stallCount > 0 && !CollectionUtils.isEmpty(basicStall.getBasicStallMealtimeList())) { if (stallCount > 0 && !CollectionUtils.isEmpty(basicStall.getBasicStallMealtimeList())) {
checkMealtimeList(basicStall.getBasicStallMealtimeList());
basicStallMealtimeMapper.deleteBasicStallMealtimeByStallId(basicStall.getStallId()); basicStallMealtimeMapper.deleteBasicStallMealtimeByStallId(basicStall.getStallId());
basicStallMealtimeMapper.batchInsertBasicStallMealtime(basicStall.getBasicStallMealtimeList()); basicStallMealtimeMapper.batchInsertBasicStallMealtime(basicStall.getBasicStallMealtimeList());
} }