From 52aab6448b8fa440e94ed537d39f9f62d9e22a18 Mon Sep 17 00:00:00 2001 From: GUO <1923636941@qq.com> Date: Wed, 8 Mar 2023 22:21:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5BIM=E5=8D=8F=E5=90=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=B9=B3=E5=8F=B0=E8=BF=9B=E5=BA=A6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3-=E5=8F=AA=E6=9C=89=E4=B8=AD?= =?UTF-8?q?=E5=BB=BA=E5=9B=9B=E5=B1=80=E7=94=9F=E6=95=88=20=E9=AB=98?= =?UTF-8?q?=E6=94=AF=E6=A8=A1tcp=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HighFormworkMeasureCurrentData.java | 12 +- .../tcp/constant/HighFormworkSupport.java | 24 ++ .../netty/tcp/handler/TcpNettyHandler.java | 20 +- .../netty/tcp/server/TcpNettyServer.java | 89 ++--- .../service/HighFormworkSupportService.java | 215 +++++++---- .../service/impl/ProgressTaskServiceImpl.java | 71 ++-- .../controller/WorkerInfoController.java | 12 + .../worker/entity/vo/WorkerInfoDetailsVo.java | 348 ++++++++++++++++++ 8 files changed, 609 insertions(+), 182 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/WorkerInfoDetailsVo.java diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java index ff021aed8..aed57205e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/entity/HighFormworkMeasureCurrentData.java @@ -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 ; } diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/constant/HighFormworkSupport.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/constant/HighFormworkSupport.java index 25e8e6e84..1a63b958f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/constant/HighFormworkSupport.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/constant/HighFormworkSupport.java @@ -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"; /** * 状态 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/handler/TcpNettyHandler.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/handler/TcpNettyHandler.java index 49b7dee95..87c6e3683 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/handler/TcpNettyHandler.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/handler/TcpNettyHandler.java @@ -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 { 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 { 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) { //刷新缓冲区,把消息发出去 diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/server/TcpNettyServer.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/server/TcpNettyServer.java index 36efd2ffa..0629a5a82 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/server/TcpNettyServer.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/server/TcpNettyServer.java @@ -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() { - @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() { + @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(); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/service/HighFormworkSupportService.java b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/service/HighFormworkSupportService.java index 1d4f869bd..e47cec40a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/service/HighFormworkSupportService.java +++ b/src/main/java/com/zhgd/xmgl/modules/highformwork/netty/tcp/service/HighFormworkSupportService.java @@ -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 deviceLambdaQueryWrapper = new LambdaQueryWrapper() - .eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH)) - .eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH)); +// LambdaQueryWrapper deviceLambdaQueryWrapper = new LambdaQueryWrapper() +// .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> pointMapByNo = getPointMapByNo(dataMap); - ArrayList dataArrayList = new ArrayList<>(); - for (Map.Entry> entry : pointMapByNo.entrySet()) { - HashMap 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> pointMapByNo = getPointMapByNo(dataMap); +// ArrayList dataArrayList = new ArrayList<>(); +// for (Map.Entry> entry : pointMapByNo.entrySet()) { +// HashMap 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 dataArrayList = new ArrayList<>(); + //测点编号后缀为测点类型识别:F-立杆轴力(单位为牛)、H-水平位移(单位为mm)、V-模板沉降(单位为mm)、L-立杆倾斜(单位为°)、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-水平位移(单位为mm)、V-模板沉降(单位为mm)、L-立杆倾斜(单位为°)、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-水平位移(单位为mm)、V-模板沉降(单位为mm)、L-立杆倾斜(单位为°)、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 dataMap) { - HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(new LambdaQueryWrapper() - .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 dataMap) { +// HighFormworkSupportDevice device = highFormworkSupportDeviceMapper.selectOne(new LambdaQueryWrapper() +// .eq(HighFormworkSupportDevice::getDevBh, dataMap.get(HighFormworkSupport.DEV_BH)) +// .eq(HighFormworkSupportDevice::getTrBh, dataMap.get(HighFormworkSupport.TR_BH))); +// return device != null; +// } + private HashMap> getPointMapByNo(HashMap dataMap) { HashMap> pointMap = new HashMap<>(); for (Map.Entry entry : dataMap.entrySet()) { diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java index de842f514..d0d6b15ff 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProgressTaskServiceImpl.java @@ -64,6 +64,9 @@ public class ProgressTaskServiceImpl extends ServiceImpl 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 deleteList = getProgressTaskRqBodyData(progressTasks); - if (CollUtil.isNotEmpty(deleteList)) { - for (BIMProgressTaskRqBody body : deleteList) { - asyBim.asynDeleteProgressTask(body.getFloor(), body.getMajor()); + + if (activeProfile.equals("zjsj")) { + //调用BIM同步删除数据 + List 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 bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks); - if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) { - for (BIMProgressTaskRqBody bimProgressTaskRqBody : bimProgressTaskRqBodies) { - asyBim.asynAddProgressTask(bimProgressTaskRqBody); + if (activeProfile.equals("zjsj")) { + //调用BIM同步添加数据 + List bimProgressTaskRqBodies = getProgressTaskRqBodyData(progressTasks); + if (CollUtil.isNotEmpty(bimProgressTaskRqBodies)) { + for (BIMProgressTaskRqBody bimProgressTaskRqBody : bimProgressTaskRqBodies) { + asyBim.asynAddProgressTask(bimProgressTaskRqBody); + } } } } @@ -355,26 +362,28 @@ public class ProgressTaskServiceImpl extends ServiceImpl> selectWorkerAntiepidemicTotal(@RequestBody Map map) { return Result.success(workerInfoService.selectWorkerAntiepidemicTotal(map)); } + + /** + * 查询劳务用工的详情信息 + * + * @return + */ + @GetMapping("/details") + public Result> getWorkerInfoDetails() { + + return Result.ok(); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/WorkerInfoDetailsVo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/WorkerInfoDetailsVo.java new file mode 100644 index 000000000..9acf7902d --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/WorkerInfoDetailsVo.java @@ -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; + +}