|
@@ -27,6 +27,7 @@ import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.text.ParseException;
|
|
@@ -34,6 +35,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
import static cn.hutool.core.date.DateUtil.format;
|
|
|
+import static cn.hutool.core.date.DateUtil.offset;
|
|
|
|
|
|
/**
|
|
|
* 工程节点Service业务层处理
|
|
@@ -58,18 +60,19 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
* 查询工程节点
|
|
|
*/
|
|
|
@Override
|
|
|
- public ZEngineeringNodeVo queryById(String id){
|
|
|
+ public ZEngineeringNodeVo queryById(String id) {
|
|
|
return baseMapper.selectVoById(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@DynamicName(spel = "#bo.createTime")
|
|
|
-// @Async("threadPoolTaskExecutor")
|
|
|
- public ZEngineeringNodeBo query(ZEngineeringNodeBo bo){
|
|
|
+ // @Async("threadPoolTaskExecutor")
|
|
|
+ public ZEngineeringNodeBo query(ZEngineeringNodeBo bo) {
|
|
|
LambdaQueryWrapper<ZEngineeringNode> lqw = Wrappers.lambdaQuery();
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getCivliId()), ZEngineeringNode::getCivliId, bo.getCivliId());
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringNode::getType, bo.getType());
|
|
|
- lqw.eq(ZEngineeringNode::getCreateBy, LoginHelper.getLoginUser().getUsername());
|
|
|
+ if (!LoginHelper.isAdmin())
|
|
|
+ lqw.eq(ZEngineeringNode::getCreateBy, LoginHelper.getLoginUser().getUsername());
|
|
|
ZEngineeringNode zEngineeringNode=baseMapper.selectOne(lqw);
|
|
|
// ZEngineeringNode zEngineeringNodeVo=baseMapper.selectById(bo.getId());
|
|
|
if (zEngineeringNode==null)
|
|
@@ -119,7 +122,7 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
* 查询工程节点列表
|
|
|
*/
|
|
|
@Override
|
|
|
-// @DynamicName(spel = "#bo.createTime")
|
|
|
+ // @DynamicName(spel = "#bo.createTime")
|
|
|
public List<ZEngineeringNodeVo> queryList(ZEngineeringNodeBo bo) {
|
|
|
LambdaQueryWrapper<ZEngineeringNode> lqw = buildQueryWrapper(bo);
|
|
|
return baseMapper.selectVoList(lqw);
|
|
@@ -132,19 +135,20 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringNode::getType, bo.getType());
|
|
|
return lqw;
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
|
|
|
public String ZEngineeringReview(ZEngineeringNodeBo bo) {
|
|
|
- String userId=LoginHelper.getLoginUser().getUsername().toString();
|
|
|
- SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String userId = LoginHelper.getLoginUser().getUsername().toString();
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
Date date = new Date(System.currentTimeMillis());
|
|
|
- List<String>dateList= getMonthBetweenDates("2021-12",formatter.format(date));
|
|
|
- dateList.stream().forEach(item->{
|
|
|
- Runnable runnable=new Runnable() {
|
|
|
+ List<String> dateList = getMonthBetweenDates("2021-12", formatter.format(date));
|
|
|
+ dateList.stream().forEach(item -> {
|
|
|
+ Runnable runnable = new Runnable() {
|
|
|
@Override
|
|
|
- public void run( ) {
|
|
|
+ public void run() {
|
|
|
try {
|
|
|
- getZEngineeringNodeList(item,userId,bo);
|
|
|
+ getZEngineeringNodeList(item, userId, bo);
|
|
|
Thread.sleep(30000);
|
|
|
} catch (InterruptedException e) {
|
|
|
throw new RuntimeException(e);
|
|
@@ -184,10 +188,9 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- public List getZEngineeringNodeList(String date,String UserId,ZEngineeringNodeBo bo)
|
|
|
- {
|
|
|
+ public List getZEngineeringNodeList(String date, String UserId, ZEngineeringNodeBo bo) {
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
|
|
|
- List<ZEngineeringNodeVo> list= new ArrayList<>();
|
|
|
+ List<ZEngineeringNodeVo> list = new ArrayList<>();
|
|
|
try {
|
|
|
Date startdate = format.parse(date);
|
|
|
bo.setCreateTime(startdate);
|
|
@@ -195,17 +198,16 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
SimpleDateFormat format2 = new SimpleDateFormat("yyyy_MM");
|
|
|
MonthTableNameHandler.setData(format2.format(startdate));
|
|
|
try {
|
|
|
- list =queryList(bo);
|
|
|
- }catch (Exception e)
|
|
|
- {
|
|
|
- log.info("没有{}该表",format2.format(startdate));
|
|
|
+ list = queryList(bo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("没有{}该表", format2.format(startdate));
|
|
|
|
|
|
- return null ;
|
|
|
+ return null;
|
|
|
}
|
|
|
- List zEngineeringReviewList=new ArrayList<>();
|
|
|
- list.stream().forEach(item->{
|
|
|
- ZEngineeringReviewBo zEngineeringReview =new ZEngineeringReviewBo();
|
|
|
- zEngineeringReview.setReviewTime( new Date());
|
|
|
+ List zEngineeringReviewList = new ArrayList<>();
|
|
|
+ list.stream().forEach(item -> {
|
|
|
+ ZEngineeringReviewBo zEngineeringReview = new ZEngineeringReviewBo();
|
|
|
+ zEngineeringReview.setReviewTime(new Date());
|
|
|
zEngineeringReview.setReviewContent("批量审核");
|
|
|
zEngineeringReview.setReviewStatus("1");
|
|
|
zEngineeringReview.setReviewUser(UserId);
|
|
@@ -236,19 +238,21 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 新增工程节点
|
|
|
+ *
|
|
|
* @param bo
|
|
|
* @return ZEngineeringNode
|
|
|
*/
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor=Exception.class)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
@DynamicName(spel = "#bo.createTime")
|
|
|
public ZEngineeringNode insert(ZEngineeringNodeBo bo) {
|
|
|
ZEngineeringNode add = BeanUtil.toBean(bo, ZEngineeringNode.class);
|
|
|
add.setUpdateTime(new Date());
|
|
|
validEntityBeforeSave(add);
|
|
|
- if (StringUtils.isEmpty(bo.getId())){
|
|
|
+ if (StringUtils.isEmpty(bo.getId())) {
|
|
|
boolean flag = baseMapper.insert(add) > 0;
|
|
|
if (flag) {
|
|
|
bo.setId(add.getId());
|
|
@@ -263,7 +267,6 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 修改工程节点
|
|
|
*/
|
|
@@ -280,8 +283,15 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
public Boolean update(ZEngineeringNodeBo bo) {
|
|
|
ZEngineeringNode update = BeanUtil.toBean(bo, ZEngineeringNode.class);
|
|
|
validEntityBeforeSave(update);
|
|
|
- bo.getzEngineeringInfoBo().setCreateTime(bo.getCreateTime());
|
|
|
- izEngineeringInfoService.update(bo.getzEngineeringInfoBo());
|
|
|
+ if (ObjectUtils.isEmpty(bo.getzEngineeringInfoBo())) {
|
|
|
+ for (ZEngineeringInfoBo zEngineeringInfoBo : bo.getzEngineeringInfoBoList()) {
|
|
|
+ zEngineeringInfoBo.setCreateTime(bo.getCreateTime());
|
|
|
+ izEngineeringInfoService.update(zEngineeringInfoBo);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ bo.getzEngineeringInfoBo().setCreateTime(bo.getCreateTime());
|
|
|
+ izEngineeringInfoService.update(bo.getzEngineeringInfoBo());
|
|
|
+ }
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
}
|
|
|
@Override
|
|
@@ -301,8 +311,8 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean delete(ZEngineeringNodeBo bo) {
|
|
|
LambdaQueryWrapper<ZEngineeringNode> lqw = Wrappers.lambdaQuery();
|
|
|
- lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringNode::getId,bo.getId());
|
|
|
- ZEngineeringNode zEngineeringNode=baseMapper.selectOne(lqw);
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringNode::getId, bo.getId());
|
|
|
+ ZEngineeringNode zEngineeringNode = baseMapper.selectOne(lqw);
|
|
|
ZEngineeringNodeBo zEngineeringNodeBo = BeanUtil.toBean(zEngineeringNode, ZEngineeringNodeBo.class);
|
|
|
if (zEngineeringNodeBo != null) {
|
|
|
izEngineeringInfoService.delete(zEngineeringNodeBo);
|
|
@@ -313,7 +323,7 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
/**
|
|
|
* 保存前的数据校验
|
|
|
*/
|
|
|
- private void validEntityBeforeSave(ZEngineeringNode entity){
|
|
|
+ private void validEntityBeforeSave(ZEngineeringNode entity) {
|
|
|
//TODO 做一些数据校验,如唯一约束
|
|
|
}
|
|
|
|
|
@@ -322,7 +332,7 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
*/
|
|
|
@Override
|
|
|
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
+ if (isValid) {
|
|
|
//TODO 做一些业务上的校验,判断是否需要校验
|
|
|
}
|
|
|
return baseMapper.deleteBatchIds(ids) > 0;
|
|
@@ -331,27 +341,29 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
|
|
|
|
|
|
/**
|
|
|
* 获取某个时间段内所有月份
|
|
|
+ *
|
|
|
* @param minDate
|
|
|
* @param maxDate
|
|
|
* @return
|
|
|
* @throws ParseException
|
|
|
*/
|
|
|
- public List<String> getMonthBetweenDates(String minDate, String maxDate){
|
|
|
+ public List<String> getMonthBetweenDates(String minDate, String maxDate) {
|
|
|
ArrayList<String> result = new ArrayList<String>();
|
|
|
Calendar min = Calendar.getInstance();
|
|
|
Calendar max = Calendar.getInstance();
|
|
|
- min.setTime(parse(minDate,"yyyy-MM"));
|
|
|
+ min.setTime(parse(minDate, "yyyy-MM"));
|
|
|
min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
|
|
|
- max.setTime(parse(maxDate,"yyyy-MM"));
|
|
|
+ max.setTime(parse(maxDate, "yyyy-MM"));
|
|
|
max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
|
|
|
Calendar curr = min;
|
|
|
while (curr.before(max)) {
|
|
|
- result.add(format(curr.getTime(),"yyyy-MM"));
|
|
|
+ result.add(format(curr.getTime(), "yyyy-MM"));
|
|
|
curr.add(Calendar.MONTH, 1);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
- public Date parse(String date, String pattern) {
|
|
|
+
|
|
|
+ public Date parse(String date, String pattern) {
|
|
|
try {
|
|
|
return new SimpleDateFormat(pattern).parse(date);
|
|
|
} catch (Exception e) {
|