You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/dev/DeviceAssetContractControll...

122 lines
5.4 KiB
Java

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<DeviceAssetContractEntity> deviceAssetContractEntityList
= deviceAssetContractService.filterDeviceContract(filterInvContractRequest);
PageInfo<DeviceAssetContractEntity> pageInfo;
pageInfo = new PageInfo<>(deviceAssetContractEntityList);
PageSimpleResponse<DeviceAssetContractEntity> 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("修改失败!");
}
}
}