소스 검색

归一化展示(增加单个研制数量相关数据对比)

sl 1 년 전
부모
커밋
e521787bf5

+ 8 - 3
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -27,6 +27,7 @@ import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 import org.jeecg.modules.projectCostHuiji.convert.impl.ProjectCostHuijiConverCustomImpl;
 import org.jeecg.modules.projectCostHuiji.convert.ProjectCostHuijiConvert;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiCompare;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiVo;
 import org.jeecg.modules.projectCostHuiji.service.IProjectCostHuijiService;
 import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiListVO;
@@ -93,11 +94,15 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
     /**
      * 项目成本汇集——对比
      */
+    //sl修改添加每台的对比
     @ApiOperation(value = "项目成本汇集——对比", notes = "项目成本汇集——对比")
     @GetMapping(value = "/compareList")
-    public List<ProjectCostHuiji> compareList(String ids) {
-        List<ProjectCostHuiji> list = projectCostHuijiService.compareListByIds(Arrays.asList(ids.split(",")));
-        return list;
+//    public List<ProjectCostHuiji> compareList(String ids) {
+//        List<ProjectCostHuiji> list = projectCostHuijiService.compareListByIds(Arrays.asList(ids.split(",")));
+//        return list;
+//    }
+    public ProjectCostHuijiCompare compareList(String ids){
+        return projectCostHuijiService.compareListByIds(Arrays.asList(ids.split(",")));
     }
 
     /**

+ 10 - 1
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/entity/ProjectCostHuiji.java

@@ -30,7 +30,7 @@ import lombok.experimental.Accessors;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = false)
 @ApiModel(value="kzks_project_cost_huiji对象", description="项目成本汇集表")
-public class ProjectCostHuiji implements Serializable {
+public class ProjectCostHuiji implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
     /**
@@ -306,4 +306,13 @@ public class ProjectCostHuiji implements Serializable {
     @ApiModelProperty(value = "生产工时")
     private java.math.BigDecimal scgs;
 
+    @Override
+    public ProjectCostHuiji clone() {
+        try {
+            // TODO: copy mutable state here, so the clone can't change the internals of the original
+            return (ProjectCostHuiji) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new AssertionError();
+        }
+    }
 }

+ 4 - 1
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/IProjectCostHuijiService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiCompare;
 
 import java.util.List;
 
@@ -26,7 +27,9 @@ public interface IProjectCostHuijiService extends IService<ProjectCostHuiji> {
     /**
      * 对比
      */
-    public List<ProjectCostHuiji> compareListByIds(List<String> ids);
+//    public List<ProjectCostHuiji> compareListByIds(List<String> ids);
+    //sl修改添加每台的对比
+    public ProjectCostHuijiCompare compareListByIds(List<String> ids);
 
     /**计算项目成本汇集的总和*/
     public ProjectCostHuiji costHJSum(ProjectCostHuiji projectCostHuiji);

+ 43 - 2
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/impl/ProjectCostHuijiServiceImpl.java

@@ -8,6 +8,7 @@ import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiCompare;
 import org.jeecg.modules.projectCostHuiji.mapper.ProjectCostHuijiMapper;
 import org.jeecg.modules.projectCostHuiji.service.IProjectCostHuijiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,11 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -41,8 +47,43 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
     /**
      * 对比
      */
-    public List<ProjectCostHuiji> compareListByIds(List<String> ids){
-        return huijiMapper.compareListByIds(ids);
+//    public List<ProjectCostHuiji> compareListByIds(List<String> ids){
+//        return huijiMapper.compareListByIds(ids);
+//    }
+    //sl修改添加每台的对比
+    public ProjectCostHuijiCompare compareListByIds(List<String> ids){
+        ProjectCostHuijiCompare projectCostHuijiCompare = new ProjectCostHuijiCompare();
+        List<ProjectCostHuiji> listAll = huijiMapper.compareListByIds(ids);
+        List<ProjectCostHuiji> listOne = new ArrayList<>();
+        for(ProjectCostHuiji projectCostHuiji:listAll){
+            ProjectCostHuiji projectCostHuiji1 = (ProjectCostHuiji)projectCostHuiji.clone();
+            if(projectCostHuiji1.getYzsl() != null && projectCostHuiji1.getYzsl() != 0){
+                int yzsl = projectCostHuiji1.getYzsl();//获取研制数量
+                BigDecimal yzslBigDec = BigDecimal.valueOf(yzsl);
+                projectCostHuiji1.setYzsl(1);//研制数量
+                if(projectCostHuiji1.getOneCost() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getOneCost().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//单台成本
+                if(projectCostHuiji1.getOneIncome() != null) projectCostHuiji1.setOneIncome(projectCostHuiji1.getOneIncome().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//单台收入
+                if(projectCostHuiji1.getOneProfit() != null) projectCostHuiji1.setOneProfit(projectCostHuiji1.getOneProfit().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//单台利润
+
+                if(projectCostHuiji1.getGlf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getGlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//管理费
+                if(projectCostHuiji1.getSwf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getSwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//事务费
+                if(projectCostHuiji1.getWxf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getWxf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//外协费
+                if(projectCostHuiji1.getZyf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getZyf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//专用费
+                if(projectCostHuiji1.getGzjlwf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getGzjlwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工资费
+                if(projectCostHuiji1.getGdzczj() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getGdzczj().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//固资费
+                if(projectCostHuiji1.getClf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getClf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//材料费
+                if(projectCostHuiji1.getRldlf() != null) projectCostHuiji1.setOneCost(projectCostHuiji1.getRldlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//燃动费
+
+                if(projectCostHuiji1.getZjcb() != null) projectCostHuiji1.setZjcb(projectCostHuiji1.getZjcb().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//装机成本
+                if(projectCostHuiji1.getLbsy() != null) projectCostHuiji1.setLbsy(projectCostHuiji1.getLbsy().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//内部试验
+                if(projectCostHuiji1.getWorkhour() != null) projectCostHuiji1.setWorkhour(projectCostHuiji1.getWorkhour().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工时
+            }
+            listOne.add(projectCostHuiji1);
+        }
+        projectCostHuijiCompare.setCompareAll(listAll);//总的数据对比
+        projectCostHuijiCompare.setCompareOne(listOne);//单个研制数量的数据对比
+
+        return projectCostHuijiCompare;
     }
 
     /**计算项目成本汇集的总和*/