package com.glxp.api.controller.dev; import cn.hutool.core.util.IdUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.FileConstant; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.dev.DeviceAssetContractEntity; import com.glxp.api.req.dev.PostDeviceContractRequest; import com.glxp.api.req.inv.FilterInvContractRequest; import com.glxp.api.req.system.DeleteDeviceFileRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.dev.DeviceAssetContractService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.io.File; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.List; /** * 设备资质证书,技术材料相关 */ @Slf4j @RestController public class DeviceAssetContractController extends BaseController { @Value("${file_path}") private String filePath; @Resource private DeviceAssetContractService deviceAssetContractService; @Resource private CustomerService customerService; @AuthRuleAnnotation("") @GetMapping("/inv/device/contract/filter") public BaseResponse filterDeviceContract(FilterInvContractRequest filterInvContractRequest) { List deviceAssetContractEntityList = deviceAssetContractService.filterDeviceContract(filterInvContractRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(deviceAssetContractEntityList); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(deviceAssetContractEntityList); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("") @PostMapping("/inv/info/insertDeviceContract") @Log(title = "资质证书", businessType = BusinessType.INSERT) public BaseResponse insertDeviceContract(@RequestBody DeviceAssetContractEntity deviceAssetContractEntity) { String userId = customerService.getUserId()+ ""; LocalDate now = LocalDate.now(); deviceAssetContractEntity.setCreateTime(now); deviceAssetContractEntity.setUpdateTime(now); deviceAssetContractEntity.setCreateUser(userId); deviceAssetContractEntity.setUpdateUser(userId); deviceAssetContractEntity.setStatus(0); deviceAssetContractEntity.setId(IdUtil.getSnowflakeNextId()); boolean b = deviceAssetContractService.insertDeviceContract(deviceAssetContractEntity); return ResultVOUtils.success("成功"); } @AuthRuleAnnotation("") @PostMapping("/inv/info/deleteDeviceContract") public BaseResponse deleteDeviceContract(@RequestBody DeleteDeviceFileRequest deleteDeviceFileRequest) { boolean b = deviceAssetContractService.deleteById(deleteDeviceFileRequest.getId()); String URL = filePath + FileConstant.COMMON_FILE_PATH + deleteDeviceFileRequest.getFilePath(); File file = new File(URL); if (file.exists() && file.isFile()) { file.delete(); } return ResultVOUtils.success("成功"); } @AuthRuleAnnotation("") @PostMapping("/inv/info/updateDeviceContract") @Log(title = "资质证书", businessType = BusinessType.UPDATE) public BaseResponse updateDeviceContract(@RequestBody PostDeviceContractRequest postDeviceContractRequest) { DeviceAssetContractEntity deviceAssetContractEntity = new DeviceAssetContractEntity(); BeanUtils.copyProperties(postDeviceContractRequest, deviceAssetContractEntity); LocalDateTime localDateTime1 = postDeviceContractRequest.getVailDate().atStartOfDay(); LocalDateTime localDateTime2= postDeviceContractRequest.getExpireDate().atStartOfDay(); Instant instant = localDateTime1.toInstant(ZoneOffset.UTC); Instant instant2 = localDateTime2.toInstant(ZoneOffset.UTC); long milliseconds = instant.toEpochMilli(); long milliseconds2 = instant2.toEpochMilli(); if (postDeviceContractRequest.getVailDate() != null && postDeviceContractRequest.getExpireDate() != null) { if (milliseconds > milliseconds2) { return ResultVOUtils.error( "生效期不能小于失效期!"); } } String userId = customerService.getUserId()+ ""; LocalDate now = LocalDate.now(); deviceAssetContractEntity.setUpdateTime(now); deviceAssetContractEntity.setUpdateUser(userId); boolean b = deviceAssetContractService.updateDeviceContract(deviceAssetContractEntity); if (b){ return ResultVOUtils.success("修改成功"); }else { return ResultVOUtils.error("修改失败!"); } } }