Browse Source

2026-04-16

【工单数据汇总】【工单数据回传】优化
master
fengyuan_yang 2 days ago
parent
commit
96c18990b4
  1. 40
      src/main/java/com/gaotao/modules/shopOrder/entity/dto/U8WorkHourRequestDto.java
  2. 26
      src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java

40
src/main/java/com/gaotao/modules/shopOrder/entity/dto/U8WorkHourRequestDto.java

@ -1,11 +1,8 @@
package com.gaotao.modules.shopOrder.entity.dto; package com.gaotao.modules.shopOrder.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -19,26 +16,25 @@ public class U8WorkHourRequestDto {
/** /**
* 生产订单号 * 生产订单号
*/ */
@JsonProperty("Mocode")
@JSONField(name = "Mocode")
private String mocode; private String mocode;
/** /**
* 订单行号 * 订单行号
*/ */
@JsonProperty("IrowNo")
@JSONField(name = "IrowNo")
private String irowNo; private String irowNo;
/** /**
* 汇总日期 * 汇总日期
*/ */
@JsonProperty("DDate")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date dDate;
@JSONField(name = "DDate")
private String dDate;
/** /**
* 明细列表 * 明细列表
*/ */
@JsonProperty("DetailList")
@JSONField(name = "DetailList")
private List<DetailItem> detailList; private List<DetailItem> detailList;
/** /**
@ -50,56 +46,56 @@ public class U8WorkHourRequestDto {
/** /**
* MES行号 * MES行号
*/ */
@JsonProperty("MESIrowNo")
@JSONField(name = "MESIrowNo")
private String mesIrowNo; private String mesIrowNo;
/** /**
* 工序号 * 工序号
*/ */
@JsonProperty("SortSeq")
@JSONField(name = "SortSeq")
private String sortSeq; private String sortSeq;
/** /**
* 设备编码 * 设备编码
*/ */
@JsonProperty("EQId")
@JSONField(name = "EQId")
private String eqId; private String eqId;
/** /**
* 班次编码 * 班次编码
*/ */
@JsonProperty("DutyClassCode")
@JSONField(name = "DutyClassCode")
private String dutyClassCode; private String dutyClassCode;
/** /**
* 员工编码 * 员工编码
*/ */
@JsonProperty("EmployCode")
@JSONField(name = "EmployCode")
private String employCode; private String employCode;
/** /**
* 合格数量 * 合格数量
*/ */
@JsonProperty("QualifiedQty")
private Double qualifiedQty;
@JSONField(name = "QualifiedQty")
private String qualifiedQty;
/** /**
* 不合格数量 * 不合格数量
*/ */
@JsonProperty("RefusedQty")
@JSONField(name = "RefusedQty")
private String refusedQty; private String refusedQty;
/** /**
* 报废数量 * 报废数量
*/ */
@JsonProperty("ScrapQty")
private Double scrapQty;
@JSONField(name = "ScrapQty")
private String scrapQty;
/** /**
* 工时调机时长+制造时长 * 工时调机时长+制造时长
*/ */
@JsonProperty("WorkHr")
private BigDecimal workHr;
@JSONField(name = "WorkHr")
private String workHr;
} }
} }

26
src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -177,7 +178,7 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
Map<String, List<UspWorkOrderAllocData>> groupedData = unSyncedList.stream() Map<String, List<UspWorkOrderAllocData>> groupedData = unSyncedList.stream()
.collect(Collectors.groupingBy(item -> .collect(Collectors.groupingBy(item ->
item.getErpOrderNo() + "_" + item.getErpOrderLineNo() + "_" + item.getErpOrderNo() + "_" + item.getErpOrderLineNo() + "_" +
(item.getAllocDate() != null ? item.getAllocDate().getTime() : "")));
(item.getAllocDate() != null ? item.getAllocDate() : "")));
// 3. 逐组调用U8接口 // 3. 逐组调用U8接口
for (Map.Entry<String, List<UspWorkOrderAllocData>> entry : groupedData.entrySet()) { for (Map.Entry<String, List<UspWorkOrderAllocData>> entry : groupedData.entrySet()) {
@ -189,21 +190,26 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
try { try {
// 构建U8请求参数 // 构建U8请求参数
U8WorkHourRequestDto requestDto = new U8WorkHourRequestDto(); U8WorkHourRequestDto requestDto = new U8WorkHourRequestDto();
requestDto.setMocode(firstItem.getErpOrderNo());
requestDto.setIrowNo(firstItem.getErpOrderLineNo());
requestDto.setDDate(firstItem.getAllocDate());
requestDto.setMocode(firstItem.getErpOrderNo() != null ? firstItem.getErpOrderNo() : "");
requestDto.setIrowNo(firstItem.getErpOrderLineNo() != null ? firstItem.getErpOrderLineNo() : "");
if (firstItem.getAllocDate() != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
requestDto.setDDate(sdf.format(firstItem.getAllocDate()));
} else {
requestDto.setDDate("");
}
List<U8WorkHourRequestDto.DetailItem> detailList = new ArrayList<>(); List<U8WorkHourRequestDto.DetailItem> detailList = new ArrayList<>();
for (UspWorkOrderAllocData item : groupItems) { for (UspWorkOrderAllocData item : groupItems) {
U8WorkHourRequestDto.DetailItem detailItem = new U8WorkHourRequestDto.DetailItem(); U8WorkHourRequestDto.DetailItem detailItem = new U8WorkHourRequestDto.DetailItem();
detailItem.setMesIrowNo(item.getRowNo());
detailItem.setSortSeq(item.getItemNo());
detailItem.setMesIrowNo(item.getRowNo() != null ? item.getRowNo() : "");
detailItem.setSortSeq(item.getItemNo() != null ? item.getItemNo() : "");
detailItem.setEqId(""); detailItem.setEqId("");
detailItem.setDutyClassCode(""); detailItem.setDutyClassCode("");
detailItem.setEmployCode(item.getOperator());
detailItem.setQualifiedQty(item.getAllocApproveQty());
detailItem.setEmployCode(item.getOperator() != null ? item.getOperator() : "");
detailItem.setQualifiedQty(item.getAllocApproveQty() != null ? String.valueOf(item.getAllocApproveQty()) : "");
detailItem.setRefusedQty(""); detailItem.setRefusedQty("");
detailItem.setScrapQty(item.getAllocScrapQty());
detailItem.setScrapQty(item.getAllocScrapQty() != null ? String.valueOf(item.getAllocScrapQty()) : "");
// 计算工时调机时长 + 制造时长 // 计算工时调机时长 + 制造时长
BigDecimal workHr = BigDecimal.ZERO; BigDecimal workHr = BigDecimal.ZERO;
@ -213,7 +219,7 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
if (item.getAllocManfTime() != null) { if (item.getAllocManfTime() != null) {
workHr = workHr.add(item.getAllocManfTime()); workHr = workHr.add(item.getAllocManfTime());
} }
detailItem.setWorkHr(workHr);
detailItem.setWorkHr(workHr.compareTo(BigDecimal.ZERO) == 0 ? "0" : workHr.toString());
detailList.add(detailItem); detailList.add(detailItem);
} }

Loading…
Cancel
Save