Ver Fonte

三单清单接口数据源

wangxuan há 8 meses atrás
pai
commit
742508c7ee

+ 13 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDistributionDao.java

@@ -3,6 +3,8 @@ package com.rongwei.bscommon.sys.dao;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.vo.report.MachineState;
+import com.rongwei.bsentity.vo.report.ZhcxPmqManageChildVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -31,4 +33,15 @@ public interface ZhcxPmqManagementDistributionDao extends BaseMapper<ZhcxPmqMana
      * @param id id
      */
     void updateDispatchStatus(@Param("id") String id);
+
+    /**
+     * 根据项目id获取所有的机号
+     * @param projectId
+     * @return
+     */
+    List<String> getAllMachinseNoByProjectId(@Param("projectId") String projectId);
+
+    List<ZhcxPmqManageChildVo> getAllDeptByPid(@Param("id") String id);
+
+    List<MachineState> getMachinesStatus(@Param("projectId")String projectId,@Param("id") String id);
 }

+ 7 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementDistributionService.java

@@ -20,4 +20,11 @@ public interface ZhcxPmqManagementDistributionService extends IService<ZhcxPmqMa
      * @return 响应状态
      */
     R generateDistributionDetail(String pid);
+
+    /**
+     * 构建三单清单数据源
+     * @param projectId 项目id
+     * @return 树结构数据
+     */
+    R selectManifestList(String projectId);
 }

+ 2 - 2
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxLoginServiceImpl.java

@@ -80,8 +80,8 @@ public class ZhcxLoginServiceImpl implements ZhcxLoginService {
         LambdaQueryWrapper<SysUserDo> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.and(i -> i.eq(SysUserDo::getAccount, account).
                 or().eq(SysUserDo::getMobile, account).
-                or().eq(SysUserDo::getEmail, account))
-                .ne(SysUserDo::getEnabled, "0");
+                or().eq(SysUserDo::getEmail, account));
+                //.ne(SysUserDo::getEnabled, "0");
         SysUserDo sysUserDo = sysUserService.getOne(queryWrapper);
         if (sysUserDo == null || StringUtils.isEmpty(sysUserDo.getId())) {
             return R.error("用户名密码不正确");

+ 55 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementDistributionServiceImpl.java

@@ -1,5 +1,8 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionDetailService;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
@@ -7,6 +10,10 @@ import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
 import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDistributionDao;
 import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDo;
+import com.rongwei.bsentity.vo.report.MachineState;
+import com.rongwei.bsentity.vo.report.ZhcxPmqManageChildVo;
+import com.rongwei.bsentity.vo.report.ZhcxPmqManagementVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.rwcommon.utils.StringUtils;
@@ -15,6 +22,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -30,6 +38,8 @@ public class ZhcxPmqManagementDistributionServiceImpl extends ServiceImpl<ZhcxPm
     @Autowired
     private ZhcxPmqManagementDistributionDetailService detailService;
 
+    @Autowired
+    private ZhcxPmqManagementServiceImpl managementService;
 
     @Override
     public R generateDistributionDetail(String pid) {
@@ -94,4 +104,49 @@ public class ZhcxPmqManagementDistributionServiceImpl extends ServiceImpl<ZhcxPm
         baseMapper.updateDispatchStatus(pid);
         return R.ok("生成派单成功");
     }
+
+    @Override
+    public R selectManifestList(String projectId) {
+        // 找到第一层符合要求的数据
+        LambdaQueryWrapper<ZhcxPmqManagementDo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ZhcxPmqManagementDo::getDeleted,"0").eq(ZhcxPmqManagementDo::getProjectid,projectId);
+        List<ZhcxPmqManagementDo> list = managementService.list(wrapper);
+        if(list.isEmpty()){
+            return R.ok("暂无数据");
+        }
+        // 构造最终数组
+        List<ZhcxPmqManagementVo> resultList = new ArrayList<>();
+        List<String> machinseNoList = baseMapper.getAllMachinseNoByProjectId(projectId);
+        // 构造数据
+        for (ZhcxPmqManagementDo zhcxPmqManagementDo : list) {
+            ZhcxPmqManagementVo zhcxPmqManagementVo = new ZhcxPmqManagementVo();
+            BeanUtil.copyProperties(zhcxPmqManagementDo,zhcxPmqManagementVo);
+            if(StringUtils.isEmpty(zhcxPmqManagementVo.getClosestatus())){
+                // 关闭状态为null,给默认值
+                zhcxPmqManagementVo.setClosestatus("未关闭");
+            }
+            if(Objects.nonNull(zhcxPmqManagementVo.getDistributetime())){
+                //格式化下发时间
+                zhcxPmqManagementVo.setDistributetimes(DateUtil.format(zhcxPmqManagementVo.getDistributetime(), DatePattern.NORM_DATETIME_MINUTE_PATTERN));
+            }
+            // 动态表头
+            List<String> titleList = new ArrayList<>();
+            titleList.add("流水号");
+            titleList.add("部门名称");
+            titleList.addAll(machinseNoList);
+            zhcxPmqManagementVo.setTitleList(titleList);
+            // 构建第二层数据
+            List<ZhcxPmqManageChildVo> childList = baseMapper.getAllDeptByPid(zhcxPmqManagementDo.getId());
+            for (ZhcxPmqManageChildVo zhcxPmqManageChildVo : childList) {
+                // 构造第三层数据
+                List<MachineState> machines = baseMapper.getMachinesStatus(projectId,zhcxPmqManageChildVo.getId());
+                zhcxPmqManageChildVo.setMachines(machines);
+            }
+            // 子表数据
+            zhcxPmqManagementVo.setChildList(childList);
+            resultList.add(zhcxPmqManagementVo);
+        }
+        // 返回结果集
+        return R.ok(resultList);
+    }
 }

+ 4 - 4
business-common/src/main/java/com/rongwei/bscommon/sys/utils/SqlServerJdbcUtils.java

@@ -59,13 +59,13 @@ public class SqlServerJdbcUtils {
     public static List<ZhcxPmqManagementSource> queryZHCXPMQMANAGEMENTSOURCEDataPRO() {
         Security.setProperty("jdk.tls.client.protocols", "TLSv1.2,TLSv1.1,TLSv1");
         List<ZhcxPmqManagementSource> data = new ArrayList<>();
-        String url = "jdbc:sqlserver://10.28.52.32:1433;;databaseName=nxcellsnew";
-        String username = "qm";
-        String password = "cxqm_sugar1029";
+        String url = "jdbc:sqlserver://192.168.0.144:1433;;databaseName=cwbt6";
+        String username = "sa";
+        String password = "Sasa2014";
         try (Connection connection = DriverManager.getConnection(url, username, password);
              Statement statement = connection.createStatement()) {
             // 查询语句
-            String sql = "SELECT TOP (300) * FROM [nxcellsnew].[dbo].[JUV1841] order by 下发日期 desc";
+            String sql = "SELECT TOP (300) * FROM [cwbt6].[dbo].[JUV1841] order by 下发日期 desc";
             try (ResultSet resultSet = statement.executeQuery(sql)) {
                 int columnCount = resultSet.getMetaData().getColumnCount();
                 while (resultSet.next()) {

+ 95 - 0
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDao.xml

@@ -71,4 +71,99 @@
           AND detail.MACHINEID = #{machineid}
           AND detail.CONFIRMERID = #{confirmerid}
     </select>
+    <select id="getAllMachinseNoByProjectId" resultType="java.lang.String">
+        SELECT
+            n.DEVICE_NUMBER AS MACHINENO
+        FROM
+            INCONTROL.ZHCX_PROJECT_DEVICE_NUMBER n
+                JOIN INCONTROL.ZHCX_PROJECT_MANAGE p ON
+                p.ID = n.PID
+                    AND p.DELETED = '0'
+        WHERE
+            n.DELETED = '0' AND p.ID = #{projectId}
+        ORDER BY
+            TO_NUMBER(REPLACE(n.DEVICE_NUMBER, '#', ''))
+    </select>
+
+    <select id="getAllDeptByPid" resultType="com.rongwei.bsentity.vo.report.ZhcxPmqManageChildVo">
+        SELECT
+            recored.ID AS id,
+            manage.ID AS pid,
+            recored.SEQNO AS seqno,
+            recored.DEPTID AS deptId,
+            recored.DEPTNAME AS deptName
+        FROM
+            INCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED recored
+                LEFT JOIN INCONTROL.ZHCX_PMQ_MANAGEMENT manage ON
+                manage.ID = recored.PMQMID
+                    AND manage.DELETED = '0'
+        WHERE
+            recored.DELETED = '0'
+          AND recored.PMQMID = #{id}
+        ORDER BY
+            recored.SEQNO DESC
+    </select>
+
+    <select id="getMachinesStatus" resultType="com.rongwei.bsentity.vo.report.MachineState">
+        SELECT
+            n.ID AS machineid,
+            n.DEVICE_NUMBER AS machineno,
+            e.PID AS pid,
+            e.ID AS id,
+            CASE
+                WHEN e.STATUS IS NULL THEN '未关闭'
+                ELSE e.STATUS
+                END AS STATUS
+        FROM
+            INCONTROL.ZHCX_PROJECT_DEVICE_NUMBER n
+                JOIN INCONTROL.ZHCX_PROJECT_MANAGE p ON
+                p.ID = n.PID
+                    AND p.DELETED = '0'
+                LEFT JOIN (
+                SELECT
+                    t.MACHINEID,
+                    WM_CONCAT(t.ID) AS ID,
+                    t.PID,
+                    t.PROJECTID,
+                    t.MACHINENO,
+                    CASE
+                        WHEN SUM(CASE WHEN t.STATUS = '已关闭' THEN 1 ELSE 0 END) = COUNT(*) THEN '已关闭'
+                        WHEN SUM(CASE WHEN t.STATUS = '已关闭' AND t.STATUS != '未关闭'  THEN 1 ELSE 0 END) > 0 THEN '已关闭'
+                        WHEN SUM(CASE WHEN t.STATUS = 'NA' THEN 1 ELSE 0 END) = COUNT(*) THEN 'NA'
+                        ELSE THEN '未关闭'
+                        END AS STATUS
+                FROM
+                    (
+                    SELECT
+                    x.ID,
+                    x.PID,
+                    x.PROJECTID,
+                    x.MACHINEID,
+                    x.MACHINENO,
+                    CASE
+                    WHEN x.STATUS IS NULL THEN '未关闭'
+                    WHEN x.STATUS = 'NA' THEN 'NA'
+                    WHEN x.STATUS = '已关闭' THEN '已关闭'
+                    ELSE '已关闭'
+                    END AS STATUS
+                    FROM
+                    INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION_DETAIL x
+                    WHERE
+                    x.PID = #{id}
+                    AND x.DELETED = '0'
+                    ) AS t
+                GROUP BY
+                    t.MACHINEID,
+                    t.PID,
+                    t.PROJECTID,
+                    t.MACHINENO
+            )e ON
+                e.PROJECTID = p.ID
+                    AND n.ID = e.MACHINEID
+        WHERE
+            n.DELETED = '0'
+          AND p.ID = #{projectId}
+        ORDER BY
+            TO_NUMBER(REPLACE(n.DEVICE_NUMBER, '#', ''))
+    </select>
 </mapper>

+ 3 - 1
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxPmqManagementDo.java

@@ -2,6 +2,8 @@ package com.rongwei.bsentity.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.rongwei.rwcommon.base.BaseDo;
+
+import java.io.Serializable;
 import java.util.Date;
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
@@ -20,7 +22,7 @@ import lombok.experimental.Accessors;
 @EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)
 @TableName("ZHCX_PMQ_MANAGEMENT")
-public class ZhcxPmqManagementDo extends BaseDo {
+public class ZhcxPmqManagementDo extends BaseDo implements Serializable {
 
     private static final long serialVersionUID=1L;
 

+ 25 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/report/MachineState.java

@@ -0,0 +1,25 @@
+package com.rongwei.bsentity.vo.report;
+
+import lombok.*;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class MachineState {
+    // 机号Id
+    private String machineid;
+
+    //机号
+    private String machineno;
+
+    // 第二层表id
+    private String pid;
+
+    // 第三层表Id
+    private String id;
+
+    // 状态
+    private String STATUS;
+}

+ 34 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/report/ZhcxPmqManageChildVo.java

@@ -0,0 +1,34 @@
+package com.rongwei.bsentity.vo.report;
+
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * 三单清单第二层VO
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ZhcxPmqManageChildVo {
+
+    // 第二层表Id
+    private String id;
+
+    // 第一层id
+    private String pid;
+
+    // 流水号
+    private String seqno;
+
+    // 部门id
+    private String deptId;
+
+    // 部门id
+    private String deptName;
+
+    // 对应机台的状态
+    private List<MachineState> machines;
+}

+ 25 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/report/ZhcxPmqManagementVo.java

@@ -0,0 +1,25 @@
+package com.rongwei.bsentity.vo.report;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDo;
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * 三单清单第一层VO
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ZhcxPmqManagementVo extends ZhcxPmqManagementDo {
+     //格式化的下发日期
+     private String distributetimes;
+
+     // 动态表头
+     private List<String> titleList;
+
+     // 子表数据
+     private List<ZhcxPmqManageChildVo> childList;
+}

+ 16 - 4
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java

@@ -9,10 +9,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
 import java.util.List;
@@ -72,4 +69,19 @@ public class ZhcxPMQMController {
             return R.error("生成三单派单数据异常");
         }
     }
+
+    @GetMapping("/selectManifestList")
+    @ApiOperation("三单清单数据源")
+    public R selectManifestList(String projectId){
+        try {
+            if(Objects.isNull(projectId)){
+                return R.ok("项目id为空");
+            }
+            log.info("三单清单数据源__>项目id:{}",projectId);
+            return pmqManagementDistributionService.selectManifestList(projectId);
+        } catch (Exception e) {
+            log.info(String.valueOf(e));
+            return R.error("三单清单数据源异常");
+        }
+    }
 }