批量执行动作

public static JSONObject doLoadInfo(JSONObject params, ActionContext context) throws Exception {
String pID = params.getString("epid");
String sql = "select \n" 
+ " (select count(*) from YH_YHXX where YHDJ='一般隐患' AND EPID='" + pID + "')  as YBYH,\n" 
+ " (select count(*) from YH_YHXX where YHDJ='重大隐患' AND EPID='" + pID + "')  as ZDYH,\n" 
+ " (select count(*) from YH_YHXX where YHDJ='一般隐患' AND EPID='" + pID + "' AND (ZGZT='未整改' OR ZGZT='退回整改'))  as YBYH_ZGZ,\n"
+ " (select count(*) from YH_YHXX where YHDJ='重大隐患' AND (ZGZT='未整改' OR ZGZT='退回整改') AND EPID='" + pID + "')  as ZDYH_ZGZ,\n"
+ " (select count(*) from YH_YHXX where YHDJ='一般隐患' AND YHZGQX < SYSDATE  AND EPID='" + pID + "' AND (ZGZT='未整改' OR ZGZT='退回整改')) as YBYH_YQWZG,\n"
+ " (select count(*) from YH_YHXX where YHDJ='重大隐患' AND YHZGQX < SYSDATE  AND EPID='" + pID + "' AND (ZGZT='未整改' OR ZGZT='退回整改')) as ZDYH_YQWZG,\n"
+ " (select count(*) from YH_YHXX where YHDJ='一般隐患' AND ZGZT='已整改' AND EPID='" + pID + "') as YBYH_YGZ,\n"
+ " (select count(*) from YH_YHXX where YHDJ='重大隐患' AND ZGZT='已整改' AND EPID='" + pID + "') as ZDYH_YGZ,\n" 
+ " (select count(*) from YH_YHXX where ZGZT='未整改(审核中)' AND EPID='" + pID + "')  as DHZYH,\n" 
+ " (select count(*) from YH_YHXX where EPID='" + pID + "' AND (ZGZT='未整改' OR ZGZT='退回整改' ))  as XYZG,\n"
+ " (select count(*) from YH_YHXX where ZGZT='已整改' AND HXZT='未核销' AND EPID='" + pID + "')  as DHX,\n" 
+ " (select count(*) from YH_YHXX where YHDJ='重大隐患' AND EPID='" + pID + "')  as ZDYHZ\n" 
+ " from dual";
System.out.println(sql);
JSONObject result = new JSONObject();
Connection conn = null;
try {
conn = context.getConnection("em");
Table table = DataUtils.queryData(conn, sql, null, null, null, null);
List<Row> ls_row = table.getRows();
if (ls_row.size() > 0) {
Row row = ls_row.get(0);
result.put("result", "success");
JSONObject userInfo = new JSONObject();
userInfo.put("YBYH", row.getDecimal("YBYH").toString());
userInfo.put("ZDYH", row.getDecimal("ZDYH").toString());
userInfo.put("YBYH_ZGZ", row.getDecimal("YBYH_ZGZ").toString());
userInfo.put("ZDYH_ZGZ", row.getDecimal("ZDYH_ZGZ").toString());
userInfo.put("YBYH_YQWZG", row.getDecimal("YBYH_YQWZG").toString());
userInfo.put("ZDYH_YQWZG", row.getDecimal("ZDYH_YQWZG").toString());
userInfo.put("YBYH_YGZ", row.getDecimal("YBYH_YGZ").toString());
userInfo.put("ZDYH_YGZ", row.getDecimal("ZDYH_YGZ").toString());
userInfo.put("DHZYH", row.getDecimal("DHZYH").toString());
userInfo.put("XYZG", row.getDecimal("XYZG").toString());
userInfo.put("DHX", row.getDecimal("DHX").toString());
userInfo.put("ZDYHZ", row.getDecimal("ZDYHZ").toString());
result.put("Info", userInfo);
} else {
result.put("result", "fail");
result.put("reason", "查询出错!");
}
} finally {
if (conn != null) {
conn.close();
}


}
return result;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用C++通过欧姆龙 Ethernet/IP CIP协议批量写入数据,您可以使用以下步骤: 1. 首先,您需要了解如何连接到您的欧姆龙设备。这通常涉及到建立一个TCP/IP连接,然后使用Socket发送和接收数据。 2. 接下来,您需要了解如何使用CIP协议。CIP是欧姆龙的一种协议,用于在工业环境中进行通信。您需要了解CIP报文结构,如何构建CIP报文以及如何解析CIP报文。 3. 然后,您需要确定要写入的数据的地址和格式。您可以使用欧姆龙的CX-Programmer软件来查找设备上的数据地址。 4. 接着,您需要编写C++代码来构建CIP报文,将要写入的数据包含在报文中,并将报文发送到设备。这可能涉及到使用C++的Socket库来发送和接收数据。 5. 最后,您需要处理设备返回的响应,以确保数据已经成功写入设备。 总体来说,这是一个相对复杂的过程,需要对Socket编程和CIP协议有深入的了解。建议您参考欧姆龙的官方文档和示例代码来实现这个过程。 ### 回答2: 通过欧姆龙EntherNet/IP CIP(Common Industrial Protocol)报文批量写入是一种在工业领域中常用的通信协议,可以实现对欧姆龙设备进行批量写入操作。 在进行批量写入之前,首先需要建立与目标设备的通信连接。通常,可以使用以太网作为通信介质,通过配置正确的IP地址和端口号,确保与设备建立可靠的网络连接。 一旦建立了连接,就可以开始进行批量写入操作。批量写入是指一次性向多个设备写入数据。通过发送CIP报文,可以指定要进行写入的数据的地址和数值。 CIP协议中的报文格式包括报头、数据区和校验位。报头中包含了发送者和接收者的信息,数据区包含了要写入的数据的具体内容,校验位用于验证报文的完整性,确保无误传输。 在CIP报文中,可以指定要写入的设备地址、存储器地址和写入的数据类型。欧姆龙设备支持多种数据类型,如位、字、双字等。通过正确设置这些参数,可以保证数据按照预期被写入指定的设备和地址。 通过批量写入功能,可以实现对多个设备的同时控制和操作,提高工业生产的效率和精度。例如,可以批量写入多个传感器的阈值设定,同时修改多个执行器的动作状态等。 总之,通过欧姆龙EntherNet/IP CIP报文批量写入,可以实现对欧姆龙设备进行一次性写入操作,提高工业生产的效率和可靠性。这种通信协议在工业自动化领域得到广泛应用,并且具有较高的稳定性和可扩展性。 ### 回答3: 欧姆龙的EntherNet/IP CIP报文是一种用于批量写入的通信协议。EntherNet/IP是工业自动化领域中的一种标准化协议,用于在网络上传输和交换数据。CIP(Common Industrial Protocol)是EntherNet/IP的子协议,用于定义数据通信的详细规范。 在使用EntherNet/IP CIP报文进行批量写入时,首先要建立起与目标设备的网络连接。然后,通过发送CIP报文来向设备发送写入的指令。 CIP报文中需要包含以下信息: 1. 目标设备的网络地址:这是需要写入数据的设备在网络中的唯一标识。通过这个地址,可以确定要将数据写入哪个设备。 2. 写入的对象标识:这是要写入的对象在设备中的唯一标识。通过这个对象标识,可以确定要对哪个对象进行写入操作。 3. 写入的数据:这是要写入的具体数据。可以根据需要将一个或多个数据写入到目标设备的指定对象中。 4. 写入的数据类型:对于不同类型的对象,可能需要使用不同的数据格式进行写入。CIP报文中需要指定数据的类型,以确保正确解析和存储。 5. 其他参数:根据实际需要,还可以在CIP报文中包含其他参数,如写入的起始位置、写入的长度等。 通过发送合适的CIP报文,可以实现对目标设备的批量写入操作。这种批量写入的方式可以提高效率,减少通信开销,适用于一次性向多个设备或对象写入数据的场景。 总而言之,EntherNet/IP CIP报文批量写入是一种通过网络进行数据通信的协议,可以实现同时向多个设备或对象写入数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值