Commit fbed8aee authored by tianhongyang's avatar tianhongyang

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys...

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys into V20231129-中建一局二公司
parents ee35bb14 9ff23aa9
...@@ -48,6 +48,10 @@ public interface GlobalConstants { ...@@ -48,6 +48,10 @@ public interface GlobalConstants {
*/ */
String BATCH_IMPORT_FAIL_USERS = GLOBAL_REDIS_KEY + "batch_import_fail_users"; String BATCH_IMPORT_FAIL_USERS = GLOBAL_REDIS_KEY + "batch_import_fail_users";
/**
* 单位换算提示
*/
String UNIT_CONVERSION_NOTICE = GLOBAL_REDIS_KEY + "unit_conversion_notice:";
/** /**
* OSS配置 * OSS配置
......
...@@ -48,7 +48,7 @@ public class DataAnalysisComponent { ...@@ -48,7 +48,7 @@ public class DataAnalysisComponent {
* 工料汇总数据解析 * 工料汇总数据解析
*/ */
@Async @Async
public void quantitySummaryDataAnalysis(CbProjectBaseBo bo) throws Exception { public void quantitySummaryDataAnalysis(CbProjectBaseBo bo){
//查询工料汇总导入文件 //查询工料汇总导入文件
List<CbProjectFile> fileList = projectFileService.selectAnalysisList(bo.getProjectId(), CbProjectConstants.CB_TYPE_QUANTITY_SUMMARY, bo.getCbStage()); List<CbProjectFile> fileList = projectFileService.selectAnalysisList(bo.getProjectId(), CbProjectConstants.CB_TYPE_QUANTITY_SUMMARY, bo.getCbStage());
...@@ -59,17 +59,13 @@ public class DataAnalysisComponent { ...@@ -59,17 +59,13 @@ public class DataAnalysisComponent {
//文件下载 //文件下载
InputStream inputStream = ossService.downFileIO(file.getFileOssId()); InputStream inputStream = ossService.downFileIO(file.getFileOssId());
if (ObjectUtil.isNull(inputStream)) { if (ObjectUtil.isNull(inputStream)) {
file.setFileParseStatus(3); addFileErrorMsg(file, "文件数据不存在");
file.setFailRemark("文件数据不存在");
projectFileService.updateById(file);
break; break;
} }
//解析数据 //解析数据
List<CbQuantitySummary> importList = new ExcelUtils<>(CbQuantitySummary.class).importExcelAllSheet(inputStream, 1); List<CbQuantitySummary> importList = new ExcelUtils<>(CbQuantitySummary.class).importExcelAllSheet(inputStream, 1);
if (importList.isEmpty()) { if (importList.isEmpty()) {
file.setFileParseStatus(3); addFileErrorMsg(file, "表格中不存在待导入数据");
file.setFailRemark("表格中不存在待导入数据!");
projectFileService.updateById(file);
break; break;
} }
List<CbQuantitySummary> quantitySummaryList = importList.stream().parallel() List<CbQuantitySummary> quantitySummaryList = importList.stream().parallel()
...@@ -80,7 +76,8 @@ public class DataAnalysisComponent { ...@@ -80,7 +76,8 @@ public class DataAnalysisComponent {
item.setCbProjectFileId(file.getId()); item.setCbProjectFileId(file.getId());
}).collect(Collectors.toList()); }).collect(Collectors.toList());
if (quantitySummaryList.isEmpty()) { if (quantitySummaryList.isEmpty()) {
throw new ServiceException("表格中不存在有效数据!"); addFileErrorMsg(file, "表格中不存在有效数据");
break;
} }
transactionTemplate.execute(status -> { transactionTemplate.execute(status -> {
...@@ -114,18 +111,20 @@ public class DataAnalysisComponent { ...@@ -114,18 +111,20 @@ public class DataAnalysisComponent {
} }
} catch (Exception e) { } catch (Exception e) {
status.setRollbackOnly(); status.setRollbackOnly();
file.setFileParseStatus(3); addFileErrorMsg(file, e.getMessage());
file.setFailRemark(e.getMessage());
projectFileService.updateById(file);
} }
return Boolean.TRUE; return Boolean.TRUE;
}); });
} catch (Exception e) { } catch (Exception e) {
file.setFileParseStatus(3); addFileErrorMsg(file, e.getMessage());
file.setFailRemark(e.getMessage());
projectFileService.updateById(file);
} }
} }
} }
private void addFileErrorMsg(CbProjectFile file, String errorMsg) {
file.setFileParseStatus(3);
file.setFailRemark(errorMsg);
projectFileService.updateById(file);
}
} }
...@@ -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;
/**
* 成本阶段(0:标前成本、1:标后成本、2:转固成本)
*/
private Integer cbStage;
/**
* 客商名称(客户名称)
*/
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);
} }
...@@ -30,5 +30,6 @@ public interface ICbQuantitySummaryService extends IService<CbQuantitySummary> { ...@@ -30,5 +30,6 @@ public interface ICbQuantitySummaryService extends IService<CbQuantitySummary> {
boolean batchInsert(List<CbQuantitySummary> list); boolean batchInsert(List<CbQuantitySummary> list);
void conversionNotice(CbQuantitySummaryListBo 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}
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="directCost-cont"> <div class="directCost-cont">
<div class="left"> <div class="left">
<div class="left-side-menu"> <div class="left-side-menu">
<project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive"> <project-side-menu :menuTree="menuTreeList" :menuOptions="menuOptions" :unique-opened="false" :default-active="defaultActive" @select="handleSelect">
<template :slot="`${menuDetails.menuName}-${menuDetails.menuLevel}`"> <template :slot="`${menuDetails.menuName}-${menuDetails.menuLevel}`">
<img src="@/assets/images/projectCostLedger/icon_cost_detail_1.svg" alt=""> <img src="@/assets/images/projectCostLedger/icon_cost_detail_1.svg" alt="">
<div class="project-sub-menu-title-text">{{menuDetails.menuName}}</div> <div class="project-sub-menu-title-text">{{menuDetails.menuName}}</div>
...@@ -162,13 +162,14 @@ export default { ...@@ -162,13 +162,14 @@ export default {
children : "childrenList" children : "childrenList"
}, },
detailsId:'', detailsId:'',
menuId:''
}; };
}, },
watch: { watch: {
projectDetailInfo: { projectDetailInfo: {
handler(newValue) { handler(newValue) {
this.comProjectDetailInfo = newValue ? newValue : {}; this.comProjectDetailInfo = newValue ? newValue : {};
this.getCbDirectExpenseList('1763446872284012544') this.getCbDirectExpenseMenuTreeApi(this.comProjectDetailInfo.projectId)
// this.getProjectOtherStatistics(this.comProjectDetailInfo.projectId) // this.getProjectOtherStatistics(this.comProjectDetailInfo.projectId)
// this.getProjectOtherStatistics('1762014527685136385') // this.getProjectOtherStatistics('1762014527685136385')
// this.init(this.comProjectDetailInfo); // this.init(this.comProjectDetailInfo);
...@@ -185,7 +186,7 @@ export default { ...@@ -185,7 +186,7 @@ export default {
}, },
//可访问data属性 //可访问data属性
created() { created() {
this.getCbDirectExpenseMenuTreeApi('1760222923030876161')
}, },
mounted() { mounted() {
...@@ -204,10 +205,11 @@ export default { ...@@ -204,10 +205,11 @@ export default {
this.menuDetails=_tempArray this.menuDetails=_tempArray
this.menuTreeList.push(_tempArray); this.menuTreeList.push(_tempArray);
const defaultCurrent = this.findMenuNode(this.menuTreeList, "土石方部分"); const defaultCurrent = this.findMenuNode(this.menuTreeList, "土石方部分");
console.log(defaultCurrent)
if (defaultCurrent) { if (defaultCurrent) {
this.defaultActive = defaultCurrent.menuName; this.defaultActive = defaultCurrent.menuName;
this.menuId = defaultCurrent.menuId;
} }
this.getCbDirectExpenseList(defaultCurrent.menuId)
} }
} catch (error) { } catch (error) {
...@@ -229,6 +231,11 @@ export default { ...@@ -229,6 +231,11 @@ export default {
} }
}, },
handleSelect(menuPath, menuPathArray){
this.defaultActive=menuPath;
this.menuId=menuPathArray.originData.menuId
this.getCbDirectExpenseList(menuPathArray.originData.menuId)
},
tableRowClassName({row, rowIndex}) { tableRowClassName({row, rowIndex}) {
if (row.expenseCategoryTag === '清') { if (row.expenseCategoryTag === '清') {
return 'color1'; return 'color1';
...@@ -248,7 +255,7 @@ export default { ...@@ -248,7 +255,7 @@ export default {
cbDirectExpenseAdd(JSON.stringify(this.ruleForm)).then(res=>{ cbDirectExpenseAdd(JSON.stringify(this.ruleForm)).then(res=>{
if(res.code == 200){ if(res.code == 200){
this.dialogVisible = false this.dialogVisible = false
this.getCbDirectExpenseList('1763446872284012544') this.getCbDirectExpenseList(this.menuId)
} }
}) })
}, },
...@@ -264,7 +271,7 @@ export default { ...@@ -264,7 +271,7 @@ export default {
type: 'success', type: 'success',
message: '删除成功!' message: '删除成功!'
}); });
this.getCbDirectExpenseList() this.getCbDirectExpenseList(this.menuId)
} }
}) })
}).catch(() => { }).catch(() => {
......
...@@ -209,8 +209,8 @@ export default { ...@@ -209,8 +209,8 @@ export default {
projectDetailInfo: { projectDetailInfo: {
handler(newValue) { handler(newValue) {
this.comProjectDetailInfo = newValue ? newValue : {}; this.comProjectDetailInfo = newValue ? newValue : {};
// this.getCbProjectInfo(this.comProjectDetailInfo.projectId) this.getCbProjectInfo(this.comProjectDetailInfo.projectId)
this.getCbProjectInfo('1759507630130479106') // this.getCbProjectInfo('1759507630130479106')
// this.init(this.comProjectDetailInfo); // this.init(this.comProjectDetailInfo);
}, },
deep: true, deep: true,
......
...@@ -98,10 +98,10 @@ ...@@ -98,10 +98,10 @@
<el-table-column label="成本合价" width="130" prop="costEffective"> <el-table-column label="成本合价" width="130" prop="costEffective">
<template slot-scope="scope">{{scope.row.costEffective || '--'}}</template> <template slot-scope="scope">{{scope.row.costEffective || '--'}}</template>
</el-table-column> </el-table-column>
<el-table-column label="本月工程量" width="130" prop="currentProjectVolume"> <el-table-column label="本月工程量" width="130" prop="projectVolume">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="isinput"><el-input v-model="scope.row.currentProjectVolume "></el-input></template> <template v-if="isinput"><el-input v-model="scope.row.projectVolume "></el-input></template>
<template v-else>{{scope.row.currentProjectVolume || '--'}}</template> <template v-else>{{scope.row.projectVolume || '--'}}</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="截止本月工程量" width="130" prop="currentProjectVolume"> <el-table-column label="截止本月工程量" width="130" prop="currentProjectVolume">
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<el-input type="text" v-model="queryParam.projectName" placeholder="请输入分包项目名称"></el-input> <el-input type="text" v-model="queryParam.projectName" placeholder="请输入分包项目名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="本月实际工程量" class="row"> <el-form-item label="本月实际工程量" class="row">
<el-input type="text" placeholder="请输入本月实际工程量" v-model="queryParam.currentProjectVolume"></el-input> <el-input type="text" placeholder="请输入本月实际工程量" v-model="queryParam.projectVolume"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="需推送工程量" class="row"> <el-form-item label="需推送工程量" class="row">
<el-input type="text" placeholder="请输入需推送工程量" v-model="queryParam.submitProjectVolume"></el-input> <el-input type="text" placeholder="请输入需推送工程量" v-model="queryParam.submitProjectVolume"></el-input>
...@@ -277,7 +277,7 @@ export default { ...@@ -277,7 +277,7 @@ export default {
} }
}, },
tored1({column}){ tored1({column}){
let arr = ['submitProjectVolume','suncurrentProjectVolume','currentProjectVolume','costEffective','monthCostRate'] let arr = ['submitProjectVolume','suncurrentProjectVolume','projectVolume','currentProjectVolume','costEffective','monthCostRate']
if(arr.includes(column.property)&&this.isinput){ if(arr.includes(column.property)&&this.isinput){
return 'tored' return 'tored'
} }
...@@ -392,6 +392,7 @@ export default { ...@@ -392,6 +392,7 @@ export default {
projectVolume(row.id).then(res => { projectVolume(row.id).then(res => {
if (res.data) { if (res.data) {
let datas = res.data; let datas = res.data;
this.queryParam.projectVolume = datas.projectVolume;
this.queryParam.currentProjectVolume = datas.currentProjectVolume; this.queryParam.currentProjectVolume = datas.currentProjectVolume;
this.queryParam.ipmProjectCode = datas.ipmProjectCode; this.queryParam.ipmProjectCode = datas.ipmProjectCode;
this.queryParam.ipmContractCode = datas.ipmContractCode; this.queryParam.ipmContractCode = datas.ipmContractCode;
...@@ -417,10 +418,12 @@ export default { ...@@ -417,10 +418,12 @@ export default {
this.cbVisible = true this.cbVisible = true
}, },
addinputs(){ addinputs(){
this.tableData.forEach(item=>{ let tables = JSON.parse(JSON.stringify(this.tableData))
tables.forEach(item=>{
item.id = item.actualId
item.month = this.expenseDate item.month = this.expenseDate
}) })
saveBatch(JSON.stringify(this.tableData)).then(res=>{ saveBatch(JSON.stringify(tables)).then(res=>{
if(res.code == 200){ if(res.code == 200){
this.$message.success(res.msg) this.$message.success(res.msg)
this.isinput = false this.isinput = false
......
...@@ -226,7 +226,7 @@ export default { ...@@ -226,7 +226,7 @@ export default {
projectDetailInfo: { projectDetailInfo: {
handler(newValue) { handler(newValue) {
this.comProjectDetailInfo = newValue ? newValue : {}; this.comProjectDetailInfo = newValue ? newValue : {};
this.getProjectOtherStatistics(this.comProjectDetailInfo.projectId) this.getProjectOtherMenuTreeApi(this.comProjectDetailInfo.projectId)
// this.getProjectOtherStatistics('1762014527685136385') // this.getProjectOtherStatistics('1762014527685136385')
// this.init(this.comProjectDetailInfo); // this.init(this.comProjectDetailInfo);
}, },
...@@ -242,7 +242,7 @@ export default { ...@@ -242,7 +242,7 @@ export default {
}, },
//可访问data属性 //可访问data属性
created() { created() {
this.getProjectOtherMenuTreeApi('1762014527685136385')
}, },
//计算集 //计算集
...@@ -268,9 +268,9 @@ export default { ...@@ -268,9 +268,9 @@ export default {
const result = await getProjectOtherMenuTreeApi(params); const result = await getProjectOtherMenuTreeApi(params);
if (result.code == 200) { if (result.code == 200) {
const _tempArray = result.data; const _tempArray = result.data;
_tempArray.unshift({id:"11",itemContent:"费用汇总"}); _tempArray.unshift({id:"11",itemContent:"费用汇总"});
this.menuTreeList[0].children = _tempArray; this.menuTreeList[0].children = _tempArray;
this.getProjectOtherStatistics(this.comProjectDetailInfo.projectId)
} }
} catch (error) { } catch (error) {
......
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