screen-api/src/main/java/com/moral/api/controller/ChartController.java
@@ -174,7 +174,8 @@ return ResultMessage.ok(resultMap); } if (type.equals("daily")){ Object time = parameters.get("time"); Object time = parameters.get("startTime"); parameters.put("time",time); if (ObjectUtils.isEmpty(time)){ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } screen-api/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
@@ -1,7 +1,11 @@ package com.moral.api.mapper; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +17,5 @@ */ public interface SysDictTypeMapper extends BaseMapper<SysDictType> { List<SysDictData> selectCodeList(@Param("code") String code, @Param("id") String id); } screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
New file @@ -0,0 +1,35 @@ package com.moral.api.pojo.enums; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; /** * @ClassName SysDictTypeEnum * @Description TODO * @Author @cjl * @Date 2023-10-10 8:58 * @Version 1.0 */ @Getter @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum SysDictTypeEnum{ /** *交办单 */ SYS_JBD("JBD", "交办单"), SYS_SECOND_CRUISER("ZHC","秒级走航车"), ; @EnumValue public final String value; public final String name; SysDictTypeEnum(String value, String name) { this.value = value; this.name = name; } } screen-api/src/main/java/com/moral/api/service/SysDictTypeService.java
@@ -1,7 +1,11 @@ package com.moral.api.service; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +17,7 @@ */ public interface SysDictTypeService extends IService<SysDictType> { List<SysDictData> listAll(String code, String dataKey); SysDictData listOne(String code, String dataKey); } screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
@@ -626,7 +626,7 @@ public List<Integer> unitResult() { QxUser user = UserHelper.getCurrentUser(); Integer unitId = Objects.nonNull(user.getUnitId())?user.getUnitId():0; List<Integer> userList = responsibilityUnitMapper.selectCodeList("JBD",user.getUserId()); List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); if(CollectionUtils.isNotEmpty(userList)){ return new ArrayList<>(); } @@ -640,7 +640,7 @@ @Override public Integer unitAreaCode() { QxUser user = UserHelper.getCurrentUser(); List<Integer> userList = responsibilityUnitMapper.selectCodeList("JBD",user.getUserId()); List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); if(CollectionUtils.isNotEmpty(userList)){ return 1; } screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -4,23 +4,22 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.HistorySecondCruiser; import com.moral.api.entity.Organization; import com.moral.api.entity.SpecialDevice; import com.moral.api.entity.SpecialDeviceHistory; import com.moral.api.entity.TbDaily; import com.moral.api.entity.*; import com.moral.api.mapper.DailyMapper; import com.moral.api.mapper.HistorySecondCruiserMapper; import com.moral.api.mapper.SpecialDeviceMapper; import com.moral.api.mapper.SysDictTypeMapper; import com.moral.api.pojo.bo.ExcelBO; import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserListDTO; import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserResultCountDTO; import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserResultDTO; import com.moral.api.pojo.enums.SysDictTypeEnum; import com.moral.api.pojo.vo.excel.DailyVo; import com.moral.api.service.OrganizationService; import com.moral.api.service.SpecialDeviceHistoryService; import com.moral.api.service.SpecialDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.service.SysDictTypeService; import com.moral.constant.Constants; import com.moral.util.AmendUtils; @@ -59,6 +58,9 @@ @Autowired private HistorySecondCruiserMapper HistorySecondCruiserMapper; @Autowired private SysDictTypeService sysDictTypeService; @Autowired private SpecialDeviceHistoryService specialDeviceHistoryService; @@ -148,12 +150,13 @@ @Override public List<HistorySecondCruiserResultDTO> carTrajectoryNewAvg(Map<String, Object> params) { double range = Double.valueOf(params.get("range").toString()); String type = params.get("type").toString(); params.put("dateFormat", "%Y-%m-%d %H:%i:%s"); Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); Integer orgId = (Integer) orgInfo.get("id"); params.put("orgId", orgId); params.put("type","$."+params.get("type")); params.put("type","$."+type); //从秒数据表获取走航车数据 List<HistorySecondCruiserListDTO> data = HistorySecondCruiserMapper.getCruiserDataNewAvg(params); data.removeIf(o->{ @@ -170,8 +173,39 @@ if(CollectionUtils.isEmpty(data)){ return null; } return filterDataNew(data,range); List<HistorySecondCruiserResultDTO> result = filterDataNew(data,range); if(CollectionUtils.isNotEmpty(result)){ SysDictData list = sysDictTypeService.listOne(SysDictTypeEnum.SYS_SECOND_CRUISER.getValue(),type); if(list.getDataValue().contains(",")){ List<String> resultStr = Arrays.asList(list.getDataValue().split(",")); if(resultStr.size() % 2 ==0){ result.forEach(it->{ it.setAvgNum(numAvg(resultStr,it.getAvgNum())); }); } }else { BigDecimal dataValue = Objects.nonNull(list.getDataValue())?BigDecimal.valueOf(Integer.parseInt(list.getDataValue())):BigDecimal.ZERO; result.forEach(it->{ it.setAvgNum(it.getAvgNum().add(dataValue)); }); } } return result; } private BigDecimal numAvg(List<String> list , BigDecimal num){ int nums = 1; for (int i=0;i<list.size();i=i+2){ if(num.compareTo(BigDecimal.valueOf(Integer.parseInt(list.get(i))))>= 0 ){ return num.add(BigDecimal.valueOf(Integer.parseInt(list.get(nums)))); } nums+=2; } return num; } @Override public SpecialDevice getSpecialDeviceMapByMac(String mac) { QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper(); screen-api/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -1,10 +1,14 @@ package com.moral.api.service.impl; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.moral.api.mapper.SysDictTypeMapper; import com.moral.api.service.SysDictTypeService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -17,4 +21,20 @@ @Service public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService { @Override public List<SysDictData> listAll(String code, String dataKey) { List<SysDictData> listAll = this.baseMapper.selectCodeList(code,dataKey); return listAll; } @Override public SysDictData listOne(String code, String dataKey) { List<SysDictData> list = listAll(code,dataKey); SysDictData sysDictData = new SysDictData(); if (CollectionUtils.isNotEmpty(list)) { return list.get(0); } sysDictData.setDataValue("0"); return sysDictData; } } screen-api/src/main/resources/mapper/SysDictTypeMapper.xml
@@ -12,5 +12,10 @@ <result column="update_time" property="updateTime" /> <result column="is_delete" property="isDelete" /> </resultMap> <select id="selectCodeList" resultType="com.moral.api.entity.SysDictData"> select t1.id,t1.dict_type_id,t1.dataKey,t1.dataValue from sys_dict_type t left join sys_dict_data t1 on t1.dict_type_id = t.id where t.is_delete = 0 and t.name = #{code} and t1.dataKey = #{id} and t1.is_delete = 0 order by t1.create_time desc </select> </mapper>