mcs8的bug修改

This commit is contained in:
guoshengxiong 2025-07-25 10:35:03 +08:00
parent 321b5e41a1
commit fb963c2f56
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.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.io.File;
@ -101,14 +100,13 @@ public class Mcs8Call implements PoliceCameraManufacturer {
JSONObject jsonObject = Mcs8Util.getRecordFileList(config, page, pageSize, begin, end);
bos = BeanUtil.copyToList(jsonObject.getJSONArray("data"), Mcs8FileBo.class);
for (Mcs8FileBo bo : bos) {
mcs8Call.downloadFileAndSaveAsync(bo, cameraItemMap);
downloadFileAndSave(bo, cameraItemMap);
}
page++;
} while (CollUtil.isNotEmpty(bos) && bos.size() == pageSize);
}
@Async("policeCameraManufacturerDownLoadExecutor")
public void downloadFileAndSaveAsync(Mcs8FileBo bo, Map<String, PoliceCameraItem> cameraItemMap) {
public void downloadFileAndSave(Mcs8FileBo bo, Map<String, PoliceCameraItem> cameraItemMap) {
int count = policeCameraItemFileService.count(new LambdaQueryWrapper<PoliceCameraItemFile>()
.eq(PoliceCameraItemFile::getExternalId, bo.getId()));
if (count > 0) {

View File

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

View File

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

View File

@ -72,6 +72,6 @@ public class ProjectConfig implements Serializable {
@Excel(name = "是否启用移动考勤1是0否", width = 15)
@ApiModelProperty(value = "是否启用移动考勤1是0否")
private java.lang.Integer isMobileAttendance;
@ApiModelProperty(value = "1作业票需要绑定作业医控0不需要")
@ApiModelProperty(value = "1作业票需要绑定作业执法仪0不需要")
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@Slf4j
@RestController
@ -31,6 +34,9 @@ public class Mcs8Task {
@Lazy
@Autowired
private PoliceCameraManufacturerFactory policeCameraManufacturerFactory;
@Autowired
@Qualifier("doubleCarbonExecutor")
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
/**
* 定时从Mcs8获取执法记录仪文件
@ -44,7 +50,9 @@ public class Mcs8Task {
try {
PoliceCameraManufacturer manufacturer = policeCameraManufacturerFactory.getPoliceCameraManufacturer(project.getProjectSn());
if (manufacturer != null) {
manufacturer.pullFile(DateUtil.offsetMinute(now, -10), now);
CompletableFuture.runAsync(() -> {
manufacturer.pullFile(DateUtil.offsetDay(now, -7), now);
}, threadPoolTaskExecutor);
}
} catch (Exception e) {
log.error("定时从Mcs8获取执法记录仪文件err{}", project.getProjectName(), e);