增加过点数报表

master
wg 1 year ago
parent 7a2ce51878
commit 4e5f4c3a7f

@ -39,13 +39,14 @@ spring:
enabled: true
# redis 配置
redis:
# 地址
host: localhost
host: 175.27.215.92
# 端口默认为6379
port: 6379
# 数据库索引
database: 5
# 密码
password: redis@2023
# 密码
# password: redis@2023
# 连接超时时间
timeout: 10s

@ -254,6 +254,27 @@ public class ProductionReportController extends BaseController {
ExcelUtil<codeBanding> util = new ExcelUtil<>(codeBanding.class);
util.exportExcel(response,list,"壳胆绑定报表");
}
/**
*
* */
@GetMapping("/materialReportList")
public TableDataInfo materialReportList(@RequestParam(required = false) Map hashMap){
startPage();
List<MaterialReport> list = productionReportService.materialReportList(hashMap);
return getDataTable(list);
}
/**
*
* */
@PostMapping("/materialReportList/export")
public void materialReportListExport(HttpServletResponse response,@RequestParam(required = false) Map hashMap){
hashMap.put("pageNum",null);
hashMap.put("pageSize",null);
List<MaterialReport> list = productionReportService.materialReportList(hashMap);
ExcelUtil<MaterialReport> util = new ExcelUtil<>(MaterialReport.class);
util.exportExcel(response,list,"物料报表");
}
}

@ -0,0 +1,106 @@
package com.aucma.report.domain;
import com.aucma.common.annotation.Excel;
import com.aucma.common.annotation.Log;
import com.aucma.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Date;
/**
* @ClassName : MaterialReport
* @Description :
* @Author : []
* @Date: 2024-11-25 11:30
*/
public class MaterialReport extends BaseEntity {
private static final long serialVersionUID = 1L;
@Excel(name = "产线名称")
@JsonProperty("PRODUCT_LINE_NAME")
private String PRODUCT_LINE_NAME;
@Excel(name = "物料编号")
@JsonProperty("MATERIAL_CODE")
private String MATERIAL_CODE;
@Excel(name = "物料名称")
@JsonProperty("MATERIAL_NAME")
private String MATERIAL_NAME;
@Excel(name = "MES/SN绑定数量")
@JsonProperty("MES_SN_BINDING_COUNT")
private Integer MES_SN_BINDING_COUNT;
@Excel(name = "成品下线扫描数量")
@JsonProperty("FINISHED_PRODUCT_SCAN_COUNT")
private Integer FINISHED_PRODUCT_SCAN_COUNT;
@Excel(name = "成品库分垛数量")
@JsonProperty("FINISHED_PRODUCT_PILING_COUNT")
private Integer FINISHED_PRODUCT_PILING_COUNT;
@Excel(name = "过点时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonProperty("RECORD_TIME1")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String RECORD_TIME1;
public String getPRODUCT_LINE_NAME() {
return PRODUCT_LINE_NAME;
}
public void setPRODUCT_LINE_NAME(String PRODUCT_LINE_NAME) {
this.PRODUCT_LINE_NAME = PRODUCT_LINE_NAME;
}
public String getMATERIAL_CODE() {
return MATERIAL_CODE;
}
public void setMATERIAL_CODE(String MATERIAL_CODE) {
this.MATERIAL_CODE = MATERIAL_CODE;
}
public String getMATERIAL_NAME() {
return MATERIAL_NAME;
}
public void setMATERIAL_NAME(String MATERIAL_NAME) {
this.MATERIAL_NAME = MATERIAL_NAME;
}
public Integer getMES_SN_BINDING_COUNT() {
return MES_SN_BINDING_COUNT;
}
public void setMES_SN_BINDING_COUNT(Integer MES_SN_BINDING_COUNT) {
this.MES_SN_BINDING_COUNT = MES_SN_BINDING_COUNT;
}
public Integer getFINISHED_PRODUCT_SCAN_COUNT() {
return FINISHED_PRODUCT_SCAN_COUNT;
}
public void setFINISHED_PRODUCT_SCAN_COUNT(Integer FINISHED_PRODUCT_SCAN_COUNT) {
this.FINISHED_PRODUCT_SCAN_COUNT = FINISHED_PRODUCT_SCAN_COUNT;
}
public Integer getFINISHED_PRODUCT_PALLETIZING_COUNT() {
return FINISHED_PRODUCT_PILING_COUNT;
}
public void setFINISHED_PRODUCT_PALLETIZING_COUNT(Integer FINISHED_PRODUCT_PALLETIZING_COUNT) {
this.FINISHED_PRODUCT_PILING_COUNT = FINISHED_PRODUCT_PALLETIZING_COUNT;
}
@Override
public String toString() {
return "MaterialReport{" +
"PRODUCT_LINE_NAME='" + PRODUCT_LINE_NAME + '\'' +
", MATERIAL_CODE='" + MATERIAL_CODE + '\'' +
", MATERIAL_NAME='" + MATERIAL_NAME + '\'' +
", MES_SN_BINDING_COUNT=" + MES_SN_BINDING_COUNT +
", FINISHED_PRODUCT_SCAN_COUNT=" + FINISHED_PRODUCT_SCAN_COUNT +
", FINISHED_PRODUCT_PALLETIZING_COUNT=" + FINISHED_PRODUCT_PILING_COUNT +
'}';
}
}

@ -183,4 +183,9 @@ public interface GeneralReportMapper {
*
* */
List<codeBanding> codeBandingReportList(Map hashMap);
/**
*
* */
List<MaterialReport> materialReportList(Map hashMap);
}

@ -81,4 +81,8 @@ public interface IProductionReportService
*
* */
List<codeBanding> codeBandingReportList(Map hashMap);
/**
*
* */
List<MaterialReport> materialReportList(Map hashMap);
}

@ -117,5 +117,11 @@ public class ProductionReportServiceImpl implements IProductionReportService {
List<codeBanding> codeBandings = reportMapper.codeBandingReportList(hashMap);
return codeBandings;
}
/**
*
* */
public List<MaterialReport> materialReportList(Map hashMap){
List<MaterialReport> Materials = reportMapper.materialReportList(hashMap);
return Materials;
}
}

@ -638,49 +638,51 @@
ORDER BY MC.COMPLETE_DATE
</select>
<select id="WIPInquiryDetailReportList" resultType="com.aucma.report.domain.WIPInquiryDetailReport"
parameterType="java.util.HashMap">
SELECT B2.PRODUCT_LINE_CODE,
B2.PRODUCT_LINE_NAME,
SD.ORDER_CODE,
SD.MATERIAL_CODE,
SD.MATERIAL_NAME,
BO.MATERIAL_CODE PRODUCT_CODE,
BO.MATERIAL_NAME PRODUCT_NAME,
SD.MATERIAL_BARCODE,
ST.PRODUCT_LINE_NAME STATION_NAME,
SD.COMPLETE_DATE
FROM (
SELECT PB.ORDER_CODE,
BM.MATERIAL_CODE,
BM.MATERIAL_NAME,
VMC.MATERIAL_BARCODE,
MAX(BE.EXECUTION_SORT) EXECUTION_SORT,
TO_CHAR(MAX(COMPLETE_DATE), 'YYYY-MM-DD HH24:MI:SS') COMPLETE_DATE
FROM C##AUCMA_SCADA.MATERIAL_COMPLETION VMC
JOIN RECORD_INSTORE IE ON IE.STORE_CODE = 'PQK-001' AND VMC.MATERIAL_BARCODE = IE.BARCODE_CODE
LEFT JOIN BASE_PRODUCTLINE BE ON BE.PRODUCT_LINE_CODE = VMC.STATION_NAME
LEFT JOIN C##AUCMA_SCADA.PRINT_BARCODE PB
ON PRINT_BARTYPE = 1 AND VMC.MATERIAL_BARCODE = PB.MATERIAL_BARCODE
LEFT JOIN BASE_MATERIALINFO BM ON BM.MATERIAL_CODE = PB.MATERIAL_CODE
LEFT JOIN C##AUCMA_SCADA.PRODUCT_OFFLINE PO ON PO.BOX_CODE = PB.MATERIAL_BARCODE
WHERE PB.MATERIAL_BARCODE IS NOT NULL
AND PO.BOX_CODE IS NULL
-- AND VMC.COMPLETE_DATE > (SYSDATE - 7)
<if test="beginStationCode != null and beginStationCode != ''">
AND BE.EXECUTION_SORT >= #{beginStationCode}
</if>
<if test="endStationCode != null and endStationCode != ''">
AND #{endStationCode} > BE.EXECUTION_SORT
</if>
GROUP BY PB.ORDER_CODE, BM.MATERIAL_CODE, BM.MATERIAL_NAME, VMC.MATERIAL_BARCODE
) SD
LEFT JOIN BASE_ORDERINFO BO ON BO.ORDER_CODE = SD.ORDER_CODE
LEFT JOIN BASE_PRODUCTLINE B2 ON B2.WORK_CENTER_CODE = BO.WORK_CENTER_CODE
LEFT JOIN BASE_PRODUCTLINE ST ON ST.EXECUTION_SORT = SD.EXECUTION_SORT
WHERE BO.ORDER_AMOUNT != BO.COMPLETE_AMOUNT
<if test="productLineCode != null and productLineCode != ''">
SELECT B2.PRODUCT_LINE_CODE,
B2.PRODUCT_LINE_NAME,
SD.ORDER_CODE,
SD.MATERIAL_CODE,
SD.MATERIAL_NAME,
BO.MATERIAL_CODE PRODUCT_CODE,
BO.MATERIAL_NAME PRODUCT_NAME,
SD.MATERIAL_BARCODE,
ST.PRODUCT_LINE_NAME STATION_NAME,
SD.COMPLETE_DATE
FROM (
SELECT PB.ORDER_CODE,
BM.MATERIAL_CODE,
BM.MATERIAL_NAME,
VMC.MATERIAL_BARCODE,
MAX(BE.EXECUTION_SORT) EXECUTION_SORT,
TO_CHAR(MAX(COMPLETE_DATE), 'YYYY-MM-DD HH24:MI:SS') COMPLETE_DATE
FROM C##AUCMA_SCADA.MATERIAL_COMPLETION VMC
JOIN RECORD_INSTORE IE ON IE.STORE_CODE = 'PQK-001' AND VMC.MATERIAL_BARCODE = IE.BARCODE_CODE
LEFT JOIN BASE_PRODUCTLINE BE ON BE.PRODUCT_LINE_CODE = VMC.STATION_NAME
LEFT JOIN C##AUCMA_SCADA.PRINT_BARCODE PB
ON PRINT_BARTYPE = 1 AND VMC.MATERIAL_BARCODE = PB.MATERIAL_BARCODE
LEFT JOIN BASE_MATERIALINFO BM ON BM.MATERIAL_CODE = PB.MATERIAL_CODE
LEFT JOIN C##AUCMA_SCADA.PRODUCT_OFFLINE PO ON PO.BOX_CODE = PB.MATERIAL_BARCODE
WHERE PB.MATERIAL_BARCODE IS NOT NULL
AND PO.BOX_CODE IS NULL
-- AND VMC.COMPLETE_DATE > (SYSDATE - 7)
<if test="beginStationCode != null and beginStationCode != ''">
AND BE.EXECUTION_SORT >= #{beginStationCode}
</if>
<if test="endStationCode != null and endStationCode != ''">
AND #{endStationCode} > BE.EXECUTION_SORT
</if>
GROUP BY PB.ORDER_CODE, BM.MATERIAL_CODE, BM.MATERIAL_NAME, VMC.MATERIAL_BARCODE
) SD
LEFT JOIN BASE_ORDERINFO BO ON BO.ORDER_CODE = SD.ORDER_CODE
LEFT JOIN BASE_PRODUCTLINE B2 ON B2.WORK_CENTER_CODE = BO.WORK_CENTER_CODE
LEFT JOIN BASE_PRODUCTLINE ST ON ST.EXECUTION_SORT = SD.EXECUTION_SORT
AND B2.PRODUCT_LINE_CODE = #{productLineCode}
WHERE BO.ORDER_AMOUNT != BO.COMPLETE_AMOUNT
<if test="productLineCode != null and productLineCode != ''">
</if>
<if test="ORDER_CODE != null and ORDER_CODE != ''">
and SD.ORDER_CODE = #{ORDER_CODE}
@ -1151,5 +1153,72 @@
ORDER BY RECORD_TIME1 DESC
</select>
<!-- <select id="materialReportList" resultType="com.aucma.report.domain.MaterialReport" parameterType="java.util.HashMap">-->
<!-- SELECT-->
<!-- bp.PRODUCT_LINE_NAME AS product_line_name,-->
<!-- mc.MATERIAL_CODE AS material_code,-->
<!-- mc.MATERIAL_NAME AS material_name,-->
<!-- SUM(CASE WHEN mc.STATION_NAME = '1008' THEN 1 ELSE 0 END) AS mes_sn_binding_count,-->
<!-- SUM(CASE WHEN mc.STATION_NAME = '1009' THEN 1 ELSE 0 END) AS finished_product_scan_count,-->
<!-- SUM(CASE WHEN mc.STATION_NAME = '1010' THEN 1 ELSE 0 END) AS finished_product_piling_count-->
<!-- FROM-->
<!-- c##AUCMA_SCADA.MATERIAL_COMPLETION mc-->
<!-- LEFT JOIN-->
<!-- c##AUCMA_MES.BASE_PRODUCTLINE bp ON mc.PRODUCT_LINE_CODE = bp.PRODUCT_LINE_CODE-->
<!-- LEFT JOIN-->
<!-- c##AUCMA_MES.BASE_MATERIALINFO m ON mc.MATERIAL_CODE = m.MATERIAL_CODE-->
<!-- <where>-->
<!-- <if test="productLineName != null and productLineName != ''">-->
<!-- AND bp.PRODUCT_LINE_NAME = #{productLineName}-->
<!-- </if>-->
<!-- <if test="recordBeginTime != null and recordBeginTime != '' and recordEndTime != null and recordEndTime != ''">-->
<!-- AND TO_CHAR(mc.COMPLETE_DATE, 'YYYY-MM-DD HH-mm-ss') BETWEEN #{recordBeginTime} AND #{recordEndTime}-->
<!-- </if>-->
<!-- </where>-->
<!-- GROUP BY-->
<!-- bp.PRODUCT_LINE_NAME, mc.MATERIAL_CODE, mc.MATERIAL_NAME-->
<!-- ORDER BY-->
<!-- bp.PRODUCT_LINE_NAME, mc.MATERIAL_CODE-->
<!-- </select>-->
<select id="materialReportList" resultType="com.aucma.report.domain.MaterialReport" parameterType="java.util.HashMap">
SELECT
bp.PRODUCT_LINE_NAME AS product_line_name,
mc.MATERIAL_CODE AS material_code,
mc.MATERIAL_NAME AS material_name,
SUM(CASE
WHEN mc.STATION_NAME IN ('1008', '1108') THEN 1
ELSE 0
END) AS mes_sn_binding_count,
SUM(CASE
WHEN mc.STATION_NAME IN ('1009', '1109') THEN 1
ELSE 0
END) AS finished_product_scan_count,
SUM(CASE
WHEN mc.STATION_NAME IN ('1010', '1110') THEN 1
ELSE 0
END) AS finished_product_piling_count
FROM
c##AUCMA_SCADA.MATERIAL_COMPLETION mc
LEFT JOIN
c##AUCMA_MES.BASE_PRODUCTLINE bp ON mc.PRODUCT_LINE_CODE = bp.PRODUCT_LINE_CODE
LEFT JOIN
c##AUCMA_MES.BASE_MATERIALINFO m ON mc.MATERIAL_CODE = m.MATERIAL_CODE
<where>
<if test="productLineName != null and productLineName != ''">
AND (
(mc.STATION_NAME IN ('1008', '1009', '1010') AND #{productLineName} = '二线')
OR (mc.STATION_NAME IN ('1108', '1109', '1110') AND #{productLineName} = '一线')
)
</if>
<if test="recordBeginTime != null and recordBeginTime != '' and recordEndTime != null and recordEndTime != ''">
AND TO_CHAR(mc.COMPLETE_DATE, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{recordBeginTime} AND #{recordEndTime}
</if>
</where>
GROUP BY
bp.PRODUCT_LINE_NAME,
mc.MATERIAL_CODE,
mc.MATERIAL_NAME
ORDER BY
mc.MATERIAL_CODE
</select>
</mapper>

Loading…
Cancel
Save