Browse Source

检验合格入库

master
han\hanst 5 months ago
parent
commit
86f5574d8b
  1. 15
      src/main/java/com/gaotao/modules/inspection/service/IfsInspectionHistoryService.java
  2. 49
      src/main/java/com/gaotao/modules/inspection/service/impl/IfsInspectionHistoryServiceImpl.java
  3. 53
      src/main/java/com/gaotao/modules/inspection/service/impl/InspectionInboundServiceImpl.java
  4. 4
      src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java
  5. 16
      src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java

15
src/main/java/com/gaotao/modules/inspection/service/IfsInspectionHistoryService.java

@ -8,26 +8,19 @@ import java.util.List;
* IFS检验历史服务接口
*/
public interface IfsInspectionHistoryService {
/**
* 获取IFS检验历史数据
* @return IFS检验历史数据列表
*/
List<IfsInspectionHistoryDto> getIfsInspectionHistory();
/**
* 根据参数获取IFS检验历史数据
* @param ifsTransactionID 事务ID
* @return IFS检验历史数据列表
*/
List<IfsInspectionHistoryDto> getIfsInspectionHistory(String ifsTransactionID);
List<IfsInspectionHistoryDto> getIfsInspectionHistory(String site);
/**
* 处理IFS检验历史数据更新采购接收单明细
* @param historyList IFS检验历史数据列表
*/
void processInspectionHistory(List<IfsInspectionHistoryDto> historyList);
/**
* 执行IFS检验历史同步任务
*/

49
src/main/java/com/gaotao/modules/inspection/service/impl/IfsInspectionHistoryServiceImpl.java

@ -38,7 +38,7 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
@Value("${custom.ifs-domainUserID}")
private String domainUserID;
@Value("${ldap-control.control-flag:false}")
private Boolean ldapFlag;
@ -47,7 +47,7 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
@Autowired
private BaseMapper baseMapper;
/**
* 获取当前用户的域控账号如果开启了域控账号则获取用户的域控账号否则使用配置的默认值
*/
@ -66,9 +66,9 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
}
@Override
public List<IfsInspectionHistoryDto> getIfsInspectionHistory() {
public List<IfsInspectionHistoryDto> getIfsInspectionHistory(String site) {
SysParam ifsSiteIdParam = new SysParam();
ifsSiteIdParam.setSite("55");
ifsSiteIdParam.setSite(site);
ifsSiteIdParam.setGroupCode("IFS");
ifsSiteIdParam.setCode("ifsTransactionID");
String ifsTransId = baseMapper.getSysParamValue(ifsSiteIdParam);
@ -78,7 +78,7 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
Map<String, Object> params = Map.of(
"ifsDBName", ifsDBName,
"domainUserID", getCurrentDomainUserID(),
"ifsSiteID", "55",
"ifsSiteID", site,
"ifsTransactionID", ifsTransId
);
@ -103,41 +103,6 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
throw new RuntimeException("获取IFS检验历史数据失败: " + e.getMessage(), e);
}
}
@Override
public List<IfsInspectionHistoryDto> getIfsInspectionHistory(String ifsTransactionID) {
try {
log.info("开始调用IFS检验历史接口,事务ID: {}", ifsTransactionID);
// 构建请求参数
Map<String, Object> params = Map.of(
"ifsDBName", ifsDBName,
"domainUserID", getCurrentDomainUserID(),
"ifsSiteID", "55",
"ifsTransactionID", ifsTransactionID != null ? ifsTransactionID : "100063053"
);
ObjectMapper objectMapper = new ObjectMapper();
String jsonBody = objectMapper.writeValueAsString(params);
// 调用IFS接口
String ifsResponse = HttpUtils.doGetWithBody(ifsUrl + "POInspectionHistory", jsonBody, null);
// 解析响应数据
ObjectMapper mapper = new ObjectMapper();
List<IfsInspectionHistoryDto> historyList = mapper.readValue(
ifsResponse,
new TypeReference<List<IfsInspectionHistoryDto>>() {}
);
log.info("成功获取IFS检验历史数据,共{}条记录", historyList != null ? historyList.size() : 0);
return historyList;
} catch (Exception e) {
log.error("调用IFS检验历史接口失败: {}", e.getMessage(), e);
throw new RuntimeException("获取IFS检验历史数据失败: " + e.getMessage(), e);
}
}
@Override
public void processInspectionHistory(List<IfsInspectionHistoryDto> historyList) {
@ -305,10 +270,10 @@ public class IfsInspectionHistoryServiceImpl implements IfsInspectionHistoryServ
log.info("开始执行IFS检验历史同步任务");
// 获取IFS检验历史数据
List<IfsInspectionHistoryDto> historyList = getIfsInspectionHistory();
/*List<IfsInspectionHistoryDto> historyList = getIfsInspectionHistory();
// 处理数据并更新本地记录
processInspectionHistory(historyList);
processInspectionHistory(historyList);*/
log.info("IFS检验历史同步任务执行完成");
} catch (Exception e) {

53
src/main/java/com/gaotao/modules/inspection/service/impl/InspectionInboundServiceImpl.java

@ -75,13 +75,13 @@ public class InspectionInboundServiceImpl implements InspectionInboundService {
private String ifsDBName;
@Value("${custom.ifs-domainUserID}")
private String domainUserID;
@Value("${ldap-control.control-flag:false}")
private Boolean ldapFlag;
@Autowired
private IfsInspectionHistoryService ifsInspectionHistoryService;
/**
* 获取当前用户的域控账号如果开启了域控账号则获取用户的域控账号否则使用配置的默认值
*/
@ -622,24 +622,29 @@ public class InspectionInboundServiceImpl implements InspectionInboundService {
throw new RuntimeException("确认不合格处理失败: " + e.getMessage());
}
}
@Override
public List<UnqualifiedInspectionDto> getUnqualifiedInspectionListFromIfs(UnqualifiedInspectionDto unqualifiedInspectionDto) {
try {
log.info("开始从IFS获取检验不合格数据");
// 调用IFS服务获取检验历史数据
List<IfsInspectionHistoryDto> ifsHistoryList = ifsInspectionHistoryService.getIfsInspectionHistory();
List<IfsInspectionHistoryDto> ifsHistoryList = ifsInspectionHistoryService.getIfsInspectionHistory(unqualifiedInspectionDto.getSite());
List<UnqualifiedInspectionDto> result = new ArrayList<>();
if (unqualifiedInspectionDto.getTransNo() != null) {
ifsHistoryList = ifsHistoryList.stream()
.filter(h -> unqualifiedInspectionDto.getTransNo().equals(h.getOrderNo()))
.toList();
}
for (IfsInspectionHistoryDto ifsHistory : ifsHistoryList) {
// 根据transactionCode判断处理类型
String processType = mapTransactionCodeToProcessType(ifsHistory.getTransactionCode());
// 只处理不合格的记录有退货报废或换货数量的
BigDecimal unqualifiedQty = getUnqualifiedQtyFromIfs(ifsHistory);
if (unqualifiedQty != null && unqualifiedQty.compareTo(BigDecimal.ZERO) > 0) {
UnqualifiedInspectionDto dto = new UnqualifiedInspectionDto();
dto.setSite(ifsHistory.getContract()); // 使用contract作为site
@ -661,20 +666,20 @@ public class InspectionInboundServiceImpl implements InspectionInboundService {
dto.setUserName(""); // IFS数据中没有用户名
dto.setRemark(getRemarkFromIfs(ifsHistory)); // 组合备注信息
dto.setProcessType(processType); // 处理类型
result.add(dto);
}
}
log.info("从IFS获取到{}条不合格检验记录", result.size());
return result;
} catch (Exception e) {
log.error("从IFS获取检验不合格数据失败: {}", e.getMessage(), e);
throw new RuntimeException("获取IFS检验不合格数据失败: " + e.getMessage());
}
}
/**
* 根据transactionCode映射处理类型
*/
@ -682,7 +687,7 @@ public class InspectionInboundServiceImpl implements InspectionInboundService {
if (transactionCode == null) {
return "UNKNOWN";
}
switch (transactionCode.toUpperCase()) {
case "RETWORK":
case "RETURN":
@ -697,44 +702,44 @@ public class InspectionInboundServiceImpl implements InspectionInboundService {
return "UNKNOWN";
}
}
/**
* 从IFS历史数据中获取不合格数量
*/
private BigDecimal getUnqualifiedQtyFromIfs(IfsInspectionHistoryDto ifsHistory) {
BigDecimal qty = BigDecimal.ZERO;
// 退货数量
if (ifsHistory.getSourceQtyReturn() != null && ifsHistory.getSourceQtyReturn() > 0) {
qty = qty.add(BigDecimal.valueOf(ifsHistory.getSourceQtyReturn()));
}
// 报废数量
if (ifsHistory.getSourceQtyScrapped() != null && ifsHistory.getSourceQtyScrapped() > 0) {
qty = qty.add(BigDecimal.valueOf(ifsHistory.getSourceQtyScrapped()));
}
return qty;
}
/**
* 从IFS历史数据中组合备注信息
*/
private String getRemarkFromIfs(IfsInspectionHistoryDto ifsHistory) {
StringBuilder remark = new StringBuilder();
if (ifsHistory.getReturnCauseDesc() != null && !ifsHistory.getReturnCauseDesc().isEmpty()) {
remark.append("退货原因: ").append(ifsHistory.getReturnCauseDesc()).append("; ");
}
if (ifsHistory.getScrapCauseDesc() != null && !ifsHistory.getScrapCauseDesc().isEmpty()) {
remark.append("报废原因: ").append(ifsHistory.getScrapCauseDesc()).append("; ");
}
if (ifsHistory.getRejectCode() != null && !ifsHistory.getRejectCode().isEmpty()) {
remark.append("拒收代码: ").append(ifsHistory.getRejectCode()).append("; ");
}
return remark.toString();
}
}

4
src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java

@ -106,9 +106,9 @@ public class QualifiedStorageServiceImpl implements QualifiedStorageService {
// 调用IFS接口获取采购订单接收记录
List<PurchaseOrderReceiptVo> allReceipts = ifsApiIssueAndReturnService.getPurchaseOrderReceipt(purchaseOrderNo, site);
// 只保留状态为ARRIVED的记录
// 只保留状态为To be Received的记录
List<PurchaseOrderReceiptVo> arrivedReceipts = allReceipts.stream()
.filter(receipt -> "ARRIVED".equals(receipt.getState()) && receipt.getQtyToInspect() == 0)
.filter(receipt -> "To be Received".equals(receipt.getState()) && receipt.getQtyToInspect() == 0)
.collect(Collectors.toList());
return R.ok().put("rows", arrivedReceipts);

16
src/main/java/com/gaotao/modules/sys/service/impl/SysUserTokenServiceImpl.java

@ -1,4 +1,4 @@
package com.gaotao.modules.sys.service.impl;
@ -57,8 +57,14 @@ public class SysUserTokenServiceImpl extends ServiceImpl<SysUserTokenDao, SysUse
@Override
public void logout(long userId) {
//删除token记录
this.removeById(userId);
//生成一个token
String token = TokenGenerator.generateValue();
//修改token
SysUserTokenEntity tokenEntity = new SysUserTokenEntity();
tokenEntity.setUserId(userId);
tokenEntity.setToken(token);
this.updateById(tokenEntity);
}
@Override
@ -68,13 +74,13 @@ public class SysUserTokenServiceImpl extends ServiceImpl<SysUserTokenDao, SysUse
if(tokenEntity == null){
return false;
}
//检查token是否过期
Date now = new Date();
if(tokenEntity.getExpireTime() == null || tokenEntity.getExpireTime().before(now)){
return false;
}
return true;
}
}
Loading…
Cancel
Save