浏览代码

主体信息模型

hankunkun 11 月之前
父节点
当前提交
1a88d363c0

+ 37 - 0
src/main/java/ieven/server/webapp/api/StaticController.java

@@ -0,0 +1,37 @@
+package ieven.server.webapp.api;
+
+import ieven.server.webapp.domain.data.StaticInput;
+import ieven.server.webapp.domain.data.StaticModelInput;
+import ieven.server.webapp.infrastructure.wrapper.Mapped;
+import ieven.server.webapp.service.datastatic.DataStaticService;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * @author hankunkun
+ * @version 1.0
+ * @date 2024/8/27 13:57
+ */
+@RestController
+@RequestMapping({"/static"})
+public class StaticController {
+
+    @Autowired
+    private DataStaticService dataStaticService;
+
+    @PostMapping({"/update"})
+    public Mapped extractPersonInfo(@RequestBody StaticInput staticInput){
+        String modelId = staticInput.getModelId();
+        return modelId == null ? Mapped.ERROR("没有选择模型!") : this.dataStaticService.update(staticInput);
+    }
+
+    //主体信息模型
+    @PostMapping({"/staticModel"})
+    public Mapped staticModel(@RequestBody StaticModelInput staticModelInput){
+        String modelId = staticModelInput.getModelId();
+        return modelId == null ? Mapped.ERROR("没有选择模型!") : this.dataStaticService.staticModel(staticModelInput);
+    }
+}

+ 252 - 249
src/main/java/ieven/server/webapp/domain/data/DataService.java

@@ -32,275 +32,278 @@ import java.util.regex.Pattern;
 @Slf4j
 @Service
 public class DataService {
-  @Autowired private MongoTemplate mongoTemplate;
-  @Autowired @Lazy private DataService dataService;
+    @Autowired
+    private MongoTemplate mongoTemplate;
+    @Autowired
+    @Lazy
+    private DataService dataService;
 
-  public Mapped viewDataByFileId(ViewInput viewInput) {
-    String fileId = viewInput.getFileId();
-    int page = viewInput.getPage();
-    int pageSize = viewInput.getPageSize();
-    if (StringUtils.isBlank(fileId)) {
-      return Mapped.ERROR("没有选择文件");
-    } else {
-      Future<Long> totalFuture = dataService.countTotal(fileId);
-      Future<LinkedHashMap<String, String>> headerFuture = dataService.viewHeaders(fileId);
-      int skip = (page - 1) * pageSize;
-      Query queryList = new Query(Criteria.where("fileId").is(fileId));
-      List<DataMap> resultList =
-          mongoTemplate.find(queryList.skip(skip).limit(pageSize), DataMap.class);
-      for (DataMap dataMap : resultList) {
-        dataMap.formId();
-      }
-      Long total = null;
-      LinkedHashMap<String, String> headers = null;
-      try {
-        total = totalFuture.get();
-        headers = headerFuture.get();
-      } catch (InterruptedException | ExecutionException e) {
-        e.printStackTrace();
-        return Mapped.ERROR("系统查询出错");
-      }
-      Mapped mapped = Mapped.OK();
-      mapped.put("result", resultList);
-      mapped.put("header", headers);
-      mapped.put("code", 200);
-      mapped.put("page", page);
-      mapped.put("total", total);
-      mapped.put("pageSize", pageSize);
-      return mapped;
+    public Mapped viewDataByFileId(ViewInput viewInput) {
+        String fileId = viewInput.getFileId();
+        int page = viewInput.getPage();
+        int pageSize = viewInput.getPageSize();
+        if (StringUtils.isBlank(fileId)) {
+            return Mapped.ERROR("没有选择文件");
+        } else {
+            Future<Long> totalFuture = dataService.countTotal(fileId);
+            Future<LinkedHashMap<String, String>> headerFuture = dataService.viewHeaders(fileId);
+            int skip = (page - 1) * pageSize;
+            Query queryList = new Query(Criteria.where("fileId").is(fileId));
+            List<DataMap> resultList =
+                    mongoTemplate.find(queryList.skip(skip).limit(pageSize), DataMap.class);
+            for (DataMap dataMap : resultList) {
+                dataMap.formId();
+            }
+            Long total = null;
+            LinkedHashMap<String, String> headers = null;
+            try {
+                total = totalFuture.get();
+                headers = headerFuture.get();
+            } catch (InterruptedException | ExecutionException e) {
+                e.printStackTrace();
+                return Mapped.ERROR("系统查询出错");
+            }
+            Mapped mapped = Mapped.OK();
+            mapped.put("result", resultList);
+            mapped.put("header", headers);
+            mapped.put("code", 200);
+            mapped.put("page", page);
+            mapped.put("total", total);
+            mapped.put("pageSize", pageSize);
+            return mapped;
+        }
     }
-  }
 
-  public Mapped viewDataByQueryParam(QueryParam param) {
-    String fileId = param.getFileId();
-    int page = param.getPage();
-    int pageSize = param.getPageSize();
-    int skip = (page - 1) * pageSize;
-    String mode = param.getMode();
-    Criteria criteria = Criteria.where("fileId").is(fileId);
-    List<QueryParam.Param1> param1List = param.getValues();
-    if (CollectionUtils.isNotEmpty(param1List)) {
-      List<Criteria> criList = new ArrayList<>();
-      for (QueryParam.Param1 param1 : param1List) {
-        String fieldAlias = param1.getFieldAlias();
-        String value = param1.getValue();
-        if (StringUtils.isBlank(fieldAlias)) {
-          continue;
+    public Mapped viewDataByQueryParam(QueryParam param) {
+        String fileId = param.getFileId();
+        int page = param.getPage();
+        int pageSize = param.getPageSize();
+        int skip = (page - 1) * pageSize;
+        String mode = param.getMode();
+        Criteria criteria = Criteria.where("fileId").is(fileId);
+        List<QueryParam.Param1> param1List = param.getValues();
+        if (CollectionUtils.isNotEmpty(param1List)) {
+            List<Criteria> criList = new ArrayList<>();
+            for (QueryParam.Param1 param1 : param1List) {
+                String fieldAlias = param1.getFieldAlias();
+                String value = param1.getValue();
+                if (StringUtils.isBlank(fieldAlias)) {
+                    continue;
+                }
+                String mode1 = param1.getMode();
+                if ("is".equals(mode1)) {
+                    Criteria newCri = new Criteria(fieldAlias);
+                    String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
+                    String[] sp = filtered.split(";");
+                    if (sp.length > 1) {
+                        newCri.in(Arrays.asList(sp));
+                    } else {
+                        newCri.is(value.trim());
+                    }
+                    criList.add(newCri);
+                } else {
+                    String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
+                    String[] sp = filtered.split(";");
+                    if (sp.length > 1) {
+                        for (String sped : sp) {
+                            Criteria newCri = new Criteria(fieldAlias);
+                            String regex = "^.*" + sped.trim() + ".*$";
+                            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+                            newCri.regex(pattern);
+                            criList.add(newCri);
+                        }
+                    } else {
+                        Criteria newCri = new Criteria(fieldAlias);
+                        String regex = "^.*" + value.trim() + ".*$";
+                        Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+                        newCri.regex(pattern);
+                        criList.add(newCri);
+                    }
+                }
+            }
+            Criteria cri = new Criteria();
+            if ("and".equals(mode)) {
+                cri.andOperator(criList);
+            } else {
+                cri.orOperator(criList);
+            }
+            criteria.andOperator(cri);
         }
-        String mode1 = param1.getMode();
-        if ("is".equals(mode1)) {
-          Criteria newCri = new Criteria(fieldAlias);
-          String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
-          String[] sp = filtered.split(";");
-          if (sp.length > 1) {
-            newCri.in(Arrays.asList(sp));
-          } else {
-            newCri.is(value.trim());
-          }
-          criList.add(newCri);
-        } else {
-          String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
-          String[] sp = filtered.split(";");
-          if (sp.length > 1) {
-            for (String sped : sp) {
-              Criteria newCri = new Criteria(fieldAlias);
-              String regex = "^.*" + sped.trim() + ".*$";
-              Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
-              newCri.regex(pattern);
-              criList.add(newCri);
+        Future<Long> totalFuture = dataService.countTotalByQuery(new Query(criteria));
+        Future<LinkedHashMap<String, String>> headerFuture = dataService.viewHeaders(fileId);
+        Query dataQuery = new Query(criteria);
+        if (CollectionUtils.isNotEmpty(param.getOrders())) {
+            for (QueryParam.Param2 param2 : param.getOrders()) {
+                String alias = param2.getFieldAlias();
+                String orderBy = param2.getMode();
+                if ("asc".equals(orderBy)) {
+                    dataQuery.with(Sort.by(Sort.Order.asc(alias)));
+                } else if ("desc".equals(orderBy)) {
+                    dataQuery.with(Sort.by(Sort.Order.desc(alias)));
+                }
             }
-          } else {
-            Criteria newCri = new Criteria(fieldAlias);
-            String regex = "^.*" + value.trim() + ".*$";
-            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
-            newCri.regex(pattern);
-            criList.add(newCri);
-          }
         }
-      }
-      Criteria cri = new Criteria();
-      if ("and".equals(mode)) {
-        cri.andOperator(criList);
-      } else {
-        cri.orOperator(criList);
-      }
-      criteria.andOperator(cri);
-    }
-    Future<Long> totalFuture = dataService.countTotalByQuery(new Query(criteria));
-    Future<LinkedHashMap<String, String>> headerFuture = dataService.viewHeaders(fileId);
-    Query dataQuery = new Query(criteria);
-    if (CollectionUtils.isNotEmpty(param.getOrders())) {
-      for (QueryParam.Param2 param2 : param.getOrders()) {
-        String alias = param2.getFieldAlias();
-        String orderBy = param2.getMode();
-        if ("asc".equals(orderBy)) {
-          dataQuery.with(Sort.by(Sort.Order.asc(alias)));
-        } else if ("desc".equals(orderBy)) {
-          dataQuery.with(Sort.by(Sort.Order.desc(alias)));
+        // 分页
+        dataQuery.skip(skip).limit(pageSize);
+        List<DataMap> resultList = mongoTemplate.find(dataQuery, DataMap.class);
+        for (DataMap dataMap : resultList) {
+            dataMap.formId();
         }
-      }
-    }
-    // 分页
-    dataQuery.skip(skip).limit(pageSize);
-    List<DataMap> resultList = mongoTemplate.find(dataQuery, DataMap.class);
-    for (DataMap dataMap : resultList) {
-      dataMap.formId();
-    }
-    Long total = null;
-    LinkedHashMap<String, String> headers = null;
-    try {
-      total = totalFuture.get();
-      headers = headerFuture.get();
-    } catch (InterruptedException | ExecutionException e) {
-      e.printStackTrace();
-      return Mapped.ERROR("系统查询出错");
+        Long total = null;
+        LinkedHashMap<String, String> headers = null;
+        try {
+            total = totalFuture.get();
+            headers = headerFuture.get();
+        } catch (InterruptedException | ExecutionException e) {
+            e.printStackTrace();
+            return Mapped.ERROR("系统查询出错");
+        }
+        Mapped mapped = Mapped.OK();
+        mapped.put("result", resultList);
+        mapped.put("header", headers);
+        mapped.put("code", 200);
+        mapped.put("page", page);
+        mapped.put("total", total);
+        mapped.put("pageSize", pageSize);
+        return mapped;
     }
-    Mapped mapped = Mapped.OK();
-    mapped.put("result", resultList);
-    mapped.put("header", headers);
-    mapped.put("code", 200);
-    mapped.put("page", page);
-    mapped.put("total", total);
-    mapped.put("pageSize", pageSize);
-    return mapped;
-  }
 
-  public Mapped viewHeaders(FileIdInput fileIdInput) {
-    String fileId = fileIdInput.getFileId();
-    LogicalFile logicalFile =
-        mongoTemplate.findOne(new Query(Criteria.where("id").is(fileId)), LogicalFile.class);
-    Fields fields =
-        mongoTemplate.findOne(new Query(Criteria.where("fileId").is(fileId)), Fields.class);
-    if (logicalFile != null && fields != null) {
-      String filename = logicalFile.getFilename();
-      if (Properties.MAIN_PROPS.containsKey(filename)) {
-        fields.setMainProps(Properties.MAIN_PROPS.get(filename));
-      }
-      if (Properties.DETAILS_EXPORTABLE.containsKey(filename)) {
-        fields.setDetailsExportable(Properties.DETAILS_EXPORTABLE.get(filename));
-      }
+    public Mapped viewHeaders(FileIdInput fileIdInput) {
+        String fileId = fileIdInput.getFileId();
+        LogicalFile logicalFile =
+                mongoTemplate.findOne(new Query(Criteria.where("id").is(fileId)), LogicalFile.class);
+        Fields fields =
+                mongoTemplate.findOne(new Query(Criteria.where("fileId").is(fileId)), Fields.class);
+        if (logicalFile != null && fields != null) {
+            String filename = logicalFile.getFilename();
+            if (Properties.MAIN_PROPS.containsKey(filename)) {
+                fields.setMainProps(Properties.MAIN_PROPS.get(filename));
+            }
+            if (Properties.DETAILS_EXPORTABLE.containsKey(filename)) {
+                fields.setDetailsExportable(Properties.DETAILS_EXPORTABLE.get(filename));
+            }
+        }
+        Mapped mapped = Mapped.OK();
+        mapped.put("result", fields);
+        return mapped;
     }
-    Mapped mapped = Mapped.OK();
-    mapped.put("result", fields);
-    return mapped;
-  }
 
-  /**
-   * 导出
-   *
-   * @param param
-   */
-  public Query dataQueryByParam(QueryParam param) {
-    String fileId = param.getFileId();
-    String mode = param.getMode();
-    if (!param.getFileIds().contains(fileId)) {
-      param.getFileIds().add(fileId);
-    }
-    Criteria criteria = Criteria.where("fileId").in(param.getFileIds());
-    List<QueryParam.Param1> param1List = param.getValues();
-    if (CollectionUtils.isNotEmpty(param1List)) {
-      List<Criteria> criList = new ArrayList<>();
-      for (QueryParam.Param1 param1 : param1List) {
-        String fieldAlias = param1.getFieldAlias();
-        String value = param1.getValue();
-        if (StringUtils.isBlank(fieldAlias)) {
-          continue;
+    /**
+     * 导出
+     *
+     * @param param
+     */
+    public Query dataQueryByParam(QueryParam param) {
+        String fileId = param.getFileId();
+        String mode = param.getMode();
+        if (!param.getFileIds().contains(fileId)) {
+            param.getFileIds().add(fileId);
         }
-        String mode1 = param1.getMode();
-        if ("is".equals(mode1)) {
-          Criteria newCri = new Criteria(fieldAlias);
-          String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
-          String[] sp = filtered.split(";");
-          if (sp.length > 1) {
-            newCri.in(Arrays.asList(sp));
-          } else {
-            newCri.is(value.trim());
-          }
-          criList.add(newCri);
-        } else {
-          String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
-          String[] sp = filtered.split(";");
-          if (sp.length > 1) {
-            for (String sped : sp) {
-              Criteria newCri = new Criteria(fieldAlias);
-              String regex = "^.*" + sped.trim() + ".*$";
-              Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
-              newCri.regex(pattern);
-              criList.add(newCri);
+        Criteria criteria = Criteria.where("fileId").in(param.getFileIds());
+        List<QueryParam.Param1> param1List = param.getValues();
+        if (CollectionUtils.isNotEmpty(param1List)) {
+            List<Criteria> criList = new ArrayList<>();
+            for (QueryParam.Param1 param1 : param1List) {
+                String fieldAlias = param1.getFieldAlias();
+                String value = param1.getValue();
+                if (StringUtils.isBlank(fieldAlias)) {
+                    continue;
+                }
+                String mode1 = param1.getMode();
+                if ("is".equals(mode1)) {
+                    Criteria newCri = new Criteria(fieldAlias);
+                    String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
+                    String[] sp = filtered.split(";");
+                    if (sp.length > 1) {
+                        newCri.in(Arrays.asList(sp));
+                    } else {
+                        newCri.is(value.trim());
+                    }
+                    criList.add(newCri);
+                } else {
+                    String filtered = value.replaceAll(" ", ";").replaceAll("\t", ";").replaceAll(";", ";");
+                    String[] sp = filtered.split(";");
+                    if (sp.length > 1) {
+                        for (String sped : sp) {
+                            Criteria newCri = new Criteria(fieldAlias);
+                            String regex = "^.*" + sped.trim() + ".*$";
+                            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+                            newCri.regex(pattern);
+                            criList.add(newCri);
+                        }
+                    } else {
+                        Criteria newCri = new Criteria(fieldAlias);
+                        String regex = "^.*" + value.trim() + ".*$";
+                        Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+                        newCri.regex(pattern);
+                        criList.add(newCri);
+                    }
+                }
+            }
+            Criteria cri = new Criteria();
+            if ("and".equals(mode)) {
+                cri.andOperator(criList);
+            } else {
+                cri.orOperator(criList);
             }
-          } else {
-            Criteria newCri = new Criteria(fieldAlias);
-            String regex = "^.*" + value.trim() + ".*$";
-            Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
-            newCri.regex(pattern);
-            criList.add(newCri);
-          }
+            criteria.andOperator(cri);
         }
-      }
-      Criteria cri = new Criteria();
-      if ("and".equals(mode)) {
-        cri.andOperator(criList);
-      } else {
-        cri.orOperator(criList);
-      }
-      criteria.andOperator(cri);
-    }
-    Query dataQuery = new Query(criteria);
-    if (CollectionUtils.isNotEmpty(param.getOrders())) {
-      for (QueryParam.Param2 param2 : param.getOrders()) {
-        String alias = param2.getFieldAlias();
-        String orderBy = param2.getMode();
-        if ("asc".equals(orderBy)) {
-          dataQuery.with(Sort.by(Sort.Order.asc(alias)));
-        } else if ("desc".equals(orderBy)) {
-          dataQuery.with(Sort.by(Sort.Order.desc(alias)));
+        Query dataQuery = new Query(criteria);
+        if (CollectionUtils.isNotEmpty(param.getOrders())) {
+            for (QueryParam.Param2 param2 : param.getOrders()) {
+                String alias = param2.getFieldAlias();
+                String orderBy = param2.getMode();
+                if ("asc".equals(orderBy)) {
+                    dataQuery.with(Sort.by(Sort.Order.asc(alias)));
+                } else if ("desc".equals(orderBy)) {
+                    dataQuery.with(Sort.by(Sort.Order.desc(alias)));
+                }
+            }
         }
-      }
+        return dataQuery;
     }
-    return dataQuery;
-  }
 
-  public Mapped exportDataByQueryParam(QueryParam param) throws IOException {
-    Query dataQuery = this.dataQueryByParam(param);
-    // 查询游标
-    MongoCursor<Document> cursor =
-        mongoTemplate
-            .getCollection("data")
-            .find(dataQuery.getQueryObject())
-            .batchSize(1000)
-            .noCursorTimeout(true)
-            .cursor();
+    public Mapped exportDataByQueryParam(QueryParam param) throws IOException {
+        Query dataQuery = this.dataQueryByParam(param);
+        // 查询游标
+        MongoCursor<Document> cursor =
+                mongoTemplate
+                        .getCollection("data")
+                        .find(dataQuery.getQueryObject())
+                        .batchSize(1000)
+                        .noCursorTimeout(true)
+                        .cursor();
 
-    LogicalFile logicalFile =
-        mongoTemplate.findOne(
-            new Query(Criteria.where("id").is(param.getFileId())), LogicalFile.class);
-    Exporter exporter = new Exporter();
-    String exportFileId = exporter.export(cursor, param.getFileId(), logicalFile.getFilename());
-    Mapped mapped = Mapped.OK();
-    mapped.put("result", exportFileId);
-    return mapped;
-  }
+        LogicalFile logicalFile =
+                mongoTemplate.findOne(
+                        new Query(Criteria.where("id").is(param.getFileId())), LogicalFile.class);
+        Exporter exporter = new Exporter();
+        String exportFileId = exporter.export(cursor, param.getFileId(), logicalFile.getFilename());
+        Mapped mapped = Mapped.OK();
+        mapped.put("result", exportFileId);
+        return mapped;
+    }
 
-  @Async
-  Future<Long> countTotal(String fileId) {
-    Long total = mongoTemplate.count(new Query(Criteria.where("fileId").is(fileId)), DataMap.class);
-    return new AsyncResult<>(total);
-  }
+    @Async
+    Future<Long> countTotal(String fileId) {
+        Long total = mongoTemplate.count(new Query(Criteria.where("fileId").is(fileId)), DataMap.class);
+        return new AsyncResult<>(total);
+    }
 
-  @Async
-  public Future<Long> countTotalByQuery(Query query) {
-    Long total = mongoTemplate.count(query, DataMap.class);
-    return new AsyncResult<>(total);
-  }
+    @Async
+    public Future<Long> countTotalByQuery(Query query) {
+        Long total = mongoTemplate.count(query, DataMap.class);
+        return new AsyncResult<>(total);
+    }
 
-  @Async
-  Future<LinkedHashMap<String, String>> viewHeaders(String fileId) {
-    Query query = new Query(Criteria.where("fileId").is(fileId));
-    Fields fields = mongoTemplate.findOne(query, Fields.class);
-    if (fields != null) {
-      return new AsyncResult<>(fields.getFields());
-    } else {
-      return new AsyncResult<>(new LinkedHashMap<>());
+    @Async
+    Future<LinkedHashMap<String, String>> viewHeaders(String fileId) {
+        Query query = new Query(Criteria.where("fileId").is(fileId));
+        Fields fields = mongoTemplate.findOne(query, Fields.class);
+        if (fields != null) {
+            return new AsyncResult<>(fields.getFields());
+        } else {
+            return new AsyncResult<>(new LinkedHashMap<>());
+        }
     }
-  }
 }

+ 23 - 0
src/main/java/ieven/server/webapp/domain/data/StaticInput.java

@@ -0,0 +1,23 @@
+package ieven.server.webapp.domain.data;
+
+import lombok.Data;
+
+/**
+ * @author hankunkun
+ * @version 1.0
+ * @date 2024/8/27 14:23
+ */
+@Data
+public class StaticInput {
+
+    private String modelId;
+
+    private String lineId;
+
+    //交易主体户名
+    private String jyzthm;
+
+    //证件号码
+    private String zjhm;
+
+}

+ 24 - 0
src/main/java/ieven/server/webapp/domain/data/StaticModelInput.java

@@ -0,0 +1,24 @@
+package ieven.server.webapp.domain.data;
+
+import lombok.Data;
+
+/**
+ * @author hankunkun
+ * @version 1.0
+ * @date 2024/8/27 14:23
+ */
+@Data
+public class StaticModelInput {
+
+    private String modelId;
+
+    private String jyztzh;
+
+    private String jyzthm;
+
+    private String jyztzhds;
+
+    private String jyzthmds;
+
+    private String jysj;
+}

+ 104 - 0
src/main/java/ieven/server/webapp/service/datastatic/DataStaticService.java

@@ -0,0 +1,104 @@
+package ieven.server.webapp.service.datastatic;
+
+import ieven.server.webapp.domain.data.DataMap;
+import ieven.server.webapp.domain.data.StaticInput;
+import ieven.server.webapp.domain.data.StaticModelInput;
+import ieven.server.webapp.infrastructure.wrapper.Mapped;
+import ieven.server.webapp.service.FieldsService;
+import ieven.server.webapp.service.Ops;
+import ieven.server.webapp.util.excel.PublicStatic;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Service
+public class DataStaticService extends Ops {
+    @Autowired
+    FieldsService fieldsService;
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    public Mapped update(StaticInput staticInput){
+        //获取需要修改的数据
+       DataMap dataMap = this.mongoTemplate.findById(staticInput.getLineId(), DataMap.class);
+       if(dataMap==null){
+           return Mapped.ERROR("当前数据不存在");
+       }
+       if(StringUtils.isBlank(String.valueOf(dataMap.get("交易主体账号")))||"null".equals(String.valueOf(dataMap.get("交易主体账号")))){
+           return Mapped.ERROR("交易主体账号有误");
+       }
+
+       //修改汇总表中的数据
+        Query query = new Query();
+        query.addCriteria(Criteria.where("id").is(staticInput.getLineId()));
+        Update update = new Update();
+        if(StringUtils.isNotBlank(staticInput.getJyzthm())){
+            update.set("交易主体户名", PublicStatic.specialFormatStr(staticInput.getJyzthm()));
+        }
+
+        if(StringUtils.isNotBlank(staticInput.getZjhm())){
+            update.set("证件号码", PublicStatic.specialFormatStr(staticInput.getZjhm()));
+        }
+
+        if(StringUtils.isNotBlank(staticInput.getJyzthm())||StringUtils.isNotBlank(staticInput.getZjhm())){
+            mongoTemplate.updateFirst(query, update, DataMap.class);
+        }
+
+        //修改明细表的交易主体户名
+        if(StringUtils.isNotBlank(staticInput.getJyzthm())){
+            String modelId=staticInput.getModelId();
+            List<String>fileIds=new ArrayList<>();
+            String jyztzh=String.valueOf(dataMap.get("交易主体账号"));
+            String dateFileId = getFileId("数据分析-主体信息汇总明细", modelId, mongoTemplate);
+            if(StringUtils.isNotBlank(dateFileId)){
+                fileIds.add(dateFileId);
+            }
+
+            //五联单
+            String dateFileIdwld = getFileId("五联单-账户明细", modelId, mongoTemplate);
+            if(StringUtils.isNotBlank(dateFileIdwld)){
+                fileIds.add(dateFileIdwld);
+            }
+
+            //财付通
+            String dateFileIdcft = getFileId("财付通-交易明细", modelId, mongoTemplate);
+            if(StringUtils.isNotBlank(dateFileIdcft)){
+                fileIds.add(dateFileIdcft);
+            }
+            //反诈
+            String dateFileIdfzza = getFileId("反诈治安-交易明细", modelId, mongoTemplate);
+            if(StringUtils.isNotBlank(dateFileIdfzza)){
+                fileIds.add(dateFileIdfzza);
+            }
+
+            if(CollectionUtils.isNotEmpty(fileIds)){
+                Query queryjyzthm = new Query();
+                queryjyzthm.addCriteria(Criteria.where("fileId").in(fileIds).and("交易主体账号").is(jyztzh));
+                Update updatejy = new Update();
+                updatejy.set("交易主体户名", PublicStatic.specialFormatStr(staticInput.getJyzthm()));
+                mongoTemplate.updateMulti(query, update, DataMap.class);
+            }
+        }
+        return Mapped.OK();
+    }
+
+    public Mapped staticModel(StaticModelInput staticModelInput){
+        String  modelId=staticModelInput.getModelId();
+        String dateFileId = getFileId("数据分析-主体信息汇总明细", modelId, mongoTemplate);
+        if(StringUtils.isBlank(dateFileId)){
+            return Mapped.ERROR("数据分析-主体信息汇总明细不存在");
+        }
+        return Mapped.OK();
+
+    }
+}