diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/dto/IotCarbonBomDTO.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/dto/IotCarbonBomDTO.java index 17ae649..9aac611 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/dto/IotCarbonBomDTO.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/dto/IotCarbonBomDTO.java @@ -37,6 +37,9 @@ public class IotCarbonBomDTO implements Serializable { private BigDecimal weight; @Schema(description = "重量重量计量单位") private String w_unit; + @Schema(description = "重量重量计量父级描述") + private String unitStr; + @Schema(description = "原料用量") private BigDecimal dosage; @Schema(description = "供应商编码") diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/entity/IotCarbonBomEntity.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/entity/IotCarbonBomEntity.java index 2f44932..9848c36 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/entity/IotCarbonBomEntity.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/bom/entity/IotCarbonBomEntity.java @@ -101,4 +101,7 @@ public class IotCarbonBomEntity implements Serializable { private BigDecimal transportUse; //物料单耗 private BigDecimal muFinalUse; + + + private String unitStr; } \ No newline at end of file diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/event/standardcal/listener/ProductionResultListener.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/event/standardcal/listener/ProductionResultListener.java index a2062e9..9734bb1 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/event/standardcal/listener/ProductionResultListener.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/event/standardcal/listener/ProductionResultListener.java @@ -294,6 +294,7 @@ public class ProductionResultListener { entity = IotCarbonProductionResultEntity.initDto(production,"1", carbonReq.getMuFinalUse(),carbonReq.getTransportUse(),uintTransportTotalCarbon,uintCarbon); entityList.forEach(temp->{ + temp.setW_unit(temp.getWwunit()); temp.setAcquireCarbon(temp.getAcquireCarbon().divide(new BigDecimal(production.getFinalNum()),4,RoundingMode.UP)); temp.setDosage(temp.getDosage().divide(new BigDecimal(production.getFinalNum()),4,RoundingMode.UP)); temp.setTransportUse(temp.getTransportUse().divide(new BigDecimal(production.getFinalNum()),4,RoundingMode.UP)); @@ -304,6 +305,9 @@ public class ProductionResultListener { //初始化运输结果 entity = IotCarbonProductionResultEntity.initDto(production,"1", totalCarbon,transportTotalCarbon,carbonReq.getTransportUse(),carbonReq.getMuFinalUse()); + entityList.forEach(temp->{ + temp.setW_unit(temp.getWwunit()); + }); } entity.setJson(JSONObject.toJSONString(entityList)); //do update 还是 insert 产品bom来说,根据 产品id,工单编码,类型,来判断是否已存在 diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/AggCarbon.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/AggCarbon.java index ec34fc1..659ea5e 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/AggCarbon.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/AggCarbon.java @@ -65,7 +65,7 @@ public class AggCarbon { } public BigDecimal getUsageAvg() { - return usageAvg == null ? null : usageAvg.setScale(2, RoundingMode.HALF_UP); + return usageAvg == null ? null : usageAvg.setScale(3, RoundingMode.HALF_UP); } public BigDecimal getCarbonAvg() { @@ -210,7 +210,7 @@ public class AggCarbon { if (Objects.isNull(value)) { return null; } - return value.divide(count, 2, RoundingMode.HALF_UP); + return value.divide(count, 3, RoundingMode.HALF_UP); } private AggCarbon add(AggCarbon other){ diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/MptDetail.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/MptDetail.java index c121743..baba6e0 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/MptDetail.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/dto/MptDetail.java @@ -56,11 +56,17 @@ public class MptDetail { private Long num; + private String wwunit; + + public void setW_unit(String wwunit) { + this.w_unit = wwunit; + } + public MptDetail add(MptDetail other) { if (Objects.equals(getMaterialCode(), other.getMaterialCode())) { setDosage(AggUtil.sum(totalDosage(), other.totalDosage())); - setAcquireCarbon(AggUtil.sum(getAcquireCarbon(), other.getAcquireCarbon())); - setTransportUse(AggUtil.sum(getTransportUse(), other.getTransportUse())); + setAcquireCarbon(other.getAcquireCarbon().multiply(getDosage())); + setTransportUse(other.getTransportUse().multiply(getDosage())); } return this; } diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/entity/IotCarbonProductionResultEntity.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/entity/IotCarbonProductionResultEntity.java index 1edaee8..331b950 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/entity/IotCarbonProductionResultEntity.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/entity/IotCarbonProductionResultEntity.java @@ -198,7 +198,7 @@ public class IotCarbonProductionResultEntity implements Serializable { entity.setW_unit(info.getWUnit()); entity.setP_weight(info.getPWeight()); if(ObjectUtils.isEmpty(info.getPrDur())){ - long prDur = (info.getEndTime().getTime() - info.getStartTime().getTime())/ (1000 * 60 * 60); + long prDur = (info.getEndTime().getTime() - info.getStartTime().getTime()+1)/ (1000 * 60 * 60*60); entity.setPrDur((int) prDur); }else { entity.setPrDur(info.getPrDur().intValue()); diff --git a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/service/impl/IotCarbonProductionResultServiceImpl.java b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/service/impl/IotCarbonProductionResultServiceImpl.java index e8f02c8..62467f4 100644 --- a/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/service/impl/IotCarbonProductionResultServiceImpl.java +++ b/modules/carbon-track/src/main/java/com/thing/carbontrack/productionResult/service/impl/IotCarbonProductionResultServiceImpl.java @@ -168,10 +168,8 @@ public class IotCarbonProductionResultServiceImpl return new LotCarbonBaseInfoOnYear(); } LotCarbonBaseInfoOnYear res = LotCarbonBaseInfoOnYear.init(production); - Date start = new Date(DateTimeUtils.yearStartTs()); - Date end = new Date(DateTimeUtils.yearEndTs()); - List aggCarbons = aggCarbon(productId, start, end); + List aggCarbons = aggCarbon(productId); Map> aggMap = AggCarbon.agg(aggCarbons); res.setCarbonAvgMap(aggMap.get(AggCarbon.AVG)); @@ -205,6 +203,7 @@ public class IotCarbonProductionResultServiceImpl } List details = JSONArray.parseArray(detailJson, MptDetail.class); details.forEach(e -> e.setNum(item.getFinalNum())); + detailList.addAll(details); } @@ -666,7 +665,7 @@ public class IotCarbonProductionResultServiceImpl return mapper.selectListByQueryAs(queryWrapper, IotCarbonProductionResultDTO.class); } - private List aggCarbon(Long productId, Date start, Date end) { + private List aggCarbon(Long productId) { return mapper.selectListByQueryAs( QueryWrapper.create() .select( @@ -677,11 +676,6 @@ public class IotCarbonProductionResultServiceImpl sum(IOT_CARBON_PRODUCTION_RESULT_ENTITY.F_CARBON_AVG).as(AggCarbon::getFCarbonAvg)) .from(IOT_CARBON_PRODUCTION_RESULT_ENTITY) .eq(IotCarbonProductionResultEntity::getM_id, productId) - .between( - IotCarbonProductionResultEntity::getFinishTime, - start, - end, - Objects.nonNull(start) && Objects.nonNull(end)) .groupBy( IOT_CARBON_PRODUCTION_RESULT_ENTITY.CARBON_TYPE, IOT_CARBON_PRODUCTION_RESULT_ENTITY.PR_CODE), diff --git a/modules/carbon-track/src/main/resources/mapper/IotCarbonBomMapper.xml b/modules/carbon-track/src/main/resources/mapper/IotCarbonBomMapper.xml index 06989e1..0602e5c 100644 --- a/modules/carbon-track/src/main/resources/mapper/IotCarbonBomMapper.xml +++ b/modules/carbon-track/src/main/resources/mapper/IotCarbonBomMapper.xml @@ -22,7 +22,7 @@ aa.unit, aa.dosage as dosage, aa.weight, - aa.w_unit, + aa.w_unit as wwunit , aa.mu_final_use as acquireCarbon, aa.supplier_name, aa.supplier_address, diff --git a/modules/carbon-track/src/main/resources/mapper/IotCarbonProductionRecordMapper.xml b/modules/carbon-track/src/main/resources/mapper/IotCarbonProductionRecordMapper.xml index d12c7b3..ae13177 100644 --- a/modules/carbon-track/src/main/resources/mapper/IotCarbonProductionRecordMapper.xml +++ b/modules/carbon-track/src/main/resources/mapper/IotCarbonProductionRecordMapper.xml @@ -266,7 +266,7 @@ .pr_code, MIN ( P.start_time ) AS start_time, MAX ( P.end_time ) AS end_time, - SUM (P.pr_dur) as pr_dur, + MAX(P.pr_dur) as pr_dur, aa.ID AS m_id, aa.p_weight AS "p_weight", aa.w_unit AS "w_unit", diff --git a/modules/thing/src/main/java/com/thing/dashboard/dto/IotDashboardGroupDTO.java b/modules/thing/src/main/java/com/thing/dashboard/dto/IotDashboardGroupDTO.java index 4f91c14..a8d2919 100644 --- a/modules/thing/src/main/java/com/thing/dashboard/dto/IotDashboardGroupDTO.java +++ b/modules/thing/src/main/java/com/thing/dashboard/dto/IotDashboardGroupDTO.java @@ -73,13 +73,13 @@ public class IotDashboardGroupDTO implements Serializable { private Long creator; @Schema(description = "创建时间") - private Date createDate; + private Long createDate; @Schema(description = "更新者") private Long updater; @Schema(description = "更新时间") - private Date updateDate; + private Long updateDate; @Schema(description = "配置菜单信息") private SysMenuDTO sysMenuDTO; diff --git a/modules/thing/src/main/java/com/thing/screen/dto/IotEnterpriseDashboardDTO.java b/modules/thing/src/main/java/com/thing/screen/dto/IotEnterpriseDashboardDTO.java index a6e154a..f59a8a4 100644 --- a/modules/thing/src/main/java/com/thing/screen/dto/IotEnterpriseDashboardDTO.java +++ b/modules/thing/src/main/java/com/thing/screen/dto/IotEnterpriseDashboardDTO.java @@ -38,11 +38,11 @@ public class IotEnterpriseDashboardDTO implements Serializable { @Schema(description = "创建者") private Long creator; @Schema(description = "创建时间") - private Date createDate; + private Long createDate; @Schema(description = "更新者") private Long updater; @Schema(description = "更新时间") - private Date updateDate; + private Long updateDate; @Schema(description = "大屏名称") private String largeScreenName; @Schema(description = "背景图片地址") diff --git a/modules/thing/src/main/java/com/thing/screen/service/impl/IotEnterpriseDashboardServiceImpl.java b/modules/thing/src/main/java/com/thing/screen/service/impl/IotEnterpriseDashboardServiceImpl.java index c860cce..3ff9c82 100644 --- a/modules/thing/src/main/java/com/thing/screen/service/impl/IotEnterpriseDashboardServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/screen/service/impl/IotEnterpriseDashboardServiceImpl.java @@ -137,7 +137,7 @@ public class IotEnterpriseDashboardServiceImpl extends BaseServiceImpl dashboardList(String tenantCode) { QueryWrapper wrapper = new QueryWrapper(); - wrapper.eq("tenant_code", tenantCode, ObjectUtil.isNotEmpty(tenantCode)); + wrapper.eq("tenant_code", Long.valueOf(tenantCode), ObjectUtil.isNotEmpty(tenantCode)); return ConvertUtils.sourceToTarget(iotDashboardGroupDao.selectListByQuery(wrapper),IotDashboardGroupDTO.class); } diff --git a/modules/thing/src/main/java/com/thing/sys/tenant/service/impl/SysTenantDetailServiceImpl.java b/modules/thing/src/main/java/com/thing/sys/tenant/service/impl/SysTenantDetailServiceImpl.java index 5b1976c..cc2946c 100644 --- a/modules/thing/src/main/java/com/thing/sys/tenant/service/impl/SysTenantDetailServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/sys/tenant/service/impl/SysTenantDetailServiceImpl.java @@ -694,6 +694,7 @@ public class SysTenantDetailServiceImpl extends BaseServiceImpl comparator = CompareUtils.getComparator(order, finalOrderField); //封装参数 List> pairs = buildParam(name, null,tenantCode); + return rootList.stream() .filter(jsonObject -> { boolean passesFilter = JacksonUtil.filter(jsonObject, pairs); @@ -133,7 +134,12 @@ public class IotThingRelationRootServiceImpl extends BaseServiceImpl s.get(CacheNameEnum.RelationRootField.THING_RELATION_ROOT_GROUP_NAME.getField()).asText().equals(groupName)) + .filter(s -> { + if(StringUtils.isNotBlank(groupName)){ + return s.get(CacheNameEnum.RelationRootField.THING_RELATION_ROOT_GROUP_NAME.getField()).asText().equals(groupName); + } + return true; + } ) .sorted(comparator.thenComparing(obj -> obj.get(CacheNameEnum.RelationRootField.THING_RELATION_ROOT_ID.getField()).asLong())).toList(); } diff --git a/modules/thing/src/main/resources/mapper/sys/SysMenuMapper.xml b/modules/thing/src/main/resources/mapper/sys/SysMenuMapper.xml index ea47cd3..38ee24c 100644 --- a/modules/thing/src/main/resources/mapper/sys/SysMenuMapper.xml +++ b/modules/thing/src/main/resources/mapper/sys/SysMenuMapper.xml @@ -52,7 +52,7 @@ - select t3.*, (select lang.field_value from sys_language lang where lang.table_name='sys_menu' and lang.field_name='name' + select distinct t3.*, (select lang.field_value from sys_language lang where lang.table_name='sys_menu' and lang.field_name='name' and lang.table_id=t3.id and lang.language=#{language}) as name from sys_role_user t1 inner join sys_role_menu t2 on t1.role_id = t2.role_id inner join sys_menu t3 on t2.menu_id = t3.id diff --git a/modules/visual-design/src/main/java/com/thing/visual/board/service/impl/IotVisualManageServiceImpl.java b/modules/visual-design/src/main/java/com/thing/visual/board/service/impl/IotVisualManageServiceImpl.java index 6ee02d5..511b2a7 100644 --- a/modules/visual-design/src/main/java/com/thing/visual/board/service/impl/IotVisualManageServiceImpl.java +++ b/modules/visual-design/src/main/java/com/thing/visual/board/service/impl/IotVisualManageServiceImpl.java @@ -17,6 +17,7 @@ import com.thing.common.core.utils.JsonProcessingUtils; import com.thing.common.core.web.response.PageData; import com.thing.common.core.web.response.Result; import com.thing.common.orm.service.impl.BaseServiceImpl; +import com.thing.common.orm.utils.IdGenerator; import com.thing.sys.biz.dto.SysMenuDTO; import com.thing.sys.biz.dto.SysRoleDTO; import com.thing.sys.biz.entity.SysLanguageEntity; @@ -116,6 +117,7 @@ public class IotVisualManageServiceImpl extends BaseServiceImpl menuIdList = sysMenuDTOList.stream().map(SysMenuDTO::getId).collect(Collectors.toList()); sysRoleMenuDao.deleteByMenuIds(menuIdList); //删除菜单表 - sysMenuService.batchDelete((Long[]) menuIdList.toArray()); + menuIdList.forEach(temp->{ + sysMenuService.delete(temp); + }); sysLanguageDao.deleteByQuery(QueryWrapper.create().in(SysLanguageEntity::getTableId, menuIdList)); } } @@ -332,8 +336,9 @@ public class IotVisualManageServiceImpl extends BaseServiceImpl{ IotVisualGroupEntity group = iotVisualGroupService.getById(temp.getGroupId()); - temp.setGroupName(group.getName()); - temp.setGroupBusinessName(group.getBusinessName()); - temp.setGroupSort(group.getSort()); - temp.setGroupBSort(group.getBsSort()); + if(ObjectUtils.isNotEmpty(group)){ + temp.setGroupName(group.getName()); + temp.setGroupBusinessName(group.getBusinessName()); + temp.setGroupSort(group.getSort()); + temp.setGroupBSort(group.getBsSort()); + } }); return dtoPageData; } @@ -224,7 +226,7 @@ public class IotVisualComponentServiceImpl extends BaseServiceImpl apiIds = Arrays.stream(data.getApiSetIds().split(",")) .map(String::trim) // 去掉可能的空格 @@ -130,7 +129,7 @@ public class IotVisualDesignServiceImpl extends BaseServiceImpl