Commit 43738f28 authored by zhangyingbin's avatar zhangyingbin

Merge branch 'developer' of http://39.98.45.134:8090/moa/amos-boot-biz into developer

# Conflicts: # amos-boot-system-ugp/amos-boot-module-ugp-biz/src/main/java/com/yeejoin/amos/boot/module/ugp/biz/service/impl/ProjectServiceImpl.java
parents 7a6fdd4f c1b93241
......@@ -12,6 +12,8 @@ public class InformationDto {
private List<Map<String, Object>>welderList;
private List<Map<String, Object>>materialList;
private List<Map<String, Object>> fileList;
private JSONObject fileJson;
private Long projectId;
private String type;
}
package com.yeejoin.amos.boot.module.ugp.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
......@@ -19,7 +20,7 @@ public class OverProjectDto extends BaseDto {
/**
* 竣工资料
*/
private Object completeFile;
private JSONArray completeFile;
/**
* 审核意见
......
......@@ -441,13 +441,20 @@ public class ProjectController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "POST", value = "资料提交保存", notes = "资料提交保存")
@ApiOperation(httpMethod = "POST", value = "资料提交/保存", notes = "资料提交/保存")
@PostMapping(value = "/informationSaveOrUpdate")
public ResponseModel<Object> informationSaveOrUpdate(@RequestBody InformationDto dto){
projectServiceImpl.informationSaveOrUpdate(dto.getEquipmentList(),dto.getWelderList(),dto.getMaterialList(),dto.getFileList(),dto.getProjectId());
projectServiceImpl.informationSaveOrUpdate(dto.getEquipmentList(),dto.getWelderList(),dto.getMaterialList(),dto.getFileJson(),dto.getProjectId(), dto.getType());
return ResponseHelper.buildResponse("ok");
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "POST", value = "资料保存、审核", notes = "资料保存、审核")
@PostMapping(value = "/informationAudit")
public ResponseModel<Object> informationAudit(@RequestBody InformationDto dto){
projectServiceImpl.informationAudit(dto.getEquipmentList(),dto.getWelderList(),dto.getMaterialList(),dto.getFileList(),dto.getProjectId(), dto.getType());
return ResponseHelper.buildResponse("ok");
}
/**
* 审核资料详情
......
......@@ -3,8 +3,8 @@ package com.yeejoin.amos.boot.module.ugp.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
......@@ -14,10 +14,12 @@ import com.yeejoin.amos.boot.module.ugp.api.Enum.OrgEnum;
import com.yeejoin.amos.boot.module.ugp.api.Enum.ProjectInitiationEnum;
import com.yeejoin.amos.boot.module.ugp.api.Enum.WhetherItPassEnum;
import com.yeejoin.amos.boot.module.ugp.api.constants.XJConstant;
import com.yeejoin.amos.boot.module.ugp.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.ugp.api.dto.PipeDto;
import com.yeejoin.amos.boot.module.ugp.api.dto.ProjectDto;
import com.yeejoin.amos.boot.module.ugp.api.dto.ProjectProcessDto;
import com.yeejoin.amos.boot.module.ugp.api.entity.*;
import com.yeejoin.amos.boot.module.ugp.api.mapper.AttachmentMapper;
import com.yeejoin.amos.boot.module.ugp.api.mapper.ProjectMapper;
import com.yeejoin.amos.boot.module.ugp.api.mapper.ProjectResourceMapper;
import com.yeejoin.amos.boot.module.ugp.api.mapper.SuperviseRuleMapper;
......@@ -41,6 +43,7 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* 项目信息表服务实现类
......@@ -89,6 +92,9 @@ public class ProjectServiceImpl extends BaseService<ProjectDto, Project, Project
@Autowired
IPipeServiceImpl pipeService;
@Autowired
AttachmentMapper attachmentMapper;
public ProjectDto saveProjectInfo(ProjectDto model,String submitType){
String regionName = "",regionCode = "";
......@@ -337,7 +343,6 @@ public class ProjectServiceImpl extends BaseService<ProjectDto, Project, Project
JSONArray installSubForm = JSON.parseArray(XJConstant.INSTALL_SUB_FORM);
JSONArray designSubForm = JSON.parseArray(XJConstant.DESIGN_SUB_FORM);
if(!ValidationUtil.isEmpty(jsonObject)){
installSubForm = jsonObject.getJSONArray("installSubForm");
designSubForm = jsonObject.getJSONArray("designSubForm");
}
......@@ -674,96 +679,167 @@ public class ProjectServiceImpl extends BaseService<ProjectDto, Project, Project
return projectDto;
}
public Map<String, Object> getInformationDetail(Long sequenceNbr){
public Map<String, Object> getInformationDetail(Long sequenceNbr) {
LambdaQueryWrapper<Attachment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Attachment::getSourceId,sequenceNbr);
wrapper.eq(Attachment::getSourceId, sequenceNbr);
Attachment attachment = attachmentService.getOne(wrapper);
JSONObject jsonObject = null;
if(!ObjectUtils.isEmpty(attachment) && !ObjectUtils.isEmpty(attachment.getInfo())){
jsonObject = JSON.parseObject(attachment.getInfo());
if (!ObjectUtils.isEmpty(attachment) && !ObjectUtils.isEmpty(attachment.getInfo())) {
jsonObject = JSON.parseObject(attachment.getInfo());
return jsonObject;
}else {
} else {
HashMap<String, Object> map = new HashMap<>();
map.put("installSubForm",XJConstant.INSTALL_SUB_FORM_NEW);
map.put("designSubForm",XJConstant.DESIGN_SUB_FORM_NEW);
map.put("installSubForm", XJConstant.INSTALL_SUB_FORM_NEW);
map.put("designSubForm", XJConstant.DESIGN_SUB_FORM_NEW);
return map;
}
}
public List<Map<String, Object>> getAuditInformationDetail(Long sequenceNbr){
public List<Map<String, Object>> getAuditInformationDetail(Long sequenceNbr) {
ArrayList<Map<String, Object>> result = new ArrayList<>();
LambdaQueryWrapper<Attachment> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Attachment::getSourceId,sequenceNbr);
wrapper.eq(Attachment::getSourceId, sequenceNbr);
Attachment attachment = attachmentService.getOne(wrapper);
if(!ObjectUtils.isEmpty(attachment) && !ObjectUtils.isEmpty(attachment.getInfo())){
Map<String, Object> map = JSON.parseObject(attachment.getInfo());
List<Map<String, Object>> installSubForm = (List<Map<String, Object>>)map.get("installSubForm");
if (!ObjectUtils.isEmpty(attachment) && !ObjectUtils.isEmpty(attachment.getInfo())) {
Map<String, Object> map = JSON.parseObject(attachment.getInfo());
List<Map<String, Object>> installSubForm = (List<Map<String, Object>>) map.get("installSubForm");
data("subFormInstall", installSubForm, result, attachment.getRecDate());
List<Map<String, Object>> designSubForm = (List<Map<String, Object>>)map.get("designSubForm");
List<Map<String, Object>> designSubForm = (List<Map<String, Object>>) map.get("designSubForm");
data("designSubForm", designSubForm, result, attachment.getRecDate());
}
return result;
}
private List<Map<String, Object>> data(String type , List<Map<String, Object>> data, List<Map<String, Object>> result, Date date){
private List<Map<String, Object>> data(String type, List<Map<String, Object>> data, List<Map<String, Object>> result, Date date) {
data.forEach(item -> {
HashMap<String, Object> messageData = new HashMap<>();
messageData.put("name", item.get(type));
messageData.put("name", item.get("type"));
messageData.put("date", date);
List<Map<String, Object>> infoList = (List<Map<String, Object>>)item.get("info");
infoList.forEach(itemInfo ->{
messageData.put("type", type);
List<Map<String, Object>> infoList = (List<Map<String, Object>>) item.get("info");
infoList.forEach(itemInfo -> {
messageData.put("fileName", itemInfo.get("name"));
messageData.put("fileUrl", itemInfo.get("url"));
messageData.put("status", "1");
messageData.put("uid", itemInfo.get("uid"));
messageData.put("status", itemInfo.getOrDefault("auditStatus", "1"));
result.add(messageData);
} );
});
});
return result;
}
@Transactional
public String informationSaveOrUpdate(List<Map<String, Object>> equipmentList,
List<Map<String, Object>> welderList,
List<Map<String, Object>> materialList,
List<Map<String, Object>> fileList,
Long projectId) {
List<Map<String, Object>> welderList,
List<Map<String, Object>> materialList,
JSONObject fileJson,
Long projectId,
String type) {
// 保存资源信息
saveResourceMessage(equipmentList, welderList, materialList, projectId);
// 文件信息
Attachment attachment = new Attachment();
attachment.setSourceId(projectId);
attachment.setInfo(fileJson.toJSONString());
attachment.setType("project");
LambdaQueryWrapper<Attachment> attachmentLambda = new QueryWrapper<Attachment>().lambda();
attachmentLambda.eq(Attachment::getSourceId, projectId);
attachmentMapper.delete(attachmentLambda);
attachmentService.save(attachment);
if ("submit".equals(type)) {
// 触发流程 todo
}
return "ok";
}
private void saveResourceMessage(List<Map<String, Object>> equipmentList,
List<Map<String, Object>> welderList,
List<Map<String, Object>> materialList,
Long projectId) {
ArrayList<ProjectResource> projectResources = new ArrayList<>();
// 焊机信息
equipmentList.forEach(item ->{
equipmentList.forEach(item -> {
ProjectResource projectResource = new ProjectResource();
projectResource.setProjectId(projectId);
projectResource.setResourceId(Long.valueOf(String.valueOf(item.get("sequenceNbr"))));
projectResource.setType("equipment");
projectResource.setName(String.valueOf(item.get("name")));
projectResource.setStatus(ObjectUtils.isEmpty(item.get("status")) ? "0" : String.valueOf(item.get("status")));
projectResources.add(projectResource);
});
// 焊工信息
welderList.forEach(item ->{
welderList.forEach(item -> {
ProjectResource projectResource = new ProjectResource();
projectResource.setProjectId(projectId);
projectResource.setResourceId(Long.valueOf(String.valueOf(item.get("sequenceNbr"))));
projectResource.setType("welder");
projectResource.setName(String.valueOf(item.get("name")));
projectResource.setStatus(ObjectUtils.isEmpty(item.get("status")) ? "0" : String.valueOf(item.get("status")));
projectResources.add(projectResource);
});
// 管材信息
materialList.forEach(item ->{
materialList.forEach(item -> {
ProjectResource projectResource = new ProjectResource();
projectResource.setProjectId(projectId);
projectResource.setResourceId(Long.valueOf(String.valueOf(item.get("sequenceNbr"))));
projectResource.setType("material");
projectResource.setName(String.valueOf(item.get("name")));
projectResource.setStatus(ObjectUtils.isEmpty(item.get("status")) ? "0" : String.valueOf(item.get("status")));
projectResources.add(projectResource);
});
projectResourceService.saveOrUpdateBatch(projectResources);
LambdaQueryWrapper<ProjectResource> lambda = new QueryWrapper<ProjectResource>().lambda();
lambda.eq(ProjectResource::getProjectId, projectId);
projectResourceMapper.delete(lambda);
projectResourceService.saveBatch(projectResources);
}
@Transactional
public String informationAudit(List<Map<String, Object>> equipmentList,
List<Map<String, Object>> welderList,
List<Map<String, Object>> materialList,
List<Map<String, Object>> fileList,
Long projectId,
String type) {
// 保存资源信息
saveResourceMessage(equipmentList, welderList, materialList, projectId);
// 文件信息
Attachment attachment = new Attachment();
attachment.setSourceId(projectId);
// attachment.setInfo(fileList.toJSONString());
attachment.setType("project");
attachmentService.save(attachment);
AttachmentDto attachmentDto = attachmentService.getAttachment(projectId);
if (!ObjectUtils.isEmpty(attachmentDto) && !ObjectUtils.isEmpty(attachmentDto.getInfo())) {
Map<String, Object> map = JSON.parseObject(attachmentDto.getInfo());
List<Map<String, Object>> installSubForm = (List<Map<String, Object>>) map.get("installSubForm");
// 文件信息json处理
changeStatus(installSubForm, fileList);
List<Map<String, Object>> designSubForm = (List<Map<String, Object>>) map.get("designSubForm");
// 文件信息json处理
changeStatus(designSubForm, fileList);
Attachment attachment = new Attachment();
attachment.setSourceId(projectId);
attachment.setInfo(JSON.toJSONString(map));
attachment.setType("project");
LambdaQueryWrapper<Attachment> attachmentLambda = new QueryWrapper<Attachment>().lambda();
attachmentLambda.eq(Attachment::getSourceId, projectId);
attachmentMapper.delete(attachmentLambda);
attachmentService.save(attachment);
}
if ("submit".equals(type)) {
// 触发流程 todo
}
return "ok";
}
private void changeStatus(List<Map<String, Object>> data, List<Map<String, Object>> fileList) {
data.forEach(item -> {
List<Map<String, Object>> installSubFormInfo = (List<Map<String, Object>>) item.get("info");
installSubFormInfo.forEach(infoItem -> {
List<Map<String, Object>> collect = fileList.stream().filter(itemData -> itemData.get("uid").equals(infoItem.get("uid"))).collect(Collectors.toList());
infoItem.put("auditStatus", ObjectUtils.isEmpty(collect.get(0).get("status")) ? "" : collect.get(0).get("status"));
});
});
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment