From 5d563721de04e188373bd45f5f0a6624ab4977a8 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Sat, 11 May 2024 10:00:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A3=80=E9=AA=8C=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E6=8A=A5=E5=91=8A+=E7=83=98=E6=88=BF=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteMesService.java | 3 + .../api/factory/RemoteMesFallbackFactory.java | 7 ++ .../src/main/java/com/op/job/task/RyTask.java | 6 ++ .../controller/WCSInterfaceController.java | 18 ++-- .../main/java/com/op/mes/domain/MesShift.java | 30 ++++++ .../com/op/mes/domain/MesStationArrive.java | 55 +++++++++++ .../java/com/op/mes/mapper/MesMapper.java | 15 ++- .../op/mes/service/IWCSInterfaceService.java | 1 + .../service/impl/IWCInterfaceServiceImpl.java | 91 ++++++++++++++++++- .../impl/MesReportWorkServiceImpl.java | 1 + .../main/resources/mapper/mes/MesMapper.xml | 41 +++++++++ .../mapper/mes/MesReportWorkMapper.xml | 6 +- .../op/quality/controller/QuaController.java | 13 +++ .../op/quality/domain/QcCheckTaskDetail.java | 9 ++ .../op/quality/mapper/QcProCheckMapper.java | 2 + .../op/quality/service/QcProCheckService.java | 2 + .../service/impl/QcProCheckServiceImpl.java | 6 ++ .../quality/QcCheckTaskIncomeMapper.xml | 3 +- .../mapper/quality/QcProCheckMapper.xml | 4 + 19 files changed, 296 insertions(+), 17 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java index 99b4b6e6a..58d79c41f 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java @@ -45,4 +45,7 @@ public interface RemoteMesService { public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); @PostMapping("/reportWork/removeDatasource") public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/wcsInterface/changeTransferResultTask") + public R changeTransferResultTask(); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java index 183389558..1e9bdad8c 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java @@ -66,6 +66,13 @@ public class RemoteMesFallbackFactory implements FallbackFactory getHFQcInfo(BoardDTO boardDTO); List getHFxlInfo(BoardDTO boardDTO); + + String getStartTime(BaseEquipmentDto dto); + + List getUnChangeList(MesStationArrive dto); + + List getChangeInfos(BaseEquipmentDto dto); + + ProOrderWorkorderDTO getActOrderWork(MesStationArrive qo); + + int updateTransferResult(@Param("list") List todoList); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java index ccad386e3..984a3cae3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java @@ -41,4 +41,5 @@ public interface IWCSInterfaceService { Map dryRoomDataCarousel(BoardDTO boardDTO); + AjaxResult changeTransferResultTask(); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 17b66bf80..91debeeb7 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -9,9 +9,10 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.http.HttpUtils; import com.op.common.core.utils.uuid.IdUtils; -import com.op.common.security.utils.SecurityUtils; +import com.op.common.core.web.domain.AjaxResult; import com.op.mes.domain.*; import com.op.mes.domain.buffer.JsonRootBean; +import com.op.mes.domain.dto.BaseEquipmentDto; import com.op.mes.domain.dto.LGInfoDto; import com.op.mes.mapper.MesMapper; import com.op.mes.mapper.MesReportWorkConsumeMapper; @@ -21,13 +22,12 @@ import com.op.mes.service.IWCSInterfaceService; import com.op.system.api.RemoteSapService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysDept; -import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.dto.BoardDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataDTO; +import com.op.system.api.domain.mes.ProOrderWorkorderDTO; import com.op.system.api.domain.mes.ProRfidProcessDetail; -import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapRFW; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -47,7 +47,8 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; - +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; /** * wcs接口业务层处理 * @@ -638,4 +639,86 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return map; } + /**白坯工厂,修正设备**/ + @Override + public AjaxResult changeTransferResultTask() { + // 加载sf-cloud库的sys_datasource + DynamicDataSourceContextHolder.push("ds_999");// 这是数据源的key + + BaseEquipmentDto edto = new BaseEquipmentDto(); + edto.setEquipmentTypeCode("equTypeCxj"); + List cxjList = mesMapper.getAllEquipments(edto); + ExecutorService executorService = new ThreadPoolExecutor( + cxjList.size(), + cxjList.size(), + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + try { + cxjList.forEach(cxj -> { + Runnable run = () -> changeTransferResultFunc(cxj); + executorService.execute(run); + }); + } catch (Exception e) { + logger.error("service == changeTransferResultTask == exception", e); + return error("service == changeTransferResultTask == exception"); + } finally { + executorService.shutdown(); + } + return success(); + } + + /** + * 更新T-1天的mes_material_transfer_result数据 + * @param cxj + */ + private R changeTransferResultFunc(BaseEquipmentDto cxj){ + logger.info("++++++++++++" + cxj.getEquipmentCode() + "++++班次交接最后一车数据修正++++++++++"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义日期格式 + LocalDate today = LocalDate.now(); + String ymdT0 = today.format(formatter); // 格式化今天的日期 + LocalDate yesterday = today.minusDays(1); + String ymd = yesterday.format(formatter); // 格式化昨天的日期 + cxj.setYmd("'"+ymdT0+"','"+ymd+"'"); + List changeInfos = mesMapper.getChangeInfos(cxj); + if(CollectionUtils.isEmpty(changeInfos)){ + logger.info("++++++++++++班次交接最后一车数据修正:无数据++++++++++"+JSONObject.toJSONString(cxj)); + return R.fail("班次交接最后一车数据修正:无数据"); + } + List todoList = new ArrayList<>(); + for(int m=0;m todos1 = mesMapper.getUnChangeList(qo);//需要调整的数据 + todoList.addAll(todos1); + + if(!CollectionUtils.isEmpty(todoList)){ + continue; + } + + qo.setReqCode(ymd);//工单日期 + ProOrderWorkorderDTO actOrderWork = mesMapper.getActOrderWork(qo); + if(actOrderWork != null){//给需要调整的数据,重新赋值新的班次,工单Id + Date nowDate = DateUtils.getNowDate(); + for(MesStationArrive newtodo:todoList){ + newtodo.setChangeOrderWorkId(actOrderWork.getWorkorderId()); + newtodo.setShiftId(Integer.parseInt(actOrderWork.getShiftId())); + newtodo.setChangeWorkDate(actOrderWork.getProductDate()); + newtodo.setChangeTime(nowDate); + } + } + /**mes_material_transfer_result**/ + int n = mesMapper.updateTransferResult(todoList); + logger.info("++++++++++++班次交接最后一车数据修正:修正成功"+n+"++++++++++"+JSONObject.toJSONString(todoList)); + } + logger.info("++++++++++++班次交接最后一车数据修正:数据条数++++++++++"+todoList.size()); + return R.fail("班次交接最后一车数据修正:完成"); + } + } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 55b906f55..eb893d506 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -588,6 +588,7 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { List dbMProductList = mesReportWorkMapper.getMachineProductionList(mesMachineReport); + List> results = listDate.stream() .map(date -> { Map row = new HashMap<>(); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index c04b7cc08..e9d08bf52 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -55,6 +55,16 @@ ) + + + update mes_material_transfer_result + set change_order = #{item.changeOrderWorkId}, + change_shift_id = #{item.shiftId}, + change_time = #{item.changeTime}, + change_work_date = #{item.changeWorkDate} + where id = #{item.recordId} + + delete from ${table} where #{ymdhms} > CONVERT(varchar(30),create_time, 120) @@ -405,5 +415,36 @@ GROUP BY device_code ) t2 on t1.equCode = t2.equCode + + + + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index b9b62aa97..db3dc2a3c 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -754,8 +754,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pow.product_name productName, mt.ymd ymd FROM - ( - SELECT CONVERT( VARCHAR ( 10 ), mtr.update_time, 20 ) ymd,mtr.OrderCode + ( + SELECT CONVERT(VARCHAR ( 10 ), mtr.update_time, 20 ) ymd,mtr.OrderCode FROM mes_material_transfer_result mtr LEFT JOIN base_equipment equ ON mtr.equipmentCode = equ.equipment_code WHERE @@ -763,7 +763,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND equ.equipment_type_code = 'equ_type_cxj' and CONVERT(varchar(30),mtr.update_time, 120) >= #{productDateStart} and #{productDateEnd} > CONVERT(varchar(30),mtr.update_time, 120) - ) mt + ) mt LEFT JOIN pro_order_workorder pow ON pow.workorder_id = mt.OrderCode WHERE pow.order_code IS NOT NULL diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index 27291ef2f..1d0adb664 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -179,6 +179,19 @@ public class QuaController extends BaseController { } return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); } + /** + * 自动取称的数据 + */ + @GetMapping(value = "getWeightInfo") + public AjaxResult getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail) { + if(StringUtils.isBlank(qcCheckTaskDetail.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskDetail.getRecordId())){ + return error("[recordId]不能为空"); + } + return success(qcProCheckService.getWeightInfo(qcCheckTaskDetail)); + } /** * 获取待检验信息列表 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java index 5583b8fbf..70098e888 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java @@ -141,6 +141,15 @@ public class QcCheckTaskDetail extends BaseEntity { private String itemType; private String judgeRate; private String samplePlan; + private String weight; + + public String getWeight() { + return weight; + } + + public void setWeight(String weight) { + this.weight = weight; + } public String getSamplePlan() { return samplePlan; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java index 445c2159a..11e6fe895 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java @@ -2,6 +2,7 @@ package com.op.quality.mapper; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; +import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcProCheck; import org.apache.ibatis.annotations.Mapper; @@ -41,4 +42,5 @@ public interface QcProCheckMapper { List getHFnames(QcProCheck qcProCheck); + String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index 8c7b7c6c9..ff799f00d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -43,4 +43,6 @@ public interface QcProCheckService { List selectQcCheckList(QcProCheck qcProCheck); ChartSeriesDTO getHfChartData(QcProCheck qcProCheck); + + String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 0929a730c..300247ba1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -215,4 +215,10 @@ public class QcProCheckServiceImpl implements QcProCheckService { return dto; } + @Override + public String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail) { + DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); + return qcProCheckMapper.getWeightInfo(qcCheckTaskDetail); + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index d544f0683..422a46ae6 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -152,7 +152,8 @@ td.defect_quality defectQuality, qctp.upper_diff upperDiff, qctp.down_diff downDiff, - qctp.sample + qctp.sample, + qctp.weight from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' and td.rule_name is not null diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index d55b3279c..581087409 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -386,5 +386,9 @@ ) ok on alls.machineCode = ok.machineCode order by alls.machineName +