mcs8的bug修改

This commit is contained in:
guoshengxiong 2025-07-25 10:35:03 +08:00
parent 60a4832eef
commit d0a5adc391
5 changed files with 24 additions and 16 deletions

View File

@ -26,7 +26,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.File; import java.io.File;
@ -101,14 +100,13 @@ public class Mcs8Call implements PoliceCameraManufacturer {
JSONObject jsonObject = Mcs8Util.getRecordFileList(config, page, pageSize, begin, end); JSONObject jsonObject = Mcs8Util.getRecordFileList(config, page, pageSize, begin, end);
bos = BeanUtil.copyToList(jsonObject.getJSONArray("data"), Mcs8FileBo.class); bos = BeanUtil.copyToList(jsonObject.getJSONArray("data"), Mcs8FileBo.class);
for (Mcs8FileBo bo : bos) { for (Mcs8FileBo bo : bos) {
mcs8Call.downloadFileAndSaveAsync(bo, cameraItemMap); downloadFileAndSave(bo, cameraItemMap);
} }
page++; page++;
} while (CollUtil.isNotEmpty(bos) && bos.size() == pageSize); } while (CollUtil.isNotEmpty(bos) && bos.size() == pageSize);
} }
@Async("policeCameraManufacturerDownLoadExecutor") public void downloadFileAndSave(Mcs8FileBo bo, Map<String, PoliceCameraItem> cameraItemMap) {
public void downloadFileAndSaveAsync(Mcs8FileBo bo, Map<String, PoliceCameraItem> cameraItemMap) {
int count = policeCameraItemFileService.count(new LambdaQueryWrapper<PoliceCameraItemFile>() int count = policeCameraItemFileService.count(new LambdaQueryWrapper<PoliceCameraItemFile>()
.eq(PoliceCameraItemFile::getExternalId, bo.getId())); .eq(PoliceCameraItemFile::getExternalId, bo.getId()));
if (count > 0) { if (count > 0) {

View File

@ -32,9 +32,6 @@ public class PoliceCameraManufacturerFactory {
* @return * @return
*/ */
public PoliceCameraManufacturer getPoliceCameraManufacturer(String projectSn) { public PoliceCameraManufacturer getPoliceCameraManufacturer(String projectSn) {
if (!workTicketService.enableBindCamera(projectSn)) {
return null;
}
ProjectPoliceCameraConfig config = projectPoliceCameraConfigService.getUseProjectPoliceCameraConfig(new MapBuilder<String, Object>() ProjectPoliceCameraConfig config = projectPoliceCameraConfigService.getUseProjectPoliceCameraConfig(new MapBuilder<String, Object>()
.put("projectSn", projectSn) .put("projectSn", projectSn)
.build()); .build());

View File

@ -82,6 +82,9 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
@Lazy @Lazy
@Autowired @Autowired
private IProjectConfigService projectConfigService; private IProjectConfigService projectConfigService;
@Lazy
@Autowired
private IWorkTicketService workTicketService;
@Override @Override
public IPage<WorkTicketVo> queryPageList(HashMap<String, Object> param) { public IPage<WorkTicketVo> queryPageList(HashMap<String, Object> param) {
@ -241,7 +244,7 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
his.setBegin(new Date()); his.setBegin(new Date());
his.setNo(count + 1); his.setNo(count + 1);
workTicketHistoryService.save(his); workTicketHistoryService.save(his);
} else if (workTicketDto.getOperateStatus() == 2 || workTicketDto.getOperateStatus() == 4) { } else {
his = workTicketHistoryService.getOne(new LambdaQueryWrapper<WorkTicketHistory>() his = workTicketHistoryService.getOne(new LambdaQueryWrapper<WorkTicketHistory>()
.eq(WorkTicketHistory::getWorkTicketId, ticketId) .eq(WorkTicketHistory::getWorkTicketId, ticketId)
.orderByDesc(WorkTicketHistory::getBegin) .orderByDesc(WorkTicketHistory::getBegin)
@ -249,6 +252,7 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
); );
workTicketHistoryService.completeEndTimeByTicketId(ticketId); workTicketHistoryService.completeEndTimeByTicketId(ticketId);
} }
if (workTicketService.enableBindCamera(ticket.getProjectSn())) {
PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(ticket.getProjectSn()); PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(ticket.getProjectSn());
if (manufacturer != null) { if (manufacturer != null) {
if (workTicketDto.getOperateStatus() == 1 || workTicketDto.getOperateStatus() == 3) { if (workTicketDto.getOperateStatus() == 1 || workTicketDto.getOperateStatus() == 3) {
@ -258,6 +262,7 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
} }
} }
} }
}
@Override @Override
public CountWorkTicketVo countWorkTicket(HashMap<String, Object> map) { public CountWorkTicketVo countWorkTicket(HashMap<String, Object> map) {

View File

@ -72,6 +72,6 @@ public class ProjectConfig implements Serializable {
@Excel(name = "是否启用移动考勤1是0否", width = 15) @Excel(name = "是否启用移动考勤1是0否", width = 15)
@ApiModelProperty(value = "是否启用移动考勤1是0否") @ApiModelProperty(value = "是否启用移动考勤1是0否")
private java.lang.Integer isMobileAttendance; private java.lang.Integer isMobileAttendance;
@ApiModelProperty(value = "1作业票需要绑定作业医控0不需要") @ApiModelProperty(value = "1作业票需要绑定作业执法仪0不需要")
private java.lang.Integer workTicketBindCamera; private java.lang.Integer workTicketBindCamera;
} }

View File

@ -8,14 +8,17 @@ import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.IProjectService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture;
@Slf4j @Slf4j
@RestController @RestController
@ -31,6 +34,9 @@ public class Mcs8Task {
@Lazy @Lazy
@Autowired @Autowired
private PoliceCameraManufacturerFactory policeCameraManufacturerFactory; private PoliceCameraManufacturerFactory policeCameraManufacturerFactory;
@Autowired
@Qualifier("doubleCarbonExecutor")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
/** /**
* 定时从Mcs8获取执法记录仪文件 * 定时从Mcs8获取执法记录仪文件
@ -44,7 +50,9 @@ public class Mcs8Task {
try { try {
PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(project.getProjectSn()); PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(project.getProjectSn());
if (manufacturer != null) { if (manufacturer != null) {
CompletableFuture.runAsync(() -> {
manufacturer.pullFile(DateUtil.offsetDay(now, -7), now); manufacturer.pullFile(DateUtil.offsetDay(now, -7), now);
}, threadPoolTaskExecutor);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("定时从Mcs8获取执法记录仪文件err{}", project.getProjectName(), e); log.error("定时从Mcs8获取执法记录仪文件err{}", project.getProjectName(), e);