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

View File

@ -96,6 +96,30 @@ public interface HighFormworkSupport {
* 测点状态1 * 测点状态1
*/ */
public static final String GZ_ZT1 = "GZ_ZT1"; 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; 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.constant.HighFormworkSupport;
import com.zhgd.xmgl.modules.highformwork.netty.tcp.service.HighFormworkSupportService;
import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler; import io.netty.channel.SimpleChannelInboundHandler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
/** /**
* Created by chenws on 2020/3/24. * 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); log.info("I get the message >>> \r\n {} ", msg);
//把消息写到缓冲区 //把消息写到缓冲区
ctx.writeAndFlush("ok"); ctx.writeAndFlush("ok");
writeToFile(msg);
//接收高支模数据保存到mysql中 //接收高支模数据保存到mysql中
msg = msg.trim(); msg = msg.trim();
if (StringUtils.startsWith(msg, HighFormworkSupport.TCP_DATA_PREFIX) && StringUtils.endsWith(msg, HighFormworkSupport.TCP_DATA_END)) { if (StringUtils.startsWith(msg, HighFormworkSupport.TCP_DATA_PREFIX) && StringUtils.endsWith(msg, HighFormworkSupport.TCP_DATA_END)) {
try { try {
highFormworkSupportService.saveTcpData(msg); highFormworkSupportService.saveTcpData(msg);
} catch (Exception e) { } catch (Exception e) {
log.error("接收高支模数据保存到mysql中exception >>> \r\n ", e); log.error("error接收高支模数据保存到mysql中exception >>> \r\n ", e);
} finally { } finally {
highFormworkSupportResponseOk(ctx); highFormworkSupportResponseOk(ctx);
} }
@ -48,17 +43,6 @@ public class TcpNettyHandler extends SimpleChannelInboundHandler<String> {
ctx.writeAndFlush("$LRKKJ$ MSG:\"\"; OK;END"); 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 @Override
public void channelReadComplete(ChannelHandlerContext ctx) { 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 io.netty.handler.codec.string.StringEncoder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/** /**
* @author chenws * @author chenws
@ -28,40 +29,13 @@ import javax.annotation.PostConstruct;
public class TcpNettyServer { public class TcpNettyServer {
@Autowired @Autowired
private TcpNettyHandler tcpNettyHandler; private TcpNettyHandler tcpNettyHandler;
@Autowired
private StringEncoder stringEncoder;
@Autowired
private StringDecoder stringDecoder;
@Autowired
private BindListener bindListener;
@Autowired
private CloseListener closeListener;
@Value("${high_formwork.netty.port}") @Value("${high_formwork.netty.port}")
int 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 @PostConstruct
private void startTcpServer() { private void startTcpServer() {
new Thread(() -> {
EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup(6); EventLoopGroup workerGroup = new NioEventLoopGroup(6);
try { try {
@ -75,21 +49,22 @@ public class TcpNettyServer {
protected void initChannel(SocketChannel socketChannel) throws Exception { protected void initChannel(SocketChannel socketChannel) throws Exception {
//添加自定义处理器 //添加自定义处理器
socketChannel.pipeline() socketChannel.pipeline()
.addLast(stringEncoder) .addLast(new StringEncoder(StandardCharsets.UTF_8))
.addLast(stringDecoder) .addLast(new StringDecoder(Charset.forName("GBK")))
.addLast(tcpNettyHandler); .addLast(tcpNettyHandler);
} }
}); });
//监听器当服务绑定成功后执行 //监听器当服务绑定成功后执行
ChannelFuture channelFuture = serverBootstrap.bind(port).sync().addListener(bindListener); ChannelFuture channelFuture = serverBootstrap.bind(port).sync().addListener(new BindListener());
//监听器当停止服务后执行 //监听器当停止服务后执行
channelFuture.channel().closeFuture().sync().addListener(closeListener); channelFuture.channel().closeFuture().sync().addListener(new CloseListener());
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
bossGroup.shutdownGracefully(); bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully(); workerGroup.shutdownGracefully();
} }
}).start();
} }
} }

View File

@ -1,8 +1,9 @@
package com.zhgd.xmgl.modules.highformwork.netty.tcp.service; package com.zhgd.xmgl.modules.highformwork.netty.tcp.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zhgd.xmgl.modules.highformwork.entity.HighFormworkMeasureCurrentData;
import com.zhgd.xmgl.modules.highformwork.mapper.HighFormworkMeasureDeviceMapper; import com.zhgd.xmgl.modules.highformwork.mapper.HighFormworkMeasureCurrentDataMapper;
import com.zhgd.xmgl.modules.highformwork.netty.tcp.constant.HighFormworkSupport; import com.zhgd.xmgl.modules.highformwork.netty.tcp.constant.HighFormworkSupport;
import com.zhgd.xmgl.modules.highformwork.service.IHighFormworkMeasureCurrentDataService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -14,6 +15,9 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* 高支模tcp服务端
*/
@Component @Component
@Slf4j @Slf4j
public class HighFormworkSupportService { public class HighFormworkSupportService {
@ -29,7 +33,9 @@ public class HighFormworkSupportService {
//private IHighFormworkSupportDeviceDataService highFormworkSupportDeviceDataService; //private IHighFormworkSupportDeviceDataService highFormworkSupportDeviceDataService;
@Autowired @Autowired
private HighFormworkMeasureDeviceMapper highFormworkMeasureDeviceMapper; private HighFormworkMeasureCurrentDataMapper dataMapper;
@Autowired
private IHighFormworkMeasureCurrentDataService dataService;
public void saveTcpData(String msg) throws ParseException { public void saveTcpData(String msg) throws ParseException {
/* /*
@ -100,86 +106,157 @@ public class HighFormworkSupportService {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HHmmss");
log.info("saveTcpData() >>> \r\n {}", dataMap); log.info("saveTcpData() >>> \r\n {}", dataMap);
LambdaQueryWrapper<HighFormworkSupportDevice> deviceLambdaQueryWrapper = new LambdaQueryWrapper<HighFormworkSupportDevice>() // LambdaQueryWrapper<HighFormworkSupportDevice> deviceLambdaQueryWrapper = new LambdaQueryWrapper<HighFormworkSupportDevice>()
.eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH)) // .eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH))
.eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH)); // .eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH));
if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GPS_DEV_J::equals)) { if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GPS_DEV_J::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模设备-工程信息"); log.info("saveTcpData() >>> \r\n {}", "高支模设备-工程信息");
HighFormworkSupportDevice highFormworkSupportDevice = new HighFormworkSupportDevice(); // HighFormworkSupportDevice highFormworkSupportDevice = new HighFormworkSupportDevice();
highFormworkSupportDevice.setDevType(dataMap.get(HighFormworkSupport.DEV_TYPE)); // highFormworkSupportDevice.setDevType(dataMap.get(HighFormworkSupport.DEV_TYPE));
highFormworkSupportDevice.setDevBh(dataMap.get(HighFormworkSupport.DEV_BH)); // highFormworkSupportDevice.setDevBh(dataMap.get(HighFormworkSupport.DEV_BH));
highFormworkSupportDevice.setGpsDevJ(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_J))); // highFormworkSupportDevice.setGpsDevJ(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_J)));
highFormworkSupportDevice.setGpsDevW(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_W))); // highFormworkSupportDevice.setGpsDevW(Double.valueOf(dataMap.get(HighFormworkSupport.GPS_DEV_W)));
highFormworkSupportDevice.setTrBh(dataMap.get(HighFormworkSupport.TR_BH)); // highFormworkSupportDevice.setTrBh(dataMap.get(HighFormworkSupport.TR_BH));
HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper); // HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper);
//高支模设备-工程信息 // //高支模设备-工程信息
if (device == null) { // if (device == null) {
highFormworkSupportDeviceMapper.insert(highFormworkSupportDevice); // highFormworkSupportDeviceMapper.insert(highFormworkSupportDevice);
} else { // } else {
highFormworkSupportDeviceMapper.update(highFormworkSupportDevice, deviceLambdaQueryWrapper); // highFormworkSupportDeviceMapper.update(highFormworkSupportDevice, deviceLambdaQueryWrapper);
highFormworkSupportDevice.setId(device.getId()); // highFormworkSupportDevice.setId(device.getId());
} // }
//
HighFormworkSupportUpload upload = new HighFormworkSupportUpload(); // HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
upload.setHighFormworkSupportDeviceId(highFormworkSupportDevice.getId()); // upload.setHighFormworkSupportDeviceId(highFormworkSupportDevice.getId());
upload.setScBh(dataMap.get(HighFormworkSupport.SC_BH)); // upload.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
upload.setCdAl(Integer.valueOf(dataMap.get(HighFormworkSupport.CD_AL))); // upload.setCdAl(Integer.valueOf(dataMap.get(HighFormworkSupport.CD_AL)));
upload.setJcT(Integer.valueOf(dataMap.get(HighFormworkSupport.JC_T))); // upload.setJcT(Integer.valueOf(dataMap.get(HighFormworkSupport.JC_T)));
upload.setScT(Integer.valueOf(dataMap.get(HighFormworkSupport.SC_T))); // upload.setScT(Integer.valueOf(dataMap.get(HighFormworkSupport.SC_T)));
upload.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME))); // upload.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
upload.setDevSn(dataMap.get(HighFormworkSupport.DEV_TYPE)); // upload.setDevSn(dataMap.get(HighFormworkSupport.DEV_TYPE));
highFormworkSupportUploadMapper.insert(upload); // highFormworkSupportUploadMapper.insert(upload);
} else if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GZ_CS::equals)) { } else if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GZ_CS::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模测点信息"); log.info("saveTcpData() >>> \r\n {}", "高支模测点信息");
HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper // HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(deviceLambdaQueryWrapper
); // );
//高支模测点信息 // //高支模测点信息
HighFormworkSupportMeasurePoint point = new HighFormworkSupportMeasurePoint(); // HighFormworkSupportMeasurePoint point = new HighFormworkSupportMeasurePoint();
point.setHighFormworkSupportDeviceId(device != null ? device.getId() : null); // point.setHighFormworkSupportDeviceId(device != null ? device.getId() : null);
point.setDevSn(dataMap.get(HighFormworkSupport.DEV_SN)); // point.setDevSn(dataMap.get(HighFormworkSupport.DEV_SN));
point.setSnCj(dataMap.get(HighFormworkSupport.SN_CJ)); // point.setSnCj(dataMap.get(HighFormworkSupport.SN_CJ));
point.setGzCs(dataMap.get(HighFormworkSupport.GZ_CS)); // point.setGzCs(dataMap.get(HighFormworkSupport.GZ_CS));
point.setGzBj(dataMap.get(HighFormworkSupport.GZ_BJ)); // point.setGzBj(dataMap.get(HighFormworkSupport.GZ_BJ));
point.setGzYj(dataMap.get(HighFormworkSupport.GZ_YJ)); // point.setGzYj(dataMap.get(HighFormworkSupport.GZ_YJ));
String coord = dataMap.get(HighFormworkSupport.GZ_ZB); // String coord = dataMap.get(HighFormworkSupport.GZ_ZB);
point.setGzZbX(Integer.valueOf(coord.split(",")[0])); // point.setGzZbX(Integer.valueOf(coord.split(",")[0]));
point.setGzZbY(Integer.valueOf(coord.split(",")[1])); // point.setGzZbY(Integer.valueOf(coord.split(",")[1]));
highFormworkSupportMeasurePointMapper.insert(point); // highFormworkSupportMeasurePointMapper.insert(point);
} else if (dataMap.keySet().stream().anyMatch(s -> s.contains(HighFormworkSupport.GZ_CJ))) { } else if (dataMap.keySet().stream().anyMatch(s -> s.contains(HighFormworkSupport.GZ_CJ))) {
log.info("saveTcpData() >>> \r\n {}", "高支模设备采集数据"); log.info("saveTcpData() >>> \r\n {}", "高支模设备采集数据");
//高支模设备采集数据 //高支模设备采集数据
HashMap<String, HashMap<String, String>> pointMapByNo = getPointMapByNo(dataMap); // HashMap<String, HashMap<String, String>> pointMapByNo = getPointMapByNo(dataMap);
ArrayList<HighFormworkSupportDeviceData> dataArrayList = new ArrayList<>(); // ArrayList<HighFormworkSupportDeviceData> dataArrayList = new ArrayList<>();
for (Map.Entry<String, HashMap<String, String>> entry : pointMapByNo.entrySet()) { // for (Map.Entry<String, HashMap<String, String>> entry : pointMapByNo.entrySet()) {
HashMap<String, String> map = entry.getValue(); // HashMap<String, String> map = entry.getValue();
HighFormworkSupportDeviceData deviceData = new HighFormworkSupportDeviceData(); // HighFormworkSupportDeviceData deviceData = new HighFormworkSupportDeviceData();
deviceData.setGzCj(map.get(HighFormworkSupport.GZ_CJ)); // deviceData.setGzCj(map.get(HighFormworkSupport.GZ_CJ));
deviceData.setGzDs(map.get(HighFormworkSupport.GZ_DS)); // deviceData.setGzDs(map.get(HighFormworkSupport.GZ_DS));
deviceData.setGzZt(map.get(HighFormworkSupport.GZ_ZT)); // deviceData.setGzZt(map.get(HighFormworkSupport.GZ_ZT));
deviceData.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME))); // deviceData.setTime(sdf.parse(dataMap.get(HighFormworkSupport.TIME)));
deviceData.setScBh(dataMap.get(HighFormworkSupport.SC_BH)); // deviceData.setScBh(dataMap.get(HighFormworkSupport.SC_BH));
deviceData.setHighFormworkSupportUploadId(highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap)); // deviceData.setHighFormworkSupportUploadId(highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap));
dataArrayList.add(deviceData); // dataArrayList.add(deviceData);
} // }
highFormworkSupportDeviceDataService.saveBatch(dataArrayList); // 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)) { } else if (dataMap.keySet().stream().anyMatch(HighFormworkSupport.GZ_GZT::equals)) {
log.info("saveTcpData() >>> \r\n {}", "高支模结束信息"); log.info("saveTcpData() >>> \r\n {}", "高支模结束信息");
//高支模结束信息 //高支模结束信息
Integer uploadIdByInfo = highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap); // Integer uploadIdByInfo = highFormworkSupportDeviceMapper.getUploadIdByInfo(dataMap);
HighFormworkSupportUpload upload = new HighFormworkSupportUpload(); // HighFormworkSupportUpload upload = new HighFormworkSupportUpload();
upload.setJsT(sdf.parse(dataMap.get(HighFormworkSupport.JS_T))); // upload.setJsT(sdf.parse(dataMap.get(HighFormworkSupport.JS_T)));
upload.setGzGzt(Integer.valueOf(dataMap.get(HighFormworkSupport.GZ_GZT))); // upload.setGzGzt(Integer.valueOf(dataMap.get(HighFormworkSupport.GZ_GZT)));
upload.setId(uploadIdByInfo); // upload.setId(uploadIdByInfo);
highFormworkSupportUploadMapper.updateById(upload); // 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))); * @param s
return device != null; * @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) { private HashMap<String, HashMap<String, String>> getPointMapByNo(HashMap<String, String> dataMap) {
HashMap<String, HashMap<String, String>> pointMap = new HashMap<>(); HashMap<String, HashMap<String, String>> pointMap = new HashMap<>();

View File

@ -64,6 +64,9 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
@Autowired @Autowired
private AsyBim asyBim; private AsyBim asyBim;
@Value("${spring.profiles.active}")
private String activeProfile;
/** /**
* 匹配楼层正则 * 匹配楼层正则
*/ */
@ -78,6 +81,8 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
List<ProgressTask> progressTasks = progressTaskMapper.selectList(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn)); List<ProgressTask> progressTasks = progressTaskMapper.selectList(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn));
log.info("原progressTasks{}", JSON.toJSONString(progressTasks)); log.info("原progressTasks{}", JSON.toJSONString(progressTasks));
progressTaskMapper.delete(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn)); progressTaskMapper.delete(Wrappers.lambdaQuery(ProgressTask.class).eq(ProgressTask::getProjectSn, projectSn));
if (activeProfile.equals("zjsj")) {
//调用BIM同步删除数据 //调用BIM同步删除数据
List<BIMProgressTaskRqBody> deleteList = getProgressTaskRqBodyData(progressTasks); List<BIMProgressTaskRqBody> deleteList = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(deleteList)) { if (CollUtil.isNotEmpty(deleteList)) {
@ -85,12 +90,13 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor()); asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor());
} }
} }
}
Collection<ProgressTask> progressTaskList = analysisMpp(mppFile, projectSn, createUserId); Collection<ProgressTask> progressTaskList = analysisMpp(mppFile, projectSn, createUserId);
log.info("importData的新增数据{}", progressTaskList); log.info("importData的新增数据{}", progressTaskList);
if (CollUtil.isNotEmpty(progressTaskList)) { if (CollUtil.isNotEmpty(progressTaskList)) {
progressTaskMapper.insertBatch(progressTaskList); progressTaskMapper.insertBatch(progressTaskList);
if (activeProfile.equals("zjsj")) {
//调用BIM同步添加数据 //调用BIM同步添加数据
List<BIMProgressTaskRqBody> bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks); List<BIMProgressTaskRqBody> bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks);
if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) { if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) {
@ -100,6 +106,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
} }
} }
} }
}
/** /**
* 计算BIM同步添加数据 * 计算BIM同步添加数据
@ -355,6 +362,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
setDutyUserName(progressTask); setDutyUserName(progressTask);
progressTaskMapper.updateById(progressTask); progressTaskMapper.updateById(progressTask);
if (activeProfile.equals("zjsj")) {
//同步数据到bim先删除再更新bim //同步数据到bim先删除再更新bim
if (progressTask.getParentId() != 0) { if (progressTask.getParentId() != 0) {
ProgressTask top = progressTaskMapper.selectById(progressTask.getParentId()); ProgressTask top = progressTaskMapper.selectById(progressTask.getParentId());
@ -378,6 +386,7 @@ public class ProgressTaskServiceImpl extends ServiceImpl<ProgressTaskMapper, Pro
} }
} }
} }
}
@Override @Override
public void addProgressTask(ProgressTask progressTask) { public void addProgressTask(ProgressTask progressTask) {

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.WorkerInfo;
import com.zhgd.xmgl.modules.worker.entity.vo.DeclareAgeVO; 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.PersonnelSituationVO;
import com.zhgd.xmgl.modules.worker.entity.vo.WorkerInfoDetailsVo;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -552,4 +553,15 @@ public class WorkerInfoController {
public Result<Map<String, Object>> selectWorkerAntiepidemicTotal(@RequestBody Map<String, Object> map) { public Result<Map<String, Object>> selectWorkerAntiepidemicTotal(@RequestBody Map<String, Object> map) {
return Result.success(workerInfoService.selectWorkerAntiepidemicTotal(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;
}