Compare commits

...

2 Commits

@ -1,6 +1,7 @@
package com.aucma.base.domain;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -96,6 +97,16 @@ public class StationDefectRelation extends BaseEntity {
@Excel(name = "物料小类")
private String materialSubclass;
private List<String> defectCodeList;
public List<String> getDefectCodeList() {
return defectCodeList;
}
public void setDefectCodeList(List<String> defectCodeList) {
this.defectCodeList = defectCodeList;
}
public String getMaterialCategories() {
return materialCategories;
}

@ -9,71 +9,74 @@ import org.springframework.stereotype.Service;
import com.aucma.base.mapper.StationDefectRelationMapper;
import com.aucma.base.domain.StationDefectRelation;
import com.aucma.base.service.IStationDefectRelationService;
import org.springframework.transaction.annotation.Transactional;
/**
* /Service
*
*
* @author Yinq
* @date 2023-11-27
*/
@Service
public class StationDefectRelationServiceImpl implements IStationDefectRelationService
{
public class StationDefectRelationServiceImpl implements IStationDefectRelationService {
@Autowired
private StationDefectRelationMapper stationDefectRelationMapper;
/**
* /
*
*
* @param objId /
* @return /
*/
@Override
public StationDefectRelation selectStationDefectRelationByObjId(Long objId)
{
public StationDefectRelation selectStationDefectRelationByObjId(Long objId) {
return stationDefectRelationMapper.selectStationDefectRelationByObjId(objId);
}
/**
* /
*
*
* @param stationDefectRelation /
* @return /
*/
@Override
public List<StationDefectRelation> selectStationDefectRelationList(StationDefectRelation stationDefectRelation)
{
public List<StationDefectRelation> selectStationDefectRelationList(StationDefectRelation stationDefectRelation) {
return stationDefectRelationMapper.selectStationDefectRelationList(stationDefectRelation);
}
/**
* /
*
*
* @param stationDefectRelation /
* @return
*/
@Override
public int insertStationDefectRelation(StationDefectRelation stationDefectRelation)
{
@Transactional(rollbackFor = Exception.class)
public int insertStationDefectRelation(StationDefectRelation stationDefectRelation) {
int i = 1;
if (!stationDefectRelation.getDefectCodeList().isEmpty()) {
List<String> defectCodeList = stationDefectRelation.getDefectCodeList();
for (String defectCode : defectCodeList) {
try {
stationDefectRelation.setDefectCode(defectCode);
stationDefectRelationMapper.insertStationDefectRelation(stationDefectRelation);
} catch (Exception e) {
throw new ServiceException("该工位已绑定" + stationDefectRelation.getDefectCode() + "缺陷编号!");
int i = 0;
try {
i = stationDefectRelationMapper.insertStationDefectRelation(stationDefectRelation);
} catch (Exception e) {
throw new ServiceException("该工位已绑定此缺陷!");
}
}
}
return i;
}
/**
* /
*
*
* @param stationDefectRelation /
* @return
*/
@Override
public int updateStationDefectRelation(StationDefectRelation stationDefectRelation)
{
public int updateStationDefectRelation(StationDefectRelation stationDefectRelation) {
int i = 0;
try {
i = stationDefectRelationMapper.updateStationDefectRelation(stationDefectRelation);
@ -85,25 +88,23 @@ public class StationDefectRelationServiceImpl implements IStationDefectRelationS
/**
* /
*
*
* @param objIds /
* @return
*/
@Override
public int deleteStationDefectRelationByObjIds(Long[] objIds)
{
public int deleteStationDefectRelationByObjIds(Long[] objIds) {
return stationDefectRelationMapper.deleteStationDefectRelationByObjIds(objIds);
}
/**
* /
*
*
* @param objId /
* @return
*/
@Override
public int deleteStationDefectRelationByObjId(Long objId)
{
public int deleteStationDefectRelationByObjId(Long objId) {
return stationDefectRelationMapper.deleteStationDefectRelationByObjId(objId);
}
}

@ -48,6 +48,13 @@ public class QualityDefectsStatisticalAnalysis extends BaseEntity {
@JsonProperty("REWORK_NUMBER")
private Long REWORK_NUMBER;
/**
*
*/
@Excel(name = "合计数量")
@JsonProperty("INSPECTION_NUMBER")
private Long INSPECTION_NUMBER;
/**
* (%)
*/
@ -55,6 +62,14 @@ public class QualityDefectsStatisticalAnalysis extends BaseEntity {
@JsonProperty("RATE")
private String RATE;
public Long getINSPECTION_NUMBER() {
return INSPECTION_NUMBER;
}
public void setINSPECTION_NUMBER(Long INSPECTION_NUMBER) {
this.INSPECTION_NUMBER = INSPECTION_NUMBER;
}
public String getFACTORY_NAME() {
return FACTORY_NAME;
}

@ -122,6 +122,22 @@ public class ProductionReportServiceImpl implements IProductionReportService {
* */
public List<MaterialReport> materialReportList(Map hashMap){
List<MaterialReport> Materials = reportMapper.materialReportList(hashMap);
if (Materials.size() > 0){
MaterialReport materialReport = new MaterialReport();
materialReport.setMES_SN_BINDING_COUNT(0);
materialReport.setFINISHED_PRODUCT_SCAN_COUNT(0);
materialReport.setFINISHED_PRODUCT_PALLETIZING_COUNT(0);
materialReport.setMATERIAL_NAME("合计");
for (MaterialReport material : Materials) {
Integer mesSnBindingCount = materialReport.getMES_SN_BINDING_COUNT() + material.getMES_SN_BINDING_COUNT();
Integer finishedProductScanCount = materialReport.getFINISHED_PRODUCT_SCAN_COUNT() + material.getFINISHED_PRODUCT_SCAN_COUNT();
Integer finishedProductPalletizingCount = materialReport.getFINISHED_PRODUCT_PALLETIZING_COUNT() + material.getFINISHED_PRODUCT_PALLETIZING_COUNT();
materialReport.setMES_SN_BINDING_COUNT(mesSnBindingCount);
materialReport.setFINISHED_PRODUCT_SCAN_COUNT(finishedProductScanCount);
materialReport.setFINISHED_PRODUCT_PALLETIZING_COUNT(finishedProductPalletizingCount);
}
Materials.add(materialReport);
}
return Materials;
}
}

@ -161,6 +161,12 @@ public class QualityReportServiceImpl implements IQualityReportService {
*/
@Override
public List<RepairRateReport> repairRateReportList(Map hashMap) {
// if (hashMap.containsKey("PRODUCT_LINE_CODE")) {
// String productLineCode = String.valueOf(hashMap.get("PRODUCT_LINE_CODE"));
// if (productLineCode.equals("MF_01")){
// hashMap.put("PRODUCT_LINE_CODE", "CX_02");
// }
// }
if (hashMap.containsKey("stationCodeList")) {
String[] stationCodeLists = String.valueOf(hashMap.get("stationCodeList")).split(",");
hashMap.put("stationCodeList", stationCodeLists);
@ -182,8 +188,6 @@ public class QualityReportServiceImpl implements IQualityReportService {
}
//周
else if (hashMap.get("month").equals("2")){
Object year = String.valueOf(hashMap.get("year"));
String beginTime = year + "-01-01";
String endTime = year + "-12-31";
@ -194,9 +198,8 @@ public class QualityReportServiceImpl implements IQualityReportService {
List<RepairRateReport> collect = repairRateReports.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(RepairRateReport::getCOLUMN_A))),ArrayList::new
));
List<RepairRateReport> repairRateReportsSumWeek = new ArrayList<>();
for (int i = 0; i < collect.size(); i++){
for (int i = 0; i < collect.size(); i++){
for (int j=0;j<repairRateReports.size();j++){
if (collect.get(i).getCOLUMN_A().equals(repairRateReports.get(j).getCOLUMN_A())&&
collect.get(i).getINSPECTOR_TIME() != repairRateReports.get(j).getINSPECTOR_TIME()
@ -251,11 +254,9 @@ public class QualityReportServiceImpl implements IQualityReportService {
collect.get(i).setINSPECTOR_TIME(collect.get(i).getINSPECTOR_TIME().substring(0,7));
}
return collect;
}
else{
} else{
return reportMapper.repairRateReportList(hashMap);
}
}
/**

@ -287,39 +287,32 @@
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
)
SELECT
ROW_NUMBER() OVER (ORDER BY RATE) AS SEQ,
SELECT ROW_NUMBER() OVER (ORDER BY RATE) AS SEQ,
SD.QUALITY_DEFECT_NAME,
SD.MATERIAL_MODEL,
SD.DEFECT_NUMBER,
RATE
FROM (
SELECT
DA.QUALITY_DEFECT_NAME,
COUNT(*) AS DEFECT_NUMBER,
FROM (SELECT DA.QUALITY_DEFECT_NAME,
DA.MATERIAL_MODEL,
COUNT(*) AS DEFECT_NUMBER,
TO_CHAR(ROUND(COUNT(*) / TD.ALL_DEFECT * 100, 2), 'FM99990.00') || '%' AS RATE
FROM (
SELECT
RQI.QUALITY_DEFECT_NAME,
FROM (SELECT RQI.QUALITY_DEFECT_NAME,
RQI.BAR_CODE,
GET_MATERIAL_TYPE(RQI.MATERIAL_NAME) MATERIAL_MODEL,
RQI.QUALITY_DEFECT_CODE
FROM
REPORT_QUALITY_INSPECTION RQI
WHERE
RQI.TREATMENT_MEASURE = 1
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.TREATMENT_MEASURE = 1
<if test="stationCode != null and stationCode != ''">
AND RQI.STATION_CODE = #{stationCode}
</if>
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY
RQI.QUALITY_DEFECT_NAME, RQI.BAR_CODE, RQI.QUALITY_DEFECT_CODE
) DA
GROUP BY RQI.QUALITY_DEFECT_NAME, RQI.BAR_CODE, GET_MATERIAL_TYPE(RQI.MATERIAL_NAME),
RQI.QUALITY_DEFECT_CODE) DA
CROSS JOIN TotalDefects TD
GROUP BY
DA.QUALITY_DEFECT_NAME, TD.ALL_DEFECT
) SD
ORDER BY DEFECT_NUMBER DESC
GROUP BY DA.QUALITY_DEFECT_NAME, DA.MATERIAL_MODEL, TD.ALL_DEFECT) SD
ORDER BY SD.MATERIAL_MODEL, DEFECT_NUMBER DESC
</select>
<select id="productTraceabilityReportList" resultType="com.aucma.report.domain.ProductTraceabilityReport"
@ -553,18 +546,27 @@
RIGHT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
</if>
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
)
GROUP BY PRODUCT_SCANTIME) VPO
ON PRODUCT_SCANTIME = RQI.INSPECTOR_TIME
CROSS JOIN (SELECT TO_CHAR(CUSTOM_DATA) TARGET
@ -803,6 +805,9 @@
<if test="FACTORY_CODE != null and FACTORY_CODE != ''">
AND BF.FACTORY_CODE = #{FACTORY_CODE}
</if>
<if test="MATERIAL_MODEL != null and MATERIAL_MODEL != ''">
AND RQI.MATERIAL_NAME like '%' || #{MATERIAL_MODEL} || '%'
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
AND PL2.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
</if>
@ -1039,14 +1044,26 @@
LEFT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
GROUP BY PRODUCT_SCANTIME
) VPO
@ -1095,14 +1112,26 @@
LEFT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
GROUP BY PRODUCT_SCANTIME
) VPO
@ -1145,6 +1174,9 @@
<if test="orderCode != null and orderCode != ''">
AND BO.ORDER_CODE = #{orderCode}
</if>
<if test="BOX_NAME != null and BOX_NAME != ''">
AND P1.MATERIAL_NAME like '%' || #{BOX_NAME} || '%'
</if>
<if test="linerCode != null and linerCode != ''">
AND CB.LINER_CODE = #{linerCode}
</if>

@ -71,6 +71,7 @@
<if test="uuid != null and uuid != ''">and ei.uuid = #{uuid}</if>
<if test="result != null and result != ''">and ei.result = #{result}</if>
<if test="barcode != null and barcode != ''">and ei.barcode = #{barcode}</if>
<if test="materialModel != null and materialModel != ''">and MI.MATERIAL_SPECIFICATIONS like '%' || #{materialModel} || '%' </if>
<if test="testTime != null and testTime != ''">and ei.testtime = #{testTime}</if>
<if test="testData != null and testData != ''">and ei.testdata = #{testData}</if>
<if test="productLineCode != null and productLineCode != ''">and ei.product_line_code = #{productLineCode}</if>

Loading…
Cancel
Save