From b8a43de01acfb74c2fb33f1343ae91045a6cbbc1 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 9 Apr 2025 22:51:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E5=93=81=E6=8A=BD=E6=A3=80=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MesLineAssistantQtyServiceImpl.java | 5 + .../controller/QcStaticTableController.java | 6 + .../op/quality/controller/QuaController.java | 13 ++ .../mapper/QcCheckTaskIncomeMapper.java | 4 + .../service/IQcCheckTaskIncomeService.java | 3 + .../service/IQcStaticTableService.java | 2 + .../impl/QcCheckTaskIncomeServiceImpl.java | 192 ++++++++++++++++++ .../QcCheckTaskWarehousingServiceImpl.java | 16 +- .../impl/QcStaticTableServiceImpl.java | 17 ++ .../quality/QcCheckTaskIncomeMapper.xml | 20 ++ .../quality/QcCheckTaskProduceMapper.xml | 1 + .../mapper/quality/QcCheckTaskUserMapper.xml | 2 +- 12 files changed, 274 insertions(+), 7 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java index 929b5ceb2..bbf755c3c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineAssistantQtyServiceImpl.java @@ -135,14 +135,19 @@ public class MesLineAssistantQtyServiceImpl implements IMesLineAssistantQtyServi // (-中午休息1.5h) mesLineAssistant.setPostId("10000150"); BigDecimal monitorHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); + monitorHour = monitorHour.subtract(new BigDecimal("1.5")); mesLineAssistant.setPostId("10000168"); BigDecimal groupleadeHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); + groupleadeHour = groupleadeHour.subtract(new BigDecimal("1.5")); mesLineAssistant.setPostId("10000478"); BigDecimal materialHour= mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); + materialHour = materialHour.subtract(new BigDecimal("1.5")); mesLineAssistant.setPostId("10000271"); BigDecimal pillMgrHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); + pillMgrHour = pillMgrHour.subtract(new BigDecimal("1.5")); mesLineAssistant.setPostId("10000155"); BigDecimal pillDisHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); + pillDisHour = pillDisHour.subtract(new BigDecimal("1.5")); BigDecimal allProHours = BigDecimal.ZERO; for(MesLineAssistantQtyVo assistdto:dtos){ //产品工时(用母单的) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index cd3959a84..865acdb38 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -1087,4 +1087,10 @@ public class QcStaticTableController extends BaseController { } } } + + @Log(title = "黑蚊香成品分类汇总--表头", businessType = BusinessType.QUERY) + @GetMapping("/getCpDateTitle") + public List getCpDateTitle(QcStaticTable qcStaticTable) { + return qcStaticTableService.getCpDateTitle(qcStaticTable); + } } 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 80f2bea3b..cb72e8534 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 @@ -346,4 +346,17 @@ public class QuaController extends BaseController { DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome); } + + /**当前正在生产的线体,正在运行的订单**/ + @PostMapping("/getLineProOrder") + public List getLineProOrder(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { + DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); + return qcCheckTaskIncomeService.getLineProOrder(qcCheckTaskIncome); + } + /**成品抽检提交**/ + @PostMapping(value = "/commitCPCJCheck") + public AjaxResult commitCPCJCheck(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { + DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); + return toAjax(qcCheckTaskIncomeService.commitCPCJCheck(qcCheckTaskIncome)); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 403e03adf..0c91e9d7b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -169,4 +169,8 @@ public interface QcCheckTaskIncomeMapper { int insertBaseFileBatch(@Param("baseFiles")List files); void deleteBaseFileBySourceId(@Param("sourceId") String sourceId); + + List getLineProOrder(QcCheckTaskIncome getLineProOrder); + + List getOrderBatch(String recordId); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 1a45aea56..d45146554 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -124,4 +124,7 @@ public interface IQcCheckTaskIncomeService { List getCkeckProjectMapList(QcCheckTaskIncome qcCheckTaskIncome); int submitCheckPics(QcCheckTaskIncome qcCheckTaskIncome); + + List getLineProOrder(QcCheckTaskIncome qcCheckTaskIncome); + int commitCPCJCheck(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index bbfe01ed5..192687090 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -93,4 +93,6 @@ public interface IQcStaticTableService { List> getDefectItemDataPC(QcStaticTable qcStaticTable); QcStaticTable getDefectItemLinePC(QcStaticTable qcStaticTable); + + List getCpDateTitle(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 9db257027..22fefc209 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -1456,4 +1456,196 @@ public class QcCheckTaskIncomeServiceImpl implements } return qcCheckTaskIncomeMapper.insertBaseFileBatch(files); } + + @Override + @DS("#header.poolName") + public List getLineProOrder(QcCheckTaskIncome getLineProOrder) { + List dtos = qcCheckTaskIncomeMapper.getLineProOrder(getLineProOrder); + for(QcCheckTaskIncome dto:dtos){ + List defects = qcCheckTaskIncomeMapper.getOrderBatch(dto.getRecordId()); + dto.setDefects(defects); + } + return dtos; + } + + @Override + //@Transactional(rollbackFor = Exception.class) + public int commitCPCJCheck(QcCheckTaskIncome qcCheckTaskIncome) { + logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome)); + List details = qcCheckTaskIncome.getQcCheckTaskDetails(); + + Date nowTime = DateUtils.getNowDate(); + String factoryCode = qcCheckTaskIncome.getFactoryCode(); + String updateBy = qcCheckTaskIncome.getUpdateBy(); + String belongId = IdUtils.fastSimpleUUID(); + String checkType = qcCheckTaskIncome.getCheckType(); + qcCheckTaskIncome.setFactoryCode(qcCheckTaskIncome.getFactoryCode().replace("ds_","")); + //默认合格 + + String result=null; + if(StringUtils.isBlank(qcCheckTaskIncome.getCheckResult())){ + result = "Y"; + for(QcCheckTaskDetail detail:details){ + if("N".equals(detail.getStatus())){ + result = "N";//不合格 + break; + } + } + }else{ + //有最终判定的情况 + result = qcCheckTaskIncome.getCheckResult(); + } + + int n = 0; + QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome(); + qcCheckTask.setUpdateBy(updateBy); + qcCheckTask.setRecordId(belongId); + qcCheckTask.setCheckStatus("2");//检测状态0待检测1检测中2检测完成 + qcCheckTask.setUpdateTime(nowTime); + qcCheckTask.setCheckTime(nowTime); + qcCheckTask.setRemark(qcCheckTaskIncome.getRemark()); + qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 + qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo()); + BigDecimal noOkQquality = new BigDecimal("0"); + String[] defectQualitys0 = details.get(0).getDefectQualitys().split(",");; + for(int m=0;m files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(belongId); + file.setCreateBy(updateBy); + file.setCreateTime(nowTime); + files.add(file); + } + /**base_file**/ + n = qmsFileMapper.insertBaseFileBatch(files); + System.out.println("base_file:"+n); + } + + } + + /**qc_check_task**/ + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckTaskIncomeMapper.getTodayMaxNum(qcCheckTaskIncome); + String liushuiStr = String.format("%04d", liushuiNum); + qcCheckTask.setCheckNo(bpDD+liushuiStr); + n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTask); + logger.info("qc_check_task:"+n); + + + /**qc_check_task_defect**/ + n=qcCheckTaskIncomeMapper.deleteQcCheckTaskDefects(belongId); + logger.info("清理qc_check_task_defect:"+n); + List defects = new ArrayList<>(); + QcCheckTaskDefect defect = null; + for(QcCheckTaskDetail detail:details){ + if(StringUtils.isNotBlank(detail.getDefectCodes())){ + String[] defectCodes = detail.getDefectCodes().split(","); + String[] defectNames = detail.getDefectNames().split(","); + String[] defectQualitys = detail.getDefectQualitys().split(","); + if(StringUtils.isBlank(detail.getClassTypeCodes())){ + detail.setClassTypeCodes(",");//为了防止前端不选缺陷描述 + } + String[] classIds = detail.getClassTypeCodes().split(","); + for(int d=0;dqc_status->2**/ +// qcCheckTaskIncome.setStatus("2"); +// qcCheckTaskIncome.setCheckResult(result); +// qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome); +// } +// if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())&&"N".equals(result)){ +// QcCheckTaskIncome recheck = new QcCheckTaskIncome(); +// recheck.setOldBelongTo(belongId); +// +// recheck.setCreateBy(updateBy); +// recheck.setCreateTime(nowTime); +// //首件不合格触发复检 +// recheck.setRecordId(IdUtils.fastSimpleUUID()); +// recheck.setBelongTo(recheck.getRecordId()); +// +// n = qcCheckUnqualifiedMapper.repeatCheckTask(recheck); +// logger.info("复检表qc_check_task:" + n); +// +//// n = qcCheckUnqualifiedMapper.repeatCheckTaskDefect(recheck); +//// logger.info("复检表qc_check_task_defect:" + n); +// +// n = qcCheckUnqualifiedMapper.repeatCheckTaskDetail(recheck); +// logger.info("复检表qc_check_task_detail:" + n); +// +// n = qcCheckUnqualifiedMapper.repeatCheckTaskUser(recheck); +// logger.info("复检表qc_check_task_user:" + n); +// +// } +// }else if("product".equals(qcCheckTaskIncome.getTypeCode())){ +// /**wms_product_put-->check_status->1**/ +// qcCheckTaskIncome.setStatus("2"); +// qcCheckUnqualifiedMapper.updatePutStatus(qcCheckTaskIncome); +// } +// +// //不合格处理 +// if("N".equals(result)) { +// QcCheckUnqualified unqualified = new QcCheckUnqualified(); +// unqualified.setId(IdUtils.fastSimpleUUID()); +// unqualified.setTaskId(belongId); +// unqualified.setCreateTime(DateUtils.getNowDate()); +// unqualified.setCreateBy(updateBy); +// unqualified.setFactoryCode(factoryCode); +// unqualified.setType(checkType); +// n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); +// logger.info("qc_check_unqualified:" + n); +// if("1".equals(qcCheckTaskIncome.getStartOA())){ +// this.setOaFunc(unqualified,qcCheckTaskIncome); +// } +// //发送企业微信 +// this.sendWX(qcCheckTaskIncome); +// } + return 1 ; + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index b14512728..e2707a78f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -215,13 +215,16 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin qcCheckTaskWarehousing.setCheckManName(""); qcCheckTaskWarehousing.setCheckManCode(""); /**qc_user_material取默认检查人**/ - List users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType()); + + QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome(); + qcCheckTaskIncome.setCheckType(qcCheckTaskWarehousing.getCheckType()); + qcCheckTaskIncome.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode()); + qcCheckTaskIncome.setCheckLoc(qcCheckTaskWarehousing.getCheckLoc()); + List users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome); if(CollectionUtils.isEmpty(users)){ - QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); - dto0.setUserCode("mobile"); - dto0.setUserName("手持测试用户"); - users.add(dto0); - }else{ + users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType()); + } + if(!CollectionUtils.isEmpty(users)){ for(QcUserMaterialDTO user:users){ user.setId(IdUtils.fastSimpleUUID()); user.setBelongTo(beLongId); @@ -231,6 +234,7 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin user.setCreateTime(nowDate); } } + /**qc_check_task_user**/ int m=qcCheckTaskIncomeMapper.addCheckUsers(users); logger.info("检查人新增"+m+"成功"); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 99a0c50cb..5cb8ec7a5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -1988,6 +1988,23 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return dto; } + @Override + public List getCpDateTitle(QcStaticTable qcStaticTable) { + + //获取不良种类 + List titles = new ArrayList<>();//qcStaticTableMapper.getCpDefects(qcStaticTable); + titles.add("抽样总数"); + titles.add("A类"); + titles.add("B类"); + titles.add("C类"); + titles.add("不良总数"); + titles.add("不良率"); + titles.add("抽检批数"); + titles.add("不合格批数"); + titles.add("不合格批次率"); + return titles; + } + protected Map getHJRow(List> dtos,int days){ Map dto2 = new HashMap<>(); dto2.put("dataType","合计"); 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 8b4de7f98..8a3604f09 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 @@ -903,6 +903,26 @@ where qum.material_code = #{checkType} and qum.del_flag = '0' and qum.attr2 like concat ('%',#{checkLoc},'%') + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index b579cfecd..660f5b492 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -457,6 +457,7 @@ select pow.factory_code factoryCode, pow.workorder_code workorderCode, + pow.workorder_name checkLoc, pow.product_code materialCode, pow.product_name materialName, pow.quantity_split quality, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml index 71cd57af1..7c64545f9 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml @@ -166,7 +166,7 @@ STRING_AGG(check_man_name,',') AS 'manNames', belong_to from qc_check_task_user - where belong_to = #{belongTo} + where belong_to = #{belongTo} and del_flag = '0' group by belong_to