diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/constants/EnginConstants.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/constants/EnginConstants.java new file mode 100644 index 00000000..a87f0941 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/constants/EnginConstants.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.constants; + +public class EnginConstants { + public static final int SCENE_NUCLEUS_NUMBER = 2; // 核爆程序数量 + public static final int SCENE_FACILITY_NUMBER = 2; // 核设施程序数量 + public static final int SCENE_CHEMISTRY_NUMBER = 2; // 化爆程序数量 + public static final int SCENE_LEAK_NUMBER = 2; // 泄露程序数量 + + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizCityAim/controller/BizCityAimController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizCityAim/controller/BizCityAimController.java index cb68f2e3..f1ad67c5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizCityAim/controller/BizCityAimController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizCityAim/controller/BizCityAimController.java @@ -141,7 +141,6 @@ public class BizCityAimController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizCityAim.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizFacilityAim/controller/BizFacilityAimController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizFacilityAim/controller/BizFacilityAimController.java index e13f9536..9808b943 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizFacilityAim/controller/BizFacilityAimController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizAim/bizFacilityAim/controller/BizFacilityAimController.java @@ -3,12 +3,15 @@ package org.jeecg.modules.project.baseConfig.bizAim.bizFacilityAim.controller; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; @@ -150,13 +153,45 @@ public class BizFacilityAimController extends JeecgController> getFacilityAreas() { + List bizFacilityAims = bizFacilityAimService.list(); + if(bizFacilityAims == null || bizFacilityAims.isEmpty()) { + return Result.error("未找到对应数据"); + } + Set facilityAreas = bizFacilityAims.stream().map(BizFacilityAim::getFacilityArea).collect(Collectors.toSet()); + return Result.OK(facilityAreas); + } + + /** + * 根据区域查询设施 + * + * @return + */ + //@AutoLog(value = "设施目标表-根据区域查询设施") + @ApiOperation(value="设施目标表-根据区域查询设施", notes="设施目标表-根据区域查询设施") + @GetMapping(value = "/getFacilityAims") + public Result> getFacilityAims(@RequestParam(name="facilityArea",required=true) String facilityArea ) { + List bizFacilityAims = bizFacilityAimService.list(new LambdaQueryWrapper().eq(BizFacilityAim::getFacilityArea,facilityArea)); + if(bizFacilityAims == null || bizFacilityAims.isEmpty()) { + return Result.error("未找到对应数据"); + } + return Result.OK(bizFacilityAims); + } + /** * 导出excel * * @param request * @param bizFacilityAim */ - @RequiresPermissions("bizFacilityAim:biz_facility_aim:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, BizFacilityAim bizFacilityAim) { return super.exportXls(request, bizFacilityAim, BizFacilityAim.class, "设施目标表"); @@ -169,7 +204,6 @@ public class BizFacilityAimController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizFacilityAim.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/controller/BizEngineeringController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/controller/BizEngineeringController.java index a859b852..3c7e6808 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/controller/BizEngineeringController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/controller/BizEngineeringController.java @@ -5,9 +5,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.RemoteExecuteCommand; import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering; import org.jeecg.modules.project.baseConfig.bizEngineering.service.IBizEngineeringService; import org.jeecg.modules.project.calculateConfig.bizCmaq.entity.BizCmaq; @@ -38,6 +40,14 @@ public class BizEngineeringController { @Value("${spring.baseHome}") private String baseHome; + @Value("${spring.localFilePrefix}") + private String localFilePrefix; + @Value("${spring.Linux.ip}") + private String ip; + @Value("${spring.Linux.username}") + private String username; + @Value("${spring.Linux.password}") + private String password; /** * 查询工程 @@ -63,9 +73,6 @@ public class BizEngineeringController { bizEngineeringService.save(bizEngineering); bizEngineerings.add(bizEngineering); } -// for (BizEngineering bizEngineering : bizEngineerings) { -// bizEngineering.setEngineeringPath(bizEngineering.getEngineeringPath() + "/" + bizEngineering.getEngineeringName()); -// } return Result.OK(bizEngineerings); } @@ -124,6 +131,24 @@ public class BizEngineeringController { return Result.OK("编辑成功!"); } + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "工程管理-通过id删除") + @ApiOperation(value="工程管理-通过id删除", notes="工程管理-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + BizEngineering engineering = bizEngineeringService.getById(id); + bizEngineeringService.deleteEngin(id); + + String allRunPath = baseHome + engineering.getCreateBy() + "/" + engineering.getEngineeringName() + "/"; + RemoteExecuteCommand.runRemoteLinuxCmd(ip, username, password, "rm -rf " + allRunPath); + return Result.OK("删除成功!"); + } + /** * 修改运行状态 * diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/IBizEngineeringService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/IBizEngineeringService.java index ede5ead9..7fe0df2d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/IBizEngineeringService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/IBizEngineeringService.java @@ -1,11 +1,12 @@ package org.jeecg.modules.project.baseConfig.bizEngineering.service; import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.common.api.vo.Result; import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering; public interface IBizEngineeringService extends IService { BizEngineering getBizEngineeringByTime(); void updateRunStatus(String engId,int status); void updateErrorStatus(String engId,int status); + + void deleteEngin(String engId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/impl/BizEngineeringServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/impl/BizEngineeringServiceImpl.java index bf81c3b7..8033c5a8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/impl/BizEngineeringServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizEngineering/service/impl/BizEngineeringServiceImpl.java @@ -8,6 +8,31 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering; import org.jeecg.modules.project.baseConfig.bizEngineering.mapper.BizEngineeringMapper; import org.jeecg.modules.project.baseConfig.bizEngineering.service.IBizEngineeringService; +import org.jeecg.modules.project.calculateConfig.bizCmaq.entity.BizCmaq; +import org.jeecg.modules.project.calculateConfig.bizCmaq.mapper.BizCmaqMapper; +import org.jeecg.modules.project.calculateConfig.bizCmaq.service.IBizCmaqService; +import org.jeecg.modules.project.calculateConfig.bizConfigChemistry.entity.BizConfigChemistry; +import org.jeecg.modules.project.calculateConfig.bizConfigChemistry.service.IBizConfigChemistryService; +import org.jeecg.modules.project.calculateConfig.bizConfigFacility.entity.BizConfigFacility; +import org.jeecg.modules.project.calculateConfig.bizConfigFacility.service.IBizConfigFacilityService; +import org.jeecg.modules.project.calculateConfig.bizConfigLeak.entity.BizConfigLeak; +import org.jeecg.modules.project.calculateConfig.bizConfigLeak.service.IBizConfigLeakService; +import org.jeecg.modules.project.calculateConfig.bizConfigNucleus.entity.BizConfigNucleus; +import org.jeecg.modules.project.calculateConfig.bizConfigNucleus.service.IBizConfigNucleusService; +import org.jeecg.modules.project.calculateConfig.bizOpenfoam.entity.BizOpenfoam; +import org.jeecg.modules.project.calculateConfig.bizOpenfoam.service.IBizOpenfoamService; +import org.jeecg.modules.project.calculateConfig.bizWrf.entity.BizWrf; +import org.jeecg.modules.project.calculateConfig.bizWrf.mapper.BizWrfMapper; +import org.jeecg.modules.project.calculateConfig.bizWrf.service.IBizWrfService; +import org.jeecg.modules.project.calculateResult.bizResultDiffuse.entity.BizResultDiffuse; +import org.jeecg.modules.project.calculateResult.bizResultDiffuse.service.IBizResultDiffuseService; +import org.jeecg.modules.project.calculateResult.bizResultDosage.entity.BizResultDosage; +import org.jeecg.modules.project.calculateResult.bizResultDosage.service.IBizResultDosageService; +import org.jeecg.modules.project.calculateResult.bizResultOptimize.entity.BizResultOptimize; +import org.jeecg.modules.project.calculateResult.bizResultOptimize.service.IBizResultOptimizeService; +import org.jeecg.modules.project.calculateResult.bizResultSourceItem.entity.BizResultSourceItem; +import org.jeecg.modules.project.calculateResult.bizResultSourceItem.service.IBizResultSourceItemService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestBody; @@ -21,6 +46,31 @@ public class BizEngineeringServiceImpl extends ServiceImpl().eq(BizWrf::getEngineeringId,engId)); + bizCmaqMapper.delete(new LambdaQueryWrapper().eq(BizCmaq::getEngineeringId,engId)); + bizOpenfoamService.remove(new LambdaQueryWrapper().eq(BizOpenfoam::getEngineeringId,engId)); + + bizConfigChemistryService.remove(new LambdaQueryWrapper().eq(BizConfigChemistry::getEngineeringId,engId)); + bizConfigLeakService.remove(new LambdaQueryWrapper().eq(BizConfigLeak::getEngineeringId,engId)); + bizConfigFacilityService.remove(new LambdaQueryWrapper().eq(BizConfigFacility::getEngineeringId,engId)); + bizConfigNucleusService.remove(new LambdaQueryWrapper().eq(BizConfigNucleus::getEngineeringId,engId)); + bizResultDiffuseService.remove(new LambdaQueryWrapper().eq(BizResultDiffuse::getEngineeringId,engId)); + bizResultDosageService.remove(new LambdaQueryWrapper().eq(BizResultDosage::getEngineeringId,engId)); + bizResultOptimizeService.remove(new LambdaQueryWrapper().eq(BizResultOptimize::getEngineeringId,engId)); + bizResultSourceItemService.remove(new LambdaQueryWrapper().eq(BizResultSourceItem::getEngineeringId,engId)); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizNuclide/controller/BizNuclideController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizNuclide/controller/BizNuclideController.java index 3b801b71..884f50ce 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizNuclide/controller/BizNuclideController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizNuclide/controller/BizNuclideController.java @@ -141,7 +141,6 @@ public class BizNuclideController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizNuclide.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizRole/controller/BizRoleController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizRole/controller/BizRoleController.java index 5c27284c..78a9fd97 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizRole/controller/BizRoleController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizRole/controller/BizRoleController.java @@ -172,7 +172,6 @@ public class BizRoleController extends JeecgController * @param request * @param bizRole */ - @RequiresPermissions("bizRole:biz_role:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, BizRole bizRole) { return super.exportXls(request, bizRole, BizRole.class, "Gis和角色权限管理表"); @@ -185,7 +184,6 @@ public class BizRoleController extends JeecgController * @param response * @return */ - @RequiresPermissions("bizRole:biz_role:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizRole.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizSourceItem/controller/BizSourceItemController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizSourceItem/controller/BizSourceItemController.java index 59ce7891..01c6657b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizSourceItem/controller/BizSourceItemController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizSourceItem/controller/BizSourceItemController.java @@ -156,7 +156,6 @@ public class BizSourceItemController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizSourceItem.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/controller/BizTopographyInfoController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/controller/BizTopographyInfoController.java index ab0f9777..57acc19c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/controller/BizTopographyInfoController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/controller/BizTopographyInfoController.java @@ -141,7 +141,6 @@ public class BizTopographyInfoController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizTopographyInfo.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/entity/BizTopographyInfo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/entity/BizTopographyInfo.java index bc812218..7a560198 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/entity/BizTopographyInfo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizTopography/bizTopographyInfo/entity/BizTopographyInfo.java @@ -36,11 +36,6 @@ public class BizTopographyInfo implements Serializable { /**创建人*/ @ApiModelProperty(value = "创建人") private String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建日期") - private Date createTime; /**更新人*/ @ApiModelProperty(value = "更新人") private String updateBy; @@ -53,8 +48,14 @@ public class BizTopographyInfo implements Serializable { @Excel(name = "地形名称", width = 15) @ApiModelProperty(value = "地形名称") private String topographyName; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + @Excel(name = "上传时间", width = 15) + private Date createTime; /**地形文件路径*/ - @Excel(name = "地形文件路径", width = 15) + @Excel(name = "文件路径", width = 15) @ApiModelProperty(value = "地形文件路径") private String topographyPath; /**备注*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizWeapon/controller/BizWeaponController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizWeapon/controller/BizWeaponController.java index f3f88f3a..32c73670 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizWeapon/controller/BizWeaponController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/bizWeapon/controller/BizWeaponController.java @@ -141,7 +141,6 @@ public class BizWeaponController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizWeapon.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentMotor/controller/BizEquipmentMotorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentMotor/controller/BizEquipmentMotorController.java index 12c12c24..215b709b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentMotor/controller/BizEquipmentMotorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentMotor/controller/BizEquipmentMotorController.java @@ -141,7 +141,6 @@ public class BizEquipmentMotorController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizEquipmentMotor.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentProtection/controller/BizEquipmentProtectionController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentProtection/controller/BizEquipmentProtectionController.java index c3d66414..b4365cff 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentProtection/controller/BizEquipmentProtectionController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/equipment/bizEquipmentProtection/controller/BizEquipmentProtectionController.java @@ -141,7 +141,6 @@ public class BizEquipmentProtectionController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizEquipmentProtection.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherForecast/controller/BizWeatherForecastController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherForecast/controller/BizWeatherForecastController.java index d38f4c12..442f5833 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherForecast/controller/BizWeatherForecastController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherForecast/controller/BizWeatherForecastController.java @@ -141,7 +141,6 @@ public class BizWeatherForecastController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizWeatherForecast.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherHistory/controller/BizWeatherHistoryController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherHistory/controller/BizWeatherHistoryController.java index 08f0d2b3..89cd1c38 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherHistory/controller/BizWeatherHistoryController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/baseConfig/weather/bizWeatherHistory/controller/BizWeatherHistoryController.java @@ -141,7 +141,6 @@ public class BizWeatherHistoryController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizWeatherHistory.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/controller/BizCmaqController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/controller/BizCmaqController.java index e26f7e4b..c8581116 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/controller/BizCmaqController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/controller/BizCmaqController.java @@ -232,7 +232,6 @@ public class BizCmaqController extends JeecgController * @param request * @param bizCmaq */ - //@RequiresPermissions("bizCmaq:biz_cmaq:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, BizCmaq bizCmaq) { return super.exportXls(request, bizCmaq, BizCmaq.class, "CMAQ"); @@ -245,7 +244,6 @@ public class BizCmaqController extends JeecgController * @param response * @return */ - //@RequiresPermissions("bizCmaq:biz_cmaq:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizCmaq.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/mapper/BizCmaqMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/mapper/BizCmaqMapper.java index dd68832b..80d25958 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/mapper/BizCmaqMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/mapper/BizCmaqMapper.java @@ -1,5 +1,6 @@ package org.jeecg.modules.project.calculateConfig.bizCmaq.mapper; +import org.apache.ibatis.annotations.Mapper; import org.jeecg.modules.project.calculateConfig.bizCmaq.entity.BizCmaq; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @Date: 2022-12-19 * @Version: V1.0 */ +@Mapper public interface BizCmaqMapper extends BaseMapper { } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/service/impl/BizCmaqServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/service/impl/BizCmaqServiceImpl.java index 5d1f0b69..d81695d5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/service/impl/BizCmaqServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizCmaq/service/impl/BizCmaqServiceImpl.java @@ -13,7 +13,6 @@ import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering import org.jeecg.modules.project.baseConfig.bizEngineering.service.IBizEngineeringService; import org.jeecg.modules.project.calculateConfig.bizOpenfoam.entity.BizOpenfoam; import org.jeecg.modules.project.calculateConfig.bizOpenfoam.service.IBizOpenfoamService; -import org.jeecg.modules.project.calculateConfig.bizWrf.service.IBizWrfService; import org.jeecg.modules.util.SFTPUtil; import org.springframework.beans.factory.annotation.Value; import org.jeecg.modules.project.calculateConfig.bizWrf.entity.BizWrf; @@ -55,8 +54,6 @@ public class BizCmaqServiceImpl extends ServiceImpl impl @Autowired private BizWrfMapper bizWrfMapper; @Autowired - private IBizWrfService bizWrfService; - @Autowired private IBizOpenfoamService bizOpenfoamService; @Autowired private IBizEngineeringService bizEngineeringService; @@ -151,7 +148,9 @@ public class BizCmaqServiceImpl extends ServiceImpl impl String mcipFileName = genMcipsShell(allRunPath,targetFilePath,wrf.getStartTime().substring(0, 10),wrf.getEndTime().substring(0, 10),wrf.getMaxDom(),cmaq.getColsN(),cmaq.getRowsN()); // todo 执行mcip.csh runCmd(allRunPath + "CMAQ/","PREP/mcip",mcipFileName); + bizEngineeringService.updateRunStatus(engineeringId,6); } catch (Exception e) { + bizEngineeringService.updateErrorStatus(engineeringId,6); return false; } return true; @@ -169,7 +168,9 @@ public class BizCmaqServiceImpl extends ServiceImpl impl String iconFileName = genIconShell(allRunPath,targetFilePath,wrf.getStartTime().substring(0, 10),wrf.getEndTime().substring(0, 10),wrf.getMaxDom()); // todo 执行icon.csh runCmd(allRunPath + "CMAQ/","PREP/icon",iconFileName); + bizEngineeringService.updateRunStatus(engineeringId,7); } catch (Exception e) { + bizEngineeringService.updateErrorStatus(engineeringId,7); return false; } return true; @@ -187,7 +188,9 @@ public class BizCmaqServiceImpl extends ServiceImpl impl String iconFileName = genBconShell(allRunPath,targetFilePath,wrf.getStartTime().substring(0, 10),wrf.getEndTime().substring(0, 10),wrf.getMaxDom()); // todo 执行bcon.csh runCmd(allRunPath + "CMAQ/","PREP/bcon",iconFileName); + bizEngineeringService.updateRunStatus(engineeringId,8); } catch (Exception e) { + bizEngineeringService.updateErrorStatus(engineeringId,8); return false; } return true; @@ -254,13 +257,21 @@ public class BizCmaqServiceImpl extends ServiceImpl impl String cctmFileName = genCctmShell(allRunPath,targetFilePath + "CCTM/",newStartTime,newEndTime,cmaq.getSttime(), cmaq.getNsteps(), cmaq.getTstep()); // todo 执行cctm.csh runCmd(allRunPath + "CMAQ/","CCTM",cctmFileName); - String ncName = "CCTM_ACONC_v532_2016_12SE1_"+newStartTime.replace("-","")+".nc"; - String ncLocalName = "CCTM_ACONC_v532_2016_12SE1_"+DateUtil.format(new Date(startTimeSecs), ymdFormat).replace("-","")+".nc"; + bizEngineeringService.updateRunStatus(engineeringId,9); + + //工程总运行小时数 + Integer sumHour = Integer.valueOf((endTime.getTime() - startTime.getTime()) / oneDaySecs * 24 + ""); + Integer sumDay = sumHour / 24 -1; SFTPUtil sftpUtil = new SFTPUtil(); sftpUtil.login(username, password,ip,port); - sftpUtil.download(allRunPath + "CMAQ/data/output/v532_2016_12SE1/",ncName,targetFilePath + ncLocalName); + for (Integer i = 1; i <= sumDay; i++) { + String ncName = "CCTM_ACONC_v532_2016_12SE1_"+DateUtil.format(new Date(startTimeSecs + oneDaySecs * i), ymdFormat).replace("-","")+".nc"; +// String ncLocalName = "CCTM_ACONC_v532_2016_12SE1_"+DateUtil.format(new Date(startTimeSecs), ymdFormat).replace("-","")+".nc"; + sftpUtil.download(allRunPath + "CMAQ/data/output/v532_2016_12SE1/",ncName,targetFilePath + ncName); + } sftpUtil.logout(); } catch (Exception e) { + bizEngineeringService.updateErrorStatus(engineeringId,9); return false; } return true; @@ -282,7 +293,7 @@ public class BizCmaqServiceImpl extends ServiceImpl impl // NetcdfFile ncfile = NetcdfDataset.open("C:\\Users\\13673\\Desktop\\某源\\Nuclear\\file\\CCTM_ACONC_v532_2016_12SE1_20160701.nc"); String ncName = "CCTM_ACONC_v532_2016_12SE1_" + sdf.format(sdf.parse(bizCmaq.getStartDate())).replace("-", "") + ".nc"; NetcdfFile ncfile = NetcdfDataset.open(targetFilePath + ncName); - BizWrf bizWrf = bizWrfService.getOne(new LambdaQueryWrapper().eq(BizWrf::getEngineeringId, bizEngineering.getId())); + BizWrf bizWrf = bizWrfMapper.selectOne(new LambdaQueryWrapper().eq(BizWrf::getEngineeringId, bizEngineering.getId())); //正式环境需要修改 // String ncNameWrf = "wrfout_d01_" + bizWrf.getStartTime(); String ncNameWrf = "wrfout_d01_2016-07-01_00_00_00"; @@ -327,7 +338,7 @@ public class BizCmaqServiceImpl extends ServiceImpl impl List variableNames = new ArrayList<>(); BizEngineering bizEngineering = bizEngineeringService.getById(engineeringId); BizCmaq bizCmaq = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(BizCmaq::getEngineeringId,bizEngineering.getId())); - BizWrf bizWrf = bizWrfService.getOne(new LambdaQueryWrapper().eq(BizWrf::getEngineeringId, bizEngineering.getId())); + BizWrf bizWrf = bizWrfMapper.selectOne(new LambdaQueryWrapper().eq(BizWrf::getEngineeringId, bizEngineering.getId())); String targetFilePath = localFilePrefix + bizCmaq.getCreateBy() + "/" + bizEngineering.getEngineeringName() + "/"; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigChemistry/controller/BizConfigChemistryController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigChemistry/controller/BizConfigChemistryController.java index bb6d2e64..b2e437d9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigChemistry/controller/BizConfigChemistryController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigChemistry/controller/BizConfigChemistryController.java @@ -156,7 +156,6 @@ public class BizConfigChemistryController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizConfigChemistry.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigFacility/controller/BizConfigFacilityController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigFacility/controller/BizConfigFacilityController.java index 8102e0f1..e5cf10ee 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigFacility/controller/BizConfigFacilityController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigFacility/controller/BizConfigFacilityController.java @@ -156,7 +156,6 @@ public class BizConfigFacilityController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizConfigFacility.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigLeak/controller/BizConfigLeakController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigLeak/controller/BizConfigLeakController.java index c8ff3ea5..b21a60f7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigLeak/controller/BizConfigLeakController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigLeak/controller/BizConfigLeakController.java @@ -156,7 +156,6 @@ public class BizConfigLeakController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizConfigLeak.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigNucleus/controller/BizConfigNucleusController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigNucleus/controller/BizConfigNucleusController.java index fbc3e7ee..b1db40e6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigNucleus/controller/BizConfigNucleusController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizConfigNucleus/controller/BizConfigNucleusController.java @@ -156,7 +156,6 @@ public class BizConfigNucleusController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizConfigNucleus.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/controller/BizWrfController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/controller/BizWrfController.java index 568fede2..5a60a660 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/controller/BizWrfController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/controller/BizWrfController.java @@ -362,13 +362,20 @@ public class BizWrfController extends JeecgController { // String wrfLog = new String(readAllBytes(get(localFilePath + "wrf.log"))); sftpUtil.download(allRunPath + "WRF/run","rsl.out.0000",localFilePath + "rsl.out.0000"); String wrfLog = new String(readAllBytes(get(localFilePath + "rsl.out.0000"))); - if(wrfLog.indexOf("SUCCESS COMPLETE WRF") > 0){ + if(wrfLog.indexOf("SUCCESS COMPLETE WRF") >= 0){ String format = "yyyy-MM-dd_HH:mm:ss"; DateTime startTime = DateUtil.parse(bizWrf.getStartTime(), format); + DateTime endTime = DateUtil.parse(bizWrf.getEndTime(), format); long oneDaySecs = 60 * 60 * 24 * 1000; - String newStartTime = DateUtil.format(new Date(startTime.getTime() + oneDaySecs), format); - String ncNameWrf = "wrfout_d01_" + newStartTime; - sftpUtil.download(allRunPath + "WRF/run/",ncNameWrf,localFilePath + ncNameWrf); + //工程总运行小时数(WRF的时间) + Integer sumHour = Integer.valueOf((endTime.getTime() - startTime.getTime()) / oneDaySecs * 24 + ""); + Integer sumDay = sumHour / 24 + 1; + + for (Integer i = 1; i <= sumDay; i++) { + String newStartTime = DateUtil.format(new Date(startTime.getTime() + oneDaySecs * i - oneDaySecs), format); + String ncNameWrf = "wrfout_d01_" + newStartTime; + sftpUtil.download(allRunPath + "WRF/run/",ncNameWrf,localFilePath + ncNameWrf); + } sftpUtil.logout(); return Result.OK("SUCCESS COMPLETE WRF"); }else{ @@ -694,7 +701,6 @@ public class BizWrfController extends JeecgController { * @param request * @param bizWrf */ - //@RequiresPermissions("bizWrf:biz_wrf:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, BizWrf bizWrf) { return super.exportXls(request, bizWrf, BizWrf.class, "wrf"); @@ -707,7 +713,6 @@ public class BizWrfController extends JeecgController { * @param response * @return */ - //@RequiresPermissions("bizWrf:biz_wrf:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizWrf.class); @@ -784,5 +789,9 @@ public class BizWrfController extends JeecgController { // System.out.println(lonLatticeIndex+"-"+latLatticeIndex); // String wmhr = RemoteExecuteCommand.runRemoteLinuxCmd("192.168.115.128", "wmhr", "123456", "cd /home/wmhr/OpenFOAM-8/run/admin/工程001/;ls"); // System.out.println(wmhr); + + String wmhr = RemoteExecuteCommand.runRemoteLinuxCmd("192.168.115.128", "wmhr", "123456", "ps -ef | grep vmtoolsd"); + System.out.println(wmhr); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/IBizWrfService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/IBizWrfService.java index 71af8cd0..9ca5c373 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/IBizWrfService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/IBizWrfService.java @@ -3,8 +3,10 @@ package org.jeecg.modules.project.calculateConfig.bizWrf.service; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.project.calculateConfig.bizWrf.entity.BizWrf; import com.baomidou.mybatisplus.extension.service.IService; +import ucar.nc2.NetcdfFile; import java.io.IOException; +import java.util.List; /** * @Description: wrf @@ -19,5 +21,6 @@ public interface IBizWrfService extends IService { Result runMetgrid(String allRunPath, String engineeringId)throws IOException; Result runReal(String allRunPath, String engineeringId)throws IOException; Result runWrf(String allRunPath, String engineeringId) throws IOException; + List>> getNCByName(NetcdfFile ncfile, String name, int layer); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/impl/BizWrfServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/impl/BizWrfServiceImpl.java index 7ab6b707..6b972b4b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/impl/BizWrfServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/service/impl/BizWrfServiceImpl.java @@ -16,9 +16,15 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.web.bind.annotation.GetMapping; +import ucar.ma2.Array; +import ucar.ma2.Index; +import ucar.nc2.NetcdfFile; +import ucar.nc2.Variable; import java.io.IOException; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import static java.nio.file.Files.readAllBytes; import static java.nio.file.Paths.get; @@ -172,5 +178,60 @@ public class BizWrfServiceImpl extends ServiceImpl impleme sftpUtil.logout(); return Result.error(wrfLog); } + @Override + public List>> getNCByName(NetcdfFile ncfile, String name, int layer){ + Variable variable = ncfile.findVariable(name); + List>> resultAll = new ArrayList<>(); + // 读取nc数据到数组 + Array data = null; + try { + data = variable.read(); + } catch (IOException e) { + e.printStackTrace(); + } + + // 获取参数和索引,其中shape的前三个参数分别是时间、纬度、经度 + int[] shape = data.getShape(); + Index index = data.getIndex(); + + if(shape.length == 3){ + // 将三维数组降维,并用String数组提取数据 + // 按时间 + // 按维度 + for (int i = 0; i < shape[0]; i++) { + List> resultPiece = new ArrayList<>(); + for (int j = 0; j < shape[1]; j++) { + List strings = new ArrayList<>(); + // 按经度 + for (int k = 0; k < shape[2]; k++) { + // 按照对应索引获取数据并转换为string类型添加到数组中 + Double dval = Math.round(data.getFloat(index.set(i, j, k)) * 1000) /1000d; + strings.add(dval); + } + resultPiece.add(strings); + } + resultAll.add(resultPiece); + } + }else{ + // 将三维数组降维,并用String数组提取数据 + // 按时间 + // 按维度 + for (int i = 0; i < shape[0]; i++) { + List> resultPiece = new ArrayList<>(); + for (int j = 0; j < shape[2]; j++) { + List strings = new ArrayList<>(); + // 按经度 + for (int k = 0; k < shape[3]; k++) { + // 按照对应索引获取数据并转换为string类型添加到数组中 + Double dval = Math.round(data.getFloat(index.set(i,layer, j, k)) * 1000) /1000d; + strings.add(dval); + } + resultPiece.add(strings); + } + resultAll.add(resultPiece); + } + } + return resultAll; + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrfList.vue b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrfList.vue deleted file mode 100644 index ba4e7774..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrfList.vue +++ /dev/null @@ -1,309 +0,0 @@ - - - - \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrf_menu_insert.sql b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrf_menu_insert.sql deleted file mode 100644 index 3b41e5cb..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/BizWrf_menu_insert.sql +++ /dev/null @@ -1,26 +0,0 @@ --- 注意:该页面对应的前台目录为views/bizWrf文件夹下 --- 如果你想更改到其他目录,请修改sql中component字段对应的值 - - -INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) -VALUES ('2022121905425820350', NULL, 'wrf', '/bizWrf/bizWrfList', 'bizWrf/BizWrfList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0); - --- 权限控制sql --- 新增 -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820351', '2022121905425820350', '添加wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); --- 编辑 -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820352', '2022121905425820350', '编辑wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); --- 删除 -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820353', '2022121905425820350', '删除wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); --- 批量删除 -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820354', '2022121905425820350', '批量删除wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); --- 导出excel -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820355', '2022121905425820350', '导出excel_wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); --- 导入excel -INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('2022121905425820356', '2022121905425820350', '导入excel_wrf', NULL, NULL, 0, NULL, NULL, 2, 'bizWrf:biz_wrf:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2022-12-19 17:42:35', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfForm.vue b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfForm.vue deleted file mode 100644 index d0018a2c..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfForm.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.Style#Drawer.vue b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.Style#Drawer.vue deleted file mode 100644 index ffb1abab..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.Style#Drawer.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.vue b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.vue deleted file mode 100644 index 449ebe33..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateConfig/bizWrf/vue/modules/BizWrfModal.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDiffuse/controller/BizResultDiffuseController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDiffuse/controller/BizResultDiffuseController.java index 2a58db7d..b2e31d8b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDiffuse/controller/BizResultDiffuseController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDiffuse/controller/BizResultDiffuseController.java @@ -176,7 +176,6 @@ public class BizResultDiffuseController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizResultDiffuse.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDosage/controller/BizResultDosageController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDosage/controller/BizResultDosageController.java index 8570b3f3..694c6e35 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDosage/controller/BizResultDosageController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultDosage/controller/BizResultDosageController.java @@ -176,7 +176,6 @@ public class BizResultDosageController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizResultDosage.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultOptimize/controller/BizResultOptimizeController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultOptimize/controller/BizResultOptimizeController.java index 2635d4ec..470ab099 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultOptimize/controller/BizResultOptimizeController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultOptimize/controller/BizResultOptimizeController.java @@ -176,7 +176,6 @@ public class BizResultOptimizeController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizResultOptimize.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultSourceItem/controller/BizResultSourceItemController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultSourceItem/controller/BizResultSourceItemController.java index 5a4353dd..4fcfd350 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultSourceItem/controller/BizResultSourceItemController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/bizResultSourceItem/controller/BizResultSourceItemController.java @@ -176,7 +176,6 @@ public class BizResultSourceItemController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, BizResultSourceItem.class); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/VO/ProgressVO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/VO/ProgressVO.java new file mode 100644 index 00000000..7619048b --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/VO/ProgressVO.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.project.calculateResult.runProcess.VO; + +import lombok.Data; + +import java.util.List; + +@Data +public class ProgressVO { + + private Integer runStatus; + private List progressList; + private Integer nowProgress; + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/controller/RunProcessController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/controller/RunProcessController.java index 32f10214..0532046e 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/controller/RunProcessController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/project/calculateResult/runProcess/controller/RunProcessController.java @@ -1,5 +1,7 @@ package org.jeecg.modules.project.calculateResult.runProcess.controller; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -12,20 +14,38 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.constants.EnginConstants; import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering; import org.jeecg.modules.project.baseConfig.bizEngineering.service.IBizEngineeringService; +import org.jeecg.modules.project.calculateConfig.bizWrf.entity.BizWrf; import org.jeecg.modules.project.calculateConfig.bizWrf.service.IBizWrfService; import org.jeecg.modules.project.calculateResult.bizResultDiffuse.entity.BizResultDiffuse; import org.jeecg.modules.project.calculateResult.bizResultDiffuse.service.IBizResultDiffuseService; +import org.jeecg.modules.project.calculateResult.runProcess.VO.ProgressVO; +import org.jeecg.modules.util.SFTPUtil; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import ucar.nc2.NetcdfFile; +import ucar.nc2.dataset.NetcdfDataset; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; +import java.math.BigDecimal; +import java.nio.file.Files; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.nio.file.Files.readAllBytes; +import static java.nio.file.Paths.get; /** * @Description: 运行过程 @@ -39,14 +59,25 @@ import java.util.Arrays; @Slf4j public class RunProcessController extends JeecgController { - @Autowired - private IBizEngineeringService bizEngineeringService; + @Autowired + private IBizEngineeringService bizEngineeringService; - @Autowired - private IBizWrfService bizWrfService; + @Autowired + private IBizWrfService bizWrfService; - @Value("${spring.baseHome}") - private String baseHome; + @Value("${spring.baseHome}") + private String baseHome; + @Value("${spring.localFilePrefix}") + private String localFilePrefix; + + @Value("${spring.Linux.ip}") + private String ip; + @Value("${spring.Linux.username}") + private String username; + @Value("${spring.Linux.password}") + private String password; + @Value("${spring.Linux.port}") + private Integer port; /** @@ -68,4 +99,209 @@ public class RunProcessController extends JeecgController runProgress(String engineeringId) throws IOException { + BizEngineering engineering = bizEngineeringService.getById(engineeringId); + BizWrf bizWrf = bizWrfService.getOne(new LambdaQueryWrapper().eq(BizWrf::getEngineeringId,engineering.getId())); + if(null == engineering){ + return Result.error("未查询到工程信息!",null); + } + + String format = "yyyy-MM-dd_hh:mm:ss"; + DateTime startTime = DateUtil.parse(bizWrf.getStartTime(), format); + DateTime endTime = DateUtil.parse(bizWrf.getEndTime(), format); + long oneDaySecs = 60 * 60 * 24 * 1000; + //工程总运行小时数(WRF的时间) + Integer sumHour = Integer.valueOf((endTime.getTime() - startTime.getTime()) / oneDaySecs * 24 + ""); + Integer sumDay = sumHour / 24 + 1; + + String localFilePath = localFilePrefix + "/" + engineering.getCreateBy() + "/" + engineering.getEngineeringName() + "/"; + + //工程总共有几个进度 + Integer runNumber = EnginConstants.SCENE_FACILITY_NUMBER + 5; + ProgressVO progressVO = new ProgressVO(); + //工程进度条填充初始值 + List progressList = Stream.generate(() -> 0).limit(runNumber).collect(Collectors.toList()); + //工程当前进度条填充初始值 + Integer percent = 0; + int nowDay = 0; + //如果工程已经运行完成,所有进度条改为百分百进度并返回 + if(engineering.getRunStatus() == 99){ + return getProgressVOResult(runNumber, progressVO, progressList); + }else if(engineering.getRunStatus() == 5){ + String ncNameWrf = ""; + for (int i = sumDay; i > 0; i--) { + String newStartTime = DateUtil.format(new Date(startTime.getTime() + oneDaySecs * i - oneDaySecs), format); + ncNameWrf = localFilePath + "wrfout_d01_" + newStartTime; + + File cmaqFile = new File(ncNameWrf); + if(cmaqFile.exists()){ + nowDay = i; + break; + } + } + NetcdfFile ncfile = NetcdfDataset.open(localFilePath + ncNameWrf); + List>> xlatAllList = bizWrfService.getNCByName(ncfile, "XLAT",0); + percent = nowDay * 24 - 24 + xlatAllList.size() * 100 / sumHour; + for (int i = 0; i < 4; i++) { + progressList.set(i,100); + } + progressList.set(4,percent); + }else if(engineering.getRunStatus() == 9){ + int cmaqSumDay = sumHour / 24; + String ncNameCmaq = ""; + for (int i = cmaqSumDay; i > 0; i--) { + String newStartTime = DateUtil.format(new Date(startTime.getTime() + oneDaySecs * i - oneDaySecs), format); + ncNameCmaq = localFilePath + "CCTM_ACONC_v532_2016_12SE1_" + newStartTime.replace("-","")+".nc"; + + File cmaqFile = new File(ncNameCmaq); + if(cmaqFile.exists()){ + nowDay = i; + break; + } + } + NetcdfFile ncfile = NetcdfDataset.open(localFilePath + ncNameCmaq); + List>> xlatAllList = bizWrfService.getNCByName(ncfile, "CO",0); + percent = nowDay * 24 - 24 + xlatAllList.size() * 100 / (sumHour -24); + for (int i = 0; i < 9; i++) { + progressList.set(i,100); + } + progressList.set(9,percent); + }else{ + for (int i = 0; i < engineering.getRunStatus() - 1; i++) { + progressList.set(i,100); + } + } + progressVO.setProgressList(progressList); + progressVO.setRunStatus(engineering.getRunStatus()); + progressVO.setNowProgress(percent); + + return Result.OK(progressVO); + } + + /*private ProgressVO cmaqProgressVOResult(BizEngineering engineering, DateTime startTime, long oneDaySecs, Integer sumHour,List progressList){ + //判断CMAQ运行进度 + String allRunPath = baseHome + engineering.getCreateBy() + "/" + engineering.getEngineeringName() + "/"; + String fileName = "CTM_LOG_000.v532_2016_12SE1_"; + String nowTimeYMD = ""; + Integer nowDay = 1; + for (int i = 1; i <= sumDay - 1; i++) { + nowTimeYMD = DateUtil.format(new Date(endTime.getTime() - i * oneDaySecs), "yyyyMMdd"); + File cmaqFile = new File(String.format("%sCMAQ/data/output/v532_2016_12SE1/LOGS/%s%s",allRunPath,fileName,nowTimeYMD)); + if(cmaqFile.exists()){ + nowDay = i; + break; + } + } + List cmaqValues = getRunLog(engineering,"CMAQ/data/output/v532_2016_12SE1/LOGS",fileName + nowTimeYMD); + for (int i = cmaqValues.size() - 1; i >= cmaqValues.size() - 50; i--) { + if(cmaqValues.get(i).indexOf("PROGRAM COMPLETED SUCCESSFULLY") >= 0 && nowDay == sumDay - 1){ + return getProgressVOResult(runNumber, progressVO, progressList); + }else{ + for (int j = 0; j < runNumber - 1; j++) { + progressList.set(j,100); + } + progressList.set(runNumber - 1,99); + progressVO.setProgressList(progressList); + progressVO.setRunStatus(runNumber - 1); + progressVO.setNowProgress(99); + } + } + }*/ + + private ProgressVO wrfProgressVOResult(BizEngineering engineering, DateTime startTime, long oneDaySecs, Integer sumHour,List progressList){ + ProgressVO progressVO = new ProgressVO(); + String formatYMDH = "yyyy-MM-dd_hh"; + List wrfValues = getRunLog(engineering,"WRF/run/","rsl.out.0000"); + //如果WRF已经运行完成,WRF所有进度条改为百分百 + if(wrfValues.indexOf("wrf: SUCCESS COMPLETE WRF") >= 0){ + for (int i = 0; i < 5; i++) { + progressList.set(i,100); + } + progressVO.setProgressList(progressList); + progressVO.setRunStatus(engineering.getRunStatus()); + progressVO.setNowProgress(100); + }else{ + if(wrfValues != null){ + String endValues = wrfValues.get(wrfValues.size()-1); + String nowTimeString = null; + //判断WRF日志文件最后一行是否包含关键信息 + if(endValues.indexOf("Timing for main: time ") >= 0){ + nowTimeString = endValues.substring(22,22 + 19); + }else{ + //判断WRF日志文件倒数第二行是否包含关键信息 + endValues = wrfValues.get(wrfValues.size()-2); + if(endValues.indexOf("Timing for main: time ") >= 0){ + nowTimeString = endValues.substring(22,22 + 19); + } + } + //根据获取到的日期信息,换算当前进度百分比 + DateTime nowTime = DateUtil.parse(nowTimeString, formatYMDH); + long nowHour = Integer.valueOf(nowTime.getTime() - startTime.getTime() + "") / oneDaySecs * 24; + Integer percent = Integer.valueOf(nowHour * 100 / sumHour + ""); + for (int i = 0; i < 4; i++) { + progressList.set(i,100); + } + progressList.set(4,percent); + progressVO.setProgressList(progressList); + progressVO.setRunStatus(engineering.getRunStatus()); + progressVO.setNowProgress(percent); + } + } + return progressVO; + } + + @NotNull + private Result getProgressVOResult(Integer runNumber, ProgressVO progressVO, List progressList) { + for (int j = 0; j < runNumber - 1; j++) { + progressList.set(j,100); + } + progressVO.setProgressList(progressList); + progressVO.setRunStatus(runNumber); + progressVO.setNowProgress(100); + return Result.OK(progressVO); + } + + /** + * 获取运行日志 + * + * @return + */ +// @AutoLog(value = "运行过程-获取运行日志") +// @ApiOperation(value="运行过程-获取运行日志", notes="运行过程-获取运行日志") +// @GetMapping(value = "/getRunLog") + public List getRunLog(BizEngineering engineering ,String path,String fileName) { + try { + String allRunPath = baseHome + engineering.getCreateBy() + "/" + engineering.getEngineeringName() + "/"; + String localFilePath = localFilePrefix + engineering.getCreateBy() + "/" + engineering.getEngineeringName() + "/"; + + SFTPUtil sftpUtil = new SFTPUtil(); + sftpUtil.login(username, password,ip,port); + sftpUtil.download(allRunPath + path,fileName,localFilePath + fileName); + sftpUtil.logout(); + return Files.readAllLines(get(localFilePath + fileName)); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) { +// String format = "yyyy-MM-dd_hh"; +// DateTime startTime = DateUtil.parse("2016-06-30_00:00:00", format); +// DateTime endTime = DateUtil.parse("2016-07-02_06:23:00", format); +// long oneDaySecs = 60 * 60 * 24 * 1000; +// long sumDay = Integer.valueOf(endTime.getTime() - startTime.getTime() + "") / oneDaySecs * 24; +// System.out.println(sumDay); + System.out.println(1.0 / 3); + } }