Commit 50b8dee1 authored by chenyuefang's avatar chenyuefang

Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司

parents 6ec74ee2 3b5b5658
...@@ -8,6 +8,7 @@ import com.dsk.common.core.page.TableDataInfo; ...@@ -8,6 +8,7 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.CbProjectRecord; import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.*; import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo; import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
import com.dsk.cscec.domain.vo.CbProjectInfoVo; import com.dsk.cscec.domain.vo.CbProjectInfoVo;
import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo; import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo;
import com.dsk.cscec.service.CbProjectRecordService; import com.dsk.cscec.service.CbProjectRecordService;
...@@ -138,6 +139,14 @@ public class CbProjectRecordController extends BaseController { ...@@ -138,6 +139,14 @@ public class CbProjectRecordController extends BaseController {
return toAjax(baseService.deleteDraft(projectId)); return toAjax(baseService.deleteDraft(projectId));
} }
/**
* 获取项目详情头部信息
*/
@GetMapping("/getCbProjectHeadInfo/{projectId}")
public R<CbProjectHeadInfoVo> getCbProjectHeadInfo(@NotNull(message = "项目ID不能为空") @PathVariable Long projectId) {
return R.ok(baseService.getCbProjectHeadInfo(projectId));
}
/** /**
* 获取工程项目信息 * 获取工程项目信息
*/ */
......
...@@ -35,6 +35,14 @@ public class CbCostMeasureActual { ...@@ -35,6 +35,14 @@ public class CbCostMeasureActual {
@TableField(value = "cost_effective") @TableField(value = "cost_effective")
private BigDecimal costEffective; private BigDecimal costEffective;
/**
* 本月工程量
*/
@TableField(value = "project_volume")
private BigDecimal projectVolume;
/** /**
* 截止本月工程量 * 截止本月工程量
*/ */
......
...@@ -25,6 +25,7 @@ public class CbCostMeasureActualSaveBo { ...@@ -25,6 +25,7 @@ public class CbCostMeasureActualSaveBo {
/** /**
* 计划成本措施费id * 计划成本措施费id
*/ */
@NotNull(message = "计划成本措施费id不能为空")
private Long planMeasureId; private Long planMeasureId;
/** /**
...@@ -39,6 +40,11 @@ public class CbCostMeasureActualSaveBo { ...@@ -39,6 +40,11 @@ public class CbCostMeasureActualSaveBo {
*/ */
private BigDecimal costEffective; private BigDecimal costEffective;
/**
* 本月工程量
*/
private BigDecimal projectVolume;
/** /**
* 截止本月工程量 * 截止本月工程量
*/ */
......
...@@ -19,6 +19,9 @@ public class CbCostMeasureActualVo { ...@@ -19,6 +19,9 @@ public class CbCostMeasureActualVo {
private Long id; private Long id;
private Long actualId;
private Long parentId; private Long parentId;
...@@ -122,6 +125,11 @@ public class CbCostMeasureActualVo { ...@@ -122,6 +125,11 @@ public class CbCostMeasureActualVo {
*/ */
private BigDecimal costEffective; private BigDecimal costEffective;
/**
* 本月工程量
*/
private BigDecimal projectVolume;
/** /**
* 截止本月工程量 * 截止本月工程量
*/ */
...@@ -171,7 +179,7 @@ public class CbCostMeasureActualVo { ...@@ -171,7 +179,7 @@ public class CbCostMeasureActualVo {
private Date updateTime; private Date updateTime;
private List<CbCostMeasureActualVo> childrens; // private List<CbCostMeasureActualVo> childrens;
public static final String COL_ID = "id"; public static final String COL_ID = "id";
......
package com.dsk.cscec.domain.vo;
import lombok.Data;
/**
* @author sxk
* @date 2024.03.06
* @time 09:12
*/
@Data
public class CbProjectHeadInfoVo {
/**
* 项目ID
*/
private Long id;
/**
* 项目名称
*/
private String projectName;
/**
* IPM项目编码
*/
private String ipmProjectNo;
/**
* 客商名称(客户名称)
*/
private String merchantName;
/**
* 签订单位
*/
private String signingUnit;
}
...@@ -3,8 +3,11 @@ package com.dsk.cscec.mapper; ...@@ -3,8 +3,11 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.CbCostMeasureActual; import com.dsk.cscec.domain.CbCostMeasureActual;
import com.dsk.cscec.domain.bo.CbCostMeasureActualBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualBo;
import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
import com.dsk.cscec.domain.vo.CbCostMeasureActualVo; import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActual> { public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActual> {
...@@ -14,5 +17,7 @@ public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActua ...@@ -14,5 +17,7 @@ public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActua
List<CbCostMeasureActualVo> selectDataList(CbCostMeasureActualBo costMeasureActualBo); List<CbCostMeasureActualVo> selectDataList(CbCostMeasureActualBo costMeasureActualBo);
List<CbCostMeasureActualVo> getMonthActualCostList(Long projectId, String month); List<CbCostMeasureActualVo> getMonthActualCostList(@Param("projectId") Long projectId,@Param("month") String month);
BigDecimal selectSumData(CbCostMeasureActualSaveBo bo);
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ import com.dsk.common.core.page.TableDataInfo; ...@@ -6,6 +6,7 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.CbProjectRecord; import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.*; import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo; import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo; import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo;
import java.util.List; import java.util.List;
...@@ -105,6 +106,14 @@ public interface CbProjectRecordService extends IService<CbProjectRecord> { ...@@ -105,6 +106,14 @@ public interface CbProjectRecordService extends IService<CbProjectRecord> {
*/ */
Integer deleteDraft(Long projectId); Integer deleteDraft(Long projectId);
/**
* 获取项目详情头部信息
*
* @param projectId 项目ID
* @return 项目详情头部信息
*/
CbProjectHeadInfoVo getCbProjectHeadInfo(Long projectId);
/** /**
* 每2分钟刷新一次项目台账列表内"解析中"项目的状态 * 每2分钟刷新一次项目台账列表内"解析中"项目的状态
*/ */
......
...@@ -8,6 +8,7 @@ import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo; ...@@ -8,6 +8,7 @@ import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
import com.dsk.cscec.domain.vo.CbCostMeasureActualVo; import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,5 +21,7 @@ import java.util.Map; ...@@ -20,5 +21,7 @@ import java.util.Map;
public interface ICbCostMeasureActualService extends IService<CbCostMeasureActual> { public interface ICbCostMeasureActualService extends IService<CbCostMeasureActual> {
List<CbCostMeasureActualVo> getMonthActualCostList(Long projectId, String month); List<CbCostMeasureActualVo> getMonthActualCostList(Long projectId, String month);
BigDecimal selectSumData(CbCostMeasureActualSaveBo bo);
} }
...@@ -9,6 +9,8 @@ import cn.hutool.core.lang.tree.Tree; ...@@ -9,6 +9,8 @@ import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.math.MathUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
...@@ -185,6 +187,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -185,6 +187,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
treeNode.setId(object.getId());//id treeNode.setId(object.getId());//id
treeNode.setParentId(object.getParentId());//父id treeNode.setParentId(object.getParentId());//父id
// 扩展属性 ... // 扩展属性 ...
treeNode.putExtra("actualId",object.getActualId());
treeNode.putExtra("itemContent", object.getItemContent()); treeNode.putExtra("itemContent", object.getItemContent());
treeNode.putExtra("number", object.getNumber()); treeNode.putExtra("number", object.getNumber());
treeNode.putExtra("workContent", object.getWorkContent()); treeNode.putExtra("workContent", object.getWorkContent());
...@@ -205,6 +208,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -205,6 +208,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
treeNode.putExtra("planMeasureId", object.getPlanMeasureId()); treeNode.putExtra("planMeasureId", object.getPlanMeasureId());
treeNode.putExtra("monthCostRate", object.getMonthCostRate()); treeNode.putExtra("monthCostRate", object.getMonthCostRate());
treeNode.putExtra("costEffective", object.getCostEffective()); treeNode.putExtra("costEffective", object.getCostEffective());
treeNode.putExtra("projectVolume", object.getProjectVolume());
treeNode.putExtra("currentProjectVolume", object.getCurrentProjectVolume()); treeNode.putExtra("currentProjectVolume", object.getCurrentProjectVolume());
treeNode.putExtra("submitProjectVolume", object.getSubmitProjectVolume()); treeNode.putExtra("submitProjectVolume", object.getSubmitProjectVolume());
treeNode.putExtra("month", object.getMonth()); treeNode.putExtra("month", object.getMonth());
...@@ -223,8 +227,11 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -223,8 +227,11 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
CbCostMeasureActual cbCostMeasureActual = new CbCostMeasureActual(); CbCostMeasureActual cbCostMeasureActual = new CbCostMeasureActual();
BeanUtil.copyProperties(cbCostMeasureActualSaveBo, cbCostMeasureActual); BeanUtil.copyProperties(cbCostMeasureActualSaveBo, cbCostMeasureActual);
cbCostMeasureActual.setDelFlag(0); cbCostMeasureActual.setDelFlag(0);
cbCostMeasureActual.setUpdateId(LoginHelper.getUserId()); // cbCostMeasureActual.setUpdateId(LoginHelper.getUserId());
cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername()); // cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername());
// 查询计划成本累积实际成本
BigDecimal bigDecimal = cbCostMeasureActualService.selectSumData(cbCostMeasureActualSaveBo);
cbCostMeasureActual.setCurrentProjectVolume(NumberUtil.add(bigDecimal,cbCostMeasureActual.getProjectVolume()));
saveList.add(cbCostMeasureActual); saveList.add(cbCostMeasureActual);
} }
cbCostMeasureActualService.saveOrUpdateBatch(saveList); cbCostMeasureActualService.saveOrUpdateBatch(saveList);
......
...@@ -19,6 +19,7 @@ import com.dsk.cscec.domain.CbProjectFile; ...@@ -19,6 +19,7 @@ import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.CbProjectRecord; import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.bo.*; import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo; import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo; import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo;
import com.dsk.cscec.mapper.CbProjectFileMapper; import com.dsk.cscec.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper; import com.dsk.cscec.mapper.CbProjectRecordMapper;
...@@ -430,6 +431,22 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe ...@@ -430,6 +431,22 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
return baseMapper.deleteById(projectRecord); return baseMapper.deleteById(projectRecord);
} }
/**
* 获取项目详情头部信息
*
* @param projectId 项目ID
* @return 项目详情头部信息
*/
@Override
public CbProjectHeadInfoVo getCbProjectHeadInfo(Long projectId) {
//校验项目是否存在
CbProjectRecord projectRecord = this.checkProjectExist(projectId);
//TODO:客户名称、签订单位字段未确定
CbProjectHeadInfoVo infoVo = BeanUtil.toBean(projectRecord, CbProjectHeadInfoVo.class);
return infoVo;
}
/** /**
* 每2分钟刷新一次项目台账列表内"解析中"项目的状态 * 每2分钟刷新一次项目台账列表内"解析中"项目的状态
*/ */
......
...@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl; ...@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.domain.CbCostMeasure; import com.dsk.cscec.domain.CbCostMeasure;
import com.dsk.cscec.domain.CbCostMeasureActual; import com.dsk.cscec.domain.CbCostMeasureActual;
import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
import com.dsk.cscec.domain.vo.CbCostMeasureActualVo; import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
import com.dsk.cscec.mapper.CbCostMeasureActualMapper; import com.dsk.cscec.mapper.CbCostMeasureActualMapper;
import com.dsk.cscec.mapper.CbCostMeasureMapper; import com.dsk.cscec.mapper.CbCostMeasureMapper;
import com.dsk.cscec.service.ICbCostMeasureActualService; import com.dsk.cscec.service.ICbCostMeasureActualService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
...@@ -22,4 +24,9 @@ public class ICbCostMeasureActualServiceImpl extends ServiceImpl<CbCostMeasureAc ...@@ -22,4 +24,9 @@ public class ICbCostMeasureActualServiceImpl extends ServiceImpl<CbCostMeasureAc
public List<CbCostMeasureActualVo> getMonthActualCostList(Long projectId, String month) { public List<CbCostMeasureActualVo> getMonthActualCostList(Long projectId, String month) {
return baseMapper.getMonthActualCostList(projectId,month); return baseMapper.getMonthActualCostList(projectId,month);
} }
@Override
public BigDecimal selectSumData(CbCostMeasureActualSaveBo bo) {
return baseMapper.selectSumData(bo);
}
} }
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="plan_measure_id" jdbcType="BIGINT" property="planMeasureId" /> <result column="plan_measure_id" jdbcType="BIGINT" property="planMeasureId" />
<result column="month_cost_rate" jdbcType="DECIMAL" property="monthCostRate" /> <result column="month_cost_rate" jdbcType="DECIMAL" property="monthCostRate" />
<result column="project_volume" jdbcType="DECIMAL" property="projectVolume" />
<result column="cost_effective" jdbcType="DECIMAL" property="costEffective" /> <result column="cost_effective" jdbcType="DECIMAL" property="costEffective" />
<result column="current_project_volume" jdbcType="DECIMAL" property="currentProjectVolume" /> <result column="current_project_volume" jdbcType="DECIMAL" property="currentProjectVolume" />
<result column="submit_project_volume" jdbcType="DECIMAL" property="submitProjectVolume" /> <result column="submit_project_volume" jdbcType="DECIMAL" property="submitProjectVolume" />
...@@ -21,7 +22,7 @@ ...@@ -21,7 +22,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, plan_measure_id, month_cost_rate, cost_effective, current_project_volume, submit_project_volume, id, plan_measure_id, month_cost_rate, cost_effective,project_volume, current_project_volume, submit_project_volume,
`month`, push_time, push_data_json, del_flag, update_user, update_id, create_time, `month`, push_time, push_data_json, del_flag, update_user, update_id, create_time,
update_time update_time
</sql> </sql>
...@@ -180,8 +181,13 @@ ...@@ -180,8 +181,13 @@
FROM cb_cost_measure_actual t FROM cb_cost_measure_actual t
inner JOIN cb_cost_measure t1 ON t1.id=t.plan_measure_id inner JOIN cb_cost_measure t1 ON t1.id=t.plan_measure_id
WHERE WHERE
t1.project_id=1 t1.project_id=#{projectId}
AND t1.parent_id=0 AND t1.parent_id=0
AND t.`month`='202406' AND t.`month`=#{month}
</select>
<select id="selectSumData" resultType="java.math.BigDecimal">
SELECT SUM(t.project_volume) measureTotal FROM cb_cost_measure_actual t WHERE t.plan_measure_id=#{planMeasureId}
and t.month &lt;#{month}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
<select id="selectListByProjectAndNo" resultType="com.dsk.cscec.domain.vo.CbCostMeasureActualVo"> <select id="selectListByProjectAndNo" resultType="com.dsk.cscec.domain.vo.CbCostMeasureActualVo">
SELECT t.*,t1.plan_measure_id,t1.month_cost_rate, t1.cost_effective, t1.current_project_volume,t1.submit_project_volume,t1.`month`,t1.push_time FROM cb_cost_measure t SELECT t.*,t1.actualId,t1.plan_measure_id,t1.month_cost_rate, t1.cost_effective, t1.project_volume,t1.current_project_volume,t1.submit_project_volume,t1.`month`,t1.push_time FROM cb_cost_measure t
left JOIN ( left JOIN (
SELECT t1.plan_measure_id,t1.month_cost_rate, t1.cost_effective, t1.current_project_volume,t1.submit_project_volume,t1.`month`,t1.push_time FROM cb_cost_measure t SELECT t.id actualId,t1.plan_measure_id,t1.month_cost_rate, t1.cost_effective,t1.project_volume, t1.current_project_volume,t1.submit_project_volume,t1.`month`,t1.push_time FROM cb_cost_measure t
inner JOIN cb_cost_measure_actual t1 ON t1.plan_measure_id=t.id inner JOIN cb_cost_measure_actual t1 ON t1.plan_measure_id=t.id
WHERE WHERE
t.project_id=#{projectId} t.project_id=#{projectId}
......
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