mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
处理磅房作废数据
This commit is contained in:
@@ -16,6 +16,8 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
|
||||
import io.vavr.control.Try;
|
||||
|
||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||
import jakarta.persistence.criteria.CriteriaQuery;
|
||||
import jakarta.persistence.criteria.Predicate;
|
||||
@@ -135,138 +137,10 @@ public class WeightListener {
|
||||
|
||||
switch (rk.toString()) {
|
||||
case "weight20.weightinfo" -> {
|
||||
ArrayNode nodes = (ArrayNode) jsonNode;
|
||||
var flowNumbers =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(x -> x.get("序号") + ":" + x.get("流水号").asText() + ":" + x.get("更新时间").asText())
|
||||
.toList();
|
||||
logEntity.setContent(StringUtils.join(flowNumbers, ","));
|
||||
|
||||
var seqNumbers =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(x -> x.get("序号").asInt())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Map<Integer, WeightDeviceDataEntity> seqNumberMap =
|
||||
weightDeviceDataService
|
||||
.findAll(
|
||||
(Specification<WeightDeviceDataEntity>)
|
||||
(root, query, criteriaBuilder) ->
|
||||
criteriaBuilder.and(
|
||||
criteriaBuilder.equal(
|
||||
root.get("device")
|
||||
.get("id"),
|
||||
device.getId()),
|
||||
root.get("sequenceNumber").in(seqNumbers)))
|
||||
.stream()
|
||||
.collect(
|
||||
Collectors.toMap(
|
||||
WeightDeviceDataEntity::getSequenceNumber, e -> e));
|
||||
|
||||
nodes.forEach(
|
||||
x -> {
|
||||
WeightDeviceDataEntity deviceData = new WeightDeviceDataEntity();
|
||||
var flowNumber = x.get("流水号").asText();
|
||||
var seqNumber = x.get("序号").asInt();
|
||||
log.info("data from weight20: {} {} {} {} ", seqNumber, flowNumber, x.get("更新时间").asText() ,device.getId());
|
||||
if (seqNumberMap.containsKey(seqNumber)) {
|
||||
log.info("data already exists: {} {} {}", seqNumber, flowNumber, device.getId());
|
||||
deviceData = seqNumberMap.get(seqNumber);
|
||||
}
|
||||
// log.info(x.toPrettyString());
|
||||
|
||||
deviceData.setDevice(device);
|
||||
deviceData.setOrganizationId(device.getOrganizationId());
|
||||
|
||||
deviceData.setSequenceNumber(toInteger(x.get("序号")));
|
||||
deviceData.setFlowNumber(toString(x.get("流水号")));
|
||||
deviceData.setPlateNo(toString(x.get("车号")));
|
||||
deviceData.setWeighType(toString(x.get("过磅类型")));
|
||||
deviceData.setSendOrganization(toString(x.get("发货单位")));
|
||||
deviceData.setReceiveOrganization(toString(x.get("收货单位")));
|
||||
deviceData.setGoods(toString(x.get("货名")));
|
||||
deviceData.setSpecification(toString(x.get("规格")));
|
||||
deviceData.setMz(toDouble(x.get("毛重")));
|
||||
deviceData.setPz(toDouble(x.get("皮重")));
|
||||
deviceData.setJz(toDouble(x.get("净重")));
|
||||
deviceData.setKz(toDouble(x.get("扣重")));
|
||||
deviceData.setSz(toDouble(x.get("实重")));
|
||||
deviceData.setPrice(toDouble(x.get("单价")));
|
||||
deviceData.setAmount(toDouble(x.get("金额")));
|
||||
deviceData.setZfxs(toDouble(x.get("折方系数")));
|
||||
deviceData.setFl(toDouble(x.get("方量")));
|
||||
deviceData.setWeightFee(toDouble(x.get("过磅费")));
|
||||
deviceData.setMzUser(toString(x.get("毛重司磅员")));
|
||||
deviceData.setPzUser(toString(x.get("皮重司磅员")));
|
||||
deviceData.setMzbh(toString(x.get("毛重磅号")));
|
||||
deviceData.setPzbh(toString(x.get("皮重磅号")));
|
||||
deviceData.setMzTime(toLocalDateTime(x.get("毛重时间")));
|
||||
deviceData.setPzTime(toLocalDateTime(x.get("皮重时间")));
|
||||
deviceData.setYcgbTIme(toLocalDateTime(x.get("一次过磅时间")));
|
||||
deviceData.setEcgbTime(toLocalDateTime(x.get("二次过磅时间")));
|
||||
deviceData.setUpdateUser(toString(x.get("更新人")));
|
||||
deviceData.setDataUpdateTime(toLocalDateTime(x.get("更新时间")));
|
||||
deviceData.setRemark(toString(x.get("备注")));
|
||||
deviceData.setPrintCount(toInteger(x.get("打印次数")));
|
||||
deviceData.setUpload(toBoolean(x.get("上传否")));
|
||||
deviceData.setReserve1(toString(x.get("备用1")));
|
||||
deviceData.setReserve2(toString(x.get("备用2")));
|
||||
deviceData.setReserve3(toString(x.get("备用3")));
|
||||
deviceData.setReserve4(toString(x.get("备用4")));
|
||||
deviceData.setReserve5(toString(x.get("备用5")));
|
||||
deviceData.setReserve6(toDouble(x.get("备用6")));
|
||||
deviceData.setReserve7(toDouble(x.get("备用7")));
|
||||
deviceData.setReserve8(toDouble(x.get("备用8")));
|
||||
deviceData.setReserve9(toDouble(x.get("备用9")));
|
||||
deviceData.setReserve10(toString(x.get("备用10")));
|
||||
deviceData.setReserve11(toString(x.get("备用11")));
|
||||
deviceData.setReserve12(toString(x.get("备用12")));
|
||||
deviceData.setReserve13(toString(x.get("备用13")));
|
||||
deviceData.setReserve14(toString(x.get("备用14")));
|
||||
deviceData.setReserve15(toDouble(x.get("备用15")));
|
||||
deviceData.setReserve16(toDouble(x.get("备用16")));
|
||||
deviceData.setReserve17(toDouble(x.get("备用17")));
|
||||
deviceData.setReserve18(toDouble(x.get("备用18")));
|
||||
deviceData.setClientType(toInteger(x.get("客户类型")));
|
||||
deviceData.setYcgbWeight(toDouble(x.get("一次过磅重")));
|
||||
deviceData.setEcgbWeight(toDouble(x.get("二次过磅重")));
|
||||
deviceData.setB0(toString(x.get("b0")));
|
||||
deviceData.setAguid(toString(x.get("aguid")));
|
||||
deviceData.setPlanNumber(toString(x.get("PlanNumber")));
|
||||
deviceData.setRecordCreateMode(toInteger(x.get("RecordCreateMode")));
|
||||
deviceData.setRecordFinish(toInteger(x.get("RecordFinish")));
|
||||
deviceData.setNetPriceSyncTime(toLocalDateTime(x.get("网价同步时间")));
|
||||
deviceData.setNetPriceModifyUser(toString(x.get("网价修改人")));
|
||||
deviceData.setCTime(toLocalDateTime(x.get("CTime")));
|
||||
deviceData.setModifyOnnet(toString(x.get("modify_onnet")));
|
||||
deviceData.setModifyTime(toLocalDateTime(x.get("modify_time")));
|
||||
deviceData.setModifyBy(toString(x.get("modify_by")));
|
||||
deviceData.setAuditFlag(toString(x.get("audit_flag")));
|
||||
deviceData.setAuditTime(toLocalDateTime(x.get("audit_time")));
|
||||
deviceData.setAuditBy(toString(x.get("audit_by")));
|
||||
deviceData.setEUpimg(toString(x.get("e_upimg")));
|
||||
deviceData.setReserve19(toString(x.get("备用19")));
|
||||
deviceData.setReserve20(toString(x.get("备用20")));
|
||||
deviceData.setReserve21(toString(x.get("备用21")));
|
||||
deviceData.setReserve22(toString(x.get("备用22")));
|
||||
deviceData.setReserve23(toString(x.get("备用23")));
|
||||
deviceData.setReserve24(toString(x.get("备用24")));
|
||||
deviceData.setReserve25(toString(x.get("备用25")));
|
||||
deviceData.setReserve26(toString(x.get("备用26")));
|
||||
deviceData.setReserve27(toString(x.get("备用27")));
|
||||
deviceData.setReserve28(toString(x.get("备用28")));
|
||||
deviceData.setDriverInfo(toString(x.get("driver_info")));
|
||||
deviceData.setHqbUpImgG1(toInteger(x.get("HQB_UpImg_G1")));
|
||||
deviceData.setHqbUpImgG2(toInteger(x.get("HQB_UpImg_G2")));
|
||||
deviceData.setHqbUpImgG3(toInteger(x.get("HQB_UpImg_G3")));
|
||||
deviceData.setHqbUpImgG4(toInteger(x.get("HQB_UpImg_G4")));
|
||||
deviceData.setHqbUpImgT1(toInteger(x.get("HQB_UpImg_T1")));
|
||||
deviceData.setHqbUpImgT2(toInteger(x.get("HQB_UpImg_T2")));
|
||||
deviceData.setHqbUpImgT3(toInteger(x.get("HQB_UpImg_T3")));
|
||||
deviceData.setHqbUpImgT4(toInteger(x.get("HQB_UpImg_T4")));
|
||||
|
||||
weightDeviceDataService.save(deviceData);
|
||||
});
|
||||
handleWeightInfo((ArrayNode) jsonNode, logEntity, device);
|
||||
}
|
||||
case "weight20.weightinvalid" -> {
|
||||
handleWeightInvalid((ArrayNode) jsonNode, logEntity, device);
|
||||
}
|
||||
default -> {
|
||||
log.warn("unknown message type: {}", rk);
|
||||
@@ -278,56 +152,416 @@ public class WeightListener {
|
||||
// log.info("new message from pms: {}", body);
|
||||
}
|
||||
|
||||
private void handleWeightInvalid(
|
||||
ArrayNode jsonNode, DataCollectorLogEntity logEntity, WeightDeviceEntity device) {
|
||||
ArrayNode nodes = jsonNode;
|
||||
var logContent =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(
|
||||
x ->
|
||||
x.get("序号")
|
||||
+ ":"
|
||||
+ x.get("流水号").asText()
|
||||
+ x.get("原流水号").asText()
|
||||
+ ":"
|
||||
+ x.get("更新时间").asText())
|
||||
.toList();
|
||||
logEntity.setContent(StringUtils.join(logContent, ","));
|
||||
|
||||
var flowNumbers =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(x -> x.get("原流水号").asInt())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Map<String, WeightDeviceDataEntity> flowNumberMap =
|
||||
weightDeviceDataService
|
||||
.findAll(
|
||||
(Specification<WeightDeviceDataEntity>)
|
||||
(root, query, criteriaBuilder) ->
|
||||
criteriaBuilder.and(
|
||||
criteriaBuilder.equal(
|
||||
root.get("device").get("id"),
|
||||
device.getId()),
|
||||
root.get("flowNumber").in(flowNumbers)))
|
||||
.stream()
|
||||
.collect(Collectors.toMap(WeightDeviceDataEntity::getFlowNumber, e -> e));
|
||||
|
||||
nodes.forEach(
|
||||
x -> {
|
||||
WeightDeviceDataEntity deviceData = new WeightDeviceDataEntity();
|
||||
var flowNumber = x.get("原流水号").asText();
|
||||
var seqNumber = x.get("序号").asInt();
|
||||
log.info(
|
||||
"invalid data from weight20: {} {} {} {} ",
|
||||
seqNumber,
|
||||
flowNumber,
|
||||
x.get("更新时间").asText(),
|
||||
device.getId());
|
||||
if (flowNumberMap.containsKey(flowNumber)) {
|
||||
log.info(
|
||||
"invalid data already exists: {} {} {}",
|
||||
seqNumber,
|
||||
flowNumber,
|
||||
device.getId());
|
||||
deviceData = flowNumberMap.get(flowNumber);
|
||||
deviceData.setInvalid(true);
|
||||
} else {
|
||||
|
||||
// log.info(x.toPrettyString());
|
||||
|
||||
WeightDeviceDataEntity finalDeviceData = deviceData;
|
||||
Try.run(() -> finalDeviceData.setDevice(device));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setOrganizationId(
|
||||
device.getOrganizationId()));
|
||||
|
||||
Try.run(() -> finalDeviceData.setSequenceNumber(toInteger(x.get("序号"))));
|
||||
Try.run(() -> finalDeviceData.setFlowNumber(toString(x.get("流水号"))));
|
||||
Try.run(() -> finalDeviceData.setPlateNo(toString(x.get("车号"))));
|
||||
Try.run(() -> finalDeviceData.setWeighType(toString(x.get("过磅类型"))));
|
||||
Try.run(() -> finalDeviceData.setSendOrganization(toString(x.get("发货单位"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setReceiveOrganization(
|
||||
toString(x.get("收货单位"))));
|
||||
Try.run(() -> finalDeviceData.setGoods(toString(x.get("货名"))));
|
||||
Try.run(() -> finalDeviceData.setSpecification(toString(x.get("规格"))));
|
||||
Try.run(() -> finalDeviceData.setMz(toDouble(x.get("毛重"))));
|
||||
Try.run(() -> finalDeviceData.setPz(toDouble(x.get("皮重"))));
|
||||
Try.run(() -> finalDeviceData.setJz(toDouble(x.get("净重"))));
|
||||
Try.run(() -> finalDeviceData.setKz(toDouble(x.get("扣重"))));
|
||||
Try.run(() -> finalDeviceData.setSz(toDouble(x.get("实重"))));
|
||||
Try.run(() -> finalDeviceData.setPrice(toDouble(x.get("单价"))));
|
||||
Try.run(() -> finalDeviceData.setAmount(toDouble(x.get("金额"))));
|
||||
Try.run(() -> finalDeviceData.setZfxs(toDouble(x.get("折方系数"))));
|
||||
Try.run(() -> finalDeviceData.setFl(toDouble(x.get("方量"))));
|
||||
Try.run(() -> finalDeviceData.setWeightFee(toDouble(x.get("过磅费"))));
|
||||
Try.run(() -> finalDeviceData.setMzUser(toString(x.get("毛重司磅员"))));
|
||||
Try.run(() -> finalDeviceData.setPzUser(toString(x.get("皮重司磅员"))));
|
||||
Try.run(() -> finalDeviceData.setMzbh(toString(x.get("毛重磅号"))));
|
||||
Try.run(() -> finalDeviceData.setPzbh(toString(x.get("皮重磅号"))));
|
||||
Try.run(() -> finalDeviceData.setMzTime(toLocalDateTime(x.get("毛重时间"))));
|
||||
Try.run(() -> finalDeviceData.setPzTime(toLocalDateTime(x.get("皮重时间"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setYcgbTIme(
|
||||
toLocalDateTime(x.get("一次过磅时间"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setEcgbTime(
|
||||
toLocalDateTime(x.get("二次过磅时间"))));
|
||||
Try.run(() -> finalDeviceData.setUpdateUser(toString(x.get("更新人"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setDataUpdateTime(
|
||||
toLocalDateTime(x.get("更新时间"))));
|
||||
Try.run(() -> finalDeviceData.setRemark(toString(x.get("备注"))));
|
||||
Try.run(() -> finalDeviceData.setPrintCount(toInteger(x.get("打印次数"))));
|
||||
Try.run(() -> finalDeviceData.setUpload(toBoolean(x.get("上传否"))));
|
||||
Try.run(() -> finalDeviceData.setReserve1(toString(x.get("备用1"))));
|
||||
Try.run(() -> finalDeviceData.setReserve2(toString(x.get("备用2"))));
|
||||
Try.run(() -> finalDeviceData.setReserve3(toString(x.get("备用3"))));
|
||||
Try.run(() -> finalDeviceData.setReserve4(toString(x.get("备用4"))));
|
||||
Try.run(() -> finalDeviceData.setReserve5(toString(x.get("备用5"))));
|
||||
Try.run(() -> finalDeviceData.setReserve6(toDouble(x.get("备用6"))));
|
||||
Try.run(() -> finalDeviceData.setReserve7(toDouble(x.get("备用7"))));
|
||||
Try.run(() -> finalDeviceData.setReserve8(toDouble(x.get("备用8"))));
|
||||
Try.run(() -> finalDeviceData.setReserve9(toDouble(x.get("备用9"))));
|
||||
Try.run(() -> finalDeviceData.setReserve10(toString(x.get("备用10"))));
|
||||
Try.run(() -> finalDeviceData.setReserve11(toString(x.get("备用11"))));
|
||||
Try.run(() -> finalDeviceData.setReserve12(toString(x.get("备用12"))));
|
||||
Try.run(() -> finalDeviceData.setReserve13(toString(x.get("备用13"))));
|
||||
Try.run(() -> finalDeviceData.setReserve14(toString(x.get("备用14"))));
|
||||
Try.run(() -> finalDeviceData.setReserve15(toDouble(x.get("备用15"))));
|
||||
Try.run(() -> finalDeviceData.setReserve16(toDouble(x.get("备用16"))));
|
||||
Try.run(() -> finalDeviceData.setReserve17(toDouble(x.get("备用17"))));
|
||||
Try.run(() -> finalDeviceData.setReserve18(toDouble(x.get("备用18"))));
|
||||
Try.run(() -> finalDeviceData.setClientType(toInteger(x.get("客户类型"))));
|
||||
Try.run(() -> finalDeviceData.setYcgbWeight(toDouble(x.get("一次过磅重"))));
|
||||
Try.run(() -> finalDeviceData.setEcgbWeight(toDouble(x.get("二次过磅重"))));
|
||||
Try.run(() -> finalDeviceData.setB0(toString(x.get("b0"))));
|
||||
Try.run(() -> finalDeviceData.setAguid(toString(x.get("aguid"))));
|
||||
Try.run(() -> finalDeviceData.setPlanNumber(toString(x.get("PlanNumber"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setRecordCreateMode(
|
||||
toInteger(x.get("RecordCreateMode"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setRecordFinish(
|
||||
toInteger(x.get("RecordFinish"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setNetPriceSyncTime(
|
||||
toLocalDateTime(x.get("网价同步时间"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setNetPriceModifyUser(
|
||||
toString(x.get("网价修改人"))));
|
||||
Try.run(() -> finalDeviceData.setCTime(toLocalDateTime(x.get("CTime"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setModifyOnnet(
|
||||
toString(x.get("modify_onnet"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setModifyTime(
|
||||
toLocalDateTime(x.get("modify_time"))));
|
||||
Try.run(() -> finalDeviceData.setModifyBy(toString(x.get("modify_by"))));
|
||||
Try.run(() -> finalDeviceData.setAuditFlag(toString(x.get("audit_flag"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setAuditTime(
|
||||
toLocalDateTime(x.get("audit_time"))));
|
||||
Try.run(() -> finalDeviceData.setAuditBy(toString(x.get("audit_by"))));
|
||||
Try.run(() -> finalDeviceData.setEUpimg(toString(x.get("e_upimg"))));
|
||||
Try.run(() -> finalDeviceData.setReserve19(toString(x.get("备用19"))));
|
||||
Try.run(() -> finalDeviceData.setReserve20(toString(x.get("备用20"))));
|
||||
Try.run(() -> finalDeviceData.setReserve21(toString(x.get("备用21"))));
|
||||
Try.run(() -> finalDeviceData.setReserve22(toString(x.get("备用22"))));
|
||||
Try.run(() -> finalDeviceData.setReserve23(toString(x.get("备用23"))));
|
||||
Try.run(() -> finalDeviceData.setReserve24(toString(x.get("备用24"))));
|
||||
Try.run(() -> finalDeviceData.setReserve25(toString(x.get("备用25"))));
|
||||
Try.run(() -> finalDeviceData.setReserve26(toString(x.get("备用26"))));
|
||||
Try.run(() -> finalDeviceData.setReserve27(toString(x.get("备用27"))));
|
||||
Try.run(() -> finalDeviceData.setReserve28(toString(x.get("备用28"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setDriverInfo(
|
||||
toString(x.get("driver_info"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgG1(
|
||||
toInteger(x.get("HQB_UpImg_G1"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgG2(
|
||||
toInteger(x.get("HQB_UpImg_G2"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgG3(
|
||||
toInteger(x.get("HQB_UpImg_G3"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgG4(
|
||||
toInteger(x.get("HQB_UpImg_G4"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgT1(
|
||||
toInteger(x.get("HQB_UpImg_T1"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgT2(
|
||||
toInteger(x.get("HQB_UpImg_T2"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgT3(
|
||||
toInteger(x.get("HQB_UpImg_T3"))));
|
||||
Try.run(
|
||||
() ->
|
||||
finalDeviceData.setHqbUpImgT4(
|
||||
toInteger(x.get("HQB_UpImg_T4"))));
|
||||
finalDeviceData.setInvalid(true);
|
||||
}
|
||||
|
||||
weightDeviceDataService.save(deviceData);
|
||||
});
|
||||
}
|
||||
|
||||
private void handleWeightInfo(
|
||||
ArrayNode jsonNode, DataCollectorLogEntity logEntity, WeightDeviceEntity device) {
|
||||
ArrayNode nodes = jsonNode;
|
||||
var flowNumbers =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(
|
||||
x ->
|
||||
x.get("序号")
|
||||
+ ":"
|
||||
+ x.get("流水号").asText()
|
||||
+ ":"
|
||||
+ x.get("更新时间").asText())
|
||||
.toList();
|
||||
logEntity.setContent(StringUtils.join(flowNumbers, ","));
|
||||
|
||||
var seqNumbers =
|
||||
StreamSupport.stream(nodes.spliterator(), false)
|
||||
.map(x -> x.get("序号").asInt())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Map<Integer, WeightDeviceDataEntity> seqNumberMap =
|
||||
weightDeviceDataService
|
||||
.findAll(
|
||||
(Specification<WeightDeviceDataEntity>)
|
||||
(root, query, criteriaBuilder) ->
|
||||
criteriaBuilder.and(
|
||||
criteriaBuilder.equal(
|
||||
root.get("device").get("id"),
|
||||
device.getId()),
|
||||
root.get("sequenceNumber").in(seqNumbers)))
|
||||
.stream()
|
||||
.collect(
|
||||
Collectors.toMap(
|
||||
WeightDeviceDataEntity::getSequenceNumber, e -> e));
|
||||
|
||||
nodes.forEach(
|
||||
x -> {
|
||||
WeightDeviceDataEntity deviceData = new WeightDeviceDataEntity();
|
||||
var flowNumber = x.get("流水号").asText();
|
||||
var seqNumber = x.get("序号").asInt();
|
||||
log.info(
|
||||
"data from weight20: {} {} {} {} ",
|
||||
seqNumber,
|
||||
flowNumber,
|
||||
x.get("更新时间").asText(),
|
||||
device.getId());
|
||||
if (seqNumberMap.containsKey(seqNumber)) {
|
||||
log.info(
|
||||
"data already exists: {} {} {}",
|
||||
seqNumber,
|
||||
flowNumber,
|
||||
device.getId());
|
||||
deviceData = seqNumberMap.get(seqNumber);
|
||||
}
|
||||
// log.info(x.toPrettyString());
|
||||
|
||||
deviceData.setDevice(device);
|
||||
deviceData.setOrganizationId(device.getOrganizationId());
|
||||
|
||||
deviceData.setSequenceNumber(toInteger(x.get("序号")));
|
||||
deviceData.setFlowNumber(toString(x.get("流水号")));
|
||||
deviceData.setPlateNo(toString(x.get("车号")));
|
||||
deviceData.setWeighType(toString(x.get("过磅类型")));
|
||||
deviceData.setSendOrganization(toString(x.get("发货单位")));
|
||||
deviceData.setReceiveOrganization(toString(x.get("收货单位")));
|
||||
deviceData.setGoods(toString(x.get("货名")));
|
||||
deviceData.setSpecification(toString(x.get("规格")));
|
||||
deviceData.setMz(toDouble(x.get("毛重")));
|
||||
deviceData.setPz(toDouble(x.get("皮重")));
|
||||
deviceData.setJz(toDouble(x.get("净重")));
|
||||
deviceData.setKz(toDouble(x.get("扣重")));
|
||||
deviceData.setSz(toDouble(x.get("实重")));
|
||||
deviceData.setPrice(toDouble(x.get("单价")));
|
||||
deviceData.setAmount(toDouble(x.get("金额")));
|
||||
deviceData.setZfxs(toDouble(x.get("折方系数")));
|
||||
deviceData.setFl(toDouble(x.get("方量")));
|
||||
deviceData.setWeightFee(toDouble(x.get("过磅费")));
|
||||
deviceData.setMzUser(toString(x.get("毛重司磅员")));
|
||||
deviceData.setPzUser(toString(x.get("皮重司磅员")));
|
||||
deviceData.setMzbh(toString(x.get("毛重磅号")));
|
||||
deviceData.setPzbh(toString(x.get("皮重磅号")));
|
||||
deviceData.setMzTime(toLocalDateTime(x.get("毛重时间")));
|
||||
deviceData.setPzTime(toLocalDateTime(x.get("皮重时间")));
|
||||
deviceData.setYcgbTIme(toLocalDateTime(x.get("一次过磅时间")));
|
||||
deviceData.setEcgbTime(toLocalDateTime(x.get("二次过磅时间")));
|
||||
deviceData.setUpdateUser(toString(x.get("更新人")));
|
||||
deviceData.setDataUpdateTime(toLocalDateTime(x.get("更新时间")));
|
||||
deviceData.setRemark(toString(x.get("备注")));
|
||||
deviceData.setPrintCount(toInteger(x.get("打印次数")));
|
||||
deviceData.setUpload(toBoolean(x.get("上传否")));
|
||||
deviceData.setReserve1(toString(x.get("备用1")));
|
||||
deviceData.setReserve2(toString(x.get("备用2")));
|
||||
deviceData.setReserve3(toString(x.get("备用3")));
|
||||
deviceData.setReserve4(toString(x.get("备用4")));
|
||||
deviceData.setReserve5(toString(x.get("备用5")));
|
||||
deviceData.setReserve6(toDouble(x.get("备用6")));
|
||||
deviceData.setReserve7(toDouble(x.get("备用7")));
|
||||
deviceData.setReserve8(toDouble(x.get("备用8")));
|
||||
deviceData.setReserve9(toDouble(x.get("备用9")));
|
||||
deviceData.setReserve10(toString(x.get("备用10")));
|
||||
deviceData.setReserve11(toString(x.get("备用11")));
|
||||
deviceData.setReserve12(toString(x.get("备用12")));
|
||||
deviceData.setReserve13(toString(x.get("备用13")));
|
||||
deviceData.setReserve14(toString(x.get("备用14")));
|
||||
deviceData.setReserve15(toDouble(x.get("备用15")));
|
||||
deviceData.setReserve16(toDouble(x.get("备用16")));
|
||||
deviceData.setReserve17(toDouble(x.get("备用17")));
|
||||
deviceData.setReserve18(toDouble(x.get("备用18")));
|
||||
deviceData.setClientType(toInteger(x.get("客户类型")));
|
||||
deviceData.setYcgbWeight(toDouble(x.get("一次过磅重")));
|
||||
deviceData.setEcgbWeight(toDouble(x.get("二次过磅重")));
|
||||
deviceData.setB0(toString(x.get("b0")));
|
||||
deviceData.setAguid(toString(x.get("aguid")));
|
||||
deviceData.setPlanNumber(toString(x.get("PlanNumber")));
|
||||
deviceData.setRecordCreateMode(toInteger(x.get("RecordCreateMode")));
|
||||
deviceData.setRecordFinish(toInteger(x.get("RecordFinish")));
|
||||
deviceData.setNetPriceSyncTime(toLocalDateTime(x.get("网价同步时间")));
|
||||
deviceData.setNetPriceModifyUser(toString(x.get("网价修改人")));
|
||||
deviceData.setCTime(toLocalDateTime(x.get("CTime")));
|
||||
deviceData.setModifyOnnet(toString(x.get("modify_onnet")));
|
||||
deviceData.setModifyTime(toLocalDateTime(x.get("modify_time")));
|
||||
deviceData.setModifyBy(toString(x.get("modify_by")));
|
||||
deviceData.setAuditFlag(toString(x.get("audit_flag")));
|
||||
deviceData.setAuditTime(toLocalDateTime(x.get("audit_time")));
|
||||
deviceData.setAuditBy(toString(x.get("audit_by")));
|
||||
deviceData.setEUpimg(toString(x.get("e_upimg")));
|
||||
deviceData.setReserve19(toString(x.get("备用19")));
|
||||
deviceData.setReserve20(toString(x.get("备用20")));
|
||||
deviceData.setReserve21(toString(x.get("备用21")));
|
||||
deviceData.setReserve22(toString(x.get("备用22")));
|
||||
deviceData.setReserve23(toString(x.get("备用23")));
|
||||
deviceData.setReserve24(toString(x.get("备用24")));
|
||||
deviceData.setReserve25(toString(x.get("备用25")));
|
||||
deviceData.setReserve26(toString(x.get("备用26")));
|
||||
deviceData.setReserve27(toString(x.get("备用27")));
|
||||
deviceData.setReserve28(toString(x.get("备用28")));
|
||||
deviceData.setDriverInfo(toString(x.get("driver_info")));
|
||||
deviceData.setHqbUpImgG1(toInteger(x.get("HQB_UpImg_G1")));
|
||||
deviceData.setHqbUpImgG2(toInteger(x.get("HQB_UpImg_G2")));
|
||||
deviceData.setHqbUpImgG3(toInteger(x.get("HQB_UpImg_G3")));
|
||||
deviceData.setHqbUpImgG4(toInteger(x.get("HQB_UpImg_G4")));
|
||||
deviceData.setHqbUpImgT1(toInteger(x.get("HQB_UpImg_T1")));
|
||||
deviceData.setHqbUpImgT2(toInteger(x.get("HQB_UpImg_T2")));
|
||||
deviceData.setHqbUpImgT3(toInteger(x.get("HQB_UpImg_T3")));
|
||||
deviceData.setHqbUpImgT4(toInteger(x.get("HQB_UpImg_T4")));
|
||||
|
||||
weightDeviceDataService.save(deviceData);
|
||||
});
|
||||
}
|
||||
|
||||
private Integer toBoolean(JsonNode node) {
|
||||
|
||||
|
||||
if (node== null || node.isNull()){
|
||||
if (node == null || node.isNull()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (node.isIntegralNumber()){
|
||||
if (node.isIntegralNumber()) {
|
||||
return node.asInt();
|
||||
}
|
||||
|
||||
if (node.isBoolean()){
|
||||
if (node.isBoolean()) {
|
||||
return node.asBoolean() ? 1 : 0;
|
||||
}
|
||||
|
||||
return Integer.parseInt(node.asText());
|
||||
|
||||
|
||||
}
|
||||
|
||||
private String toString(JsonNode node) {
|
||||
|
||||
if (node== null || node.isNull()){
|
||||
if (node == null || node.isNull()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return node.asText();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private Integer toInteger(JsonNode node) {
|
||||
|
||||
if (node== null || node.isNull()){
|
||||
if (node == null || node.isNull()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
if (node.isFloatingPointNumber()){
|
||||
if (node.isFloatingPointNumber()) {
|
||||
return node.asInt();
|
||||
}
|
||||
|
||||
if (node.isIntegralNumber()){
|
||||
if (node.isIntegralNumber()) {
|
||||
return node.asInt();
|
||||
}
|
||||
|
||||
String text = node.asText();
|
||||
|
||||
|
||||
if (StringUtils.isBlank(text)){
|
||||
if (StringUtils.isBlank(text)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -336,42 +570,36 @@ public class WeightListener {
|
||||
|
||||
private Double toDouble(JsonNode node) {
|
||||
|
||||
if (node== null || node.isNull()){
|
||||
if (node == null || node.isNull()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
if (node.isFloatingPointNumber()){
|
||||
if (node.isFloatingPointNumber()) {
|
||||
return node.asDouble();
|
||||
}
|
||||
|
||||
if (node.isIntegralNumber()){
|
||||
if (node.isIntegralNumber()) {
|
||||
return node.asDouble();
|
||||
}
|
||||
|
||||
String text = node.asText();
|
||||
|
||||
|
||||
if (StringUtils.isBlank(text)){
|
||||
if (StringUtils.isBlank(text)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Double.parseDouble(text);
|
||||
}
|
||||
|
||||
|
||||
private LocalDateTime toLocalDateTime(JsonNode node) {
|
||||
|
||||
if (node== null || node.isNull()){
|
||||
if (node == null || node.isNull()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
String text = node.asText();
|
||||
|
||||
|
||||
if (StringUtils.isBlank(text)){
|
||||
if (StringUtils.isBlank(text)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user