同步BIM协同管理平台进度信息接口-只有中建四局生效

高支模tcp添加数据
This commit is contained in:
GUO 2023-03-08 22:21:52 +08:00
parent c5e500b94e
commit 52aab6448b
8 changed files with 609 additions and 182 deletions

View File

@ -1,16 +1,14 @@
package com.zhgd.xmgl.modules.highformwork.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description: 高支模-测量点实时数据
* @author pds
@ -61,6 +59,6 @@ public class HighFormworkMeasureCurrentData implements Serializable {
private java.lang.String subside ;
/**报警状态1正常2预警3报警*/
@Excel(name = "报警状态1正常2预警3报警", width = 15)
@ApiModelProperty(value="报警状态1正常2预警3报警")
@ApiModelProperty(value="报警状态1正常2预警3报警4离线")
private java.lang.Integer alarmState ;
}

View File

@ -96,6 +96,30 @@ public interface HighFormworkSupport {
* 测点状态1
*/
public static final String GZ_ZT1 = "GZ_ZT1";
/**
* 测点编号2
*/
public static final String GZ_CJ2 = "GZ_CJ2";
/**
* 测点数据2
*/
public static final String GZ_DS2 = "GZ_DS2";
/**
* 测点状态2
*/
public static final String GZ_ZT2 = "GZ_ZT2";
/**
* 测点编号3
*/
public static final String GZ_CJ3 = "GZ_CJ3";
/**
* 测点数据3
*/
public static final String GZ_DS3 = "GZ_DS3";
/**
* 测点状态3
*/
public static final String GZ_ZT3 = "GZ_ZT3";
/**
* 状态
*/

View File

@ -1,19 +1,15 @@
package com.zhgd.xmgl.modules.highformwork.netty.tcp.handler;
import com.zhgd.xmgl.modules.highformwork.netty.tcp.constant.HighFormworkSupport;
import com.zhgd.xmgl.modules.highformwork.netty.tcp.service.HighFormworkSupportService;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
/**
* Created by chenws on 2020/3/24.
*/
@ -30,14 +26,13 @@ public class TcpNettyHandler extends SimpleChannelInboundHandler<String> {
log.info("I get the message >>> \r\n {} ", msg);
//把消息写到缓冲区
ctx.writeAndFlush("ok");
writeToFile(msg);
//接收高支模数据保存到mysql中
msg = msg.trim();
if (StringUtils.startsWith(msg, HighFormworkSupport.TCP_DATA_PREFIX) && StringUtils.endsWith(msg, HighFormworkSupport.TCP_DATA_END)) {
try {
highFormworkSupportService.saveTcpData(msg);
} catch (Exception e) {
log.error("接收高支模数据保存到mysql中exception >>> \r\n ", e);
log.error("error接收高支模数据保存到mysql中exception >>> \r\n ", e);
} finally {
highFormworkSupportResponseOk(ctx);
}
@ -48,17 +43,6 @@ public class TcpNettyHandler extends SimpleChannelInboundHandler<String> {
ctx.writeAndFlush("$LRKKJ$ MSG:\"\"; OK;END");
}
private void writeToFile(String msg) {
File file = new File("C:\\Users\\Administrator\\Desktop\\data.txt");
String ENTER = "\n";
try {
FileUtils.writeStringToFile(file, LocalDateTime.now() + ENTER, true);
FileUtils.writeStringToFile(file, msg + ENTER, true);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) {
//刷新缓冲区把消息发出去

View File

@ -15,10 +15,11 @@ import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/**
* @author chenws
@ -28,68 +29,42 @@ import javax.annotation.PostConstruct;
public class TcpNettyServer {
@Autowired
private TcpNettyHandler tcpNettyHandler;
@Autowired
private StringEncoder stringEncoder;
@Autowired
private StringDecoder stringDecoder;
@Autowired
private BindListener bindListener;
@Autowired
private CloseListener closeListener;
@Value("${high_formwork.netty.port}")
int port;
@Bean
public StringEncoder getStringEncoder() {
return new StringEncoder();
}
@Bean
public StringDecoder getStringDecoder() {
return new StringDecoder();
}
@Bean
public BindListener getBindListener() {
return new BindListener();
}
@Bean
public CloseListener getCloseListener() {
return new CloseListener();
}
@PostConstruct
private void startTcpServer() {
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup(6);
try {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1024)
.childOption(ChannelOption.SO_KEEPALIVE, true)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
//添加自定义处理器
socketChannel.pipeline()
.addLast(stringEncoder)
.addLast(stringDecoder)
.addLast(tcpNettyHandler);
}
});
//监听器当服务绑定成功后执行
ChannelFuture channelFuture = serverBootstrap.bind(port).sync().addListener(bindListener);
//监听器当停止服务后执行
channelFuture.channel().closeFuture().sync().addListener(closeListener);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
new Thread(() -> {
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup(6);
try {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1024)
.childOption(ChannelOption.SO_KEEPALIVE, true)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
//添加自定义处理器
socketChannel.pipeline()
.addLast(new StringEncoder(StandardCharsets.UTF_8))
.addLast(new StringDecoder(Charset.forName("GBK")))
.addLast(tcpNettyHandler);
}
});
//监听器当服务绑定成功后执行
ChannelFuture channelFuture = serverBootstrap.bind(port).sync().addListener(new BindListener());
//监听器当停止服务后执行
channelFuture.channel().closeFuture().sync().addListener(new CloseListener());
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}).start();
}
}

View File

@ -1,8 +1,9 @@
package com.zhgd.xmgl.modules.highformwork.netty.tcp.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.xmgl.modules.highformwork.mapper.HighFormworkMeasureDeviceMapper;
import com.zhgd.xmgl.modules.highformwork.entity.HighFormworkMeasureCurrentData;
import com.zhgd.xmgl.modules.highformwork.mapper.HighFormworkMeasureCurrentDataMapper;
import com.zhgd.xmgl.modules.highformwork.netty.tcp.constant.HighFormworkSupport;
import com.zhgd.xmgl.modules.highformwork.service.IHighFormworkMeasureCurrentDataService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -14,6 +15,9 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* 高支模tcp服务端
*/
@Component
@Slf4j
public class HighFormworkSupportService {
@ -29,7 +33,9 @@ public class HighFormworkSupportService {
//private IHighFormworkSupportDeviceDataService highFormworkSupportDeviceDataService;
@Autowired
private HighFormworkMeasureDeviceMapper highFormworkMeasureDeviceMapper;
private HighFormworkMeasureCurrentDataMapper dataMapper;
@Autowired
private IHighFormworkMeasureCurrentDataService dataService;
public void saveTcpData(String msg) throws ParseException {
/*
@ -100,87 +106,158 @@ public class HighFormworkSupportService {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HHmmss");
log.info("saveTcpData() >>> \r\n {}", dataMap);
LambdaQueryWrapper<HighFormworkSupportDevice> deviceLambdaQueryWrapper = new LambdaQueryWrapper<HighFormworkSupportDevice>()
.eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH))
.eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH));
// LambdaQueryWrapper<HighFormworkSupportDevice> deviceLambdaQueryWrapper = new LambdaQueryWrapper<HighFormworkSupportDevice>()
// .eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH))
// .eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH));
if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GPS_DEV_J::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模设备-工程信息");
HighFormworkSupportDevice highFormworkSupportDevice = new HighFormworkSupportDevice();
highFormworkSupportDevice.setDevType(dataMap.get(HighFormworkSupport.DEV_TYPE));
highFormworkSupportDevice.setDevBh(dataMap.get(HighFormworkSupport.DEV_BH));
highFormworkSupportDevice.setGpsDevJ(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_J)));
highFormworkSupportDevice.setGpsDevW(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_W)));
highFormworkSupportDevice.setTrBh(dataMap.get(HighFormworkSupport.TR_BH));
HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper);
//高支模设备-工程信息
if (device == null) {
highFormworkSupportDeviceMapper.insert(highFormworkSupportDevice);
} else {
highFormworkSupportDeviceMapper.update(highFormworkSupportDevice, deviceLambdaQueryWrapper);
highFormworkSupportDevice.setId(device.getId());
}
HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
upload.setHighFormworkSupportDeviceId(highFormworkSupportDevice.getId());
upload.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
upload.setCdAl(Integer.valueOf(dataMap.get(HighFormworkSupport.CD_AL)));
upload.setJcT(Integer.valueOf(dataMap.get(HighFormworkSupport.JC_T)));
upload.setScT(Integer.valueOf(dataMap.get(HighFormworkSupport.SC_T)));
upload.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
upload.setDevSn(dataMap.get(HighFormworkSupport.DEV_TYPE));
highFormworkSupportUploadMapper.insert(upload);
// HighFormworkSupportDevice highFormworkSupportDevice = new HighFormworkSupportDevice();
// highFormworkSupportDevice.setDevType(dataMap.get(HighFormworkSupport.DEV_TYPE));
// highFormworkSupportDevice.setDevBh(dataMap.get(HighFormworkSupport.DEV_BH));
// highFormworkSupportDevice.setGpsDevJ(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_J)));
// highFormworkSupportDevice.setGpsDevW(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_W)));
// highFormworkSupportDevice.setTrBh(dataMap.get(HighFormworkSupport.TR_BH));
// HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper);
// //高支模设备-工程信息
// if (device == null) {
// highFormworkSupportDeviceMapper.insert(highFormworkSupportDevice);
// } else {
// highFormworkSupportDeviceMapper.update(highFormworkSupportDevice, deviceLambdaQueryWrapper);
// highFormworkSupportDevice.setId(device.getId());
// }
//
// HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
// upload.setHighFormworkSupportDeviceId(highFormworkSupportDevice.getId());
// upload.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
// upload.setCdAl(Integer.valueOf(dataMap.get(HighFormworkSupport.CD_AL)));
// upload.setJcT(Integer.valueOf(dataMap.get(HighFormworkSupport.JC_T)));
// upload.setScT(Integer.valueOf(dataMap.get(HighFormworkSupport.SC_T)));
// upload.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
// upload.setDevSn(dataMap.get(HighFormworkSupport.DEV_TYPE));
// highFormworkSupportUploadMapper.insert(upload);
} else if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GZ_CS::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模测点信息");
HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper
);
//高支模测点信息
HighFormworkSupportMeasurePoint point = new HighFormworkSupportMeasurePoint();
point.setHighFormworkSupportDeviceId(device != null ? device.getId() : null);
point.setDevSn(dataMap.get(HighFormworkSupport.DEV_SN));
point.setSnCj(dataMap.get(HighFormworkSupport.SN_CJ));
point.setGzCs(dataMap.get(HighFormworkSupport.GZ_CS));
point.setGzBj(dataMap.get(HighFormworkSupport.GZ_BJ));
point.setGzYj(dataMap.get(HighFormworkSupport.GZ_YJ));
String coord = dataMap.get(HighFormworkSupport.GZ_ZB);
point.setGzZbX(Integer.valueOf(coord.split(",")[0]));
point.setGzZbY(Integer.valueOf(coord.split(",")[1]));
highFormworkSupportMeasurePointMapper.insert(point);
// HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper
// );
// //高支模测点信息
// HighFormworkSupportMeasurePoint point = new HighFormworkSupportMeasurePoint();
// point.setHighFormworkSupportDeviceId(device != null ? device.getId() : null);
// point.setDevSn(dataMap.get(HighFormworkSupport.DEV_SN));
// point.setSnCj(dataMap.get(HighFormworkSupport.SN_CJ));
// point.setGzCs(dataMap.get(HighFormworkSupport.GZ_CS));
// point.setGzBj(dataMap.get(HighFormworkSupport.GZ_BJ));
// point.setGzYj(dataMap.get(HighFormworkSupport.GZ_YJ));
// String coord = dataMap.get(HighFormworkSupport.GZ_ZB);
// point.setGzZbX(Integer.valueOf(coord.split(",")[0]));
// point.setGzZbY(Integer.valueOf(coord.split(",")[1]));
// highFormworkSupportMeasurePointMapper.insert(point);
} else if (dataMap.keySet().stream().anyMatch(s -> s.contains(HighFormworkSupport.GZ_CJ))) {
log.info("saveTcpData() >>> \r\n {}", "高支模设备采集数据");
//高支模设备采集数据
HashMap<String, HashMap<String, String>> pointMapByNo = getPointMapByNo(dataMap);
ArrayList<HighFormworkSupportDeviceData> dataArrayList = new ArrayList<>();
for (Map.Entry<String, HashMap<String, String>> entry : pointMapByNo.entrySet()) {
HashMap<String, String> map = entry.getValue();
HighFormworkSupportDeviceData deviceData = new HighFormworkSupportDeviceData();
deviceData.setGzCj(map.get(HighFormworkSupport.GZ_CJ));
deviceData.setGzDs(map.get(HighFormworkSupport.GZ_DS));
deviceData.setGzZt(map.get(HighFormworkSupport.GZ_ZT));
deviceData.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
deviceData.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
deviceData.setHighFormworkSupportUploadId(highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap));
dataArrayList.add(deviceData);
}
highFormworkSupportDeviceDataService.saveBatch(dataArrayList);
// HashMap<String, HashMap<String, String>> pointMapByNo = getPointMapByNo(dataMap);
// ArrayList<HighFormworkSupportDeviceData> dataArrayList = new ArrayList<>();
// for (Map.Entry<String, HashMap<String, String>> entry : pointMapByNo.entrySet()) {
// HashMap<String, String> map = entry.getValue();
// HighFormworkSupportDeviceData deviceData = new HighFormworkSupportDeviceData();
// deviceData.setGzCj(map.get(HighFormworkSupport.GZ_CJ));
// deviceData.setGzDs(map.get(HighFormworkSupport.GZ_DS));
// deviceData.setGzZt(map.get(HighFormworkSupport.GZ_ZT));
// deviceData.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
// deviceData.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
// deviceData.setHighFormworkSupportUploadId(highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap));
// dataArrayList.add(deviceData);
// }
// highFormworkSupportDeviceDataService.saveBatch(dataArrayList);
String no = dataMap.get(HighFormworkSupport.GZ_CJ1);
//测点类型
String noType = no.substring(no.length() - 1);
ArrayList<HighFormworkMeasureCurrentData> dataArrayList = new ArrayList<>();
//测点编号后缀为测点类型识别F-立杆轴力单位为牛H-水平位移单位为mmV-模板沉降单位为mmL-立杆倾斜单位为°D-地基沉降,例如测点 0001L表示测点类型为立杆倾斜
HighFormworkMeasureCurrentData currentData1 = new HighFormworkMeasureCurrentData();
currentData1.setMeasurePointNumber(no);
currentData1.setProjectSn(dataMap.get(HighFormworkSupport.TR_BH));
currentData1.setCollectTime(dataMap.get(HighFormworkSupport.TIME));
currentData1.setElectricPower(null);
currentData1.setAngleXAxis(noType.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS1) : null);
currentData1.setAngleYAxis(noType.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS1) : null);
currentData1.setPressure(noType.equals("F") ? dataMap.get(HighFormworkSupport.GZ_DS1) : null);
currentData1.setSubside(noType.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS1) : null);
currentData1.setAlarmState(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT1)));
dataArrayList.add(currentData1);
String no2 = dataMap.get(HighFormworkSupport.GZ_CJ2);
//测点类型
String noType2 = no2.substring(no2.length() - 1);
//测点编号后缀为测点类型识别F-立杆轴力单位为牛H-水平位移单位为mmV-模板沉降单位为mmL-立杆倾斜单位为°D-地基沉降,例如测点 0001L表示测点类型为立杆倾斜
HighFormworkMeasureCurrentData currentData2 = new HighFormworkMeasureCurrentData();
currentData2.setMeasurePointNumber(no2);
currentData2.setProjectSn(dataMap.get(HighFormworkSupport.TR_BH));
currentData2.setCollectTime(dataMap.get(HighFormworkSupport.TIME));
currentData2.setElectricPower(null);
currentData2.setAngleXAxis(noType2.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS2) : null);
currentData2.setAngleYAxis(noType2.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS2) : null);
currentData2.setPressure(noType2.equals("F") ? dataMap.get(HighFormworkSupport.GZ_DS2) : null);
currentData2.setSubside(noType2.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS2) : null);
currentData2.setAlarmState(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT2)));
dataArrayList.add(currentData2);
String no3 = dataMap.get(HighFormworkSupport.GZ_CJ3);
//测点类型
String noType3 = no3.substring(no3.length() - 1);
//测点编号后缀为测点类型识别F-立杆轴力单位为牛H-水平位移单位为mmV-模板沉降单位为mmL-立杆倾斜单位为°D-地基沉降,例如测点 0001L表示测点类型为立杆倾斜
HighFormworkMeasureCurrentData currentData3 = new HighFormworkMeasureCurrentData();
currentData3.setMeasurePointNumber(no3);
currentData3.setProjectSn(dataMap.get(HighFormworkSupport.TR_BH));
currentData3.setCollectTime(dataMap.get(HighFormworkSupport.TIME));
currentData3.setElectricPower(null);
currentData3.setAngleXAxis(noType3.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS3) : null);
currentData3.setAngleYAxis(noType3.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS3) : null);
currentData3.setPressure(noType3.equals("F") ? dataMap.get(HighFormworkSupport.GZ_DS3) : null);
currentData3.setSubside(noType3.equals("V") ? dataMap.get(HighFormworkSupport.GZ_DS3) : null);
currentData3.setAlarmState(getAlarmState(dataMap.get(HighFormworkSupport.GZ_ZT3)));
dataArrayList.add(currentData3);
dataService.saveBatch(dataArrayList);
} else if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GZ_GZT::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模结束信息");
//高支模结束信息
Integer uploadIdByInfo = highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap);
HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
upload.setJsT(sdf.parse(dataMap.get(HighFormworkSupport.JS_T)));
upload.setGzGzt(Integer.valueOf(dataMap.get(HighFormworkSupport.GZ_GZT)));
upload.setId(uploadIdByInfo);
highFormworkSupportUploadMapper.updateById(upload);
// Integer uploadIdByInfo = highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap);
// HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
// upload.setJsT(sdf.parse(dataMap.get(HighFormworkSupport.JS_T)));
// upload.setGzGzt(Integer.valueOf(dataMap.get(HighFormworkSupport.GZ_GZT)));
// upload.setId(uploadIdByInfo);
// highFormworkSupportUploadMapper.updateById(upload);
}
}
private boolean existDevice(HashMap<String, String> dataMap) {
HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(new LambdaQueryWrapper<HighFormworkSupportDevice>()
.eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH))
.eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH)));
return device != null;
/**
* 获取测点状态
*
* @param s
* @return
*/
private Integer getAlarmState(String s) {
switch (s) {
case "1":
return 1;
case "2":
return 4;
case "3":
return 3;
case "4":
return 2;
}
return null;
}
// private boolean existDevice(HashMap<String, String> dataMap) {
// HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(new LambdaQueryWrapper<HighFormworkSupportDevice>()
// .eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH))
// .eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH)));
// return device != null;
// }
private HashMap<String, HashMap<String, String>> getPointMapByNo(HashMap<String, String> dataMap) {
HashMap<String, HashMap<String, String>> pointMap = new HashMap<>();
for (Map.Entry<String, String> entry : dataMap.entrySet()) {

View File

@ -64,6 +64,9 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
@Autowired
private AsyBim asyBim;
@Value("${spring.profiles.active}")
private String activeProfile;
/**
* 匹配楼层正则
*/
@ -78,11 +81,14 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
List<ProgressTask> progressTasks = progressTaskMapper.selectList(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn));
log.info("原progressTasks{}", JSON.toJSONString(progressTasks));
progressTaskMapper.delete(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn));
//调用BIM同步删除数据
List<BIMProgressTaskRqBody> deleteList = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(deleteList)) {
for (BIMProgressTaskRqBody body : deleteList) {
asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor());
if (activeProfile.equals("zjsj")) {
//调用BIM同步删除数据
List<BIMProgressTaskRqBody> deleteList = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(deleteList)) {
for (BIMProgressTaskRqBody body : deleteList) {
asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor());
}
}
}
@ -90,12 +96,13 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
log.info("importData的新增数据{}", progressTaskList);
if (CollUtil.isNotEmpty(progressTaskList)) {
progressTaskMapper.insertBatch(progressTaskList);
//调用BIM同步添加数据
List<BIMProgressTaskRqBody> bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) {
for (BIMProgressTaskRqBody bimProgressTaskRqBody : bimProgressTaskRqBodies) {
asyBim.asynAddProgressTask(bimProgressTaskRqBody);
if (activeProfile.equals("zjsj")) {
//调用BIM同步添加数据
List<BIMProgressTaskRqBody> bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) {
for (BIMProgressTaskRqBody bimProgressTaskRqBody : bimProgressTaskRqBodies) {
asyBim.asynAddProgressTask(bimProgressTaskRqBody);
}
}
}
}
@ -355,26 +362,28 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
setDutyUserName(progressTask);
progressTaskMapper.updateById(progressTask);
//同步数据到bim先删除再更新bim
if (progressTask.getParentId() != 0) {
ProgressTask top = progressTaskMapper.selectById(progressTask.getParentId());
String floorName = getFloorName(old);
if (floorName != null) {
asyBim.asynDeleteProgressTask(floorName, top.getTaskName());
}
String newFloorName = getFloorName(progressTask);
if (newFloorName != null) {
BIMProgressTaskRqBody body = new BIMProgressTaskRqBody();
body.setFloor(newFloorName);
body.setMajor(top.getTaskName());
body.setPlanStartTime(getDateFormatForBimAddProgressTask(progressTask.getStartDate()));
body.setPlanFinishTime(getDateFormatForBimAddProgressTask(progressTask.getFinishDate()));
body.setActualStartTime(getDateFormatForBimAddProgressTask(progressTask.getActualStartDate()));
body.setActualFinishTime(getDateFormatForBimAddProgressTask(progressTask.getActualFinishDate()));
body.setStatus(progressTask.getStatus());
String sign = getBimProgressTaskRqBodyMd5Sign(body);
body.setSign(sign);
asyBim.asynAddProgressTask(body);
if (activeProfile.equals("zjsj")) {
//同步数据到bim先删除再更新bim
if (progressTask.getParentId() != 0) {
ProgressTask top = progressTaskMapper.selectById(progressTask.getParentId());
String floorName = getFloorName(old);
if (floorName != null) {
asyBim.asynDeleteProgressTask(floorName, top.getTaskName());
}
String newFloorName = getFloorName(progressTask);
if (newFloorName != null) {
BIMProgressTaskRqBody body = new BIMProgressTaskRqBody();
body.setFloor(newFloorName);
body.setMajor(top.getTaskName());
body.setPlanStartTime(getDateFormatForBimAddProgressTask(progressTask.getStartDate()));
body.setPlanFinishTime(getDateFormatForBimAddProgressTask(progressTask.getFinishDate()));
body.setActualStartTime(getDateFormatForBimAddProgressTask(progressTask.getActualStartDate()));
body.setActualFinishTime(getDateFormatForBimAddProgressTask(progressTask.getActualFinishDate()));
body.setStatus(progressTask.getStatus());
String sign = getBimProgressTaskRqBodyMd5Sign(body);
body.setSign(sign);
asyBim.asynAddProgressTask(body);
}
}
}
}

View File

@ -9,6 +9,7 @@ import com.zhgd.redis.annotation.ApiIdempotent;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.entity.vo.DeclareAgeVO;
import com.zhgd.xmgl.modules.worker.entity.vo.PersonnelSituationVO;
import com.zhgd.xmgl.modules.worker.entity.vo.WorkerInfoDetailsVo;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
@ -552,4 +553,15 @@ public class WorkerInfoController {
public Result<Map<String, Object>> selectWorkerAntiepidemicTotal(@RequestBody Map<String, Object> map) {
return Result.success(workerInfoService.selectWorkerAntiepidemicTotal(map));
}
/**
* 查询劳务用工的详情信息
*
* @return
*/
@GetMapping("/details")
public Result<List<WorkerInfoDetailsVo>> getWorkerInfoDetails() {
return Result.ok();
}
}

View File

@ -0,0 +1,348 @@
package com.zhgd.xmgl.modules.worker.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@Data
@ApiModel(description = "查询劳务用工的详情信息")
public class WorkerInfoDetailsVo {
private static final long serialVersionUID = 1L;
/**
* 劳工表
*/
@ApiModelProperty(value = "劳工表")
private java.lang.Long id;
/**
* 姓名
*/
@ApiModelProperty(value = "姓名")
private java.lang.String workerName;
/**
* 考勤考号
*/
@ApiModelProperty(value = "考勤考号")
private java.lang.String attendanceNumber;
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号")
private java.lang.String idCard;
/**
* 项目sn
*/
@ApiModelProperty(value = "项目sn")
private java.lang.String projectSn;
/**
* 添加时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "添加时间")
private java.util.Date addTime;
/**
* 所属企业表外键ID
*/
@ApiModelProperty(value = "所属企业表外键ID")
private java.lang.Long enterpriseId;
/**
* 性别
*/
@ApiModelProperty(value = "性别1男2女")
private java.lang.Integer sex;
/**
* 籍贯
*/
@ApiModelProperty(value = "籍贯")
private java.lang.String nativePlace;
/**
* 民族
*/
@ApiModelProperty(value = "民族")
private java.lang.String nation;
/**
* 出生日期
*/
@ApiModelProperty(value = "出生日期")
private java.lang.String birthday;
/**
* 手机号
*/
@ApiModelProperty(value = "手机号")
private java.lang.String phoneNumber;
/**
* 邮箱
*/
@ApiModelProperty(value = "邮箱")
private java.lang.String personMail;
/**
* 身份证签发机关
*/
@ApiModelProperty(value = "身份证签发机关")
private java.lang.String issuingAuthorityForIdcard;
/**
* 现在住址
*/
@ApiModelProperty(value = "现在住址")
private java.lang.String nowPlace;
/**
* 血型
*/
@ApiModelProperty(value = "血型")
private java.lang.String blood;
/**
* 1小学2初中3中专4高中5大专6本科7研究生8博士9博士后
*/
@ApiModelProperty(value = "1小学、2初中、3中专、4高中、5大专、6本科、7研究生、8博士、9博士后")
private java.lang.String educational;
/**
* 婚否 1未婚 2已婚 3离异 4丧偶
*/
@ApiModelProperty(value = "婚否 1未婚 2已婚 3离异 4丧偶")
private java.lang.Integer marry;
/**
* 政治面貌1.中共党员 2.共青团团员 3.普通居民 4.其他党派人士
*/
@ApiModelProperty(value = "政治面貌1.中共党员 2.共青团团员 3.普通居民 4.其他党派人士")
private java.lang.Integer politicsStatus;
/**
* 紧急联系人
*/
@ApiModelProperty(value = "紧急联系人")
private java.lang.String emergentPerson;
/**
* 紧急联系电话
*/
@ApiModelProperty(value = "紧急联系电话")
private java.lang.String emergentPhone;
/**
* 身份证头像
*/
@ApiModelProperty(value = "身份证头像")
private java.lang.String idCardBigPhotoUrl;
/**
* 身份证正面照url
*/
@ApiModelProperty(value = "身份证正面照url")
private java.lang.String idCardUpPhotoUrl;
/**
* 身份证反面照url
*/
@ApiModelProperty(value = "身份证反面照url")
private java.lang.String idCardDownPhotoUrl;
/**
* 身份证截止日期
*/
@ApiModelProperty(value = "身份证截止日期")
private java.lang.String idCardEndDate;
/**
* 身份证有效期是否长期 0否1是
*/
@ApiModelProperty(value = "身份证有效期是否长期 0否1是")
private java.lang.Integer longTerm;
/**
* personSn
*/
@ApiModelProperty(value = "personSn")
private java.lang.String personSn;
/**
* 现场采集照片
*/
@ApiModelProperty(value = "现场采集照片")
private java.lang.String fieldAcquisitionUrl;
/**
* 进场日期
*/
@ApiModelProperty(value = "进场日期")
private java.lang.String enterDate;
/**
* 在职状态 1在职 2离职
*/
@ApiModelProperty(value = "在职状态 1在职 2离职")
private java.lang.Integer inserviceType;
/**
* 人员类型 1劳务人员 2管理人员3临时人员
*/
@ApiModelProperty(value = "人员类型 1、劳务人员 2、管理人员3临时人员")
private java.lang.Integer personType;
/**
* 班组ID
*/
@ApiModelProperty(value = "班组ID")
private java.lang.Long teamId;
/**
* 部门ID
*/
@ApiModelProperty(value = "部门ID")
private java.lang.Long departmentId;
/**
* 工人工资卡银行开户行名称
*/
@ApiModelProperty(value = "工人工资卡银行开户行名称")
private java.lang.String payRollBankName;
/**
* 工人银行卡号
*/
@ApiModelProperty(value = "工人银行卡号")
private java.lang.String payRollBankNumber;
/**
* 合同
*/
@ApiModelProperty(value = "合同")
private java.lang.String contractImage;
/**
* 体检报告
*/
@ApiModelProperty(value = "体检报告")
private java.lang.String examinationImage;
/**
* 从业资格证书
*/
@ApiModelProperty(value = "从业资格证书")
private java.lang.String employmentCard;
/**
* 职务类型
*/
@ApiModelProperty(value = "职务类型")
private java.lang.String jobType;
/**
* 职务
*/
@ApiModelProperty(value = "职务")
private java.lang.String jobName;
@ApiModelProperty(value = "退场时间")
private java.lang.String exitDate;
@ApiModelProperty(value = "特殊证书类型1一级2二级3三级")
private java.lang.Integer specialCertificateType;
@ApiModelProperty(value = "特殊证书号")
private java.lang.String specialCertificateNumber;
@ApiModelProperty(value = "特殊证书有效时间")
private java.lang.String specialCertificateValidityTime;
@ApiModelProperty(value = "考勤规则ID")
private java.lang.Long ruleId;
@ApiModelProperty(value = "是否上传住建0否1是")
private java.lang.Integer isUploadHousing;
@ApiModelProperty(value = "I深建人员序列号")
private java.lang.String personSerial;
@ApiModelProperty(value = "人脸设备表ID")
private java.lang.String ufaceDevId;
@ApiModelProperty(value = "码状态0无码1红2黄3绿")
private java.lang.Integer codeState;
@ApiModelProperty(value = "疫苗接种状态0未接口1已接种第一针2接种第二针3接种第三针")
private java.lang.Integer vaccineStatus;
@ApiModelProperty(value = "疫苗接种时间")
private java.lang.Integer vaccineTime;
@ApiModelProperty(value = "核酸状态0 未查询到核酸检测结果1 (核酸检测阴性-代表没事2 (核酸检测阳性-代表确诊3 (核酸检测有效期已过)")
private java.lang.Integer nadCode;
@ApiModelProperty(value = "核酸时间")
private java.lang.String nadTime;
@ApiModelProperty(value = "人员分类1普通人员2外来人员3其他人员")
private java.lang.Integer workerClassify;
/****************************team_info**************************/
/**
* 班组名称
*/
@Excel(name = "班组名称", width = 15)
@ApiModelProperty(value = "班组名称")
private java.lang.String teamName;
/**
* 负责人姓名
*/
@Excel(name = "负责人姓名", width = 15)
@ApiModelProperty(value = "负责人姓名")
private java.lang.String leaderName;
/**
* 负责人身份证号
*/
@Excel(name = "负责人身份证号", width = 15)
@ApiModelProperty(value = "负责人身份证号")
private java.lang.String leaderIdCard;
/**
* 负责人手机号
*/
@Excel(name = "负责人手机号", width = 15)
@ApiModelProperty(value = "负责人手机号")
private java.lang.String leaderPhone;
/**
* 工种id
*/
@Excel(name = "工种id", width = 15)
@ApiModelProperty(value = "工种id")
private java.lang.Long workerTypeId;
/**
* 班组类型
*/
@Excel(name = "班组类型", width = 15)
@ApiModelProperty(value = "班组类型")
private java.lang.String teamType;
/**
* 描述
*/
@Excel(name = "描述", width = 15)
@ApiModelProperty(value = "描述")
private java.lang.String describeValue;
/**
* 班组唯一标识
*/
@Excel(name = "班组唯一标识", width = 15)
@ApiModelProperty(value = "班组唯一标识")
private java.lang.String teamSn;
@ApiModelProperty(value = "是否特殊工种0否1是")
private java.lang.Integer specialTeam;
/*************************department_info****************************/
/**
* 部门名称
*/
@Excel(name = "部门名称", width = 15)
@ApiModelProperty(value = "部门名称")
private java.lang.String departmentName;
@TableField(exist = false)
@ApiModelProperty(value = "人员数量")
private java.lang.Integer workerNum;
/**
* 工种名称
*/
@Excel(name = "工种名称", width = 15)
@ApiModelProperty(value = "工种名称")
private java.lang.String typeName;
}