package com.whdc.controller; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.whdc.model.entity.WarnMsgFB; import com.whdc.model.vo.ExcelOldDataVo; import com.whdc.service.IWarnMsgFBService; import com.whdc.utils.ExcelCommon; import com.whdc.utils.ResultJson; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Slf4j @Api(tags = "预警叫应 - Controller") @RestController @RequestMapping("/warnmsgfb") public class WarnMsgFBController { @Autowired private IWarnMsgFBService service; //增 @ApiOperation(value = "新增") @PostMapping(value = "/add") public ResultJson insert(@RequestBody @Validated WarnMsgFB dto) { //根据warnid和phone判断是否重复 if (CollectionUtils.isNotEmpty( service.lambdaQuery() .eq(WarnMsgFB::getWarnid,dto.getWarnid()) .eq(WarnMsgFB::getCalledPhone,String.valueOf(dto.getCalledPhone())).list() ) ){ return ResultJson.error("该名称或编码重复"); } boolean save = service.save(dto); return ResultJson.ok(save); } //删 //改 //查 @ApiOperation(value = "查询所有") @PostMapping(value = "/find") public ResultJson find(@RequestBody WarnMsgFB dto) { return ResultJson.ok(service.find(dto)); } @ApiOperation(value = "解析文件数据") @PostMapping(value = "getExcelData") public ResultJson getExcelData(MultipartFile file) { List appends = ExcelCommon.importExcel(file, 0, 1, WarnMsgFB.class); service.saveBatch(appends); List warns = appends.stream().map(WarnMsgFB::getWarnid).collect(Collectors.toList()); List list = service.lambdaQuery().in(WarnMsgFB::getWarnid, warns).list(); Map> map = list.stream().collect(Collectors.groupingBy(WarnMsgFB::getWarnid, Collectors.toList())); map.forEach((k,v) ->{ if (CollectionUtils.isNotEmpty(v) && v.size() > 1){ for (int i = 1; i < v.size(); i++) { service.removeById(v.get(i)); } } }); return ResultJson.ok(); } }