添加零件生产过程追溯报表

master
yinq 3 years ago
parent 960e4f0365
commit 1d5ca6ec93

@ -136,6 +136,20 @@ public class ReportController {
return R.failed(e.getMessage());
}
}
/**
*
* @param paramMap
* @return
*/
@GetMapping("/partsTraceScheduleReport")
public R partsTraceScheduleReport(@RequestParam(required = false) Map paramMap){
try{
List<Map<String, Object>> result = reportService.partsTraceScheduleReport(paramMap);
return R.ok(result);
}catch (Exception e){
return R.failed(e.getMessage());
}
}
@GetMapping("/findOperatorScheduleReport")
public R findOperatorScheduleReport(@RequestParam(required = false) Map paramMap){

@ -57,4 +57,10 @@ public interface ReportMapper {
* @return
*/
List<Map<String,Object>> findWorkOrderSchedule(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String,Object>> partsTraceScheduleReport(Map paramMap);
}

@ -61,4 +61,11 @@ public interface ReportService {
* @return
*/
List<Map<String,Object>> findWorkOrderSchedule(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, Object>> partsTraceScheduleReport(Map paramMap);
}

@ -347,6 +347,20 @@ public class ReportServiceImpl implements ReportService {
paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage());
return reportMapper.findWorkOrderSchedule(paramMap);
}
/**
*
* @param paramMap
* @return
*/
@Override
public List<Map<String, Object>> partsTraceScheduleReport(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site",site);
paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage());
return reportMapper.partsTraceScheduleReport(paramMap);
}
}

@ -42,7 +42,8 @@
<select id="partsManufacturing" parameterType="java.util.HashMap" resultType="java.util.HashMap">
WITH ZSD AS (
SELECT * FROM
( SELECT TEMP.* , ROW_NUMBER() OVER(PARTITION BY TEMP.FINISHED_SFC , TEMP.FINISHED_SHOP_ORDER ORDER BY STEP_ID_A) RN FROM
( SELECT TEMP.* , ROW_NUMBER() OVER(PARTITION BY TEMP.FINISHED_SFC , TEMP.FINISHED_SHOP_ORDER ORDER BY
STEP_ID_A) RN FROM
(
SELECT
cf.VALUE FINISHED_WORK_ORDER,
@ -83,10 +84,12 @@
) WHERE RN = 1
) ,
zsdTemplate AS (
SELECT COUNT(ZSD2.SHOP_ORDER) NUM , ZSD.FINISHED_SHOP_ORDER FINISHED_SHOP_ORDER_TEMP , ZSD.FINISHED_SFC FINISHED_SFC_TEMP FROM ZSD
SELECT COUNT(ZSD2.SHOP_ORDER) NUM , ZSD.FINISHED_SHOP_ORDER FINISHED_SHOP_ORDER_TEMP , ZSD.FINISHED_SFC
FINISHED_SFC_TEMP FROM ZSD
INNER JOIN BOM_COMPONENT bc ON bc.BOM_BO = zsd.BOM_BO
INNER JOIN SHOP_ORDER so ON so.ITEM_BO = BC.COMPONENT_GBO
INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER' AND cf.VALUE = zsd.FINISHED_WORK_ORDER
INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER' AND cf.VALUE =
zsd.FINISHED_WORK_ORDER
INNER JOIN Z_SFC_DISPATCH zsd2 ON zsd2.SHOP_ORDER = so.SHOP_ORDER AND zsd2.SITE = #{site}
WHERE zsd2.DISPATCH_STATUS != 'COMPLETE' AND zsd2.DISPATCH_STATUS != 'CANCEL'
GROUP BY ZSD.FINISHED_SHOP_ORDER , ZSD.FINISHED_SFC
@ -175,7 +178,8 @@
FROM
zsd
LEFT JOIN zsdTemplate ON
zsdTemplate.FINISHED_SHOP_ORDER_TEMP = zsd.FINISHED_SHOP_ORDER AND zsdTemplate.FINISHED_SFC_TEMP = ZSD.FINISHED_SFC
zsdTemplate.FINISHED_SHOP_ORDER_TEMP = zsd.FINISHED_SHOP_ORDER AND zsdTemplate.FINISHED_SFC_TEMP =
ZSD.FINISHED_SFC
INNER JOIN BOM_COMPONENT bc ON
bc.BOM_BO = zsd.BOM_BO
INNER JOIN ITEM i ON
@ -328,10 +332,13 @@
CF.VALUE ITEM_SPEC,
ZRRT.ACTUAL_START_DATE ACTUAL_START_DATE,ZRRT.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE,
'' SHUT_DOWN_TIME,/*暂时无法计算*/
CASE WHEN ZRRT.ACTUAL_START_DATE IS NOT NULL THEN TO_CHAR(TO_NUMBER((ZRRT.ACTUAL_START_DATE -ZRRT.CREATED_DATE_TIME)*24),'FM9999990.000')
CASE WHEN ZRRT.ACTUAL_START_DATE IS NOT NULL THEN TO_CHAR(TO_NUMBER((ZRRT.ACTUAL_START_DATE
-ZRRT.CREATED_DATE_TIME)*24),'FM9999990.000')
ELSE TO_CHAR(TO_NUMBER((SYSDATE -ZRRT.CREATED_DATE_TIME)*24),'FM9999990.000')
END REPORT_WAIT_TIME ,
CASE WHEN ZRRT.ACTUAL_COMPLETE_DATE IS NOT NULL THEN TO_CHAR(TO_NUMBER((ZRRT.ACTUAL_COMPLETE_DATE-ZRRT.CREATED_DATE_TIME)*24) - NVL(ZRRT.WAIT_TIME,0),'FM9999990.000')
CASE WHEN ZRRT.ACTUAL_COMPLETE_DATE IS NOT NULL THEN
TO_CHAR(TO_NUMBER((ZRRT.ACTUAL_COMPLETE_DATE-ZRRT.CREATED_DATE_TIME)*24) -
NVL(ZRRT.WAIT_TIME,0),'FM9999990.000')
ELSE TO_CHAR(TO_NUMBER((SYSDATE- 8/24 - ZRRT.CREATED_DATE_TIME-ZRRT.WAIT_TIME)*24),'FM9999990.000')
END REPAIR_TIME ,
CASE WHEN ZRRT.STATUS = '401' THEN '待维修'
@ -383,8 +390,10 @@
</select>
<select id="findInspectionTask" resultType="java.util.HashMap" parameterType="java.util.HashMap">
SELECT WT.DESCRIPTION WORK_CENTER_DESCRIPTION, C2.VALUE ITEM_NUMBER,SO.SHOP_ORDER, C3.VALUE PRODUCT_MODEL,IM.ITEM ITEM, IT.DESCRIPTION ITEM_DESCRIPTION,
ZT.SFC, ZT.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, ZT.RESRCE, RS.DESCRIPTION RESOURCE_DESCRIPTION, ZT.TASK_NO, ZT.CATEGORY,
SELECT WT.DESCRIPTION WORK_CENTER_DESCRIPTION, C2.VALUE ITEM_NUMBER,SO.SHOP_ORDER, C3.VALUE
PRODUCT_MODEL,IM.ITEM ITEM, IT.DESCRIPTION ITEM_DESCRIPTION,
ZT.SFC, ZT.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, ZT.RESRCE, RS.DESCRIPTION RESOURCE_DESCRIPTION,
ZT.TASK_NO, ZT.CATEGORY,
ZT."RESULT", ZT.CREATE_USER, ZNU.FULL_NAME, ZT.MODIFIED_DATE_TIME
FROM Z_INSPECTION_TASK ZT
LEFT JOIN WORK_CENTER WC ON WC.SITE = ZT.SITE AND WC.WORK_CENTER = ZT.WORK_CENTER
@ -433,7 +442,8 @@
</select>
<select id="findQualityInspectionReport" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT Szsd.PROD_HOURS* CFPT.VALUE*zab.PB_QTY PRICE,CFPT.VALUE PRICE_TIME,zab.CREATED_DATE_TIME,zab.ABNORMAL_NO ABNORMAL_NO,
SELECT Szsd.PROD_HOURS* CFPT.VALUE*zab.PB_QTY PRICE,CFPT.VALUE PRICE_TIME,zab.CREATED_DATE_TIME,zab.ABNORMAL_NO
ABNORMAL_NO,
dflt.DATA_TAG PRODUCT_CATEGORY,
dflt2.DATA_TAG DISCOVER,
i.ITEM ITEM ,it.DESCRIPTION ITEM_DESCRIPTION,
@ -473,7 +483,8 @@
CASE WHEN (zabd.ABNORMAL_METHOD ='F' AND zab.SHOP_ORDER IS NOT NULL) THEN TO_CHAR(so.QTY_TO_BUILD,'9999')
WHEN zabd.ABNORMAL_METHOD = 'F' THEN TO_CHAR(zab.PB_QTY,'9999') ELSE '' END NUMBERS,
zsd.EMPLOYEE_DESCRIPTION DISPATCH_USER ,zabd.DUTY_CAUSE_TYPE DUTY_CAUSE_TYPE,zabd.DUTY_TYPE DUTY_TYPE,
zabd.DUTY_DEPART DUTY_DEPART,TO_CHAR(TO_NUMBER(zabd.CLOSED_DATE_TIME - zab.RESPONSE_DATE_TIME)*24,'FM9999990.000') WORKING_HOURS,
zabd.DUTY_DEPART DUTY_DEPART,TO_CHAR(TO_NUMBER(zabd.CLOSED_DATE_TIME -
zab.RESPONSE_DATE_TIME)*24,'FM9999990.000') WORKING_HOURS,
CASE WHEN zab.SFC IS NOT NULL THEN '质量异常'
ELSE '外协质量异常'
END ABNORMAL_TYPE
@ -497,7 +508,8 @@
LEFT JOIN CUSTOM_FIELDS itemNumber ON itemNumber.HANDLE = so.HANDLE AND itemNumber."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN SFC s ON s.SFC = zab.SFC AND s.SITE = zab.SITE
LEFT JOIN Z_SFC_DISPATCH Szsd ON s.SFC = zab.SFC AND SUBSTR(Szsd.ROUTER_BO,1,INSTR(Szsd.ROUTER_BO,',',-1)-1) = SUBSTR(zabd.ROUTER_BO,1,INSTR(zabd.ROUTER_BO,',',-1)-1)
LEFT JOIN Z_SFC_DISPATCH Szsd ON s.SFC = zab.SFC AND SUBSTR(Szsd.ROUTER_BO,1,INSTR(Szsd.ROUTER_BO,',',-1)-1) =
SUBSTR(zabd.ROUTER_BO,1,INSTR(zabd.ROUTER_BO,',',-1)-1)
LEFT JOIN OPERATION o2 ON o2.OPERATION = Szsd.OPERATION AND o2.SITE = Szsd.SITE AND o2.CURRENT_REVISION ='true'
LEFT JOIN OPERATION_T ot2 ON ot2.OPERATION_BO = o2.HANDLE AND ot2.LOCALE = 'zh'
LEFT JOIN RESRCE RES ON RES.RESRCE = Szsd.RESRCE AND Szsd.SITE = RES.SITE
@ -512,7 +524,8 @@
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = #{locale}
LEFT JOIN RESRCE r2 ON r2.RESRCE = zsd.RESRCE AND r2.SITE = zab.SITE
LEFT JOIN RESOURCE_TYPE rt ON rt.RESOURCE_TYPE = zsd.RESOURCE_TYPE AND rt.SITE = zab.SITE
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = SUBSTR(o.OPERATION,1,INSTR(o.OPERATION,'_')-1) AND wc.SITE = zab.SITE
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = SUBSTR(o.OPERATION,1,INSTR(o.OPERATION,'_')-1) AND wc.SITE =
zab.SITE
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = #{locale}
LEFT JOIN Z_NWA_USER znu ON znu.USER_NAME = zab.CREATED_USER AND znu.SITE = zab.SITE
LEFT JOIN Z_NWA_USER znu2 ON znu2.USER_NAME = zabd.RESOLVE_USER AND znu2.SITE = zab.SITE
@ -589,8 +602,10 @@
znu4.FULL_NAME CANCEL_USER,zabd.RESOLVE_REMARK RESOLVE_REMARK,
zabd.ABNORMAL_REASON ABNORMAL_REASON,zabd.BEFORE_MEASURE BEFORE_MEASURE,
ug.DESCRIPTION RESOLVE_SEND_USER_GROUP,
CASE WHEN zsr.CREATED_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - zsr.CREATED_DATE_TIME)*24,'FM9999990.000')
WHEN zabd.RESOLVE_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - zab.CREATED_DATE_TIME)*24,'FM9999990.000')
CASE WHEN zsr.CREATED_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME -
zsr.CREATED_DATE_TIME)*24,'FM9999990.000')
WHEN zabd.RESOLVE_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME -
zab.CREATED_DATE_TIME)*24,'FM9999990.000')
ELSE ''
END RESOLVE_DURATION,
zabd.DUTY_DEPART DUTY_DEPART
@ -685,13 +700,18 @@
CASE WHEN zab.HANDLE IS NOT NULL THEN '是'
ELSE '否'
END IS_ANOMALY,
CASE WHEN zsd.PLANNED_COMP_DATE IS NOT NULL AND zsd.ACTUAL_COMPLETE_DATE IS NULL AND zsd.DISPATCH_STATUS != 'CANCEL' THEN TO_CHAR(TO_NUMBER(zsd.PLANNED_COMP_DATE + 8/24 - SYSDATE),'FM9999990.000')
CASE WHEN zsd.PLANNED_COMP_DATE IS NOT NULL AND zsd.ACTUAL_COMPLETE_DATE IS NULL AND zsd.DISPATCH_STATUS !=
'CANCEL' THEN TO_CHAR(TO_NUMBER(zsd.PLANNED_COMP_DATE + 8/24 - SYSDATE),'FM9999990.000')
ELSE ''
END SURPLUS_DAY,
CASE WHEN zsd.ACTUAL_START_DATE IS NOT NULL AND cf3.VALUE IS NOT NULL AND cf3.VALUE != 0 AND zsd.ACTUAL_COMPLETE_DATE IS NULL
THEN ROUND(TO_NUMBER(SYSDATE - (zsd.ACTUAL_START_DATE+8/24))*24/TO_NUMBER(cf3.VALUE * zsd.DISPATCH_QTY),2)*100 || '%'
WHEN zsd.ACTUAL_START_DATE IS NOT NULL AND cf3.VALUE IS NOT NULL AND cf3.VALUE != 0 AND zsd.ACTUAL_COMPLETE_DATE IS NOT NULL
THEN ROUND(TO_NUMBER((zsd.ACTUAL_COMPLETE_DATE+8/24) - (zsd.ACTUAL_START_DATE+8/24))*24/TO_NUMBER(cf3.VALUE * zsd.DISPATCH_QTY),2)*100 || '%'
CASE WHEN zsd.ACTUAL_START_DATE IS NOT NULL AND cf3.VALUE IS NOT NULL AND cf3.VALUE != 0 AND
zsd.ACTUAL_COMPLETE_DATE IS NULL
THEN ROUND(TO_NUMBER(SYSDATE - (zsd.ACTUAL_START_DATE+8/24))*24/TO_NUMBER(cf3.VALUE * zsd.DISPATCH_QTY),2)*100
|| '%'
WHEN zsd.ACTUAL_START_DATE IS NOT NULL AND cf3.VALUE IS NOT NULL AND cf3.VALUE != 0 AND zsd.ACTUAL_COMPLETE_DATE
IS NOT NULL
THEN ROUND(TO_NUMBER((zsd.ACTUAL_COMPLETE_DATE+8/24) - (zsd.ACTUAL_START_DATE+8/24))*24/TO_NUMBER(cf3.VALUE *
zsd.DISPATCH_QTY),2)*100 || '%'
ELSE ''
END PROCESS_HOURS
FROM Z_SFC_DISPATCH zsd
@ -707,7 +727,9 @@
LEFT JOIN SFC_ROUTING sr ON sr.SFC_BO = s.HANDLE
LEFT JOIN SFC_ROUTER st ON st.SFC_ROUTING_BO = sr.HANDLE AND st.IN_USE = 'true'
LEFT JOIN SFC_STEP ss ON ss.SFC_ROUTER_BO = st.HANDLE AND (ss.QTY_IN_QUEUE > 0 OR ss.QTY_IN_WORK > 0)
LEFT JOIN OPERATION o ON o.OPERATION = SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) - INSTR(SS.OPERATION_BO,',') -1) AND o.SITE = zsd.SITE
LEFT JOIN OPERATION o ON o.OPERATION =
SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) -
INSTR(SS.OPERATION_BO,',') -1) AND o.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
LEFT JOIN OPERATION o2 ON o2.OPERATION = zsd.OPERATION AND o2.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot2 ON ot2.OPERATION_BO = o2.HANDLE AND ot2.LOCALE = 'zh'
@ -901,7 +923,8 @@
AND cf.VALUE = #{itemNumber}
</if>
GROUP BY cf2.VALUE, cf.VALUE,zsd.WORK_CENTER
) zsd2 ON zsd2.WORK_CENTER = zsd.WORK_CENTER AND zsd2.WORK_ORDER || zsd2.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER
) zsd2 ON zsd2.WORK_CENTER = zsd.WORK_CENTER AND zsd2.WORK_ORDER || zsd2.ITEM_NUMBER = zsd.WORK_ORDER ||
zsd.ITEM_NUMBER
LEFT JOIN (
SELECT cf2.VALUE WORK_ORDER, cf.VALUE ITEM_NUMBER, COUNT(zsd.HANDLE) QTY,zsd.WORK_CENTER
FROM Z_SFC_DISPATCH zsd
@ -916,7 +939,8 @@
AND cf.VALUE = #{itemNumber}
</if>
GROUP BY cf2.VALUE, cf.VALUE,zsd.WORK_CENTER
) zsd3 ON zsd3.WORK_CENTER = zsd.WORK_CENTER AND zsd3.WORK_ORDER || zsd3.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER
) zsd3 ON zsd3.WORK_CENTER = zsd.WORK_CENTER AND zsd3.WORK_ORDER || zsd3.ITEM_NUMBER = zsd.WORK_ORDER ||
zsd.ITEM_NUMBER
INNER JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER AND wc.SITE = zsd.SITE
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
WHERE (zsd.WORK_ORDER IS NOT NULL OR zsd.ITEM_NUMBER IS NOT NULL)
@ -938,4 +962,50 @@
</where>
ORDER BY CREATED_DATE_TIME ASC
</select>
<select id="partsTraceScheduleReport" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT zsd.SHOP_ORDER SHOP_ORDER,
s.SFC SFC,
cf.VALUE ITEM_NUMBER,
cf2.VALUE WORK_ORDER,
i.ITEM ITEM,
it.DESCRIPTION ITEM_DESCRIPTION,
ct.DESCRIPTION COMPONENT_DESCRIPTION,
zsd.BLANKING_SIZE BLANKING_SIZE,
ot.DESCRIPTION OPERATION_DESCRIPTION,
zsd.EMPLOYEE_DESCRIPTION PB_USER,
zsd.ACTUAL_START_DATE ACTUAL_START_DATE,
zsd.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE,
znu.FULL_NAME FULL_NAME
FROM Z_SFC_DISPATCH zsd
LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN ITEM i On i.HANDLE = so.ITEM_BO
LEFT JOIN ITEM_T it ON it.ITEM_BO = so.ITEM_BO AND it.LOCALE = 'zh'
INNER JOIN SFC_BOM sb ON SB.SFC_BO = s.HANDLE
INNER JOIN BOM_COMPONENT bc ON bc.BOM_BO = sb.BOM_BO
LEFT JOIN ITEM cp ON cp.HANDLE = bc.COMPONENT_GBO
LEFT JOIN ITEM_T ct ON ct.ITEM_BO = cp.HANDLE AND ct.LOCALE = 'zh'
INNER JOIN OPERATION o ON o.SITE = zsd.SITE AND o.OPERATION = zsd.OPERATION AND o.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
LEFT JOIN Z_INSPECTION_TASK zit ON zit.SFC = S.SFC AND zit.SHOP_ORDER = so.SHOP_ORDER
AND zsd.OPERATION = zit.OPERATION AND zit.STEP_ID = zsd.STEP_ID
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = zit.MODIFY_USER
<where>
zsd.DISPATCH_STATUS = 'COMPLETE'
<if test="shopOrder != null and shopOrder != ''">
AND zsd.SHOP_ORDER = #{shopOrder}
</if>
<if test="sfc != null and sfc != ''">
AND s.SFC = #{sfc}
</if>
<if test="item != null and item != ''">
AND i.ITEM = #{item}
</if>
<if test="itemDescription != null and itemDescription != ''">
AND it.DESCRIPTION = #{itemDescription}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,25 @@
package com.foreverwin.mesnac.common.dto;
import com.foreverwin.mesnac.common.model.ExcelColumn;
import java.io.Serializable;
/**
* BOM DTO
*/
public class shopOrderReleaseDto implements Serializable{
@ExcelColumn("工单编号")
private String shopOrder;
public String getShopOrder() {
return shopOrder;
}
public void setShopOrder(String shopOrder) {
this.shopOrder = shopOrder;
}
}
Loading…
Cancel
Save