diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 31e4fefd9..3846277f7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -544,6 +544,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); + if(equ == null){ + throw new NotLoginException("设备表中不存在此设备,请确认!"); + } String equStatus = ""; //todo 维修保养中 和维修中 和保养中!!!!!!!!!!!!!!!!!!!!!!! 需要修改状态 if(equ.getEquipmentStatus().equals("0")){ @@ -658,6 +661,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService for (String id : ids) { EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); equRepairWorkOrder.setWorkId(id); + equRepairWorkOrder.setAuditOpinion(upKeepOrderDTO.getAuditOpinion()); String resultInspect = upKeepOrderDTO.getInspect(); //1.1 审核通过后 更新运行表 + 更新设备表 1审核通过 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml index f6aa9af89..27adb3c1a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairWorkOrderMapper.xml @@ -140,6 +140,7 @@ erwo.fault_start_time, erwo.result_inspect, erwo.remark, + erwo.audit_opinion, be.equipment_name, et.team_name, et.team_person diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index 6a1acdf5d..97a431b33 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -1,5 +1,6 @@ package com.op.open.controller; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.domain.R; diff --git a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java index 6b4caf766..8baf08324 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/OpenService.java @@ -1,13 +1,10 @@ package com.op.open.service; -import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WechartDTO; import com.op.system.api.domain.mes.BaseProductDTO; -import com.op.system.api.domain.mes.MesReportWorkDTO; -import com.op.system.api.domain.quality.QcCheckTaskDTO; import com.op.system.api.domain.quality.QcCheckTaskProduceDTO; import java.util.List; diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index b257dbf88..ddadec857 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -37,10 +37,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 41f1b24fd..d4ac68ba8 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -1275,33 +1275,24 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { BigDecimal pall = pow.getBatchQuantity(); BigDecimal pn = pow.getPalletNum(); - while(pall.subtract(pn).compareTo(BigDecimal.ZERO)>0){ + while(pall.compareTo(BigDecimal.ZERO)>0){ pw = new ProOrderWorkorder(); pw.setProductName(pow.getProductName()); pw.setWorkorderCode(pow.getWorkorderCode()); pw.setBatchCode(pow.getBatchCode()); pw.setProductDateStr(pow.getProductDateStr()); pw.setRecordId(IdUtils.fastSimpleUUID()); - pw.setBatchQuantity(pn); + if(pall.compareTo(pn)<0) {//最后一托盘 + pw.setBatchQuantity(pall); + }else{ + pw.setBatchQuantity(pn); + } pw.setPalletNo(i++); pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo()); pw.setCreateTime(nowDate); dtos.add(pw); pall = pall.subtract(pn); } - if(pall.compareTo(pn)<0){//最后一托盘 - pw = new ProOrderWorkorder(); - pw.setProductName(pow.getProductName()); - pw.setWorkorderCode(pow.getWorkorderCode()); - pw.setBatchCode(pow.getBatchCode()); - pw.setProductDateStr(pow.getProductDateStr()); - pw.setRecordId(IdUtils.fastSimpleUUID()); - pw.setBatchQuantity(pall); - pw.setPalletNo(i++); - pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo()); - pw.setCreateTime(nowDate); - dtos.add(pw); - } } } if(!CollectionUtils.isEmpty(dtos)){ diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 72b80400f..c054fdd74 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -688,7 +688,7 @@ case when powbp.quantity is not null then powbp.quantity else powb.batch_quantity end batchQuantity, bpa.pallet_num palletNum, - concat(pow.workorder_code_sap,'-', powb.batch_code) palletCode, + concat(pow.workorder_code_sap,'-', powb.batch_code,'-',powbp.pallet_num) palletCode, powbp.pallet_num palletNo from pro_order_workorder pow left join pro_order_workorder_batch powb on pow.workorder_id = powb.workorder_id @@ -697,7 +697,7 @@ and powbp.batch_code = powb.batch_code where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and powb.del_flag = '0' and powbp.pallet_num = #{palletNo} - order by powbp.pallet_num + order by CAST(powbp.pallet_num AS INT),powb.batch_code diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java index 51a466081..322566ac5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java @@ -5,11 +5,14 @@ import java.time.format.DateTimeFormatter; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson2.JSONObject; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.quality.domain.OACheckTaskDTO; import com.op.quality.domain.QcCheckTaskIncome; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -141,4 +144,41 @@ public class QcCheckTaskInventoryController extends BaseController { qcCheckTaskInventoryService.createCCTask(); return R.ok(); } + + //给oa提供的发起库存检验接口 + @PostMapping("/createCCTaskFromOA") + public AjaxResult createCCTaskFromOA(@RequestBody OACheckTaskDTO dto) { + logger.info("oa发起库存检验参数"+ JSONObject.toJSONString(dto)); + if(StringUtils.isBlank(dto.getFactoryCode())){ + return AjaxResult.error("[factoryCode is null]"); + } + if(CollectionUtils.isEmpty(dto.getDetail())){ + return AjaxResult.error("[detail is null]"); + } + if(StringUtils.isBlank(dto.getApplyNo())){ + return AjaxResult.error("[applyNo is null]"); + } + + for(QcCheckTaskInventory qcCheckTaskInventory : dto.getDetail()){ + if(StringUtils.isBlank(qcCheckTaskInventory.getSerialNumber())){ + return AjaxResult.error("[serialNumber is null]"); + } + if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialCode())){ + return AjaxResult.error("[materialCode is null]"); + } + if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialName())){ + return AjaxResult.error("[materialName is null]"); + } + if(StringUtils.isBlank(qcCheckTaskInventory.getIncomeBatchNo())){ + return AjaxResult.error("[incomeBatchNo is null]"); + } + if(StringUtils.isBlank(qcCheckTaskInventory.getUnit())){ + return AjaxResult.error("[unit is null]"); + } + if(qcCheckTaskInventory.getQuality() == null){ + return AjaxResult.error("[quality is null]"); + } + } + return qcCheckTaskInventoryService.createCCTaskFromOA(dto); + } } 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 16fd477ac..1a3bb13ed 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 @@ -487,5 +487,23 @@ public class QcStaticTableController extends BaseController { } } } - + /** + * 检验分析报表--表头-- + **/ + @PostMapping("/getTableHzTitle") + @Log(title = "检验分析报表", businessType = BusinessType.QUERY) + public QcStaticTable getTableHzTitle(@RequestBody QcStaticTable qcStaticTable) { + return qcStaticTableService.getTableHzTitle(qcStaticTable); + } + /** + * 检验分析报表--巡检不良趋势图 + **/ + @PostMapping("/getTableHzData") + public List getTableHzLineData(@RequestBody QcStaticTable qcStaticTable) { + return qcStaticTableService.getTableHzData(qcStaticTable); + } + @PostMapping("/getTableHzNoOkData") + public List getTableHzNoOkData(@RequestBody QcStaticTable qcStaticTable) { + return qcStaticTableService.getTableHzNoOkData(qcStaticTable); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java new file mode 100644 index 000000000..788550ed3 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java @@ -0,0 +1,157 @@ +package com.op.quality.domain; + +import com.op.common.core.web.domain.BaseEntity; + +import java.sql.Date; +import java.util.List; + +/** + * oa 发起库存检验 + * + * @author Open Platform + * @date 2023-10-31 + */ +public class OACheckTaskDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + private String recordId; + private String applyNo;//申请单号 + private String applicant;//申请人 + private String applyDepartment;//申请部门 + private Date applyDate;//申请日期 + private String storeAddress;//物品存放地点 + private String type;//复检物品种类 + private String checkManCode;//检验人员工号 + private String checkManName;//检验人员姓名 + private String qcManager;//QC主管工号 + private String zlManager;//质量主管工号 + private String treatmentMan;//处理方案人员工号 + private int taskNum;//子任务数 + private String status;//检验状态 0未完成 1检验完成 + private String factoryCode;//工厂编码 + private String delFlag;//删除标志 + + //任务明细 + private List detail; + + //流程表单中有 数据库表没有 + //其他仓库 + //方案处理执行人员 + //附件 + + public String getRecordId() { + return recordId; + } + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getApplyNo() { + return applyNo; + } + public void setApplyNo(String applyNo) { + this.applyNo = applyNo; + } + + public String getApplicant() { + return applicant; + } + public void setApplicant(String applicant) { + this.applicant = applicant; + } + + public String getApplyDepartment() { + return applyDepartment; + } + public void setApplyDepartment(String applyDepartment) { + this.applyDepartment = applyDepartment; + } + + public Date getApplyDate() { + return applyDate; + } + public void setApplyDate(Date applyDate) { + this.applyDate = applyDate; + } + + public String getStoreAddress() { return storeAddress; } + public void setStoreAddress(String storeAddress) { + this.storeAddress = storeAddress; + } + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + + public String getCheckManCode() { + return checkManCode; + } + public void setCheckManCode(String checkManCode) { + this.checkManCode = checkManCode; + } + + public String getCheckManName() { + return checkManName; + } + public void setCheckManName(String checkManName) { + this.checkManName = checkManName; + } + + public String getQcManager() { + return qcManager; + } + public void setQcManager(String qcManager) { + this.qcManager = qcManager; + } + + public String getZlManager() { + return zlManager; + } + public void setZlManager(String zlManager) { + this.zlManager = zlManager; + } + + public String getTreatmentMan() { + return treatmentMan; + } + public void setTreatmentMan(String treatmentMan) { + this.treatmentMan = treatmentMan; + } + + public int getTaskNum() { + return taskNum; + } + public void setTaskNum(int taskNum) { + this.taskNum = taskNum; + } + + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public List getDetail() { + return detail; + } + public void setDetail(List detail) { + this.detail = detail; + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index cf51b102a..5205ae47a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -190,6 +190,7 @@ public class QcCheckTaskIncome extends BaseEntity { private String fileList; private List files; private String remark; + private String remarkCode; private String belongTo; private String oldBelongTo; private String noOkQualityNames; @@ -852,6 +853,14 @@ public class QcCheckTaskIncome extends BaseEntity { return delFlag; } + public String getRemarkCode() { + return remarkCode; + } + + public void setRemarkCode(String remarkCode) { + this.remarkCode = remarkCode; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java index c2c21b301..8668ec6c0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java @@ -216,6 +216,9 @@ public class QcCheckTaskInventory extends BaseEntity { private String checkTimeStart; private String checkTimeEnd; + //序号 复检流程单用 + private String serialNumber; + private List defects; public void setRecordId(String recordId) { @@ -514,6 +517,14 @@ public class QcCheckTaskInventory extends BaseEntity { this.defects = defects; } + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index a3618395c..ac22c1fe4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -88,6 +88,7 @@ public class QcStaticTable extends BaseEntity { private String projectNo; private String status; private String ymdms; + private String ymdUntype; private String column080090; private String column090100; private String column100110; @@ -110,6 +111,32 @@ public class QcStaticTable extends BaseEntity { private String[] projectNoArray; private BigDecimal upperDiff; private BigDecimal downDiff; + private List columns1; + private List columns2; + + public String getYmdUntype() { + return ymdUntype; + } + + public void setYmdUntype(String ymdUntype) { + this.ymdUntype = ymdUntype; + } + + public List getColumns1() { + return columns1; + } + + public void setColumns1(List columns1) { + this.columns1 = columns1; + } + + public List getColumns2() { + return columns2; + } + + public void setColumns2(List columns2) { + this.columns2 = columns2; + } public String getIncomeTimeStr() { return incomeTimeStr; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java index 0776965af..97fb80b05 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java @@ -2,6 +2,7 @@ package com.op.quality.mapper; import java.util.List; +import com.op.quality.domain.OACheckTaskDTO; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTaskInventory; import com.op.quality.domain.QcCheckTaskProduce; @@ -69,4 +70,7 @@ public interface QcCheckTaskInventoryMapper { List getPutInOrder(QcCheckTaskInventory qcCheckTaskInventory); List getPutInOrderList(QcCheckTaskInventory qoPutIn); + + //创建 qc_check_oa_task 复检申请记录 + void insertQcCheckOaTask(OACheckTaskDTO dto); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index 5de6c48bd..3662d820d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -81,4 +81,14 @@ public interface QcStaticTableMapper { QcStaticTable getUpAndDown(QcStaticTable qcStaticTable); @MapKey("detailId") Map defectMap(QcStaticTable qcStaticTable); + + List getTableHzTitle(QcStaticTable qcStaticTable); + + List getTableHzTitle2(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getSamplesNum(QcStaticTable qcStaticTable); + @MapKey("ymdUntype") + Map getNoOkNum(QcStaticTable qcStaticTable); + + List getTableHzNoOkData(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java index 6fc0e402c..4abf3a12f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import java.util.List; import com.op.common.core.web.domain.AjaxResult; +import com.op.quality.domain.OACheckTaskDTO; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTaskInventory; @@ -64,4 +65,6 @@ public interface IQcCheckTaskInventoryService { List getPutInOrder(QcCheckTaskInventory qcCheckTaskInventory); AjaxResult createCCTask(); + + AjaxResult createCCTaskFromOA(OACheckTaskDTO dto); } 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 08bae2c20..b9134bf62 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 @@ -1,5 +1,6 @@ package com.op.quality.service; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -49,4 +50,10 @@ public interface IQcStaticTableService { QcStaticTable getDLTableCPKInfo(QcStaticTable qcStaticTable); List getProjectList(String checkType); + + QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable); + + List getTableHzData(QcStaticTable qcStaticTable); + + List getTableHzNoOkData(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 5bb13f950..00e1bc590 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 @@ -678,6 +678,7 @@ public class QcCheckTaskIncomeServiceImpl implements qcCheckTask.setUpdateTime(nowTime); qcCheckTask.setCheckTime(nowTime); qcCheckTask.setRemark(qcCheckTaskIncome.getRemark()); + qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode()); qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo()); BigDecimal noOkQquality = new BigDecimal("0"); @@ -688,7 +689,11 @@ public class QcCheckTaskIncomeServiceImpl implements qcCheckTask.setNoOkQuality(noOkQquality);//累计不合格数 qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy()); qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName()); + + + qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality()); + qcCheckTask.setReason(qcCheckTaskIncome.getReason()); qcCheckTask.setBz(qcCheckTaskIncome.getAttr3());//备注 @@ -720,34 +725,10 @@ public class QcCheckTaskIncomeServiceImpl implements qcCheckTask.setSccj(qcCheckTaskIncome.getSccj());// 所属车间 qcCheckTask.setSqr(qcCheckTaskIncome.getSqr());// 申请人Id - /**qc_check_task_cg**/ - List valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId); - // 判断表中是否存在此条数据 - if (valiData != null && valiData.size() > 0) { - n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG - }else { - qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo()); - qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo()); - qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode()); - qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName()); - qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType()); - qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc()); - qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy()); - qcCheckTask.setCreateTime(DateUtils.getNowDate()); - qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime()); - qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode()); - qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType()); - - qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality()); - qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality()); - qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality()); - - n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask); - } - logger.info("qc_check_task:"+n); - /**更新qc_check_task_detail**/ + BigDecimal sampleQuality = new BigDecimal("0"); for(QcCheckTaskDetail detail:details){ detail.setUpdateTime(nowTime); + sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality())); //上传附件 if (StringUtils.isNotEmpty(detail.getFileListStr())) { String[] ids = detail.getFileListStr().split(","); @@ -769,6 +750,41 @@ public class QcCheckTaskIncomeServiceImpl implements } } + + /**qc_check_task_cg**/ + List valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId); + // 判断表中是否存在此条数据 + if (valiData != null && valiData.size() > 0) { + n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG + }else { + + if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){ + qcCheckTask.setSampleQuality(sampleQuality); + }else{ + qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality()); + } + + qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo()); + qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo()); + qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode()); + qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName()); + qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType()); + qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc()); + qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy()); + qcCheckTask.setCreateTime(DateUtils.getNowDate()); + qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime()); + qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode()); + qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType()); + + qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality()); + qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality()); + qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality()); + + n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask); + } + logger.info("qc_check_task:"+n); + /**更新qc_check_task_detail**/ + n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details); logger.info("更新qc_check_task_detail:"+n); @@ -841,6 +857,7 @@ public class QcCheckTaskIncomeServiceImpl implements qcCheckTask.setUpdateTime(nowTime); qcCheckTask.setCheckTime(nowTime); qcCheckTask.setRemark(qcCheckTaskIncome.getRemark()); + qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode()); qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo()); BigDecimal noOkQquality = new BigDecimal("0"); @@ -860,7 +877,7 @@ public class QcCheckTaskIncomeServiceImpl implements BigDecimal sampleQuality = new BigDecimal("0"); for(QcCheckTaskDetail detail:details){ detail.setUpdateTime(nowTime); - sampleQuality = noOkQquality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality())); + sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality())); //上传附件 if (StringUtils.isNotEmpty(detail.getFileListStr())) { String[] ids = detail.getFileListStr().split(","); @@ -882,7 +899,12 @@ public class QcCheckTaskIncomeServiceImpl implements } } - qcCheckTask.setSampleQuality(sampleQuality); + if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){ + qcCheckTask.setSampleQuality(sampleQuality); + }else{ + qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality()); + } + /**qc_check_task**/ n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask); logger.info("qc_check_task:"+n); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java index 56da41be7..ed826998f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java @@ -28,8 +28,6 @@ import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysNoticeGroup; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.dto.WechartDTO; -import com.op.system.api.domain.mes.ProOrderWorkorderDTO; -import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -386,6 +384,32 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer return success(); } + @Override + public AjaxResult createCCTaskFromOA(OACheckTaskDTO dto) { + List dtos = dto.getDetail(); + int m = 0; + for(QcCheckTaskInventory ccTask : dtos){ + ccTask.setOrderNo(dto.getApplyNo() + ":" + ccTask.getSerialNumber() );//订单号 = 申请单号 +:+序号 + ccTask.setAttr1(dto.getApplyNo());//申请编码 + ccTask.setCheckType("checkTypeCC");//库存检验 + ccTask.setFactoryCode(dto.getFactoryCode()); + if(ccTask.getIncomeTime() == null){ + ccTask.setIncomeTime(DateUtils.getNowDate());//如果生产日期和入库时间 + } + insertQcCheckTaskInventory(ccTask); + m++; + } + /**qc_check_oa_task表新增**/ + dto.setRecordId(IdUtils.fastSimpleUUID()); + dto.setTaskNum(dtos.size()); + dto.setCreateTime(DateUtils.getNowDate());//创建时间 + dto.setCreateBy(dto.getApplicant());//创建人 + qcCheckTaskInventoryMapper.insertQcCheckOaTask(dto); + + logger.info("++++++++++++oa发起仓库检验任务生成" + m + "++++++++++++++"); + return success(); + } + public void createCCFunc(String poolName){ DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key QcCheckTaskInventory qoPutIn = new QcCheckTaskInventory(); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index 7c4b31480..df0b88f55 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -361,8 +361,9 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否 0是 if("0".equals(task.getSfxyzg())){ mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息 - mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660:朱继新 - } + }; + mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管 660:朱继新 + mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题 mainObject.append("}"); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java index 067582781..321d0a739 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java @@ -221,12 +221,17 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { if (hz1 != null) { dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", "")); dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", "")); - BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality()) - .subtract(new BigDecimal(hz1.getNoOkQuality())) - ) - .multiply(new BigDecimal(100)) - .divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP); - dtoMap.put("todayOkRate", tOkRate + "%"); + if(!hz1.getSampleQuality().equals("0.00")){ + BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality()) + .subtract(new BigDecimal(hz1.getNoOkQuality())) + ) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP); + dtoMap.put("todayOkRate", tOkRate + "%"); + }else{ + dtoMap.put("todayOkRate", "0%"); + } + } qcInterface.setYmdType("mm"); @@ -239,12 +244,16 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface); if (hz2 != null) { dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", "")); - BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality()) - .subtract(new BigDecimal(hz2.getNoOkQuality())) - ) - .multiply(new BigDecimal(100)) - .divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP); - dtoMap.put("monthOkRate", tOkRate2 + "%"); + if(!hz2.getSampleQuality().equals("0.00")){ + BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality()) + .subtract(new BigDecimal(hz2.getNoOkQuality())) + ) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP); + dtoMap.put("monthOkRate", tOkRate2 + "%"); + }else{ + dtoMap.put("monthOkRate", "0%"); + } } // /**质量看板测试开始**/ // dtoMap.put("todayPro", "3800"); 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 b44dc61b1..152b0b24a 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 @@ -151,6 +151,11 @@ public class QcProCheckServiceImpl implements QcProCheckService { Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { + + if(StringUtils.isNotBlank(qcd.getSampleQuality())){ + qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + } + List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId()); if (CollectionUtils.isNotEmpty(files)) { qcd.setFiles(files); @@ -185,7 +190,10 @@ public class QcProCheckServiceImpl implements QcProCheckService { Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { - qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + if(StringUtils.isNotBlank(qcd.getSampleQuality())){ + qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + } + List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId()); if (CollectionUtils.isNotEmpty(files)) { 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 75131a865..e8d746dae 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 @@ -4,6 +4,11 @@ import java.math.BigDecimal; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Month; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; +import java.time.format.TextStyle; import java.util.*; import java.util.stream.Collectors; @@ -783,6 +788,25 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return qcStaticTableMapper.getProjectList(checkType); } + @Override + @DS("#header.poolName") + public QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable) { + QcStaticTable dto = new QcStaticTable(); + qcStaticTable.setDataType("unqualified_remark"); + qcStaticTable.setRemark(qcStaticTable.getCheckType()); + List cols1 = qcStaticTableMapper.getTableHzTitle(qcStaticTable); + + if(CollectionUtils.isEmpty(cols1)){ + return dto; + } + + dto.setColumns1(cols1); +// List cols2 = qcStaticTableMapper.getTableHzTitle2(qcStaticTable); +// +// dto.setColumns2(cols2); + return dto; + } + private List getHourProductionTitle(QcStaticTable qcStaticTable) { // 返回的日期集合 @@ -859,8 +883,152 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return days; } + @Override + @DS("#header.poolName") + public List getTableHzData(QcStaticTable qcStaticTable) { + List dtos = new ArrayList<>(); + qcStaticTable.setDataType("unqualified_remark"); + qcStaticTable.setRemark(qcStaticTable.getCheckType()); + List noOkTyps = qcStaticTableMapper.getTableHzTitle(qcStaticTable); + //第一列日期 + List days = this.getHzDays(qcStaticTable.getIncomeTimeStr(),qcStaticTable.getYmdms()); + //抽样数、不良数、不良率 + Map samples = qcStaticTableMapper.getSamplesNum(qcStaticTable); + if(samples.isEmpty()){ + return dtos; + } + //不良数 + Map noOks = qcStaticTableMapper.getNoOkNum(qcStaticTable); + HashMap colMap = null; + for(String col:days){ + colMap = new HashMap(); + colMap.put("timeCol",col); + String samKey = col; + QcStaticTable sampl = samples.get(samKey); + if(sampl!=null&&!sampl.getSampleQuality().equals("0.00")){ + colMap.put("sampleQuality",sampl.getSampleQuality().replaceAll("\\..*", "")); + BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00")) + .divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP); + colMap.put("noOkRate",noOkRate); + }else{ + colMap.put("sampleQuality","0"); + colMap.put("noOkRate","0"); + } + + //缺陷不良 + for(int i=0;i< noOkTyps.size();i++){ + String noOkTyp = noOkTyps.get(i); + String noOkTypeKey = col+noOkTyp; + QcStaticTable noOk = noOks.get(noOkTypeKey); + if(noOk!=null&&noOk.getNoOkQuality()!=null) { + colMap.put("col"+i, noOk.getNoOkQuality().replaceAll("\\..*", "")); + }else{ + colMap.put("col"+i, "0"); + } + } + + dtos.add(colMap); + } + + return dtos; + } + + @Override + @DS("#header.poolName") + public List getTableHzNoOkData(QcStaticTable qcStaticTable) { + //不良数 + List dtos = qcStaticTableMapper.getTableHzNoOkData(qcStaticTable); + + BigDecimal totalNoOkQuality = BigDecimal.ZERO; + //求不良数和 + for (QcStaticTable dto : dtos) { + totalNoOkQuality = totalNoOkQuality.add(new BigDecimal(dto.getNoOkQuality())); + } + //求占比 + for (QcStaticTable dto : dtos) { + BigDecimal noOkratio = new BigDecimal(dto.getNoOkQuality()) + .divide(totalNoOkQuality,2, BigDecimal.ROUND_HALF_UP); + dto.setNoOkNumRate(noOkratio.toString()); + dto.setNoOkQuality(dto.getNoOkQuality().replaceAll("\\..*", "")); + } + return dtos; + } + + /****/ + public List getHzDays(String timeStr,String ymd) { + // 返回的日期集合 + List days = new ArrayList(); + DateFormat dateFormat = null; + try { + Calendar tempStart = null; + Calendar tempEnd = null; + if ("dd".equals(ymd)) {//天内各小时 + for (int i = 0; i < 24; i++) { + // 使用String.format()格式化小时,保证每个小时都是两位数 + String hourS = String.format("%02d", i);//String.format("%02d:00", i); + days.add(hourS); + } + } else if ("mm".equals(ymd)){//月内各日 + int year = Integer.parseInt(timeStr.split("-")[0]); + int month = Integer.parseInt(timeStr.split("-")[1]); + YearMonth yearMonth = YearMonth.of(year, month); + // 获取该月份的第一天 + LocalDate firstDayOfMonth = yearMonth.atDay(1); + // 循环直到下一个月的第一天 + LocalDate currentDate = firstDayOfMonth; + while (currentDate.getMonthValue() == month) { + // 使用DateTimeFormatter格式化日期为字符串 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = currentDate.format(formatter); + days.add(formattedDate); + + // 移动到下一天 + currentDate = currentDate.plusDays(1); + } + } else if ("yyyy".equals(ymd)){// + for (Month month : Month.values()) { + // 使用String.format来构造"yyyy-MM"格式的字符串 + // %d用于整数(年份和月份),但月份需要前面补0(使用%02d) + String formattedMonth = String.format("%d-%02d", Integer.parseInt(timeStr), month.getValue()); + days.add(formattedMonth); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + return days; + } + + public static List getDaysOfMonth(int year, int month) { + List days = new ArrayList<>(); + YearMonth yearMonth = YearMonth.of(year, month); + // 获取该月份的第一天 + LocalDate firstDayOfMonth = yearMonth.atDay(1); + + // 循环直到下一个月的第一天 + LocalDate currentDate = firstDayOfMonth; + while (currentDate.getMonthValue() == month) { + // 使用DateTimeFormatter格式化日期为字符串 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = currentDate.format(formatter); + days.add(formattedDate); + + // 移动到下一天 + currentDate = currentDate.plusDays(1); + } + + return days; + } + public static void main(String args[]){ - double a = 0.01; - System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO)); + List months = new ArrayList<>(); + for (Month month : Month.values()) { + // 使用String.format来构造"yyyy-MM"格式的字符串 + // %d用于整数(年份和月份),但月份需要前面补0(使用%02d) + String formattedMonth = String.format("%d-%02d",2024, month.getValue()); + months.add(formattedMonth); + } + System.out.println(months); } } 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 abdd4fe76..bcb892350 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 @@ -39,6 +39,7 @@ + @@ -46,7 +47,7 @@ supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag , check_type,sample_quality, noOk_quality, - order_type,order_type_desc + order_type,order_type_desc,remark from qc_check_task @@ -313,6 +314,7 @@ cNoOkquality = #{cNoOkquality}, income_batch_no = #{incomeBatchNo}, remark = #{remark}, + remark_code = #{remarkCode}, reason = #{reason}, bz = #{bz}, cxzz = #{cxzz}, @@ -362,6 +364,7 @@ order_type, order_type_desc, remark, + remark_code, reason, bz, start_oA, @@ -420,6 +423,7 @@ #{orderType}, #{orderTypeDesc}, #{remark}, + #{remarkCode}, #{reason}, #{bz}, #{startOA}, @@ -458,6 +462,7 @@ cNoOkquality = #{cNoOkquality}, income_batch_no = #{incomeBatchNo}, remark = #{remark}, + remark_code = #{remarkCode}, reason = #{reason}, bz = #{bz}, start_oA = #{startOA}, @@ -592,6 +597,7 @@ qct.income_time incomeTime, qct.check_loc checkLoc, qct.remark, + qct.remark_code remarkCode, qct.cxzz, qct.jgy, qct.pgy @@ -621,6 +627,7 @@ qct.income_time incomeTime, qct.check_loc checkLoc, qct.remark, + qct.remark_code remarkCode, qct.czbjr, qct.zcf, qct.zcoemcm, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml index 58372c0cd..4ea2660b1 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml @@ -362,4 +362,52 @@ )t0 where t0.days >= t0.warehouse_cycle + + + insert into qc_check_oa_task + + record_id, + apply_no, + applicant, + apply_department, + apply_date, + store_address, + type, + check_man_code, + check_man_name, + qc_manager, + zl_manager, + treatment_man, + task_num, + status, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + + + #{recordId}, + #{applyNo}, + #{applicant}, + #{applyDepartment}, + #{applyDate}, + #{storeAddress}, + #{type}, + #{checkManCode}, + #{checkManName}, + #{qcManager}, + #{zlManager}, + #{treatmentMan}, + #{taskNum}, + '0', + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml index 0f3340246..119013bbc 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml @@ -180,7 +180,15 @@ from qc_check_task_detail qctd left join qc_check_task qct on qctd.belong_to = qct.record_id where qct.type_code = #{typeCode} and qctd.status = 'N' - and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11) + + and CONVERT(varchar(4),qct.income_time, 120) = SUBSTRING(#{ymd},0,5) + + + and CONVERT(varchar(7),qct.income_time, 120) = SUBSTRING(#{ymd},0,8) + + + and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11) + order by qctd.update_time desc + + + + + diff --git a/op-modules/op-system/src/main/java/com/op/system/controller/SysDictDataController.java b/op-modules/op-system/src/main/java/com/op/system/controller/SysDictDataController.java index a180f4bf3..a92f8a125 100644 --- a/op-modules/op-system/src/main/java/com/op/system/controller/SysDictDataController.java +++ b/op-modules/op-system/src/main/java/com/op/system/controller/SysDictDataController.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.baomidou.dynamic.datasource.annotation.DS; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; @@ -49,6 +50,13 @@ public class SysDictDataController extends BaseController { return getDataTable(list); } + @GetMapping("/getDictData") + @DS("#header.poolName") + public AjaxResult getDict(SysDictData dictData) { + List list = dictDataService.getDictDataList(dictData); + return success(list); + } + @Log(title = "字典数据", businessType = BusinessType.EXPORT) @RequiresPermissions("system:dict:export") @PostMapping("/export") diff --git a/op-modules/op-system/src/main/java/com/op/system/mapper/SysDictDataMapper.java b/op-modules/op-system/src/main/java/com/op/system/mapper/SysDictDataMapper.java index 2e25ff42e..b929afdb5 100644 --- a/op-modules/op-system/src/main/java/com/op/system/mapper/SysDictDataMapper.java +++ b/op-modules/op-system/src/main/java/com/op/system/mapper/SysDictDataMapper.java @@ -92,4 +92,6 @@ public interface SysDictDataMapper { * @return 结果 */ public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + + List getDictDataList(SysDictData dictData); } diff --git a/op-modules/op-system/src/main/java/com/op/system/service/ISysDictDataService.java b/op-modules/op-system/src/main/java/com/op/system/service/ISysDictDataService.java index c2b73bbb2..33f95788c 100644 --- a/op-modules/op-system/src/main/java/com/op/system/service/ISysDictDataService.java +++ b/op-modules/op-system/src/main/java/com/op/system/service/ISysDictDataService.java @@ -57,4 +57,6 @@ public interface ISysDictDataService { * @return 结果 */ public int updateDictData(SysDictData dictData); + + List getDictDataList(SysDictData dictData); } diff --git a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDictDataServiceImpl.java b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDictDataServiceImpl.java index 1d92362b6..6b58066a0 100644 --- a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDictDataServiceImpl.java +++ b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDictDataServiceImpl.java @@ -99,4 +99,9 @@ public class SysDictDataServiceImpl implements ISysDictDataService { } return row; } + + @Override + public List getDictDataList(SysDictData dictData) { + return dictDataMapper.getDictDataList(dictData); + } } diff --git a/op-modules/op-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/op-modules/op-system/src/main/resources/mapper/system/SysDictDataMapper.xml index 54f281170..eea8bfb41 100644 --- a/op-modules/op-system/src/main/resources/mapper/system/SysDictDataMapper.xml +++ b/op-modules/op-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -41,6 +41,36 @@ order by dict_sort asc + + - + diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml index 1476172dd..b56308ce7 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml @@ -214,6 +214,7 @@ SELECT - mes_report_work.report_code work_order, + pro_order_workorder.workorder_code work_order, pro_order_workorder.workorder_code_sap product_order, - mes_report_work.product_code, - mes_report_work.product_name, - mes_report_work.unit unit_of_measure, - mes_report_work.batch batch_number, - mes_report_work.quantity plan_quantity, - ( mes_report_work.quantity- put.put_quantity ) attr3 + pro_order_workorder.product_code, + pro_order_workorder.product_name, + pro_order_workorder.unit unit_of_measure, + pro_order_workorder_batch.batch_code batch_number, + pro_order_workorder_batch.batch_quantity plan_quantity, + ( pro_order_workorder_batch.batch_quantity- put.put_quantity ) attr3 FROM pro_order_workorder - LEFT JOIN mes_report_work ON pro_order_workorder.workorder_code = mes_report_work.workorder_code + LEFT JOIN pro_order_workorder_batch ON pro_order_workorder.workorder_id = pro_order_workorder_batch.workorder_id LEFT JOIN ( SELECT SUM ( wms_product_put.put_quantity ) AS put_quantity, - wms_product_put.work_order AS work_order, + wms_product_put.batch_number AS batch_number, wms_product_put.product_code AS product_code FROM wms_product_put GROUP BY - wms_product_put.work_order, + wms_product_put.batch_number, wms_product_put.product_code - ) put ON put.work_order= mes_report_work.report_code + ) put ON put.batch_number= pro_order_workorder_batch.batch_code AND put.product_code= pro_order_workorder.workorder_code_sap WHERE - pro_order_workorder.workorder_code_sap=#{attribute1} - AND mes_report_work.batch=#{attribute2} - AND mes_report_work.parent_order = '0' - + pro_order_workorder.workorder_code_sap= #{attribute1} + AND pro_order_workorder_batch.batch_code= #{attribute2} + AND pro_order_workorder_batch.del_flag = '0' + + + diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutRecordsMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutRecordsMapper.xml index c1791b424..838cd9b35 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutRecordsMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutRecordsMapper.xml @@ -240,5 +240,6 @@ and product_date= #{productDate} and siteCode = #{siteCode} + order by create_time desc