| | |
| | | |
| | | import com.fzzy.igds.constant.Constant; |
| | | import com.fzzy.igds.constant.DepotType; |
| | | import com.fzzy.igds.data.IgdsBaseParam; |
| | | import com.fzzy.igds.data.InoutParam; |
| | | import com.fzzy.igds.data.MainData; |
| | | import com.fzzy.igds.domain.*; |
| | | import com.fzzy.igds.service.*; |
| | | import com.fzzy.igds.utils.ContextUtil; |
| | | import com.fzzy.igds.utils.DateUtil; |
| | | import com.fzzy.work.service.WorkOrderService; |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.SysDictData; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.service.ISysDeptService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private DicService dicService; |
| | | @Resource |
| | | private CoreDeptService coreDeptService; |
| | | @Autowired |
| | | private SecCameraService secCameraService; |
| | | @Resource |
| | | private ISysUserService userService; |
| | | private SecCameraService secCameraService; |
| | | @Resource |
| | | private ISysDeptService iSysDeptService; |
| | | @Resource |
| | |
| | | private CoreCompanyService coreCompanyService; |
| | | @Resource |
| | | private SloganService sloganService; |
| | | @Resource |
| | | private WorkOrderService workOrderService; |
| | | @Resource |
| | | private InoutRecordService inoutRecordService; |
| | | @Resource |
| | | private EventInfoService eventInfoService; |
| | | @Resource |
| | | private SnapRecordService snapRecordService; |
| | | @Resource |
| | | private GatewaySerService gatewaySerService; |
| | | |
| | | /** |
| | | * 根据库区编码获取库区网关信息 |
| | | * |
| | | * @param deptId |
| | | * @return |
| | | */ |
| | | public GatewaySer getGatewaySerByDeptId(String deptId) { |
| | | if (StringUtils.isBlank(deptId)) { |
| | | deptId = ContextUtil.subDeptId(null); |
| | | } |
| | | |
| | | return gatewaySerService.getCacheSerByDeptId(deptId); |
| | | } |
| | | |
| | | /** |
| | | * 根据库区编码获取库区下所有仓库列表 |
| | |
| | | |
| | | /** |
| | | * 获取库区鸟瞰图 |
| | | * |
| | | * @param deptId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 判断路径下文件是否存在,不存在则给默认 |
| | | * |
| | | * @param imgPath |
| | | * @param tag |
| | | * @return |
| | |
| | | * @return |
| | | */ |
| | | public List<Depot> listDepotByDeptId(String deptId) { |
| | | try { |
| | | if (StringUtils.isEmpty(deptId)) { |
| | | deptId = ContextUtil.subDeptId(null); |
| | | } |
| | | |
| | | if (StringUtils.isEmpty(deptId)) { |
| | | deptId = ContextUtil.subDeptId(null); |
| | | return depotService.getCacheDepotList(ContextUtil.getCompanyId(), deptId); |
| | | |
| | | } catch (Exception e) { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据仓库类型获取库区下仓库列表 |
| | | * |
| | | * @param deptId |
| | | * @param depotTypes 类型多个,用逗号隔开 |
| | | * @return |
| | | */ |
| | | public List<Depot> listAllDepot(String deptId, String depotTypes) { |
| | | |
| | | List<Depot> depots = this.listDepotByDeptId(deptId); |
| | | if (null == depots || depots.isEmpty()) { |
| | | return null; |
| | | } |
| | | |
| | | return depotService.getCacheDepotList(ContextUtil.getCompanyId(), deptId); |
| | | List<Depot> result = new ArrayList<>(); |
| | | for (Depot depot : depots) { |
| | | if (depotTypes.contains(depot.getDepotType())) { |
| | | result.add(depot); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | /** |
| | | * 获取分库列表 |
| | | * 根据公司ID获取公司下的分库列表 |
| | | * |
| | | * @author sgj |
| | | * @date 2025/12/12 |
| | | */ |
| | | public List<Dept> listDeptData() { |
| | | return coreDeptService.getDeptData(); |
| | | public List<Dept> listDeptData(String parentId) { |
| | | return coreDeptService.getDeptByUserType(parentId); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取用户列表 |
| | | * |
| | | * @author sgj |
| | | * @date 2025/12/12 |
| | | */ |
| | | public List<SysUser> listUserData() { |
| | | SysUser user = new SysUser() ; |
| | | user.setCompanyId(ContextUtil.getCompanyId()); |
| | | user.setDeptId(Long.valueOf(ContextUtil.subDeptId(null))); |
| | | return userService.selectUserList(user); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取设备列表 |
| | | * |
| | | * @author sgj |
| | | * @date 2025/12/12 |
| | | */ |
| | | public List<Camera> listCameraData() { |
| | | return secCameraService.listCamera(ContextUtil.getCompanyId(),ContextUtil.subDeptId(null)); |
| | | public List<Camera> listCameraData() { |
| | | return secCameraService.listCamera(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null)); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @author sgj |
| | | * @date 2025/12/17 |
| | | */ |
| | | public List<Company> listCompanyData() { |
| | | SysUser user = ContextUtil.getLoginUser(); |
| | | return coreCompanyService.listCompany(null, null, user.getDeptId() + ""); |
| | | public List<Company> listCompanyData() { |
| | | return coreCompanyService.getCompanyByUserType(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取启用的大屏标语 |
| | | * |
| | | * @return |
| | | */ |
| | | public Slogan getDicSlogan() { |
| | | List<Slogan> slogans = sloganService.listData(Constant.YN_Y); |
| | | if(null == slogans || slogans.isEmpty()){ |
| | | if (null == slogans || slogans.isEmpty()) { |
| | | return null; |
| | | } |
| | | return slogans.get(0); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取启用的大屏标语 |
| | | * |
| | | * @return |
| | | */ |
| | | public MainData getIndexData(SysUser user) { |
| | | |
| | | MainData mainData = new MainData(); |
| | | |
| | | //待办工单数 |
| | | Integer orderNum = workOrderService.getTodoNumByUser(user); |
| | | mainData.setOrderNum(orderNum); |
| | | |
| | | //统计出入库信息 |
| | | Double inSum = 0.0; |
| | | Double outSum = 0.0; |
| | | LinkedHashMap<String, Integer> mapWeekInNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Integer> mapWeekOutNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Integer> mapMonthInNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Integer> mapMonthOutNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Integer> mapWeekAiNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Integer> mapWeekSnapNum = new LinkedHashMap<>(); |
| | | LinkedHashMap<String, Double> mapWeekMaizeNum = new LinkedHashMap<>(); |
| | | String key; |
| | | for (int i = -29; i <= 0; i++) { |
| | | mapMonthInNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | mapMonthOutNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | if (i >= -6) { |
| | | mapWeekInNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | mapWeekOutNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | mapWeekAiNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | mapWeekSnapNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0); |
| | | mapWeekMaizeNum.put(DateFormatUtils.format(DateUtil.getNewByDay(new Date(), i), "MM-dd"), 0.0); |
| | | } |
| | | } |
| | | |
| | | //近7天AI事件数 |
| | | IgdsBaseParam param = new IgdsBaseParam(); |
| | | param.setDeptId(user.getDeptId() + ""); |
| | | param.setStart(DateUtil.getNewByDay(new Date(), -6)); |
| | | param.setEnd(new Date()); |
| | | List<EventInfo> listEvent = eventInfoService.getListByParam(param); |
| | | if (null != listEvent && !listEvent.isEmpty()) { |
| | | mainData.setAiNum(listEvent.size()); |
| | | for (EventInfo event : listEvent) { |
| | | key = DateFormatUtils.format(event.getTime(), "MM-dd"); |
| | | if (null != mapWeekAiNum.get(key)) { |
| | | mapWeekAiNum.put(key, mapWeekAiNum.get(key) + 1); |
| | | } |
| | | } |
| | | } |
| | | for (String mapKey : mapWeekAiNum.keySet()) { |
| | | mainData.getWeekAiDateList().add(mapKey); |
| | | mainData.getWeekAiNumList().add(mapWeekAiNum.get(mapKey)); |
| | | } |
| | | |
| | | //近7天抓拍信息统计 |
| | | List<SnapRecord> listSnap = snapRecordService.getListByParam(param); |
| | | if (null != listSnap && !listSnap.isEmpty()) { |
| | | for (SnapRecord snap : listSnap) { |
| | | key = DateFormatUtils.format(snap.getSnapTime(), "MM-dd"); |
| | | if (null != mapWeekSnapNum.get(key)) { |
| | | mapWeekSnapNum.put(key, mapWeekSnapNum.get(key) + 1); |
| | | } |
| | | } |
| | | } |
| | | for (String mapKey : mapWeekSnapNum.keySet()) { |
| | | mainData.getWeekSnapDateList().add(mapKey); |
| | | mainData.getWeekSnapNumList().add(mapWeekSnapNum.get(mapKey)); |
| | | } |
| | | //近七天玉米出库价格统计 |
| | | |
| | | InoutParam inoutParamOfMaize = new InoutParam(); |
| | | inoutParamOfMaize.setDeptId(user.getDeptId() + ""); |
| | | //粮食品种玉米 |
| | | inoutParamOfMaize.setFoodVariety("1120000"); |
| | | inoutParamOfMaize.setType(Constant.TYPE_OUT); |
| | | inoutParamOfMaize.setStart(DateUtil.getNewByDay(new Date(), -6)); |
| | | inoutParamOfMaize.setEnd(new Date()); |
| | | List<InoutRecord> inoutRecordsOfMaize = inoutRecordService.listInout(inoutParamOfMaize); |
| | | if (null != inoutRecordsOfMaize && !inoutRecordsOfMaize.isEmpty()) { |
| | | for (InoutRecord record : inoutRecordsOfMaize) { |
| | | key = DateFormatUtils.format(record.getRegisterTime(), "MM-dd"); |
| | | if (null != mapWeekMaizeNum.get(key)) { |
| | | Double nowPrice = mapWeekMaizeNum.get(key); |
| | | Double newPrice = record.getPrice(); |
| | | if (nowPrice > newPrice || nowPrice == 0) { |
| | | nowPrice = newPrice; |
| | | } |
| | | mapWeekMaizeNum.put(key, nowPrice); |
| | | |
| | | } |
| | | } |
| | | } |
| | | for (String mapKey : mapWeekMaizeNum.keySet()) { |
| | | mainData.getWeekMaizeDateList().add(mapKey); |
| | | mainData.getWeekMaizeNumList().add(mapWeekMaizeNum.get(mapKey)); |
| | | } |
| | | |
| | | //查询近30天所有出入库信息 |
| | | InoutParam inoutParam = new InoutParam(); |
| | | inoutParam.setDeptId(user.getDeptId() + ""); |
| | | inoutParam.setStart(DateUtil.getNewByDay(new Date(), -29)); |
| | | inoutParam.setEnd(new Date()); |
| | | List<InoutRecord> inoutRecords = inoutRecordService.listInout(inoutParam); |
| | | if (null != inoutRecords && !inoutRecords.isEmpty()) { |
| | | for (InoutRecord record : inoutRecords) { |
| | | key = DateFormatUtils.format(record.getRegisterTime(), "MM-dd"); |
| | | if (Constant.TYPE_IN.equals(record.getType())) { |
| | | if (null != mapWeekInNum.get(key)) { |
| | | mapWeekInNum.put(key, mapWeekInNum.get(key) + 1); |
| | | } |
| | | if (null != mapMonthInNum.get(key)) { |
| | | mapMonthInNum.put(key, mapMonthInNum.get(key) + 1); |
| | | } |
| | | if (key.equals(DateFormatUtils.format(new Date(), "MM-dd"))) { |
| | | mainData.setInNumDay(mainData.getInNumDay() + 1); |
| | | inSum += record.getRecordWeight(); |
| | | } |
| | | } |
| | | if (Constant.TYPE_OUT.equals(record.getType())) { |
| | | if (null != mapWeekOutNum.get(key)) { |
| | | mapWeekOutNum.put(key, mapWeekOutNum.get(key) + 1); |
| | | } |
| | | if (null != mapMonthOutNum.get(key)) { |
| | | mapMonthOutNum.put(key, mapMonthOutNum.get(key) + 1); |
| | | } |
| | | if (key.equals(DateFormatUtils.format(new Date(), "MM-dd"))) { |
| | | mainData.setOutNumDay(mainData.getOutNumDay() + 1); |
| | | outSum += record.getRecordWeight(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (String mapKey : mapWeekInNum.keySet()) { |
| | | mainData.getWeekDateList().add(mapKey); |
| | | mainData.getWeekInNumList().add(mapWeekInNum.get(mapKey)); |
| | | } |
| | | |
| | | for (String mapKey : mapWeekOutNum.keySet()) { |
| | | mainData.getWeekOutNumList().add(mapWeekOutNum.get(mapKey)); |
| | | } |
| | | |
| | | for (String mapKey : mapMonthInNum.keySet()) { |
| | | mainData.getMonthDateList().add(mapKey); |
| | | mainData.getMonthInNumList().add(mapMonthInNum.get(mapKey)); |
| | | } |
| | | |
| | | for (String mapKey : mapMonthOutNum.keySet()) { |
| | | mainData.getMonthOutNumList().add(mapMonthOutNum.get(mapKey)); |
| | | } |
| | | mainData.setInSum(inSum / 1000); |
| | | mainData.setOutSum(outSum / 1000); |
| | | return mainData; |
| | | } |
| | | |
| | | } |