diff --git a/src/main/java/com/glxp/api/constant/FileConstant.java b/src/main/java/com/glxp/api/constant/FileConstant.java index 5f48d88e..9871e869 100644 --- a/src/main/java/com/glxp/api/constant/FileConstant.java +++ b/src/main/java/com/glxp/api/constant/FileConstant.java @@ -10,4 +10,6 @@ public class FileConstant { public static String COMMON_FILE_PATH = "register/image2/"; + public static String DEV_COMMON_FILE_PATH = "register/device/"; + } diff --git a/src/main/java/com/glxp/api/constant/SocketMsgType.java b/src/main/java/com/glxp/api/constant/SocketMsgType.java index 4fee08aa..5d645573 100644 --- a/src/main/java/com/glxp/api/constant/SocketMsgType.java +++ b/src/main/java/com/glxp/api/constant/SocketMsgType.java @@ -20,6 +20,7 @@ public interface SocketMsgType { String BASIC_CORP_MAINTAIN_DELETE = "BASIC_CORP_MAINTAIN_DELETE"; //供应商字典 String BASIC_BUSINESS_TYPE_DELETE = "BASIC_BUSINESS_TYPE_DELETE"; //单据类型 + String DEVICE_CERT_TYPE_DELETE = "DEVICE_CERT_TYPE_DELETE"; //资质资料 String STAT_DATA_REQUEST = "STAT_DATA_REQUEST"; // String STAT_DATA = "STAT_DATA"; // diff --git a/src/main/java/com/glxp/api/constant/SyncDelType.java b/src/main/java/com/glxp/api/constant/SyncDelType.java index 80a20fc4..6bd96520 100644 --- a/src/main/java/com/glxp/api/constant/SyncDelType.java +++ b/src/main/java/com/glxp/api/constant/SyncDelType.java @@ -19,5 +19,6 @@ public interface SyncDelType { String DEV_TASK = "DEV_TASK"; String DEVICE_INFO_DATA = "DEVICE_INFO_DATA"; + String DEVICE_CERT_TYPE = "DEVICE_CERT_TYPE"; } diff --git a/src/main/java/com/glxp/api/controller/dev/DeviceAssetCertController.java b/src/main/java/com/glxp/api/controller/dev/DeviceAssetCertController.java index db09ce6f..5cce69fa 100644 --- a/src/main/java/com/glxp/api/controller/dev/DeviceAssetCertController.java +++ b/src/main/java/com/glxp/api/controller/dev/DeviceAssetCertController.java @@ -8,8 +8,12 @@ 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.constant.SocketMsgType; import com.glxp.api.controller.BaseController; +import com.glxp.api.controller.sync.SpsSyncWebSocket; import com.glxp.api.entity.dev.DeviceAssetCertEntity; +import com.glxp.api.entity.sync.SocketMsgEntity; +import com.glxp.api.req.basic.BasicDataRequest; import com.glxp.api.req.dev.PostDeviceCertRequest; import com.glxp.api.req.inv.FilterInvCertRequest; import com.glxp.api.req.system.DeleteDeviceFileRequest; @@ -17,6 +21,7 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.dev.DeviceAssetCertService; import lombok.extern.slf4j.Slf4j; +import org.java_websocket.server.WebSocketServer; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; @@ -30,6 +35,7 @@ import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneOffset; +import java.util.Date; import java.util.List; /** @@ -44,6 +50,9 @@ public class DeviceAssetCertController extends BaseController { private DeviceAssetCertService deviceAssetCertService; @Resource private CustomerService customerService; + @Resource + SpsSyncWebSocket webSocketServer; + @AuthRuleAnnotation("") @GetMapping("/inv/device/cert/filter") @@ -63,7 +72,7 @@ public class DeviceAssetCertController extends BaseController { @Log(title = "资质证书", businessType = BusinessType.INSERT) public BaseResponse insertDeviceCert(@RequestBody DeviceAssetCertEntity deviceAssetCertEntity) { String userId = customerService.getUserId()+ ""; - LocalDate now = LocalDate.now(); + Date now = new Date(); deviceAssetCertEntity.setCreateTime(now); deviceAssetCertEntity.setUpdateTime(now); deviceAssetCertEntity.setCreateUser(userId); @@ -78,11 +87,21 @@ public class DeviceAssetCertController extends BaseController { @PostMapping("/inv/info/deleteDeviceCert") public BaseResponse deleteDeviceCert(@RequestBody DeleteDeviceFileRequest deleteDeviceFileRequest) { boolean b = deviceAssetCertService.deleteById(deleteDeviceFileRequest.getId()); - String URL = filePath + FileConstant.COMMON_FILE_PATH + deleteDeviceFileRequest.getFilePath(); + String URL = filePath + FileConstant.DEV_COMMON_FILE_PATH + deleteDeviceFileRequest.getFilePath(); File file = new File(URL); if (file.exists() && file.isFile()) { file.delete(); } + + BasicDataRequest basicDataRequest = new BasicDataRequest(); + basicDataRequest.setDeleteDeviceFileRequest(deleteDeviceFileRequest); + Long userId = getUserId(); + basicDataRequest.setKey("DEVICE_CERT_TYPE"); + //推送 + BasicDataRequest request = webSocketServer.insert(basicDataRequest, userId + ""); + request.setDeleteDeviceFileRequest(deleteDeviceFileRequest); + webSocketServer.sendMessage(SocketMsgEntity.builder().type(SocketMsgType.DEVICE_CERT_TYPE_DELETE).content(request).remark("设备资质材料").build(), null); + return ResultVOUtils.success("成功"); } @@ -105,7 +124,7 @@ public class DeviceAssetCertController extends BaseController { } } String userId = customerService.getUserId()+ ""; - LocalDate now = LocalDate.now(); + Date now = new Date(); deviceAssetCertEntity.setUpdateTime(now); deviceAssetCertEntity.setUpdateUser(userId); boolean b = deviceAssetCertService.updateDeviceCert(deviceAssetCertEntity); diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncWebSocket.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncWebSocket.java index dd22bba4..285f13b6 100644 --- a/src/main/java/com/glxp/api/controller/sync/SpsSyncWebSocket.java +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncWebSocket.java @@ -159,6 +159,12 @@ public class SpsSyncWebSocket { deleteBasicDataRequest.setName("汇总日报"); basicDataRequest.setDeleteBasicDataRequest(deleteBasicDataRequest); break; + case "DEVICE_CERT_TYPE": + deleteBasicDataRequest.setDataType(basicDataRequest.getKey()); + deleteBasicDataRequest.setParam(JSONUtil.toJsonStr(basicDataRequest.getDeleteDeviceFileRequest()) + basicDataRequest.getKey()); + deleteBasicDataRequest.setName("设备资质材料"); + basicDataRequest.setDeleteBasicDataRequest(deleteBasicDataRequest); + break; default: break; } diff --git a/src/main/java/com/glxp/api/controller/sync/SyncDelController.java b/src/main/java/com/glxp/api/controller/sync/SyncDelController.java index 66e90692..3156c363 100644 --- a/src/main/java/com/glxp/api/controller/sync/SyncDelController.java +++ b/src/main/java/com/glxp/api/controller/sync/SyncDelController.java @@ -9,6 +9,7 @@ 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.constant.SyncDelType; import com.glxp.api.controller.BaseController; import com.glxp.api.dao.dev.DeviceInfoMapper; @@ -22,21 +23,25 @@ import com.glxp.api.entity.sync.SyncEditLogEntity; import com.glxp.api.entity.sync.SyncEditTypeEntity; import com.glxp.api.req.basic.*; import com.glxp.api.req.system.DeleteCompanyFileRequest; +import com.glxp.api.req.system.DeleteDeviceFileRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.WarehouseBussinessTypeService; import com.glxp.api.service.basic.*; +import com.glxp.api.service.dev.DeviceAssetCertService; import com.glxp.api.service.inout.*; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.DeviceInspectTaskDetailService; import com.glxp.api.service.inv.DeviceInspectTaskService; import com.glxp.api.service.sync.SyncEditLogService; import com.glxp.api.service.sync.SyncEditTypeService; +import org.springframework.beans.factory.annotation.Value; 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.util.ArrayList; import java.util.Date; import java.util.List; @@ -123,6 +128,14 @@ public class SyncDelController extends BaseController { //插入操作数据类型记录表 insertType(basicDataRequest.getDeleteBasicDataRequest()); break; + case SyncDelType.DEVICE_CERT_TYPE: + + baseResponse = deleteDevCertData(basicDataRequest.getDeleteDeviceFileRequest()); + //插入日志 + insertLog(basicDataRequest.getDeleteBasicDataRequest(), baseResponse); + //插入操作数据类型记录表 + insertType(basicDataRequest.getDeleteBasicDataRequest()); + break; default: break; } @@ -234,12 +247,27 @@ public class SyncDelController extends BaseController { @Resource DeviceInfoMapper deviceInfoMapper; + @Resource + DeviceAssetCertService deviceAssetCertService; public BaseResponse deleteDevInfoData(DeviceInfoEntity deviceInfoEntity) { deviceInfoMapper.delete(new QueryWrapper<DeviceInfoEntity>().eq("deviceCode", deviceInfoEntity.getDeviceCode())); return ResultVOUtils.success("删除成功"); } + @Value("${file_path}") + private String filePath; + + public BaseResponse deleteDevCertData(DeleteDeviceFileRequest deleteDeviceFileRequest) { + + String URL = filePath + FileConstant.DEV_COMMON_FILE_PATH + deleteDeviceFileRequest.getFilePath(); + File file = new File(URL); + if (file.exists() && file.isFile()) { + file.delete(); + } + return deviceAssetCertService.deleteById(deleteDeviceFileRequest.getId()) ? ResultVOUtils.success("删除成功") : ResultVOUtils.error(500, "删除失败,系统繁忙"); + } + @Resource private IoCodeTempService codeTempService; @Resource diff --git a/src/main/java/com/glxp/api/entity/dev/DeviceAssetCertEntity.java b/src/main/java/com/glxp/api/entity/dev/DeviceAssetCertEntity.java index 8e624358..b678efe0 100644 --- a/src/main/java/com/glxp/api/entity/dev/DeviceAssetCertEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DeviceAssetCertEntity.java @@ -9,6 +9,7 @@ import lombok.Data; import java.io.Serializable; import java.time.LocalDate; +import java.util.Date; @Data @TableName(value = "device_asset_cert") @@ -86,7 +87,7 @@ public class DeviceAssetCertEntity implements Serializable { */ @TableField(value = "createTime") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate createTime; + private Date createTime; /** * 更新人 @@ -99,7 +100,7 @@ public class DeviceAssetCertEntity implements Serializable { */ @TableField(value = "updateTime") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate updateTime; + private Date updateTime; private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/req/basic/BasicDataRequest.java b/src/main/java/com/glxp/api/req/basic/BasicDataRequest.java index 1c540b02..7223f032 100644 --- a/src/main/java/com/glxp/api/req/basic/BasicDataRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BasicDataRequest.java @@ -5,6 +5,7 @@ import com.glxp.api.entity.inv.DeviceInspectTaskEntity; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.FilterStatDataRequest; import com.glxp.api.req.system.DeleteCompanyFileRequest; +import com.glxp.api.req.system.DeleteDeviceFileRequest; import com.glxp.api.req.system.DeleteRequest; import lombok.Data; @@ -37,4 +38,9 @@ public class BasicDataRequest { private String key; + /** + * 资质证书 + */ + private DeleteDeviceFileRequest deleteDeviceFileRequest; + } diff --git a/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java index e7397bb7..777fb3b5 100644 --- a/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java +++ b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java @@ -104,6 +104,8 @@ public class SpsSyncDownloadService { private PurApplyDao purApplyDao; @Autowired private PurContractMapper purContractMapper; + @Autowired + private DeviceAssetCertService deviceAssetCertService; // 创建单据同步任务 @@ -1140,6 +1142,26 @@ public class SpsSyncDownloadService { jsonMap.put("syncFiles", syncFiles); } + List<DeviceAssetCertEntity> deviceAssetCertEntities = deviceAssetCertService.list(Wrappers.lambdaQuery(DeviceAssetCertEntity.class) + .le(!ge && (boolean) map.get("isNew"), DeviceAssetCertEntity::getUpdateTime, now) + .between(ge, DeviceAssetCertEntity::getUpdateTime, syncTime, now) + .between(!ge && !(boolean) map.get("isNew"), DeviceAssetCertEntity::getUpdateTime + , map.get("oldDate"), now) + ); + if (CollectionUtil.isNotEmpty(deviceAssetCertEntities)) { + remark.append("设备资质材料信息:").append(deviceAssetCertEntities.size()).append("条\n"); + jsonMap.put(DeviceAssetCertEntity.class.getSimpleName(), deviceAssetCertEntities); + for (DeviceAssetCertEntity entity : deviceAssetCertEntities) { + if (StrUtil.isNotEmpty(entity.getFilePath())) { + syncFiles.add(entity.getFilePath()); + } + } + } + log.error("接收到的各种文件集合{}",syncFiles); + if (CollUtil.isNotEmpty(syncFiles)) { + jsonMap.put("syncFiles", syncFiles); + } + } if (jsonMap.size() > 0) { jsonMap.put(SYNC_REMARK, remark.toString());