diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseAuditController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseAuditController.java new file mode 100644 index 0000000..2c6f1e7 --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseAuditController.java @@ -0,0 +1,174 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.*; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.common.util.ExportExcelUtil; +import com.aisino.iles.core.annotation.CurrentUser; +import com.aisino.iles.lawenforcement.model.EnterpriseAudit; +import com.aisino.iles.lawenforcement.model.query.EnterpriseQuery; +import com.aisino.iles.lawenforcement.service.EnterpriseAuditService; +import com.smartlx.sso.client.model.RemoteUserInfo; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * 综合执法/企业审核信息管理 + */ +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterpriseAudits") +public class EnterpriseAuditController { + + private final EnterpriseAuditService enterpriseAuditService; + + public EnterpriseAuditController(EnterpriseAuditService enterpriseAuditService) { + this.enterpriseAuditService = enterpriseAuditService; + } + + /** + * 创建企业审核信息 + * + * @param enterpriseAudit 企业审核信息 + * @return 创建结果 + */ + @PostMapping + public Result createEnterpriseAudit(@RequestBody EnterpriseAudit enterpriseAudit, @CurrentUser RemoteUserInfo user) { + return Ok.of(enterpriseAuditService.saveEnterpriseAudit(enterpriseAudit, user, "add")); + } + + /** + * 根据ID查询企业审核信息 + * + * @param enterpriseId 企业ID + * @return 企业审核信息 + */ + @GetMapping("/{enterpriseId}") + public Result getEnterpriseAuditById(@PathVariable String enterpriseId) { + return enterpriseAuditService.findEnterpriseAuditById(enterpriseId) + .map(e -> ((Result) Ok.of(e))) + .orElse(Fail.of("企业审核信息不存在")); + } + + + /** + * 分页查询企业审核信息 + * + * @param query 查询条件 + * @return 分页企业审核信息 + */ + @GetMapping + public PageResult getEnterpriseAuditsPage(EnterpriseQuery query) { + Page page = enterpriseAuditService.findEnterpriseAuditsPage(query); + return PageResult.of(page); + } + + /** + * 更新企业审核信息 + * + * @param enterpriseId 企业ID + * @param enterpriseAudit 企业审核信息 + * @return 更新结果 + */ + @PutMapping("/{enterpriseId}") + public Result updateEnterpriseAudit(@PathVariable String enterpriseId, + @RequestBody EnterpriseAudit enterpriseAudit, + @CurrentUser RemoteUserInfo user) { + if (!enterpriseAuditService.existsEnterpriseAuditById(enterpriseId)) { + return Fail.of("企业审核信息不存在"); + } + enterpriseAudit.setEnterpriseId(enterpriseId); + return Ok.of(enterpriseAuditService.saveEnterpriseAudit(enterpriseAudit, user, "update")); + } + + /** + * 企业上报审核 + * + * @param enterpriseId 企业ID + * @param enterpriseAudit 企业审核信息 + * @return 更新结果 + */ + @PutMapping("/audit/{enterpriseId}") + public Result audit(@PathVariable String enterpriseId, + @RequestBody EnterpriseAudit enterpriseAudit, + @CurrentUser RemoteUserInfo user) { + if (!enterpriseAuditService.existsEnterpriseAuditById(enterpriseId)) { + return Fail.of("企业审核信息不存在"); + } + enterpriseAudit.setEnterpriseId(enterpriseId); + return Ok.of(enterpriseAuditService.saveEnterpriseAudit(enterpriseAudit, user, "audit")); + } + + /** + * 根据ID删除企业审核信息 + * + * @param enterpriseId 企业ID + * @return 删除结果 + */ + @DeleteMapping("/{enterpriseId}") + public Result deleteEnterpriseAuditById(@PathVariable String enterpriseId) { + if (!enterpriseAuditService.existsEnterpriseAuditById(enterpriseId)) { + return Fail.of("企业审核信息不存在"); + } + enterpriseAuditService.deleteEnterpriseAuditById(enterpriseId); + return Ok.of(); + } + + /** + * 批量删除企业审核信息 + * + * @param enterpriseIds 企业ID列表 + * @return 删除结果 + */ + @DeleteMapping + public Result deleteEnterpriseAuditsByIds(@RequestBody List enterpriseIds) { + enterpriseAuditService.deleteEnterpriseAuditsByIds(enterpriseIds); + return Ok.of(); + } + + /** + * 导出Excel + * + * @param excelParam 查询参数 + * @param response 响应 + */ + @PostMapping(value = "/export") + public void taskExport(@RequestBody(required = false) ExportExcelParam excelParam, HttpServletResponse response) { + EnterpriseQuery query = excelParam.getObj(); + List list = enterpriseAuditService.findAllEnterpriseAudits(query); + list.forEach(dto -> { + dto.setIndustryType(Constants.DictDisplay.hylbMap.get(dto.getIndustryType())); + dto.setBusinessStatus(Constants.DictDisplay.yyztMap.get(dto.getBusinessStatus())); + dto.setBusinessCategory(Constants.DictDisplay.qyflMap.get(dto.getBusinessCategory())); + dto.setAuditStatus("1".equals(dto.getAuditStatus()) ? "已通过" : ("2".equals(dto.getAuditStatus()) ? "未通过" : "未审核")); + }); + if (list.isEmpty()) throw new RuntimeException("无查询结果不能导出"); + List labels = new ArrayList<>(); + labels.add("监管行业"); + labels.add("生产经营单位名称"); + labels.add("社会统一信用代码"); + labels.add("注册详址"); + labels.add("负责人"); + labels.add("联系方式"); + labels.add("营业状态"); + labels.add("企业分类"); + labels.add("所属监管部门"); + labels.add("审核结果"); + List props = new ArrayList<>(); + props.add("industryType"); + props.add("unitName"); + props.add("unifiedSocialCode"); + props.add("detailedAddress"); + props.add("mainName"); + props.add("mainPhone"); + props.add("businessStatus"); + props.add("businessCategory"); + props.add("agency.agencyName"); + props.add("auditStatus"); + excelParam.setLabels(labels); + excelParam.setProps(props); + ExportExcelUtil.exportExcel(response, excelParam, list); + } +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseCameraController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseCameraController.java new file mode 100644 index 0000000..c0101d7 --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseCameraController.java @@ -0,0 +1,35 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.Ok; +import com.aisino.iles.common.model.Result; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.lawenforcement.service.EnterpriseCameraService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 综合执法/企业监控点信息 + */ +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterprises/camera") +public class EnterpriseCameraController { + + private final EnterpriseCameraService enterpriseCameraService; + + public EnterpriseCameraController(EnterpriseCameraService enterpriseCameraService) { + this.enterpriseCameraService = enterpriseCameraService; + } + + /** + * 分页查询企业预警信息 + * + * @param uscc 查询条件 + * @return 执法信息 + */ + @GetMapping + public Result getEnterpriseCamera(String uscc) { + return Ok.of(enterpriseCameraService.findEnterpriseCamera(uscc)); + } + +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseController.java new file mode 100644 index 0000000..38b221c --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseController.java @@ -0,0 +1,257 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.*; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.common.util.ExportExcelUtil; +import com.aisino.iles.core.annotation.CurrentUser; +import com.aisino.iles.lawenforcement.model.Enterprise; +import com.aisino.iles.lawenforcement.model.dto.EnterpriseDto; +import com.aisino.iles.lawenforcement.model.query.EnterpriseQuery; +import com.aisino.iles.lawenforcement.service.EnterpriseService; +import com.smartlx.sso.client.model.RemoteUserInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.data.domain.Page; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 综合执法/企业管理 + */ +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterprises") +public class EnterpriseController { + + private final EnterpriseService enterpriseService; + + public EnterpriseController(EnterpriseService enterpriseService) { + this.enterpriseService = enterpriseService; + } + + /** + * 创建企业信息 + * + * @param enterprise 企业信息 + * @return 创建结果 + */ + @PostMapping + public Result createEnterprise(@RequestBody Enterprise enterprise, @CurrentUser RemoteUserInfo userInfo) { + return Ok.of(enterpriseService.saveEnterprise(enterprise, userInfo)); + } + + /** + * 根据ID查询企业信息 + * + * @param enterpriseId 企业ID + * @return 企业信息 + */ + @GetMapping("/{enterpriseId}") + public Result getEnterpriseById(@PathVariable String enterpriseId) { + return enterpriseService.findEnterpriseById(enterpriseId).map(e -> ((Result) Ok.of(e))).orElse(Fail.of("企业信息不存在")); + } + + /** + * 分页查询企业信息 + * + * @param query 查询条件 + * @return 分页企业信息 + */ + @GetMapping + public PageResult getEnterprisesPage(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + Page page = enterpriseService.findEnterprisesPage(query, user); + return PageResult.of(page); + } + + /** + * 更新企业信息 + * + * @param enterpriseId 企业ID + * @param enterprise 企业信息 + * @return 更新结果 + */ + @PutMapping("/{enterpriseId}") + public Result updateEnterprise(@PathVariable String enterpriseId, @RequestBody Enterprise enterprise, @CurrentUser RemoteUserInfo user) { + if (!enterpriseService.existsEnterpriseById(enterpriseId)) return Fail.of("企业信息不存在"); + enterprise.setEnterpriseId(enterpriseId); + if (!StringUtils.hasText(enterprise.getOperate())) { + enterprise.setOperate("update"); + return Ok.of(enterpriseService.saveEnterprise(enterprise, user)); + } else return Ok.of(enterpriseService.operateEnterprise(enterprise, user)); + } + + /** + * 根据ID删除企业信息 + * + * @param enterpriseId 企业ID + * @return 删除结果 + */ + @DeleteMapping("/{enterpriseId}") + public Result deleteEnterpriseById(@PathVariable String enterpriseId, @CurrentUser RemoteUserInfo user) { + if (!enterpriseService.existsEnterpriseById(enterpriseId)) { + return Fail.of("企业信息不存在"); + } + enterpriseService.deleteEnterpriseById(enterpriseId, user); + return Ok.of(); + } + + /** + * 批量删除企业信息 + * + * @param enterpriseIds 企业ID列表 + * @return 删除结果 + */ + @DeleteMapping + public Result deleteEnterprisesByIds(@RequestBody List enterpriseIds, @CurrentUser RemoteUserInfo user) { + enterpriseService.deleteEnterprisesByIds(enterpriseIds, user); + return Ok.of(); + } + + /** + * 企业信息统计 + * + * @param query 查询参数 + * @param user 用户 + * @return 统计结果 + */ + @GetMapping("/ledgerStatistics") + public Result>> ledgerStatistics(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + return Ok.of(enterpriseService.ledgerStatistics(query, user)); + } + + /** + * 导出Excel + * + * @param excelParam 查询参数 + * @param response 响应 + */ + @PostMapping(value = "/export") + public void enterpriseExport(@RequestBody(required = false) ExportExcelParam excelParam, HttpServletResponse response, @CurrentUser RemoteUserInfo user) { + EnterpriseQuery query = excelParam.getObj(); + List list = enterpriseService.findAllEnterprises(query, user); + if (list.isEmpty()) throw new RuntimeException("无查询结果不能导出"); + List labels = new ArrayList<>(); + String tag = query.getTag(); + if ("cx".equals(tag)) { + labels.add("监管行业"); + labels.add("生产经营单位名称"); + labels.add("社会统一信用代码"); + labels.add("注册详址"); + labels.add("负责人"); + labels.add("联系方式"); + labels.add("营业状态"); + labels.add("企业分类"); + labels.add("所属监管部门"); + } else if ("fjfl".equals(tag)) { + labels.add("生产经营单位名称"); + labels.add("社会统一信用代码"); + labels.add("企业分级"); + labels.add("所属监管部门"); + labels.add("企业分类"); + } + List props = new ArrayList<>(); + if ("cx".equals(tag)) { + props.add("industryType"); + props.add("unitName"); + props.add("unifiedSocialCode"); + props.add("detailedAddress"); + props.add("mainName"); + props.add("mainPhone"); + props.add("businessStatus"); + props.add("businessCategory"); + props.add("agency.agencyName"); + } else if ("fjfl".equals(tag)) { + props.add("unitName"); + props.add("unifiedSocialCode"); + props.add("businessRating"); + props.add("agency.agencyName"); + props.add("businessCategory"); + } + excelParam.setLabels(labels); + excelParam.setProps(props); + ExportExcelUtil.exportExcel(response, excelParam, list); + } + + @PostMapping(value = "/importFile") + public Result importFile(HttpServletRequest request, @CurrentUser RemoteUserInfo user) throws Exception { + enterpriseService.enterpriseByImport((MultipartHttpServletRequest) request, user); + return Ok.of(); + } + + /** + * 根据机构查询企业列表 + * + * @param query 查询条件 + * @return 企业列表 + */ + @GetMapping("/agencyid") + public PageResult getEnterprisesByAgencyId(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + return PageResult.of(enterpriseService.findEnterprisesByAgencyId(query, user)); + } + + /** + * 分页查询接入企业信息 + * + * @param query 查询条件 + * @return 分页企业信息 + */ + @GetMapping("/join") + public PageResult getJoinEnterprisesPage(EnterpriseQuery query) { + Page page = enterpriseService.findJoinEnterprisesPage(query); + return PageResult.of(page); + } + + /** + * 分页查询启动巡查企业信息 + * + * @param query 查询条件 + * @return 分页企业信息 + */ + @GetMapping("/ins/start") + public PageResult getInsStartEnterprisesPage(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + query.setTag("ins_start"); + Page page = enterpriseService.findEnterprisesPage(query, user); + return PageResult.of(page); + } + + /** + * 分页查询待巡查企业信息 + * + * @param query 查询条件 + * @return 分页企业信息 + */ + @GetMapping("/ins") + public PageResult getInsEnterprisesPage(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + query.setTag("ins"); + Page page = enterpriseService.findEnterprisesPage(query, user); + return PageResult.of(page); + } + + /** + * 企业管理可视化统计 + * + * @param query 查询参数 + * @param user 用户 + * @return 统计结果 + */ + @GetMapping("/visualizeStatistics") + public Result> visualizeStatistics(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + return Ok.of(enterpriseService.visualizeStatistics(query, user)); + } + + /** + * 分页查询企业信息自查自报 + * + * @param query 查询条件 + * @return 分页企业信息 + */ + @GetMapping("/zczb") + public Result getEnterpriseSelfInsAndSelfReportPage(EnterpriseQuery query, @CurrentUser RemoteUserInfo user) { + return Ok.of(enterpriseService.getEnterpriseSelfInsAndSelfReportPage(query, user)); + } + +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseSubtableController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseSubtableController.java new file mode 100644 index 0000000..1df2a1c --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseSubtableController.java @@ -0,0 +1,40 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.PageResult; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.lawenforcement.model.AccidentHazard; +import com.aisino.iles.lawenforcement.model.DangerInfo; +import com.aisino.iles.lawenforcement.model.query.EnterpriseQuery; +import com.aisino.iles.lawenforcement.service.EnterpriseSubtableService; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterprises/subtable") +public class EnterpriseSubtableController { + private final EnterpriseSubtableService enterpriseSubtableService; + + public EnterpriseSubtableController(EnterpriseSubtableService enterpriseSubtableService) { + this.enterpriseSubtableService = enterpriseSubtableService; + } + + @GetMapping("/case") + public PageResult findCasePage(EnterpriseQuery query) { + Page page = enterpriseSubtableService.findCasePage(query); + return PageResult.of(page); + } + + @GetMapping("/accidentHazard") + public PageResult findAccidentHazardPage(EnterpriseQuery query) { + Page page = enterpriseSubtableService.findAccidentHazardPage(query); + return PageResult.of(page); + } + + @GetMapping("/danger") + public PageResult findDangerPage(EnterpriseQuery query) { + Page page = enterpriseSubtableService.findDangerPage(query); + return PageResult.of(page); + } +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseWarnController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseWarnController.java new file mode 100644 index 0000000..8250508 --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/EnterpriseWarnController.java @@ -0,0 +1,47 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.*; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.lawenforcement.model.EnterpriseWarn; +import com.aisino.iles.lawenforcement.model.dto.EnterpriseWarnDto; +import com.aisino.iles.lawenforcement.model.query.EnterpriseWarnQuery; +import com.aisino.iles.lawenforcement.service.EnterpriseWarnService; +import org.springframework.web.bind.annotation.*; + +/** + * 综合执法/企业预警信息 + */ +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterprises/warn") +public class EnterpriseWarnController { + + private final EnterpriseWarnService enterpriseWarnService; + + public EnterpriseWarnController(EnterpriseWarnService enterpriseWarnService) { + this.enterpriseWarnService = enterpriseWarnService; + } + + /** + * 创建企业预警信息 + * + * @param enterpriseWarnDto 企业预警信息 + * @return 创建结果 + */ + @PostMapping + public Result createEnterpriseWarn(@RequestBody EnterpriseWarnDto enterpriseWarnDto) { + enterpriseWarnService.saveEnterpriseWarn(enterpriseWarnDto); + return Ok.of("success", 200); + } + + /** + * 分页查询企业预警信息 + * + * @param query 查询条件 + * @return 执法信息 + */ + @GetMapping + public PageResult getEnterpriseWarnPage(EnterpriseWarnQuery query) { + return PageResult.of(enterpriseWarnService.findEnterpriseWarnPage(query)); + } + +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/ExampleController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/ExampleController.java new file mode 100644 index 0000000..90667b4 --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/ExampleController.java @@ -0,0 +1,23 @@ +package com.aisino.iles.lawenforcement.controller; + +import com.aisino.iles.common.model.Ok; +import com.aisino.iles.common.model.Result; +import com.aisino.iles.lawenforcement.model.Example; +import com.aisino.iles.lawenforcement.service.ExampleService; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ExampleController { + private final ExampleService exampleService; + + public ExampleController(ExampleService exampleService) { + this.exampleService = exampleService; + } + + // 创建一个查询接口 + + public Result exampleResult() { + return Ok.of(exampleService.getExample()); + } + +} diff --git a/server/src/main/java/com/aisino/iles/lawenforcement/controller/InsEnterprseController.java b/server/src/main/java/com/aisino/iles/lawenforcement/controller/InsEnterprseController.java new file mode 100644 index 0000000..be5ec2f --- /dev/null +++ b/server/src/main/java/com/aisino/iles/lawenforcement/controller/InsEnterprseController.java @@ -0,0 +1,40 @@ +package com.aisino.iles.lawenforcement.controller; + + +import com.aisino.iles.common.model.Ok; +import com.aisino.iles.common.model.Result; +import com.aisino.iles.common.util.Constants; +import com.aisino.iles.lawenforcement.model.dto.InsEnterprseDto; +import com.aisino.iles.lawenforcement.service.InsEnterprseService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 综合执法/在线巡查企业管理 + */ +@RestController +@RequestMapping(Constants.API_PREFIX + "/lawenforcement/enterprises/ins") +public class InsEnterprseController { + + private final InsEnterprseService insEnterprseService; + + public InsEnterprseController(InsEnterprseService insEnterprseService) { + this.insEnterprseService = insEnterprseService; + } + + /** + * 创建在线巡查企业信息 + * + * @param insEnterprseDto 企业信息 + * @return 创建结果 + */ + @PostMapping + public Result createEnterprise(@RequestBody InsEnterprseDto insEnterprseDto) { + insEnterprseService.saveEnterprise(insEnterprseDto); + return Ok.of(); + } + + +}