package cn.besteam.modules.api.controller; import cn.besteam.common.api.vo.Result; import cn.besteam.common.aspect.annotation.AutoLog; import cn.besteam.common.aspect.annotation.LogApi; import cn.besteam.common.aspect.annotation.OpenApi; import cn.besteam.common.constant.CommonConstant; import cn.besteam.common.constant.ErrorCode; import cn.besteam.common.exception.BusinessException; import cn.besteam.modules.medical.dto.MwDisinfectRecordDto; import cn.besteam.modules.medical.entity.MwDeviceAgentDevice; import cn.besteam.modules.medical.entity.MwDisinfectAddress; import cn.besteam.modules.medical.entity.MwDisinfectRecord; import cn.besteam.modules.medical.service.IMwDeviceAgentDeviceService; import cn.besteam.modules.medical.service.IMwDisinfectAddressService; import cn.besteam.modules.medical.service.IMwDisinfectRecordService; import cn.besteam.modules.medical.service.IMwTransitConfigService; import cn.besteam.modules.medical.service.impl.MwDisinfectAddressServiceImpl; import cn.besteam.modules.shiro.authc.util.EnvUtils; import cn.besteam.modules.system.biz.SysDepartmentBiz; import cn.besteam.modules.system.biz.SysDictBiz; import cn.besteam.modules.system.dto.*; import cn.besteam.modules.system.entity.SysDepartment; import cn.besteam.modules.system.entity.SysDictItem; import cn.besteam.modules.system.entity.SysUser; import cn.besteam.modules.system.service.ISysDepartmentService; import cn.besteam.modules.system.service.ISysDictItemService; import cn.besteam.modules.system.service.ISysRolePermissionService; import cn.besteam.modules.system.service.ISysUserService; import cn.besteam.modules.system.vo.AppSysUserVO; import cn.besteam.modules.system.vo.SysDictItemVO; import cn.besteam.modules.system.vo.SysDictVO; import cn.besteam.modules.system.vo.SysUserVO; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.text.SimpleDateFormat; import java.util.*; /** * /** * * @Title: Controller * * @Description: 消毒记录 * * @author: besteam * * @date: 2023-05-16 * * @version: V1.0 * */ @RestController @RequestMapping("/api/mwDisinfectRecord") @Api(value = "消毒记录接口") public class ApiDisinfectRecordController { @Autowired private IMwDisinfectRecordService mwDisinfectRecordService; @Autowired private ISysDepartmentService sysDepartmentService; @Autowired private ISysDictItemService sysDictItemService; @Autowired private ISysUserService sysUserService; @Autowired private SysDictBiz sysDictBiz; @Autowired private IMwDisinfectAddressService mwDisinfectAddressService; /** * 添加 * @param dto * @return */ @PostMapping(value = "/add") @AutoLog(value = "添加消毒记录") @ApiOperation(value = "添加消毒记录", notes = "添加消毒记录", produces = "application/json") public Result add(@RequestBody MwDisinfectRecordDto dto) { Result result = new Result<>(); try { Integer number = mwDisinfectRecordService.count(new QueryWrapper().lambda().eq(MwDisinfectRecord::getDisinfectTime,dto.getDisinfectTime())); if(number<=0){ MwDisinfectRecord mwDisinfectRecord = new MwDisinfectRecord(); BeanUtils.copyProperties(dto,mwDisinfectRecord); SysDepartment sysDepartment = sysDepartmentService.getById(dto.getHospitalId()); SysUser sysUser = sysUserService.getById(dto.getDisinfectUserId()); SysDictItem sysDictItemDisinfect = sysDictItemService.getById(dto.getDisinfectTypeId()); SysDictItem sysDictItemDevice = sysDictItemService.getById(dto.getDeviceTypeId()); mwDisinfectRecord.setCreateTime(new Date()); //mwDisinfectRecord.setCreateBy(EnvUtils.getUser().getId()); mwDisinfectRecord.setDisinfectUserName(sysUser.getName()); mwDisinfectRecord.setHospitalName(sysDepartment.getDepartName()); mwDisinfectRecord.setDisinfectType(sysDictItemDisinfect.getItemText()); mwDisinfectRecord.setDisinfectContent(sysDictItemDisinfect.getItemValue()); mwDisinfectRecord.setDeviceType(sysDictItemDevice.getItemValue()); mwDisinfectRecordService.save(mwDisinfectRecord); } result.success("添加成功!"); } catch (Exception e) { result.error500("操作失败"); } return result; } @GetMapping(value = "/getListDictType") @ApiOperation(value = "获取消毒方式和消毒设备", notes = "获取消毒方式和消毒设备", produces = "application/json") @ApiImplicitParams({ @ApiImplicitParam(value = "获取消毒方式(1=消毒方式,2=消毒设备)", name = "type", dataType = "int"), }) public Result> listDictType(Integer type) { String ids = "11,12"; if (type!=null && type == 1) {//消毒方式 ids = "11"; } else if (type!=null && type == 2) {//消毒设备 ids = "12"; } List sysDictVOS = sysDictBiz.queryListDisinfect(ids); List voList = new ArrayList<>(); for(SysDictItem vo : sysDictVOS){ SysDictItemVO sysDictItemVO= new SysDictItemVO(); BeanUtils.copyProperties(vo,sysDictItemVO); voList.add(sysDictItemVO); } return Result.ok(voList); } /** * 列表查询 * * @return 查询结果 */ @GetMapping(value = "/address/list") @ApiOperation(value = "获取消毒地点列表", notes = "获取消毒地点分页列表", produces = "application/json") public Result> getList() { List hospitalIdList = sysDepartmentService.getSearchHospitalIdList(null); List list = mwDisinfectAddressService.lambdaQuery() .eq(MwDisinfectAddress::getDelFlag, 0) .in(CollUtil.isNotEmpty(hospitalIdList), MwDisinfectAddress::getHospitalId, hospitalIdList) .orderByDesc(MwDisinfectAddress::getCreateTime).list(); return Result.ok(list); } }