Commit 1d0d9a36 authored by danfuman's avatar danfuman

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 faca9663 dd845be2
package com.dsk.cscec.controller;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
......@@ -13,10 +14,12 @@ import com.dsk.cscec.domain.vo.CbProjectInfoVo;
import com.dsk.cscec.domain.vo.CbProjectRecordSearchVo;
import com.dsk.cscec.service.CbProjectRecordService;
import com.dsk.cscec.service.IDProjectService;
import com.dsk.search.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
......@@ -50,6 +53,15 @@ public class CbProjectRecordController extends BaseController {
}
}
/**
* 校验项目名称是否存在
*/
@GetMapping("/checkProjectNameExist/projectName")
public R<CbProjectRecord> checkProjectNameExist(@RequestParam @NotBlank(message = "项目名称不能为空") String projectName) {
CbProjectRecord projectRecord = baseService.checkProjectNameExist(projectName);
return R.ok(ObjectUtil.isNotNull(projectRecord) ? "已存在相同名称项目,是否继续创建该项目的新阶段?" : "操作成功", projectRecord);
}
/**
* 新增项目
*/
......
......@@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class CbCostMeasureActualSaveBo {
......@@ -78,7 +79,8 @@ public class CbCostMeasureActualSaveBo {
*/
private String updateId;
/**
* 子集
*/
private List<CbCostMeasureActualSaveBo> children;
}
\ No newline at end of file
......@@ -18,6 +18,14 @@ import java.util.List;
* @since 2024-02-05 11:37:53
*/
public interface CbProjectRecordService extends IService<CbProjectRecord> {
/**
* 校验项目名称是否存在
*
* @param projectName 项目名称
* @return 项目实体
*/
CbProjectRecord checkProjectNameExist(String projectName);
/**
* 新增项目
*
......
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeNodeConfig;
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.ReUtil;
......@@ -21,9 +18,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.excel.ExcelResult;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.JsonUtils;
import com.dsk.common.utils.TreeBuildUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.*;
......@@ -60,6 +56,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
private final String firstPattern = "[\\((]*[一|二|三|四|五|六|七|八|九|十]+[\\))]*";
private final Pattern secondPattern = Pattern.compile("^\\d+(\\.\\d+)*$");
private final Pattern pattern3 = Pattern.compile("^([1-9][0-9]*|0)$");
private Long planMeasureIdTemp;
@Autowired
private CbProjectRecordService cbProjectRecordService;
......@@ -197,7 +194,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
treeNode.setId(object.getId());//id
treeNode.setParentId(object.getParentId());//父id
// 扩展属性 ...
treeNode.putExtra("actualId",object.getActualId());
treeNode.putExtra("actualId", object.getActualId());
treeNode.putExtra("itemContent", object.getItemContent());
treeNode.putExtra("number", object.getNumber());
treeNode.putExtra("workContent", object.getWorkContent());
......@@ -232,23 +229,47 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@Override
public void saveBatchCostMeasureActual(List<CbCostMeasureActualSaveBo> boList) {
//递归
this.recursionSaveBatchCostMeasureActual(boList, boList.get(0).getId(), null);
}
/**
* 递归保存或修改每月措施费
*
* @param boList 每月措施费集合
* @param planMeasureId 计划成本措施费id
* @param month 月份
*/
public void recursionSaveBatchCostMeasureActual(List<CbCostMeasureActualSaveBo> boList, Long planMeasureId, String month) {
List<CbCostMeasureActual> saveList = new ArrayList<>();
planMeasureIdTemp = planMeasureId;
for (CbCostMeasureActualSaveBo cbCostMeasureActualSaveBo : boList) {
CbCostMeasureActual cbCostMeasureActual = new CbCostMeasureActual();
BeanUtil.copyProperties(cbCostMeasureActualSaveBo, cbCostMeasureActual);
if (ObjectUtil.isNotNull(planMeasureId)) {
cbCostMeasureActual.setPlanMeasureId(planMeasureIdTemp++);
}
if (StringUtils.isNotEmpty(month)) {
cbCostMeasureActual.setMonth(month);
}
cbCostMeasureActual.setDelFlag(0);
// cbCostMeasureActual.setUpdateId(LoginHelper.getUserId());
// cbCostMeasureActual.setUpdateUser(LoginHelper.getUsername());
// 查询计划成本累积实际成本
BigDecimal bigDecimal = cbCostMeasureActualService.selectSumData(cbCostMeasureActualSaveBo);
cbCostMeasureActual.setCurrentProjectVolume(NumberUtil.add(bigDecimal,cbCostMeasureActual.getProjectVolume()));
cbCostMeasureActual.setCurrentProjectVolume(NumberUtil.add(bigDecimal, cbCostMeasureActual.getProjectVolume()));
saveList.add(cbCostMeasureActual);
List<CbCostMeasureActualSaveBo> childrenList = cbCostMeasureActualSaveBo.getChildren();
if (ObjectUtil.isNotNull(childrenList) && !childrenList.isEmpty()) {
this.recursionSaveBatchCostMeasureActual(childrenList, planMeasureIdTemp, cbCostMeasureActualSaveBo.getMonth());
}
}
cbCostMeasureActualService.saveOrUpdateBatch(saveList);
CbCostMeasureActual cbCostMeasureActual = saveList.get(0);
//CbCostMeasureActual cbCostMeasureActual = saveList.get(0);
//todo 查询最新的二级费用合计, 用于更新一级费用项
// cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//cbCostMeasureActualService.selectMonthProjectVolumeByLevel(1,cbCostMeasureActual.GET);
//更新
}
......@@ -380,8 +401,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
public String lastProjectVolume(Long measuresId) {
LambdaQueryWrapper<CbCostMeasureActual> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(CbCostMeasureActual::getPlanMeasureId, measuresId)
.isNotNull(CbCostMeasureActual::getPushTime)
.orderByDesc(CbCostMeasureActual::getUpdateTime).last(" limit 1");
.isNotNull(CbCostMeasureActual::getPushTime)
.orderByDesc(CbCostMeasureActual::getUpdateTime).last(" limit 1");
CbCostMeasureActual cbCostMeasureActual = cbCostMeasureActualService.getOne(lambdaQueryWrapper);
if (ObjectUtil.isNotEmpty(cbCostMeasureActual)) {
return cbCostMeasureActual.getPushDataJson();
......@@ -408,10 +429,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
List<CbCostMeasureActualVo> monthActualCostList = cbCostMeasureActualService.getMonthActualCostList(projectId, month);
if (CollectionUtil.isNotEmpty(monthActualCostList)) {
map = monthActualCostList.stream()
.collect(Collectors.toMap(
CbCostMeasureActualVo::getItemContent, // 把CbCostMeasureActualVo属性提取为map的key
CbCostMeasureActualVo::getCostEffective // 把CbCostMeasureActualVo属性提取为map的value
));
.collect(Collectors.toMap(
CbCostMeasureActualVo::getItemContent, // 把CbCostMeasureActualVo属性提取为map的key
CbCostMeasureActualVo::getCostEffective // 把CbCostMeasureActualVo属性提取为map的value
));
}
for (CbProjectExpenseSummary cbProjectExpenseSummary : cbProjectExpenseSummaries) {
......
......@@ -63,6 +63,24 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
@Resource
private CbDirectExpenseService directExpenseService;
/**
* 校验项目名称是否存在
*
* @param projectName 项目名称
* @return 项目实体
*/
@Override
public CbProjectRecord checkProjectNameExist(String projectName) {
if (StringUtils.isNotBlank(projectName)) {
return baseMapper.selectOne(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getProjectName, projectName)
.eq(CbProjectRecord::getDelFlag, CbProjectConstants.DELETE_FLAG_EXIST)
.orderByDesc(CbProjectRecord::getCbStage)
.last("LIMIT 1"));
}
return null;
}
/**
* 新增项目
*
......@@ -198,8 +216,9 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
for (CbProjectRecordSearchVo searchVo : page.getRecords()) {
//判断是否有历史阶段
searchVo.setHasChildren(baseMapper.selectCount(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getRelatedId, searchVo.getRelatedId())
.ne(CbProjectRecord::getProjectFileStatus, CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)) > 1
.eq(CbProjectRecord::getRelatedId, searchVo.getRelatedId())
//.ne(CbProjectRecord::getProjectFileStatus, CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)
) > 1
);
//关键字标红
......@@ -235,7 +254,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
List<CbProjectRecord> projectRecordList = baseMapper.selectList(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getRelatedId, projectRecord.getRelatedId())
.ne(CbProjectRecord::getId, projectRecord.getId())
.ne(CbProjectRecord::getProjectFileStatus, CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)
//.ne(CbProjectRecord::getProjectFileStatus, CbProjectConstants.PROJECT_FILE_STATUS_PREPARING)
.like(StringUtils.isNotBlank(searchBo.getProjectName()), CbProjectRecord::getProjectName, searchBo.getProjectName())
.eq(StringUtils.isNotBlank(searchBo.getIpmProjectNo()), CbProjectRecord::getIpmProjectNo, searchBo.getIpmProjectNo())
.eq(ObjectUtil.isNotNull(searchBo.getCbStage()), CbProjectRecord::getCbStage, searchBo.getCbStage())
......@@ -244,7 +263,7 @@ public class CbProjectRecordServiceImpl extends ServiceImpl<CbProjectRecordMappe
projectRecordList.forEach(record -> {
//关键字标红
if (StringUtils.isNotBlank(searchBo.getProjectName())) {
record.setProjectName(StringUtils.markInRed(record.getProjectFileName(), searchBo.getProjectName()));
record.setProjectName(StringUtils.markInRed(record.getProjectName(), searchBo.getProjectName()));
}
//补充更新时间、更新人
CbProjectFile projectFile = projectFileMapper.selectOne(new LambdaQueryWrapper<CbProjectFile>()
......
......@@ -41,6 +41,11 @@ public class PushMonitorSystemDetailVo {
*/
private String objId;
/**
* pid
*/
private String pid;
public String getDimensionName() {
return dimensionName;
}
......@@ -89,9 +94,21 @@ public class PushMonitorSystemDetailVo {
this.objId = objId;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public PushMonitorSystemDetailVo() {
}
public PushMonitorSystemDetailVo(String pid) {
this.pid = pid;
}
public PushMonitorSystemDetailVo(String eid, String uId, String md5Id, String objId) {
this.eid = eid;
this.uId = uId;
......@@ -108,6 +125,7 @@ public class PushMonitorSystemDetailVo {
", uId='" + uId + '\'' +
", md5Id='" + md5Id + '\'' +
", objId='" + objId + '\'' +
", pid='" + pid + '\'' +
'}';
}
}
......@@ -69,7 +69,7 @@ public class MonitorServiceImpl implements MonitorService {
}
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("user_id", monitorRulesDto.getUserId());
PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
if (ObjectUtil.isEmpty(detail)) {
rulesMapper.insert(monitorRulesDto);
} else {
......@@ -87,7 +87,7 @@ public class MonitorServiceImpl implements MonitorService {
}
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("user_id", detailVo.getUserId());
PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
return R.ok(detail);
}
......@@ -99,14 +99,14 @@ public class MonitorServiceImpl implements MonitorService {
pageVo.getCondition().setUserId(userId);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/company/info/companyDynamicList", BeanUtil.beanToMap(pageVo, false, false));
log.info("companyDynamicPage=============================>"+map);
log.info("companyDynamicPage=============================>" + map);
return dskOpenApiUtil.responsePageT(map);
}
@Override
public Map<String, Object> companyDynamicPageScheduled(PushMonitorDynamicPageVo pageVo) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/company/info/companyDynamicList", BeanUtil.beanToMap(pageVo, false, false));
log.info("companyDynamicPage=============================>"+map);
log.info("companyDynamicPage=============================>" + map);
return map;
}
......@@ -183,10 +183,10 @@ public class MonitorServiceImpl implements MonitorService {
}
//如果文件不存在 则文件上传失败
if (file == null){
if (file == null) {
return R.fail("操作失敗,数据异常,請使用正确的模板");
}
if (file.isEmpty()){
if (file.isEmpty()) {
return R.fail("操作失敗,数据异常,請使用正确的模板");
}
......@@ -197,14 +197,14 @@ public class MonitorServiceImpl implements MonitorService {
//得到最后一行的行号
int lastRowNum = sheet.getLastRowNum();
//如果总行数小于等于2 (没有数据)提示数据异常
if ((lastRowNum) < 1){
if ((lastRowNum) < 1) {
return R.fail("未提供有效数据,请确认!");
}
//进行excel格式判定
String name = sheet.getRow(2).getCell(0) + "";
//只要其中一个不满足则格式有误
if (!"企业名称".equals(name)){
if (!"企业名称".equals(name)) {
return R.fail("操作失败,数据异常,请使用正确的模板");
}
//行列皆从0开始
......@@ -219,7 +219,7 @@ public class MonitorServiceImpl implements MonitorService {
companyList.add(companyNameStr);
}
} catch (Exception e) {
log.error("",e.getMessage());
log.error("", e.getMessage());
} finally {
RedisUtils.hasValueDelete(lockKey, value);
}
......@@ -261,6 +261,9 @@ public class MonitorServiceImpl implements MonitorService {
case "新增开庭公告":
map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/kaiTingDetail", BeanUtil.beanToMap(cancelVo, false, false));
break;
case "行政处罚":
map = dskOpenApiUtil.requestBody("/operate/enterpriseCredit/penalizeDetail", BeanUtil.beanToMap(cancelVo, false, false));
break;
default:
break;
}
......@@ -289,25 +292,28 @@ public class MonitorServiceImpl implements MonitorService {
String dimensionName = detailVo.getDimensionName();
switch (dimensionName) {
case "新增经营异常":
detailVo = new PushMonitorSystemDetailVo(value1, null, null,value2);
detailVo = new PushMonitorSystemDetailVo(value1, null, null, value2);
break;
case "新增股权冻结":
detailVo = new PushMonitorSystemDetailVo(value1, value2, null,null);
detailVo = new PushMonitorSystemDetailVo(value1, value2, null, null);
break;
case "新增被执行人":
detailVo = new PushMonitorSystemDetailVo(value1, null, null,null);
detailVo = new PushMonitorSystemDetailVo(value1, null, null, null);
break;
case "新增失信被执行人":
detailVo = new PushMonitorSystemDetailVo(value1, null, null,null);
detailVo = new PushMonitorSystemDetailVo(value1, null, null, null);
break;
case "新增法院公告":
detailVo = new PushMonitorSystemDetailVo(value1, null, null,value2);
detailVo = new PushMonitorSystemDetailVo(value1, null, null, value2);
break;
case "新增裁判文书":
detailVo = new PushMonitorSystemDetailVo(value1, null, null,value2);
detailVo = new PushMonitorSystemDetailVo(value1, null, null, value2);
break;
case "新增开庭公告":
detailVo = new PushMonitorSystemDetailVo(value1, null, value2,null);
detailVo = new PushMonitorSystemDetailVo(value1, null, value2, null);
break;
case "行政处罚":
detailVo = new PushMonitorSystemDetailVo(value1);
break;
default:
break;
......@@ -318,7 +324,7 @@ public class MonitorServiceImpl implements MonitorService {
@Override
public Map<String, Object> settingHoliday(PushSettingHolidayVo holidayVo) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/push/settingHoliday", BeanUtil.beanToMap(holidayVo, false, false));
log.info("companyDynamicPage=============================>"+map);
log.info("companyDynamicPage=============================>" + map);
return map;
}
}
......@@ -36,6 +36,18 @@
cpr.cb_stage = #{cbStageNoCostPlan}
and
cpr.del_flag=#{deleteFlagExist}
<if test="searchBo.projectName != null and searchBo.projectName != ''">
and cpr.project_name like concat('%',#{searchBo.projectName},'%')
</if>
<if test="searchBo.ipmProjectNo != null and searchBo.ipmProjectNo != ''">
and cpr.ipm_project_no = #{searchBo.ipmProjectNo}
</if>
<if test="searchBo.cbStage != null">
and cpr.cb_stage = #{searchBo.cbStage}
</if>
<if test="searchBo.projectFileStatus != null">
and project_file_status = #{searchBo.projectFileStatus}
</if>
order by cpr.cb_stage desc) a
group by a.related_id
order by a.create_time desc
......
......@@ -41,7 +41,7 @@ module.exports = {
// target: `http://192.168.60.27:9098`,//邓
// target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线
// target: `http://192.168.60.7:9098`,//施-有线
// target: `http://192.168.60.90:9098`,//谭
changeOrigin: true,
pathRewrite: {
......
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