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
+ pro_order_workorder_batch_pallet.quantity AS attr3,
+ pro_order_workorder.workorder_name AS attr4,
+ pro_order_workorder.product_code,
+ pro_order_workorder.product_name,
+ pro_order_workorder.unit AS attr5
+ FROM
+ pro_order_workorder_batch_pallet
+ LEFT JOIN pro_order_workorder ON pro_order_workorder.workorder_code_sap= pro_order_workorder_batch_pallet.workorder_code
+ WHERE
+ pro_order_workorder_batch_pallet.workorder_code= #{workOrder}
+ AND pro_order_workorder_batch_pallet.batch_code= #{batchNumber}
+ AND pro_order_workorder_batch_pallet.pallet_num= #{pallet}
+
+
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