huangjn 2 жил өмнө
parent
commit
26fec18383

+ 3 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/MessageWarningVO.java

@@ -23,6 +23,7 @@ import org.apache.http.client.utils.DateUtils;
 import org.springblade.business.entity.MessageWarning;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.DateUtil;
 
 import java.util.Date;
 import java.util.List;
@@ -78,7 +79,8 @@ public class MessageWarningVO extends MessageWarning {
 		this.setCreateUser(AuthUtil.getUserId());
 		Date nowDate = new Date();
 		this.setCreateTime(nowDate);
-		this.setTime(DateUtils.formatDate(nowDate, "yyyy-MM-dd HH:mm:ss"));
+		String dateStr = DateUtil.format(nowDate, "yyyy-MM-dd HH:mm:ss");
+		this.setTime(dateStr);
 	}
 
 	public MessageWarningVO(){}

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/QueryProcessDataVO.java

@@ -23,6 +23,8 @@ public class QueryProcessDataVO {
 
     private Integer nodeType;
 
+    private String evaluate;
+
     private String firstId;
 
 }

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ManagerHomePageVO.java

@@ -29,6 +29,12 @@ public class ManagerHomePageVO {
     @ApiModelProperty("证书总数")
     private Long pfxAmount;
 
+    @ApiModelProperty("个人待办工单数量")
+    private Integer personToDoNumber = 0;
+
+    @ApiModelProperty("所有待办工单数量")
+    private Integer allToDoNumber = 0;
+
     /**
      * 当前用户待办工单
      */

+ 22 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1683,6 +1683,27 @@ public class InformationWriteQueryController extends BladeController {
 		return R.data(this.informationQueryService.selectInformationQueryPage(Condition.getPage(query), vo));
 	}
 
+	/**
+	 * 获取当前合同段的划分树
+	 * @return 结果
+	 */
+	@GetMapping("/queryStandingBookContractWbsTree")
+	@ApiOperationSupport(order = 29)
+	@ApiOperation(value = "获取当前合同段的划分树")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
+			@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
+	})
+	public R<List<WbsTreeContractTreeVOS>> queryStandingBookContractWbsTree(@RequestParam String primaryKeyId,@RequestParam String parentId, @RequestParam String contractId, @RequestParam String contractIdRelation){
+		if (StringUtils.isNotEmpty(primaryKeyId)){
+			parentId = primaryKeyId;
+		}
+		List<WbsTreeContractTreeVOS> rootTreeNode = this.queryContractTree(parentId, contractId, contractIdRelation);
+		rootTreeNode.removeIf(vos -> (vos.getMajorDataType() != null && Arrays.asList("1,2,3,111".split(",")).contains(vos.getMajorDataType().toString())) || (vos.getDeptCategory() != null && vos.getDeptCategory() == 111));
+
+		return R.data(rootTreeNode);
+	}
+
 	/**
 	 * 获取当前合同段的划分树
 	 * @return 结果
@@ -1819,7 +1840,7 @@ public class InformationWriteQueryController extends BladeController {
 	 * @return 结果
 	 */
 	@GetMapping("/queryContractWbsTreeByFirstInfo")
-	@ApiOperationSupport(order = 10)
+	@ApiOperationSupport(order = 28)
 	@ApiOperation(value = "首件wbs树")
 	@ApiImplicitParams(value = {
 			@ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),

+ 54 - 50
blade-service/blade-business/src/main/java/org/springblade/business/controller/NeiYeController.java

@@ -78,60 +78,62 @@ public class NeiYeController {
                 //删除非工序节点
                 queryDataResult.removeIf(vo -> !new Integer("4").equals(vo.getMajorDataType()));
 
-                //分组
-                List<List<QueryProcessDataVO>> groupList = CommonUtil.getBatchSize(queryDataResult, queryVO.getSize());
-                List<QueryProcessDataVO> groupQueryList = groupList.get(queryVO.getCurrent() == 0 ? 0 : queryVO.getCurrent() - 1);
-
-                //获取所有施工日志记录
-                List<String> primaryKeyIds = groupQueryList.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList());
-                List<ConstructionLedger> ledgers = this.constructionLedgerService.list(Wrappers.<ConstructionLedger>lambdaQuery().in(ConstructionLedger::getWbsId, primaryKeyIds));
-
-                for (QueryProcessDataVO vo : groupQueryList) {
-                    //处理父节点信息
-                    Map<String, String> map = new HashMap<>();
-                    this.foreachGetParent(map, idToNodeMap, vo.getParentId(), queryVO.getContractId());
-
-                    //获取当前工序的施工台账信息
-                    if (ledgers != null && ledgers.size() > 0) {
-                        Iterator<ConstructionLedger> iterator = ledgers.iterator();
-                        while (iterator.hasNext()) {
-                            ConstructionLedger ledger = iterator.next();
-                            if (vo.getPrimaryKeyId().equals(ledger.getWbsId().toString())) {
-                                if (ledger.getSiteStartTime() != null && ledger.getSiteEndTime() != null) {
-                                    //获取施工起止时间
-                                    map.put("siteStartToEndTime", DateUtil.format(ledger.getSiteStartTime(), "yyyy-MM-dd") + " ~ " + DateUtil.format(ledger.getSiteEndTime(), "yyyy-MM-dd"));
+                if(queryDataResult.size() > 0){
+                    //分组
+                    List<List<QueryProcessDataVO>> groupList = CommonUtil.getBatchSize(queryDataResult, queryVO.getSize());
+                    List<QueryProcessDataVO> groupQueryList = groupList.get(queryVO.getCurrent() == 0 ? 0 : queryVO.getCurrent() - 1);
+
+                    //获取所有施工日志记录
+                    List<String> primaryKeyIds = groupQueryList.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList());
+                    List<ConstructionLedger> ledgers = this.constructionLedgerService.list(Wrappers.<ConstructionLedger>lambdaQuery().in(ConstructionLedger::getWbsId, primaryKeyIds));
+
+                    for (QueryProcessDataVO vo : groupQueryList) {
+                        //处理父节点信息
+                        Map<String, String> map = new HashMap<>();
+                        this.foreachGetParent(map, idToNodeMap, vo.getParentId(), queryVO.getContractId());
+
+                        //获取当前工序的施工台账信息
+                        if (ledgers != null && ledgers.size() > 0) {
+                            Iterator<ConstructionLedger> iterator = ledgers.iterator();
+                            while (iterator.hasNext()) {
+                                ConstructionLedger ledger = iterator.next();
+                                if (vo.getPrimaryKeyId().equals(ledger.getWbsId().toString())) {
+                                    if (ledger.getSiteStartTime() != null && ledger.getSiteEndTime() != null) {
+                                        //获取施工起止时间
+                                        map.put("siteStartToEndTime", DateUtil.format(ledger.getSiteStartTime(), "yyyy-MM-dd") + " ~ " + DateUtil.format(ledger.getSiteEndTime(), "yyyy-MM-dd"));
+                                    }
+                                    if (ledger.getDetectionStartTime() != null && ledger.getDetectionEndTime() != null) {
+                                        //获取检测起止时间
+                                        map.put("detectionStartToEndTime", DateUtil.format(ledger.getDetectionStartTime(), "yyyy-MM-dd") + " ~ " + DateUtil.format(ledger.getDetectionEndTime(), "yyyy-MM-dd"));
+                                    }
+                                    iterator.remove();
+                                    break;
                                 }
-                                if (ledger.getDetectionStartTime() != null && ledger.getDetectionEndTime() != null) {
-                                    //获取检测起止时间
-                                    map.put("detectionStartToEndTime", DateUtil.format(ledger.getDetectionStartTime(), "yyyy-MM-dd") + " ~ " + DateUtil.format(ledger.getDetectionEndTime(), "yyyy-MM-dd"));
-                                }
-                                iterator.remove();
-                                break;
                             }
                         }
+                        //todo 当前缺少是否关联评定、是否关联试验 =================================
+                        //新增列表数据
+                        neiYeLedgerVOList.add(new NeiYeLedgerVO(map.get("unitProject"),
+                                map.get("partProject"),
+                                map.get("partChildProject"),
+                                map.get("subentryProject"),
+                                map.get("subentryChildProject"),
+                                vo.getTitle(),
+                                map.get("siteStartToEndTime"),
+                                map.get("detectionStartToEndTime"),
+                                new Integer("1").equals(vo.getStatus()) ? "待审批" : new Integer("2").equals(vo.getStatus()) ? "已审批" : "未上报",
+                                vo.getEvaluate(),
+                                "false"));
                     }
-                    //todo 当前缺少是否关联评定、是否关联试验 =================================
-                    //新增列表数据
-                    neiYeLedgerVOList.add(new NeiYeLedgerVO(map.get("unitProject"),
-                            map.get("partProject"),
-                            map.get("partChildProject"),
-                            map.get("subentryProject"),
-                            map.get("subentryChildProject"),
-                            vo.getTitle(),
-                            map.get("siteStartToEndTime"),
-                            map.get("detectionStartToEndTime"),
-                            new Integer("1").equals(vo.getStatus()) ? "待审批" : new Integer("2").equals(vo.getStatus()) ? "已审批" : "未上报",
-                            "false",
-                            "false"));
+                    //转换为page信息
+                    Query query = new Query();
+                    query.setCurrent(queryVO.getCurrent());
+                    query.setSize(queryVO.getSize());
+                    IPage<NeiYeLedgerVO> page = Condition.getPage(query);
+                    page.setTotal(queryDataResult.size());
+                    page.setRecords(neiYeLedgerVOList);
+                    return R.data(page);
                 }
-                //转换为page信息
-                Query query = new Query();
-                query.setCurrent(queryVO.getCurrent());
-                query.setSize(queryVO.getSize());
-                IPage<NeiYeLedgerVO> page = Condition.getPage(query);
-                page.setTotal(queryDataResult.size());
-                page.setRecords(neiYeLedgerVOList);
-                return R.data(page);
             }
         }
 
@@ -150,7 +152,9 @@ public class NeiYeController {
             WbsTreeContractTreeVOS vos = vosMap.get(parentId);
             if(new Integer("1").equals(vos.getDeptCategory())){
                 //类型属于1则为单位工程
-                resultMap.put("unitProject", this.contractClient.getContractById(Long.parseLong(contractId)).getContractName());
+                if(!resultMap.containsKey("unitProject")){
+                    resultMap.put("unitProject", vos.getTitle());
+                }
 
             } else if(new Integer("2").equals(vos.getDeptCategory())){
                 //类型属于2则为分部工程

+ 31 - 2
blade-service/blade-business/src/main/java/org/springblade/business/mapper/InformationQueryMapper.xml

@@ -43,6 +43,7 @@
         <result column="title" property="title"/>
         <result column="firstId" property="firstId"/>
         <result column="nodeType" property="nodeType"/>
+        <result column="evaluate" property="evaluate"/>
     </resultMap>
 
     <resultMap id="intResultMap" type="java.lang.Integer"/>
@@ -56,7 +57,21 @@
             wtc.dept_name AS title,
             wtc.parent_id AS parentId,
             uiq.id AS informationQueryId,
-            uiq.status
+            uiq.status,
+            (
+                select
+                    case iq.status
+                    WHEN 2 then 'true'
+                    ELSE 'false' end AS evaluate
+                from
+                    m_wbs_tree_contract AS tc
+                left join u_information_query AS iq on tc.p_key_id = iq.wbs_id
+                where
+                    tc.major_data_type = 2
+                and tc.parent_id = wtc.parent_id
+                and tc.contract_id = wtc.contract_id
+                and NOT EXISTS (select 1 from u_information_query as q where iq.id = q.id and q.status > iq.status) LIMIT 1
+            ) AS evaluate
         FROM
             m_wbs_tree_contract AS wtc
         LEFT JOIN u_information_query AS uiq ON wtc.p_key_id = uiq.wbs_id AND uiq.classify = #{classify} and uiq.is_deleted = 0
@@ -76,7 +91,21 @@
             wtc.parent_id AS parentId,
             uiq.id AS informationQueryId,
             uiq.status,
-            tcf.id AS firstId
+            tcf.id AS firstId,
+            (
+                select
+                    case iq.status
+                    WHEN 2 then 'true'
+                    ELSE 'false' end AS evaluate
+                from
+                    m_wbs_tree_contract AS tc
+                left join u_information_query AS iq on tc.p_key_id = iq.wbs_id
+                where
+                    tc.major_data_type = 2
+                and tc.parent_id = wtc.parent_id
+                and tc.contract_id = wtc.contract_id
+                and NOT EXISTS (select 1 from u_information_query as q where iq.id = q.id and q.status > iq.status) LIMIT 1
+            ) AS evaluate
         FROM
             m_wbs_tree_contract AS wtc
         LEFT JOIN u_information_query AS uiq ON wtc.p_key_id = uiq.wbs_id AND uiq.classify = #{classify} and uiq.is_deleted = 0

+ 9 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java

@@ -35,6 +35,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 
 @RestController
 @AllArgsConstructor
@@ -251,6 +252,8 @@ public class ManagerHomePageController extends BladeController {
             List<BusinessUserOpinionVO> result = this.opinionUserClient.queryBusinessUserOpinionList(current, size);
             //删除掉已经办结的
             result.removeIf(BusinessUserOpinionVO::getIsCurrent);
+
+            AtomicInteger count = new AtomicInteger();
             //拼接数据
             result.forEach(vo -> {
                 if(!new Integer("1").equals(vo.getIsIgnore())){
@@ -258,8 +261,12 @@ public class ManagerHomePageController extends BladeController {
                             "的【" + vo.getSubmitUserRole() + vo.getSubmitUserName() + "】" + "向您反馈" + "\"" + vo.getProblemType() + "\"";
 
                     resultVO.setUserOpinionFlowList(vo.getUserOpinionId().toString(), title, vo.getCurrentLink(), vo.getNewNumber(), vo.getCurrentLinkId().toString(), vo.getOperation());
+                    count.getAndIncrement();
                 }
             });
+
+            resultVO.setPersonToDoNumber(count.get());
+
         }catch (Exception e){
             e.printStackTrace();
         }
@@ -300,6 +307,8 @@ public class ManagerHomePageController extends BladeController {
                 }
             });
 
+            resultVO.setAllToDoNumber(result.size());
+
         }catch (Exception e){
             e.printStackTrace();
         }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -400,7 +400,7 @@
     </select>
 
     <select id="queryContractSubmitWbsTreeByContractId" resultMap="ResultMap">
-        select p_key_id, contract_id, major_data_type from m_wbs_tree_contract where is_deleted = 0 and dept_category = 6 and contract_id = #{contractId}
+        select p_key_id, contract_id, major_data_type from m_wbs_tree_contract where is_deleted = 0 and major_data_type in(1,2,3,4) and contract_id = #{contractId}
     </select>
 
     <select id="selectInformationQueryInfo" resultType="org.springblade.business.entity.InformationQuery">