|
@@ -20,7 +20,6 @@ import com.jeeplus.sys.utils.StringUtils;
|
|
import com.jeeplus.sys.utils.UserUtils;
|
|
import com.jeeplus.sys.utils.UserUtils;
|
|
import com.jeeplus.test.oss.domain.WorkAttachment;
|
|
import com.jeeplus.test.oss.domain.WorkAttachment;
|
|
import com.jeeplus.test.oss.service.OssService;
|
|
import com.jeeplus.test.oss.service.OssService;
|
|
-import com.jeeplus.test.oss.service.dto.OssServiceDto;
|
|
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectStatusEnum;
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectStatusEnum;
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectTypeEnum;
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectTypeEnum;
|
|
import com.jeeplus.test.projectRecords.constant.enums.YesOrNoEnum;
|
|
import com.jeeplus.test.projectRecords.constant.enums.YesOrNoEnum;
|
|
@@ -33,14 +32,12 @@ import com.jeeplus.test.projectRecords.service.mapstruct.ProjectWrapper;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
|
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
|
import org.flowable.editor.language.json.converter.util.CollectionUtils;
|
|
import org.flowable.editor.language.json.converter.util.CollectionUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
@@ -53,12 +50,15 @@ import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.io.OutputStream;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Type;
|
|
import java.lang.reflect.Type;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
|
+import java.text.DecimalFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
+import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@@ -102,6 +102,7 @@ public class ProjectController {
|
|
}
|
|
}
|
|
List<Project> list = result.getRecords();
|
|
List<Project> list = result.getRecords();
|
|
for (Project info: list) {
|
|
for (Project info: list) {
|
|
|
|
+ info = changeBigDecimalEntity(info);
|
|
if(info.getProjectHeadId().equals(currentUserDTO.getId()) || bmzrRoleFlag){
|
|
if(info.getProjectHeadId().equals(currentUserDTO.getId()) || bmzrRoleFlag){
|
|
info.setPermissionFlag(true);
|
|
info.setPermissionFlag(true);
|
|
}else{
|
|
}else{
|
|
@@ -121,6 +122,7 @@ public class ProjectController {
|
|
@GetMapping("queryById")
|
|
@GetMapping("queryById")
|
|
public ResponseEntity queryById(@RequestParam("id") String id) {
|
|
public ResponseEntity queryById(@RequestParam("id") String id) {
|
|
Project userProject = projectService.selectByProjectId ( id );
|
|
Project userProject = projectService.selectByProjectId ( id );
|
|
|
|
+ userProject = changeBigDecimalEntity(userProject);
|
|
return ResponseEntity.ok (userProject);
|
|
return ResponseEntity.ok (userProject);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -137,7 +139,6 @@ public class ProjectController {
|
|
Project project = ProjectWrapper.INSTANCE.toEntity (projectDTO);
|
|
Project project = ProjectWrapper.INSTANCE.toEntity (projectDTO);
|
|
Project pro = projectService.projectDtoToDate(project,projectDTO);
|
|
Project pro = projectService.projectDtoToDate(project,projectDTO);
|
|
pro.setItemType(projectDTO.getItemType());
|
|
pro.setItemType(projectDTO.getItemType());
|
|
-
|
|
|
|
if(StringUtils.isNotBlank(projectDTO.getProjectHead())){
|
|
if(StringUtils.isNotBlank(projectDTO.getProjectHead())){
|
|
UserDTO projectHead = userService.get(projectDTO.getProjectHead());
|
|
UserDTO projectHead = userService.get(projectDTO.getProjectHead());
|
|
if(null == projectHead || StringUtils.isBlank(projectHead.getId())){
|
|
if(null == projectHead || StringUtils.isBlank(projectHead.getId())){
|
|
@@ -462,6 +463,9 @@ public class ProjectController {
|
|
|
|
|
|
hashMap.put(project.getDocumentNum(),null);
|
|
hashMap.put(project.getDocumentNum(),null);
|
|
|
|
|
|
|
|
+ //金额字段保留两位小数 四舍五入
|
|
|
|
+ project = changeBigDecimal(project);
|
|
|
|
+
|
|
Project userProject = ProjectWrapper.INSTANCE.toEntity(project);
|
|
Project userProject = ProjectWrapper.INSTANCE.toEntity(project);
|
|
//项目类型 1.评估项目 2.咨询项目
|
|
//项目类型 1.评估项目 2.咨询项目
|
|
userProject.setItemType(itemType);
|
|
userProject.setItemType(itemType);
|
|
@@ -472,6 +476,136 @@ public class ProjectController {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 金额字段保留两位小数 四舍五入
|
|
|
|
+ * @param project
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public ProjectDTO changeBigDecimal(ProjectDTO project) {
|
|
|
|
+ //未报销金额
|
|
|
|
+ if(StringUtils.isNotBlank(project.getUnreimbursedAmount())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getUnreimbursedAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setUnreimbursedAmount(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setUnreimbursedAmount("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //已报销金额
|
|
|
|
+ if(StringUtils.isNotBlank(project.getReimbursementAmount())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getReimbursementAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setReimbursementAmount(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setReimbursementAmount("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //预估/实际收费(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getActualCharges())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getActualCharges()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setActualCharges(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setActualCharges("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //报告收费(元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getReportCharges())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getReportCharges()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setReportCharges(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setReportCharges("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //租金评估(万/年)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getRentEvaluation())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getRentEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setRentEvaluation(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setRentEvaluation("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //净资产评估
|
|
|
|
+ if(StringUtils.isNotBlank(project.getNetAssetsEvaluation())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getNetAssetsEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setNetAssetsEvaluation(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setNetAssetsEvaluation("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //固定资产评估(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getFixedAssetsEvaluation())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getFixedAssetsEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setFixedAssetsEvaluation(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setFixedAssetsEvaluation("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //废旧物资评估(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getWaystEvaluation())){
|
|
|
|
+ try{
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getWaystEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setWaystEvaluation(b.toString());
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ project.setWaystEvaluation("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return project;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 金额字段保留两位小数 四舍五入
|
|
|
|
+ * 实体类domain用
|
|
|
|
+ * @param project
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Project changeBigDecimalEntity(Project project) {
|
|
|
|
+ //未报销金额
|
|
|
|
+ if(StringUtils.isNotBlank(project.getUnreimbursedAmount())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getUnreimbursedAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setUnreimbursedAmount(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //已报销金额
|
|
|
|
+ if(StringUtils.isNotBlank(project.getReimbursementAmount())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getReimbursementAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setReimbursementAmount(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //预估/实际收费(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getActualCharges())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getActualCharges()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setActualCharges(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //报告收费(元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getReportCharges())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getReportCharges()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setReportCharges(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //租金评估(万/年)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getRentEvaluation())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getRentEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setRentEvaluation(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //净资产评估
|
|
|
|
+ if(StringUtils.isNotBlank(project.getNetAssetsEvaluation())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getNetAssetsEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setNetAssetsEvaluation(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //固定资产评估(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getFixedAssetsEvaluation())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getFixedAssetsEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setFixedAssetsEvaluation(b.toString());
|
|
|
|
+ }
|
|
|
|
+ //废旧物资评估(万元)
|
|
|
|
+ if(StringUtils.isNotBlank(project.getWaystEvaluation())){
|
|
|
|
+ BigDecimal b = new BigDecimal(project.getWaystEvaluation()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ project.setWaystEvaluation(b.toString());
|
|
|
|
+ }
|
|
|
|
+ return project;
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 下载项目导入模板
|
|
* 下载项目导入模板
|
|
@@ -722,6 +856,22 @@ public class ProjectController {
|
|
Project project = ProjectWrapper.INSTANCE.toEntity (projectDTO);
|
|
Project project = ProjectWrapper.INSTANCE.toEntity (projectDTO);
|
|
QueryWrapper<Project> queryWrapper = QueryWrapperGenerator.buildQueryCondition( project, Project.class );
|
|
QueryWrapper<Project> queryWrapper = QueryWrapperGenerator.buildQueryCondition( project, Project.class );
|
|
List<FileUploadListDTO> list = projectService.exportFileUploadList(projectDTO);
|
|
List<FileUploadListDTO> list = projectService.exportFileUploadList(projectDTO);
|
|
|
|
+ //完成比例导出文档添加汇总列
|
|
|
|
+ AtomicReference<Integer> totalNum = new AtomicReference<>(0);
|
|
|
|
+ AtomicReference<Integer> endNum = new AtomicReference<>(0);
|
|
|
|
+ list.stream().forEach(item->{
|
|
|
|
+ totalNum.updateAndGet(v -> v + item.getAllNum());
|
|
|
|
+ endNum.updateAndGet(v -> v + item.getNum());
|
|
|
|
+ });
|
|
|
|
+ DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
+ String s = df.format((float) endNum.get() * 100 / (float) totalNum.get());
|
|
|
|
+ FileUploadListDTO fileUploadListDTO = new FileUploadListDTO();
|
|
|
|
+ fileUploadListDTO.setName("汇总");
|
|
|
|
+ fileUploadListDTO.setAllNum(totalNum.get());
|
|
|
|
+ fileUploadListDTO.setNum(endNum.get());
|
|
|
|
+ fileUploadListDTO.setProportion(s+"%");
|
|
|
|
+ list.add(fileUploadListDTO);
|
|
|
|
+
|
|
if(ProjectTypeEnum.ASSESS.getValue().equals(projectDTO.getItemType())){
|
|
if(ProjectTypeEnum.ASSESS.getValue().equals(projectDTO.getItemType())){
|
|
if(StringUtils.isNotBlank(projectDTO.getYear())){
|
|
if(StringUtils.isNotBlank(projectDTO.getYear())){
|
|
EasyPoiUtil.exportExcel(list, projectDTO.getYear() + "年评估项目上传比例报告", "评估项目上传比例报告", FileUploadListDTO.class, "", response );
|
|
EasyPoiUtil.exportExcel(list, projectDTO.getYear() + "年评估项目上传比例报告", "评估项目上传比例报告", FileUploadListDTO.class, "", response );
|