diff --git a/lib/EmergencyBaseLib/EmergencyCommon/pom.xml b/lib/EmergencyBaseLib/EmergencyCommon/pom.xml
index 4102453c..ba71574a 100644
--- a/lib/EmergencyBaseLib/EmergencyCommon/pom.xml
+++ b/lib/EmergencyBaseLib/EmergencyCommon/pom.xml
@@ -117,6 +117,13 @@
itext-asian
5.2.0
+
+
+
+ org.springdoc
+ springdoc-openapi-ui
+ 1.6.15
+
diff --git a/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/external/company/OutComplaintItemController.java b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/external/company/OutComplaintItemController.java
new file mode 100644
index 00000000..b154a8e3
--- /dev/null
+++ b/lib/EmergencyService/zdxtEmergencyAppService/src/main/java/com/zdxt/app/controller/external/company/OutComplaintItemController.java
@@ -0,0 +1,186 @@
+package com.zdxt.app.controller.external.company;
+
+import com.zdxt.auth.dto.DictDataBean;
+import com.zdxt.auth.feign.DictDataApi;
+import com.zdxt.code.domain.ComplaintItem;
+import com.zdxt.code.service.IComplaintItemService;
+import com.zdxt.common.ZDResponse;
+import com.zdxt.common.controller.BaseController;
+import com.zdxt.common.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 外部接口-企业端-投诉事项Controller
+ *
+ * @author ruoyi
+ * @date 2024-09-24
+ */
+@Controller
+@RequestMapping("/external/code/item")
+@Api( tags = "外部接口-企业端-投诉事项")
+public class OutComplaintItemController extends BaseController {
+ private String prefix = "code/item";
+
+ @Autowired
+ private IComplaintItemService complaintItemService;
+ @Autowired
+ private DictDataApi dictDataApi;
+
+ @GetMapping()
+ public String item() {
+ return prefix + "/item";
+ }
+
+ /**
+ * 查询投诉事项列表
+ */
+ @PostMapping("/list")
+ @ResponseBody
+ public TableDataInfo list(ComplaintItem complaintItem) {
+ startPage();
+ List list = complaintItemService.selectComplaintItemList(complaintItem);
+ return getDataTable(list);
+ }
+
+ /**
+ * 查询投诉事项列表
+ */
+ @GetMapping("/queryList")
+ @ResponseBody
+ public TableDataInfo queryList(ComplaintItem complaintItem) {
+ startPage();
+ List list = complaintItemService.selectComplaintItemList(complaintItem);
+ return getDataTable(list);
+ }
+
+ /**
+ * 新增投诉事项
+ */
+ @GetMapping("/add")
+ public String add() {
+ return prefix + "/add";
+ }
+
+ /**
+ * 新增保存投诉事项
+ */
+ @PostMapping("/add")
+ @ResponseBody
+ public ZDResponse addSave(ComplaintItem complaintItem) {
+ int i = complaintItemService.insertComplaintItem(complaintItem);
+ return i > 0 ? ZDResponse.success("保存成功") : ZDResponse.error("保存失败");
+ }
+
+ /**
+ * 修改投诉事项
+ */
+ @GetMapping("/edit/{id}")
+ public String edit(@PathVariable("id") String id, ModelMap mmap) {
+ ComplaintItem complaintItem = complaintItemService.selectComplaintItemById(id);
+ mmap.put("complaintItem", complaintItem);
+ return prefix + "/edit";
+ }
+
+ /**
+ * 修改保存投诉事项
+ */
+ @PostMapping("/edit")
+ @ResponseBody
+ public ZDResponse editSave(ComplaintItem complaintItem) {
+ int i = complaintItemService.updateComplaintItem(complaintItem);
+ return i > 0 ? ZDResponse.success("修改成功") : ZDResponse.error("修改失败");
+ }
+
+ /**
+ * 删除投诉事项
+ */
+ @PostMapping("/remove")
+ @ResponseBody
+ public ZDResponse remove(String ids) {
+ int i = complaintItemService.deleteComplaintItemByIds(ids);
+ return i > 0 ? ZDResponse.success("删除成功") : ZDResponse.error("删除失败");
+ }
+
+ @PostMapping("/exportItem")
+ @ResponseBody
+ public void exportItem(MultipartFile file) throws Exception {
+// String filePath = FileUploadUtils.getDefaultBaseDir();
+// File file1 = new File(filePath);
+// file.transferTo(file1);
+// File file1 = new File("C:\\Users\\soul\\Desktop\\执法监督码部署\\司法局投诉事项.xlsx");
+// JSONArray objects = ExcelUtils.readFile(file1);
+// for (int i = 0; i < objects.size(); i++) {
+// JSONObject jsonObject = objects.getJSONObject(i);
+// ComplaintItem complaintItem = new ComplaintItem();
+// complaintItem.setComplaintItemName(jsonObject.getString("subName"));
+// complaintItem.setComplaintItemCode(jsonObject.getString("itemCode"));
+// complaintItem.setSubName(jsonObject.getString("subName"));
+// complaintItemService.insertComplaintItem(complaintItem);
+// }
+ }
+
+
+ public File transferToFile(MultipartFile multipartFile) {
+// 选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
+ File file = null;
+ try {
+ String originalFilename = multipartFile.getOriginalFilename();
+ String[] filename = originalFilename.split("\\.");
+ file = File.createTempFile(filename[0], filename[1] + ".");
+ multipartFile.transferTo(file);
+// file.deleteOnExit();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return file;
+ }
+
+ /**
+ * 获取区/街道数据用来做级联
+ * @return
+ */
+ @GetMapping("/getRegionCascade")
+ @ResponseBody
+ public ZDResponse getRegionCascade() {
+ List