|
@@ -0,0 +1,192 @@
|
|
|
|
|
+package com.hotent.enterpriseDeclare.controller.opinion;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+import com.hotent.base.annotation.ApiGroup;
|
|
|
|
|
+import com.hotent.base.constants.ApiGroupConsts;
|
|
|
|
|
+import com.hotent.base.model.CommonResult;
|
|
|
|
|
+import com.hotent.base.util.StringUtil;
|
|
|
|
|
+import com.hotent.enterpriseDeclare.manager.CostSurveyTemplateUploadDataManager;
|
|
|
|
|
+import com.hotent.enterpriseDeclare.model.CostSurveyTemplateUploadData;
|
|
|
|
|
+import com.hotent.surveyinfo.dao.CostSurveyTemplateItemsDao;
|
|
|
|
|
+import com.hotent.surveyinfo.manager.CostSurveyTemplateHeadersManager;
|
|
|
|
|
+import com.hotent.surveyinfo.manager.CostSurveyTemplateUploadManager;
|
|
|
|
|
+import com.hotent.surveyinfo.manager.CostSurveyTemplateVersionManager;
|
|
|
|
|
+import com.hotent.surveyinfo.model.CostSurveyTemplateHeaders;
|
|
|
|
|
+import com.hotent.surveyinfo.model.CostSurveyTemplateItems;
|
|
|
|
|
+import com.hotent.surveyinfo.model.CostSurveyTemplateUpload;
|
|
|
|
|
+import com.hotent.surveyinfo.model.CostSurveyTemplateVersion;
|
|
|
|
|
+import com.hotent.surveyinfo.model.dto.CostItemData;
|
|
|
|
|
+import io.swagger.annotations.Api;
|
|
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
|
|
+import io.swagger.annotations.ApiParam;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
|
+
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+@Api(tags = "成本监审任务填报")
|
|
|
|
|
+@RestController
|
|
|
|
|
+@RequestMapping("/api/enterprise/castTaskInfo")
|
|
|
|
|
+@ApiGroup(group = {ApiGroupConsts.GROUP_COST})
|
|
|
|
|
+public class CostAuditTaskInfoController {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostSurveyTemplateUploadManager costSurveyTemplateUploadManager;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostSurveyTemplateItemsDao costSurveyTemplateItemsDao;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostSurveyTemplateVersionManager costSurveyTemplateVersionManager;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostSurveyTemplateHeadersManager costSurveyTemplateHeadersManager;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private CostSurveyTemplateUploadDataManager costSurveyTemplateUploadDataManager;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 企业报送-成本申报表-列表
|
|
|
|
|
+ * @param catalogId 监管目录ID
|
|
|
|
|
+ * @return 上传记录列表(包含是否必填、是否上传等信息)
|
|
|
|
|
+ * @throws Exception
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping(value="/listUploadByCatalogId")
|
|
|
|
|
+ @ApiOperation(value="根据监管目录ID查询成本调查表模板上传记录列表", httpMethod = "GET", notes = "根据监管目录ID查询成本调查表模板上传记录列表,包含是否必填、是否上传等信息")
|
|
|
|
|
+ public CommonResult<List<CostSurveyTemplateUpload>> listUploadByCatalogId(
|
|
|
|
|
+ @ApiParam(name="catalogId", value="监管目录ID", required = true)
|
|
|
|
|
+ @RequestParam String catalogId) throws Exception {
|
|
|
|
|
+
|
|
|
|
|
+ List<CostSurveyTemplateUpload> uploadList = costSurveyTemplateUploadManager.listByCatalogId(catalogId);
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.<List<CostSurveyTemplateUpload>>ok().value(uploadList);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 企业报送-成本申报表-在线填报所需字段
|
|
|
|
|
+ * @param surveyTemplateId 成本调查表id
|
|
|
|
|
+ * @return 指标项数据列表(带key-value拼接)
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping(value = "/listItemsByCurrentTemplateId")
|
|
|
|
|
+ @ApiOperation(value = "根据成本调查表现行模板id获取所有指标数据", httpMethod = "GET", notes = "根据成本调查表现行模板id获取所有指标数据(带key-value拼接)")
|
|
|
|
|
+ public CommonResult<CostItemData> listItemsByCurrentTemplateId(
|
|
|
|
|
+ @ApiParam(name = "surveyTemplateId", value = "关联的成本调查表ID", required = true)
|
|
|
|
|
+ @RequestParam(required = true) String surveyTemplateId) throws Exception
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ //根据模板id 查询历史版本是现行的版本信息
|
|
|
|
|
+ CostSurveyTemplateVersion versiontemplate = costSurveyTemplateVersionManager.selectCurrentVersion(surveyTemplateId);
|
|
|
|
|
+ if (versiontemplate == null) {
|
|
|
|
|
+ return CommonResult.<CostItemData>ok().value(new CostItemData());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<CostSurveyTemplateItems> items = costSurveyTemplateItemsDao.selectBySurveyTemplateIdAndVersion(surveyTemplateId, versiontemplate.getId());
|
|
|
|
|
+ List<CostSurveyTemplateHeaders> headlist = costSurveyTemplateHeadersManager.listVisibleBySurveyTemplateIdAndVersion(surveyTemplateId, versiontemplate.getId());
|
|
|
|
|
+ String filename = headlist.stream().map(CostSurveyTemplateHeaders::getFieldName).collect(Collectors.joining(","));
|
|
|
|
|
+ String filenids = headlist.stream().map(CostSurveyTemplateHeaders::getId).collect(Collectors.joining(","));
|
|
|
|
|
+
|
|
|
|
|
+ // 按 orderNum 分组
|
|
|
|
|
+ Map<Integer, List<CostSurveyTemplateItems>> groupedByHeadersId = items.stream()
|
|
|
|
|
+ .collect(Collectors.groupingBy(CostSurveyTemplateItems::getOrderNum));
|
|
|
|
|
+
|
|
|
|
|
+ List<Map<String, String>> result = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ for (Map.Entry<Integer, List<CostSurveyTemplateItems>> entry : groupedByHeadersId.entrySet()) {
|
|
|
|
|
+ List<CostSurveyTemplateItems> group = entry.getValue();
|
|
|
|
|
+ if (group.isEmpty()) continue;
|
|
|
|
|
+
|
|
|
|
|
+ // 主项(可以取第一个)
|
|
|
|
|
+ CostSurveyTemplateItems mainItem = group.get(0);
|
|
|
|
|
+
|
|
|
|
|
+ String headersIds = "";
|
|
|
|
|
+ String itemIds = "";
|
|
|
|
|
+ // 构造 key-value 映射
|
|
|
|
|
+ Map<String, String> keyValueMap = new HashMap<>();
|
|
|
|
|
+ for (CostSurveyTemplateItems item : group) {
|
|
|
|
|
+ if (item.getRkey() != null && item.getRvalue() != null) {
|
|
|
|
|
+ keyValueMap.put(item.getRkey(), item.getRvalue());
|
|
|
|
|
+ headersIds += item.getHeadersId() + ",";
|
|
|
|
|
+ itemIds += item.getId() + ",";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!StringUtil.isEmpty(headersIds))
|
|
|
|
|
+ headersIds = headersIds.substring(0, headersIds.length() - 1);
|
|
|
|
|
+
|
|
|
|
|
+ if (!StringUtil.isEmpty(itemIds))
|
|
|
|
|
+ itemIds = itemIds.substring(0, itemIds.length() - 1);
|
|
|
|
|
+
|
|
|
|
|
+ //mainItem 放入到keyValueMap中 除了 key value 这两个字段
|
|
|
|
|
+ keyValueMap.put("id", mainItem.getId());
|
|
|
|
|
+ keyValueMap.put("surveyTemplateId", mainItem.getSurveyTemplateId());
|
|
|
|
|
+ keyValueMap.put("versionId", mainItem.getVersionId());
|
|
|
|
|
+ keyValueMap.put("headersId", mainItem.getHeadersId());
|
|
|
|
|
+ keyValueMap.put("cellCode", mainItem.getCellCode());
|
|
|
|
|
+ keyValueMap.put("calculationFormula", mainItem.getCalculationFormula());
|
|
|
|
|
+ keyValueMap.put("unit", mainItem.getUnit());
|
|
|
|
|
+ keyValueMap.put("orderNum", mainItem.getOrderNum().toString());
|
|
|
|
|
+ keyValueMap.put("jsonStr", mainItem.getJsonStr());
|
|
|
|
|
+ keyValueMap.put("headersIds", headersIds);
|
|
|
|
|
+ keyValueMap.put("itemIds", itemIds);
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ keyValueMap.put("createTime", mainItem.getCreateTime() != null ? mainItem.getCreateTime().format(formatter) : null);
|
|
|
|
|
+ keyValueMap.put("updateTime", mainItem.getUpdateTime() != null ? mainItem.getUpdateTime().format(formatter) : null);
|
|
|
|
|
+ keyValueMap.put("createBy", mainItem.getCreateBy());
|
|
|
|
|
+ keyValueMap.put("updateBy", mainItem.getUpdateBy());
|
|
|
|
|
+ keyValueMap.put("projectId", mainItem.getProjectId());
|
|
|
|
|
+ keyValueMap.put("orderText", mainItem.getOrderText());
|
|
|
|
|
+ keyValueMap.put("calculationTemplateId", mainItem.getCalculationTemplateId());
|
|
|
|
|
+ keyValueMap.put("rowid", mainItem.getRowid());
|
|
|
|
|
+ keyValueMap.put("parentid", mainItem.getParentid());
|
|
|
|
|
+
|
|
|
|
|
+ result.add(keyValueMap);
|
|
|
|
|
+ }
|
|
|
|
|
+ CostItemData data = new CostItemData();
|
|
|
|
|
+ data.setFixedFields(filename); // 存储动态字段名
|
|
|
|
|
+ data.setItemlist(result);
|
|
|
|
|
+ data.setFixedFieldids(filenids);
|
|
|
|
|
+ return CommonResult.<CostItemData>ok().value(data);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 企业报送-成本申报表-在线填报保持
|
|
|
|
|
+ * @param dataList 数据列表(实体类列表,包含uploadId、auditedUnitId、rowid、rkey、rvalue等字段)
|
|
|
|
|
+ * @return 保存结果
|
|
|
|
|
+ */
|
|
|
|
|
+ @PostMapping(value = "/saveUploadData")
|
|
|
|
|
+ @ApiOperation(value = "保存成本调查表模板上传数据", httpMethod = "POST", notes = "保存成本调查表模板上传数据,直接使用实体类列表")
|
|
|
|
|
+ public CommonResult<String> saveUploadData(
|
|
|
|
|
+ @ApiParam(name = "dataList", value = "数据列表", required = true)
|
|
|
|
|
+ @RequestBody List<CostSurveyTemplateUploadData> dataList) throws Exception {
|
|
|
|
|
+
|
|
|
|
|
+ if (dataList == null || dataList.isEmpty()) {
|
|
|
|
|
+ return CommonResult.<String>error().message("数据列表不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ costSurveyTemplateUploadDataManager.saveData(dataList);
|
|
|
|
|
+ return CommonResult.<String>ok().message("保存数据成功");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 企业报送-成本申报表-在线填报记录查看
|
|
|
|
|
+ * @param queryData 查询条件(实体类,包含uploadId和auditedUnitId)
|
|
|
|
|
+ * @return 数据列表(实体类列表)
|
|
|
|
|
+ */
|
|
|
|
|
+ @PostMapping(value = "/getUploadData")
|
|
|
|
|
+ @ApiOperation(value = "查询成本调查表模板上传数据", httpMethod = "POST", notes = "查询成本调查表模板上传数据,返回实体类列表")
|
|
|
|
|
+ public CommonResult<List<CostSurveyTemplateUploadData>> getUploadData(
|
|
|
|
|
+ @ApiParam(name = "queryData", value = "查询条件", required = true)
|
|
|
|
|
+ @RequestBody CostSurveyTemplateUploadData queryData) throws Exception {
|
|
|
|
|
+
|
|
|
|
|
+ if (queryData == null || StringUtil.isEmpty(queryData.getUploadId()) || StringUtil.isEmpty(queryData.getAuditedUnitId())) {
|
|
|
|
|
+ return CommonResult.<List<CostSurveyTemplateUploadData>>error().message("uploadId和auditedUnitId不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<CostSurveyTemplateUploadData> dataList = costSurveyTemplateUploadDataManager.listByUploadIdAndAuditedUnitId(queryData.getUploadId(), queryData.getAuditedUnitId());
|
|
|
|
|
+ return CommonResult.<List<CostSurveyTemplateUploadData>>ok().value(dataList);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|