Commit 6cca5fd0 authored by chenyuefang's avatar chenyuefang

成本汇总相关

parent d639d135
package com.dsk.cscec.controller; package com.dsk.cscec.controller;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.cscec.domain.bo.CbSummaryActualBo; import com.dsk.cscec.domain.bo.CbSummaryActualBo;
import com.dsk.cscec.domain.bo.CbSummaryActualListBo; import com.dsk.cscec.domain.bo.CbSummaryActualListBo;
import com.dsk.cscec.domain.bo.CbSummaryBo; import com.dsk.cscec.domain.bo.CbSummaryBo;
import com.dsk.cscec.domain.vo.CbSummaryActualListVo;
import com.dsk.cscec.domain.vo.CbSummaryCostAccountExportVo;
import com.dsk.cscec.domain.vo.CbSummaryProjectExportVo;
import com.dsk.cscec.service.CbSummaryService; import com.dsk.cscec.service.CbSummaryService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -31,7 +37,7 @@ public class CbSummaryController extends BaseController { ...@@ -31,7 +37,7 @@ public class CbSummaryController extends BaseController {
/** /**
* 成本汇总左侧列表 * 成本汇总左侧一级数据列表
* *
* @param bo * @param bo
* @return * @return
...@@ -41,9 +47,13 @@ public class CbSummaryController extends BaseController { ...@@ -41,9 +47,13 @@ public class CbSummaryController extends BaseController {
return R.ok(cbSummaryService.getCbNameList(bo)); return R.ok(cbSummaryService.getCbNameList(bo));
} }
//成本汇总数据列表 /**
* 成本汇总数据列表
* @param bo
* @return
*/
@GetMapping("/list") @GetMapping("/list")
public R getList(CbSummaryActualListBo bo) { public R<List<CbSummaryActualListVo>> getList(CbSummaryActualListBo bo) {
return R.ok(cbSummaryService.getActualList(bo)); return R.ok(cbSummaryService.getActualList(bo));
} }
...@@ -69,7 +79,28 @@ public class CbSummaryController extends BaseController { ...@@ -69,7 +79,28 @@ public class CbSummaryController extends BaseController {
return cbSummaryService.insertOrUpdateActual(boList) == true ? R.ok() : R.fail(); return cbSummaryService.insertOrUpdateActual(boList) == true ? R.ok() : R.fail();
} }
//锁定成本-至少有一条实际数据? //锁定成本前提示未填项(按一级大类)
//锁定成本
/**
* 导出excel-按月导出所有
* @param bo
* @param response
*/
@PostMapping("/export")
public void export(CbSummaryActualListBo bo, HttpServletResponse response) {
List<CbSummaryActualListVo> actualListVoList = cbSummaryService.getAll(bo);
if(bo.getCbType()==1){
List<CbSummaryProjectExportVo> list = BeanUtil.copyToList(actualListVoList,CbSummaryProjectExportVo.class);
ExcelUtil.exportExcel(list, "成本汇总按项目汇总"+bo.getExpenseDate(), CbSummaryProjectExportVo.class, response);
}else {
List<CbSummaryCostAccountExportVo> list = BeanUtil.copyToList(actualListVoList,CbSummaryCostAccountExportVo.class);
ExcelUtil.exportExcel(list, "成本汇总按成本科目汇总"+bo.getExpenseDate(), CbSummaryCostAccountExportVo.class, response);
}
}
//导入
//导出excel-缺模板
} }
...@@ -16,7 +16,7 @@ import java.math.BigDecimal; ...@@ -16,7 +16,7 @@ import java.math.BigDecimal;
@Data @Data
public class CbSummaryActualBo extends BaseEntity { public class CbSummaryActualBo extends BaseEntity {
/** /**
* 主键id * 费用id
*/ */
private Long id; private Long id;
/** /**
......
...@@ -15,6 +15,10 @@ public class CbSummaryActualListBo extends BaseEntity { ...@@ -15,6 +15,10 @@ public class CbSummaryActualListBo extends BaseEntity {
* 主键id * 主键id
*/ */
private Long id; private Long id;
/**
* 成本阶段( 0:标前成本、1:标后成本、2:转固成本)
*/
private Integer cbStage;
/** /**
* 成本类型(1项目汇总,2成本科目汇总) * 成本类型(1项目汇总,2成本科目汇总)
*/ */
......
...@@ -70,6 +70,14 @@ public class CbSummaryActualListVo extends BaseEntity { ...@@ -70,6 +70,14 @@ public class CbSummaryActualListVo extends BaseEntity {
* 本月费用(不含税) * 本月费用(不含税)
*/ */
private BigDecimal taxExclusiveExpense; private BigDecimal taxExclusiveExpense;
/**
* 截至本月费用(含税)
*/
private BigDecimal taxInclusiveExpenseTotal;
/**
* 截至本月费用(不含税)
*/
private BigDecimal taxExclusiveExpenseTotal;
/** /**
* 费用日期 * 费用日期
*/ */
......
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 成本汇总(CbSummary)-成本科目汇总导出Vo
*
* @author cyf
* @since 2024-02-06
*/
@Data
@NoArgsConstructor
public class CbSummaryCostAccountExportVo implements Serializable {
private static final long serialVersionUID = -20126964599875841L;
/**
* 序号
*/
@ExcelProperty(value = "序号")
private String number;
/**
* 成本科目
*/
@ExcelProperty(value = "成本科目")
private String cbName;
/**
* 不含税成本合价
*/
@ExcelProperty(value = "不含税成本合价")
private String taxExclusiveTotal;
/**
* 成本税金合价
*/
@ExcelProperty(value = "成本税金合价")
private String cbTaxesTotal;
/**
* 含税成本合价
*/
@ExcelProperty(value = "含税成本合价")
private String taxInclusiveTotal;
/**
* 成本占比
*/
@ExcelProperty(value = "成本占比")
private String cbProportion;
/**
* 含税成本平米指标
*/
@ExcelProperty(value = "含税成本平米指标")
private String taxInclusivePmTarget;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 本月费用(含税)
*/
@ExcelProperty(value = "本月费用(含税)")
private BigDecimal taxInclusiveExpense;
/**
* 本月费用(不含税)
*/
@ExcelProperty(value = "本月费用(不含税)")
private BigDecimal taxExclusiveExpense;
/**
* 截至本月费用(含税)
*/
@ExcelProperty(value = "截至本月费用(含税)")
private BigDecimal taxInclusiveExpenseTotal;
/**
* 截至本月费用(不含税)
*/
@ExcelProperty(value = "截至本月费用(不含税)")
private BigDecimal taxExclusiveExpenseTotal;
}
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 成本汇总(CbSummary)-项目汇总导出Vo
*
* @author cyf
* @since 2024-02-06
*/
@Data
@NoArgsConstructor
public class CbSummaryProjectExportVo implements Serializable {
private static final long serialVersionUID = -20126964599875841L;
/**
* 序号
*/
@ExcelProperty(value = "序号")
private String number;
/**
* 名称
*/
@ExcelProperty(value = "名称")
private String cbName;
/**
* 不含税成本合价
*/
@ExcelProperty(value = "不含税成本合价")
private String taxExclusiveTotal;
/**
* 成本税金合价
*/
@ExcelProperty(value = "成本税金合价")
private String cbTaxesTotal;
/**
* 含税成本合价
*/
@ExcelProperty(value = "含税成本合价")
private String taxInclusiveTotal;
/**
* 成本占比
*/
@ExcelProperty(value = "成本占比")
private String cbProportion;
/**
* 含税成本平米指标
*/
@ExcelProperty(value = "含税成本平米指标")
private String taxInclusivePmTarget;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 本月费用(含税)
*/
@ExcelProperty(value = "本月费用(含税)")
private BigDecimal taxInclusiveExpense;
/**
* 本月费用(不含税)
*/
@ExcelProperty(value = "本月费用(不含税)")
private BigDecimal taxExclusiveExpense;
/**
* 截至本月费用(含税)
*/
@ExcelProperty(value = "截至本月费用(含税)")
private BigDecimal taxInclusiveExpenseTotal;
/**
* 截至本月费用(不含税)
*/
@ExcelProperty(value = "截至本月费用(不含税)")
private BigDecimal taxExclusiveExpenseTotal;
}
...@@ -2,6 +2,7 @@ package com.dsk.cscec.mapper; ...@@ -2,6 +2,7 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.CbSummary; import com.dsk.cscec.domain.CbSummary;
import com.dsk.cscec.domain.bo.CbSummaryActualListBo;
import com.dsk.cscec.domain.bo.CbSummaryBo; import com.dsk.cscec.domain.bo.CbSummaryBo;
import com.dsk.cscec.domain.vo.CbSummaryActualListVo; import com.dsk.cscec.domain.vo.CbSummaryActualListVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -19,6 +20,24 @@ public interface CbSummaryMapper extends BaseMapper<CbSummary> { ...@@ -19,6 +20,24 @@ public interface CbSummaryMapper extends BaseMapper<CbSummary> {
List<CbSummaryActualListVo> getByParentId(@Param("parentId") Long parentId, @Param("expenseDate") String expenseDate); List<CbSummaryActualListVo> getByParentId(@Param("parentId") Long parentId, @Param("expenseDate") String expenseDate);
CbSummaryActualListVo getById(@Param("id") Long id, @Param("expenseDate") String expenseDate);
/**
* 根据月份获取所有项目汇总数据
*
* @param bo
* @return
*/
List<CbSummaryActualListVo> getProjectAll(@Param("bo") CbSummaryActualListBo bo);
/**
* 根据月份获取所有成本科目汇总数据
*
* @param bo
* @return
*/
List<CbSummaryActualListVo> getCostAccountAll(@Param("bo") CbSummaryActualListBo bo);
/** /**
* 获取已添加成本月份 * 获取已添加成本月份
* *
......
...@@ -53,4 +53,11 @@ public interface CbSummaryService extends IService<CbSummary> { ...@@ -53,4 +53,11 @@ public interface CbSummaryService extends IService<CbSummary> {
* @return * @return
*/ */
boolean insertOrUpdateActual(List<CbSummaryActualBo> boList); boolean insertOrUpdateActual(List<CbSummaryActualBo> boList);
/**
* 导出列表获取
* @param bo
* @return
*/
List<CbSummaryActualListVo> getAll(CbSummaryActualListBo bo);
} }
...@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl; ...@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.exception.ServiceException; import com.dsk.common.exception.ServiceException;
import com.dsk.cscec.constant.CbProjectConstants; import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.CbProjectFile; import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.CbSummary; import com.dsk.cscec.domain.CbSummary;
import com.dsk.cscec.domain.CbSummaryActual; import com.dsk.cscec.domain.CbSummaryActual;
import com.dsk.cscec.domain.bo.CbSummaryActualBo; import com.dsk.cscec.domain.bo.CbSummaryActualBo;
...@@ -16,6 +18,7 @@ import com.dsk.cscec.domain.bo.CbSummaryActualListBo; ...@@ -16,6 +18,7 @@ import com.dsk.cscec.domain.bo.CbSummaryActualListBo;
import com.dsk.cscec.domain.bo.CbSummaryBo; import com.dsk.cscec.domain.bo.CbSummaryBo;
import com.dsk.cscec.domain.vo.CbSummaryActualListVo; import com.dsk.cscec.domain.vo.CbSummaryActualListVo;
import com.dsk.cscec.mapper.CbProjectFileMapper; import com.dsk.cscec.mapper.CbProjectFileMapper;
import com.dsk.cscec.mapper.CbProjectRecordMapper;
import com.dsk.cscec.mapper.CbSummaryActualMapper; import com.dsk.cscec.mapper.CbSummaryActualMapper;
import com.dsk.cscec.mapper.CbSummaryMapper; import com.dsk.cscec.mapper.CbSummaryMapper;
import com.dsk.cscec.service.CbSummaryService; import com.dsk.cscec.service.CbSummaryService;
...@@ -25,7 +28,10 @@ import org.springframework.stereotype.Service; ...@@ -25,7 +28,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.*; import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* 成本汇总(CbSummary)表服务实现类 * 成本汇总(CbSummary)表服务实现类
...@@ -41,6 +47,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -41,6 +47,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
@Autowired @Autowired
private CbSummaryActualMapper cbSummaryActualMapper; private CbSummaryActualMapper cbSummaryActualMapper;
@Autowired
private CbProjectRecordMapper cbProjectRecordMapper;
@Override @Override
public void importCbProject(Long projectId, Integer cbStage) { public void importCbProject(Long projectId, Integer cbStage) {
//获取文件信息 //获取文件信息
...@@ -68,84 +77,87 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -68,84 +77,87 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
@Override @Override
public List<Map<String, Object>> getCbNameList(CbSummaryBo bo) { public List<Map<String, Object>> getCbNameList(CbSummaryBo bo) {
Assert.notNull(bo.getProjectId(), "项目id不能为空");
Assert.notNull(bo.getCbStage(), "成本阶段不能为空");
Assert.notNull(bo.getCbType(), "成本类型不能为空");
List<Map<String, Object>> resultList = new ArrayList<>(); List<Map<String, Object>> resultList = new ArrayList<>();
//项目汇总 bo.setLevel(0);
if (1 == bo.getCbType()) { List<Map<String, Object>> cbNameTop = baseMapper.selectByLevel(bo);
//获取一级数据
bo.setLevel(1);
List<Map<String, Object>> cbNames = baseMapper.selectByLevel(bo);
if (CollectionUtil.isEmpty(cbNames)) { bo.setLevel(1);
return null; List<Map<String, Object>> cbNames = baseMapper.selectByLevel(bo);
} resultList.addAll(cbNameTop);
Map<String, Object> xmhz = new HashMap<>(); resultList.addAll(cbNames);
xmhz.put("id", 0l);
xmhz.put("cbName", "成本汇总");
resultList.add(xmhz);
resultList.addAll(cbNames);
}
//成本科目汇总
if (2 == bo.getCbType()) {
bo.setLevel(0);
List<Map<String, Object>> cbNameTop = baseMapper.selectByLevel(bo);
bo.setLevel(1);
List<Map<String, Object>> cbNames = baseMapper.selectByLevel(bo);
resultList.addAll(cbNameTop);//todo
resultList.addAll(cbNames);
}
return resultList; return resultList;
} }
@Override @Override
public List<CbSummaryActualListVo> getActualList(CbSummaryActualListBo bo) { public List<CbSummaryActualListVo> getActualList(CbSummaryActualListBo bo) {
Assert.notNull(bo.getId(),"id不能为空");
Assert.notNull(bo.getCbType(),"成本类型不能为空");
if (StringUtil.isBlank(bo.getExpenseDate())) {
//默认当前月
bo.setExpenseDate(DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()));
}
//项目汇总 CbSummary cbSummary = baseMapper.selectById(bo.getId());
if (1 == bo.getCbType()) { if (ObjectUtil.isEmpty(cbSummary)) {
return getProjectSumList(bo); return null;
} }
//成本科目汇总
if (2 == bo.getCbType()) { List<CbSummaryActualListVo> childrenList = baseMapper.getByParentId(bo.getId(), bo.getExpenseDate());
//todo if (0 == cbSummary.getLevel() && 1 == bo.getCbType()) {
//项目汇总
return childrenList;
}else if(0 == cbSummary.getLevel() && 2 == bo.getCbType()) {
//成本科目汇总
CbSummaryActualListVo cbSummaryActualListVo = baseMapper.getById(bo.getId(), bo.getExpenseDate());
cbSummaryActualListVo.setChildren(childrenList);
List<CbSummaryActualListVo> list = new ArrayList<>();
list.add(cbSummaryActualListVo);
return list;
}else {
childrenList = getProjectSumList(bo);
CbSummaryActualListVo cbSummaryActualListVo = baseMapper.getById(bo.getId(),bo.getExpenseDate());
cbSummaryActualListVo.setChildren(childrenList);
List<CbSummaryActualListVo> list = new ArrayList<>();
list.add(cbSummaryActualListVo);
return list;
} }
return null;
} }
/** /**
* 项目汇总列表 * 成本汇总列表
* *
* @param bo * @param bo
* @return * @return
*/ */
private List<CbSummaryActualListVo> getProjectSumList(CbSummaryActualListBo bo) { private List<CbSummaryActualListVo> getProjectSumList(CbSummaryActualListBo bo) {
CbSummary cbSummary = baseMapper.selectById(bo.getId());
if (ObjectUtil.isEmpty(cbSummary)) {
return null;
}
if (StringUtil.isBlank(bo.getExpenseDate())) {
//默认当前月
bo.setExpenseDate(DatePattern.SIMPLE_MONTH_FORMAT.format(new Date()));
}
List<CbSummaryActualListVo> childrenList = baseMapper.getByParentId(bo.getId(), bo.getExpenseDate()); List<CbSummaryActualListVo> childrenList = baseMapper.getByParentId(bo.getId(), bo.getExpenseDate());
if (0 == cbSummary.getLevel()) { childrenList.forEach(children -> {
return childrenList; CbSummaryActualListBo childBo = new CbSummaryActualListBo();
} else { childBo.setId(children.getId());
childrenList.forEach(children -> { childBo.setExpenseDate(bo.getExpenseDate());
CbSummaryActualListBo childBo = new CbSummaryActualListBo(); children.setChildren(getProjectSumList(childBo));
childBo.setId(children.getId()); });
childBo.setExpenseDate(bo.getExpenseDate());
children.setChildren(getProjectSumList(childBo));
});
return childrenList; return childrenList;
}
} }
@Override @Override
public List<String> getExpenseDateList(CbSummaryBo bo) { public List<String> getExpenseDateList(CbSummaryBo bo) {
Assert.notNull(bo.getProjectId(),"项目id不能为空");
Assert.notNull(bo.getCbStage(),"成本阶段不能为空");
Assert.notNull(bo.getCbType(),"成本类型不能为空");
return baseMapper.getExpenseDateList(bo); return baseMapper.getExpenseDateList(bo);
} }
...@@ -155,18 +167,36 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary ...@@ -155,18 +167,36 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
if (CollectionUtil.isEmpty(boList)) { if (CollectionUtil.isEmpty(boList)) {
return false; return false;
} }
boList.forEach(bo->{
Assert.notNull(bo.getCbSummaryId(),"成本汇总id不能为空");
Assert.notNull(bo.getExpenseDate(),"费用日期不能为空");
});
List<CbSummaryActual> actualList = BeanUtil.copyToList(boList, CbSummaryActual.class); List<CbSummaryActual> actualList = BeanUtil.copyToList(boList, CbSummaryActual.class);
CbSummaryActual actualUpdate = actualList.get(0); //todo
CbSummaryActual actual = cbSummaryActualMapper.selectOne(new LambdaQueryWrapper<CbSummaryActual>() // throw new ServiceException("当前成本已锁定,不允许编辑!");
.eq(CbSummaryActual::getCbSummaryId, actualUpdate.getCbSummaryId())
.eq(CbSummaryActual::getExpenseDate, actualUpdate.getExpenseDate())
.eq(CbSummaryActual::getDelFlag, 0)
);
if (ObjectUtil.isNotNull(actual) && 1 == actual.getLockStatus()) {
throw new ServiceException("当前成本已锁定,不允许编辑!");
}
return cbSummaryActualMapper.insertOrUpdateBatch(actualList) > 0; return cbSummaryActualMapper.insertOrUpdateBatch(actualList) > 0;
} }
@Override
public List<CbSummaryActualListVo> getAll(CbSummaryActualListBo bo) {
Assert.notNull(bo.getId(), "项目id不能为空");
Assert.notNull(bo.getCbType(), "成本类型不能为空");
Assert.notNull(bo.getExpenseDate(), "费用日期不能为空");
//获取项目成本阶段
CbProjectRecord cbProjectRecord = cbProjectRecordMapper.selectById(bo.getId());
if (ObjectUtil.isNull(cbProjectRecord)) {
throw new ServiceException("当前项目不存在");
}
bo.setCbStage(cbProjectRecord.getCbStage());
if (bo.getCbType() == 1) {
return baseMapper.getProjectAll(bo);
} else {
return baseMapper.getCostAccountAll(bo);
}
//todo 截至本月费用汇总
}
} }
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
</sql> </sql>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true"> <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into cb_summary_actual(cb_summary_id, tax_inclusive_expense, tax_exclusive_expense,expense_date) insert into cb_summary_actual(id,cb_summary_id, tax_inclusive_expense, tax_exclusive_expense,expense_date)
values values
<foreach collection="entities" item="entity" separator=","> <foreach collection="entities" item="entity" separator=",">
(#{entity.cbSummaryId}, #{entity.taxInclusiveExpense}, #{entity.taxExclusiveExpense}, #{entity.expenseDate}) (#{entity.id}, #{entity.cbSummaryId}, #{entity.taxInclusiveExpense}, #{entity.taxExclusiveExpense}, #{entity.expenseDate})
</foreach> </foreach>
on duplicate key update on duplicate key update
cb_summary_id = values(cb_summary_id) , tax_inclusive_expense = values(tax_inclusive_expense) , cb_summary_id = values(cb_summary_id) , tax_inclusive_expense = values(tax_inclusive_expense) ,
......
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
</resultMap> </resultMap>
<sql id="baseColumn"> <sql id="baseColumn">
id, parent_id, level, sort, project_id, cb_stage, cb_project_file_id, number, cb_name, tax_exclusive_total, csu.id, csu.parent_id, csu.level, csu.sort, csu.project_id, csu.cb_stage, csu.cb_project_file_id, csu.number, csu.cb_name, csu.tax_exclusive_total,
cb_taxes_total, tax_inclusive_total, cb_proportion, tax_inclusive_pm_target, remark, create_time, del_flag, csu.cb_taxes_total, csu.tax_inclusive_total, csu.cb_proportion, csu.tax_inclusive_pm_target, csu.remark, csu.create_time, csu.del_flag,
cb_type csu.cb_type
</sql> </sql>
<select id="getByParentId" resultType="com.dsk.cscec.domain.vo.CbSummaryActualListVo"> <select id="getByParentId" resultType="com.dsk.cscec.domain.vo.CbSummaryActualListVo">
select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date,csa.lock_status select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date
from cb_summary csu from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0 left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where> <where>
...@@ -40,6 +40,47 @@ ...@@ -40,6 +40,47 @@
order by csu.sort order by csu.sort
</select> </select>
<select id="getById" resultType="com.dsk.cscec.domain.vo.CbSummaryActualListVo">
select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.id = #{id}
and csu.del_flag = 0
</where>
</select>
<select id="getProjectAll" resultType="com.dsk.cscec.domain.vo.CbSummaryActualListVo">
select
<include refid="baseColumn"></include>,
csa.tax_inclusive_expense,csa.tax_exclusive_expense
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.project_id = #{bo.id}
and csu.cb_stage = #{bo.cbStage}
and csu.cb_type = #{bo.cbType}
and csu.del_flag = 0
and csu.level != 0
</where>
order by csu.sort
</select>
<select id="getCostAccountAll" resultType="com.dsk.cscec.domain.vo.CbSummaryActualListVo">
select
<include refid="baseColumn"></include>,
csa.tax_inclusive_expense,csa.tax_exclusive_expense
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.project_id = #{bo.projectId}
and csu.cb_stage = #{bo.cbStage}
and csu.cb_type = #{bo.cbType}
and csu.del_flag = 0
</where>
order by csu.sort
</select>
<select id="getExpenseDateList" resultType="string"> <select id="getExpenseDateList" resultType="string">
select csa.expense_date select csa.expense_date
from cb_summary_actual csa from cb_summary_actual csa
......
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