报表api请求测试

master
zpl 3 years ago
parent bfe27ab5ef
commit b5ff61fca5

@ -1,13 +1,17 @@
package com.foreverwin.mesnac.common.controller;
import com.foreverwin.mesnac.common.mapper.BoardMapper;
import com.foreverwin.mesnac.common.service.BoardService;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@ -15,6 +19,8 @@ import java.util.Map;
public class BoardController {
@Autowired
public BoardService boardService;
@Autowired
public BoardMapper boardMapper;
@GetMapping("/test")
public R test(String resource, String qty) {
@ -36,4 +42,15 @@ public class BoardController {
return R.ok(result);
}
@GetMapping("/findResourceInfo")
public R findResourceInfo(@RequestParam(required = false) Map paramMap) {
try {
paramMap.put("site", CommonMethods.getSite());
List<Map<String, Object>> result = boardMapper.findResourceInfo(paramMap);
return R.ok(result);
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
}

@ -2,6 +2,10 @@ package com.foreverwin.mesnac.common.mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public class BoardMapper {
public interface BoardMapper {
List<Map<String, Object>> findResourceInfo(Map paramMap);
}

@ -1,5 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.foreverwin.mesnac.common.mapper.BoardMapper">
<select id="findResourceInfo" resultType="java.util.HashMap" parameterType="java.util.HashMap">
WITH
TE AS (
SELECT DISTINCT R.RESRCE RESRCE , R.HANDLE HANDLE
FROM RESRCE r
INNER JOIN WORK_CENTER_MEMBER wcm ON WCM.WORK_CENTER_OR_RESOURCE_GBO = R.HANDLE
INNER JOIN WORK_CENTER_MEMBER wcm2 ON WCM2.WORK_CENTER_OR_RESOURCE_GBO = WCM.WORK_CENTER_BO
INNER JOIN WORK_CENTER wc ON WC.HANDLE = WCM2.WORK_CENTER_BO
WHERE R.SITE = '1000' --AND WC.WORK_CENTER = 'JJ'
),
TEMP AS (
SELECT ZSD.RESRCE , ZSD.DISPATCH_STATUS , i.ITEM , it.DESCRIPTION , ZSD.ACTUAL_START_DATE,
ZSD.PROD_HOURS ,ZSD.DISPATCH_QTY ,ZSD.STEP_ID , ZSD.ACTUAL_PROD_HOURS
FROM Z_SFC_DISPATCH zsd
INNER JOIN TE ON TE.RESRCE = ZSD.RESRCE
INNER JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.SHOP_ORDER
INNER JOIN ITEM i ON I.HANDLE = SO.ITEM_BO
INNER JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = 'zh'
WHERE ZSD.SITE = '1000'
) ,
MN AS (
SELECT R.RESRCE , R.DESCRIPTION RESOURCE_DESCRIPTION, CF.VALUE || '/' || R.DESCRIPTION NAME ,
--WC.WORK_CENTER ,
--RT.RESOURCE_TYPE,
--RT.DESCRIPTION RESOURCE_TYPE_DESCRIPTION,
CASE WHEN ZRSR.STATUS = 'RUN' THEN '#1afa29'
WHEN ZRSR.STATUS = 'DOW' THEN '#EF4136' --'RGB(255,115,100)'
WHEN ZRSR.STATUS = 'FREE' THEN '#dbdbdb'
WHEN ZRSR.STATUS = 'WARN' THEN '#F4EA2A'
ELSE '#FFF' END STATUS_COLOR,
CASE WHEN ZRSR.STATUS = 'RUN' THEN '运行'
WHEN ZRSR.STATUS = 'DOW' THEN '停机' --'RGB(255,115,100)'
WHEN ZRSR.STATUS = 'FREE' THEN '空闲'
WHEN ZRSR.STATUS = 'WARN' THEN '告警'
ELSE '运行' END STATUS_NAME,
NVL(ZRSR.STATUS,'FREE') STATUS,
CF.VALUE RESOURCE_LOCATION ,
ZEDR.S1 FEED_RATE, ZEDR.S2 FEED_VALUE, ZEDR.S3 SPINDLE_LOAD , ZEDR.S4 SPINDLE_SPEED
FROM RESRCE R
INNER JOIN WORK_CENTER_MEMBER wcm ON WCM.WORK_CENTER_OR_RESOURCE_GBO = R.HANDLE
INNER JOIN WORK_CENTER_MEMBER wcm2 ON WCM2.WORK_CENTER_OR_RESOURCE_GBO = WCM.WORK_CENTER_BO
INNER JOIN WORK_CENTER wc ON WC.HANDLE = WCM2.WORK_CENTER_BO
INNER JOIN RESOURCE_TYPE_RESOURCE RTR ON RTR.RESOURCE_BO = R.HANDLE
INNER JOIN RESOURCE_TYPE RT ON RT.HANDLE = RTR.RESOURCE_TYPE_BO
LEFT JOIN Z_RESOURCE_STATUS_RECEIVE ZRSR ON ZRSR.RESRCE = R.RESRCE
LEFT JOIN CUSTOM_FIELDS cf ON CF.HANDLE = R.HANDLE AND CF."ATTRIBUTE" = 'RESOURCE_LOCATION'
LEFT JOIN Z_EDC_DATA_RESOURCE zedr ON ZEDR.RESRCE = R.RESRCE
WHERE RT.SITE = '1000' AND WC.WORK_CENTER = 'JJ'
ORDER BY ZRSR.RESRCE
)
SELECT T.RESRCE RE_NAME , T.DISPATCH_STATUS , ITEM , DESCRIPTION ITEM_DESCRIPTION, DISPATCH_QTY , PROD_HOURS , WORK_HOUR, ACTUAL_START_DATE, STEP_ID ,ACTUAL_PROD_HOURS,
CASE WHEN PROD_HOURS > WORK_HOUR THEN ROUND(WORK_HOUR /PROD_HOURS,2)
ELSE (CASE WHEN DISPATCH_STATUS = 'START' THEN 90 ELSE 100 END ) END PROGRESS ,
MN.*
FROM
(
SELECT *
FROM
(
SELECT ROW_NUMBER() OVER(PARTITION BY RESRCE ORDER BY DISPATCH_STATUS DESC ,ACTUAL_START_DATE DESC ,STEP_ID DESC ) rn,
RESRCE , DISPATCH_STATUS , ITEM , DESCRIPTION , DISPATCH_QTY , PROD_HOURS , ACTUAL_START_DATE , STEP_ID ,ACTUAL_PROD_HOURS ,
CASE WHEN DISPATCH_STATUS = 'START' THEN (SYSDATE - (ACTUAL_START_DATE + 8/24) ) * 24
ELSE NVL(10000,ACTUAL_PROD_HOURS) END WORK_HOUR
FROM TEMP WHERE DISPATCH_STATUS IN ('COMPLETE' ,'START' ) )
WHERE rn = 1
ORDER BY RESRCE , DISPATCH_STATUS DESC
) T
LEFT JOIN MN ON MN.RESRCE = T.RESRCE
ORDER BY MN.RESOURCE_LOCATION ,MN.RESRCE
</select>
</mapper>
Loading…
Cancel
Save