diff --git a/src/main/java/com/gaotao/modules/production/entity/dto/ShopOrderInboundDto.java b/src/main/java/com/gaotao/modules/production/entity/dto/ShopOrderInboundDto.java index 4904e51f..c324be52 100644 --- a/src/main/java/com/gaotao/modules/production/entity/dto/ShopOrderInboundDto.java +++ b/src/main/java/com/gaotao/modules/production/entity/dto/ShopOrderInboundDto.java @@ -1,6 +1,9 @@ package com.gaotao.modules.production.entity.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; + +import java.util.Date; import java.util.List; /** @@ -111,7 +114,8 @@ public class ShopOrderInboundDto { /** * 有效期 (yyyy-MM-dd格式) */ - private String ifsExpiryDate; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date ifsExpiryDate; /** * 处理单元列表 diff --git a/src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java b/src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java index eb7935a9..8051f93c 100644 --- a/src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java +++ b/src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java @@ -34,6 +34,7 @@ import com.gaotao.modules.warehouse.entity.Location; import com.gaotao.modules.warehouse.service.InventoryStockService; import com.gaotao.modules.warehouse.service.LocationService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,6 +44,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -104,6 +108,26 @@ public class ProductionInboundServiceImpl implements ProductionInboundService { @Value("${custom.ifs-domainUserID}") private String domainUserID; + @Value("${ldap-control.control-flag:false}") + private Boolean ldapFlag; + + /** + * 获取当前用户的域控账号,如果开启了域控账号则获取用户的域控账号,否则使用配置的默认值 + */ + private String getCurrentDomainUserID() { + if (ldapFlag) { + try { + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + if (currentUser != null && StringUtils.isNotBlank(currentUser.getDomainAccount())) { + return currentUser.getDomainAccount(); + } + } catch (Exception e) { + // 如果获取当前用户失败,使用默认配置 + } + } + return domainUserID; + } + @Override public ProductionInboundOrderDto getOrderInfo(String notifyNo) { // 查询入库申请单信息 @@ -789,7 +813,7 @@ public class ProductionInboundServiceImpl implements ProductionInboundService { handlingUnit.setWdr(dto.getWdr()!=null ? dto.getWdr() : "*"); handlingUnit.setUmId(dto.getUom()); handlingUnit.setEngChgLevel(dto.getEngChgLevel()!= null ? dto.getEngChgLevel() : "1"); - + handlingUnit.setExpiredDate(dto.getIfsExpiryDate()!=null ? dto.getIfsExpiryDate() : null); // 设置高度 if (dto.getHeight() != null && dto.getHeight() > 0) { handlingUnit.setHeight(BigDecimal.valueOf(dto.getHeight())); @@ -845,10 +869,11 @@ public class ProductionInboundServiceImpl implements ProductionInboundService { // 构建IFS接口参数 Map params = new HashMap<>(); params.put("ifsDBName", ifsDBName); - params.put("domainUserID", domainUserID); + params.put("domainUserID", getCurrentDomainUserID()); params.put("ifsContract", dto.getSite()); params.put("ifsLotBatchNo", dto.getBatchNo()); - params.put("ifsExpiryDate", dto.getIfsExpiryDate()); + params.put("ifsExpiryDate", dto.getIfsExpiryDate()!=null ? + DateUtils.format(dto.getIfsExpiryDate(), "yyyy-MM-dd") : null); params.put("ifsOrderNo", dto.getOrderNo()); params.put("ifsReleaseNo", dto.getReleaseNo()); params.put("ifsSequenceNo", dto.getSequenceNo()); diff --git a/src/main/java/com/gaotao/modules/salesreturn/entity/SalesReturnDto.java b/src/main/java/com/gaotao/modules/salesreturn/entity/SalesReturnDto.java index 6e0c4194..35742272 100644 --- a/src/main/java/com/gaotao/modules/salesreturn/entity/SalesReturnDto.java +++ b/src/main/java/com/gaotao/modules/salesreturn/entity/SalesReturnDto.java @@ -1,7 +1,9 @@ package com.gaotao.modules.salesreturn.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; import java.util.List; @Data @@ -22,7 +24,8 @@ public class SalesReturnDto { private String engChgLevel; private String invUOM; private String wdr; - private String expiryDate; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date expiryDate; @Data public static class PackUnitDto { diff --git a/src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java b/src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java index f1ff2552..350d9900 100644 --- a/src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java +++ b/src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.gaotao.common.exception.XJException; +import com.gaotao.common.utils.DateUtils; import com.gaotao.common.utils.HttpUtils; import com.gaotao.modules.handlingunit.entity.HandlingUnit; import com.gaotao.modules.handlingunit.service.HandlingUnitIdGeneratorService; @@ -351,7 +352,7 @@ public class SalesReturnServiceImpl implements SalesReturnService { if (dto.getHeight() != null && dto.getHeight() > 0) { handlingUnit.setHeight(BigDecimal.valueOf(dto.getHeight())); } - + handlingUnit.setExpiredDate(dto.getExpiryDate()!=null ? dto.getExpiryDate() : null); // 保存HandlingUnit主记录并检查返回值 boolean saveResult = handlingUnitService.save(handlingUnit); if (!saveResult) { @@ -428,7 +429,8 @@ public class SalesReturnServiceImpl implements SalesReturnService { params.put("ifsPartNo", dto.getPartNo()); params.put("ifsConfigurationID", "*"); params.put("ifsQytToReceive", dto.getProcessQty().doubleValue()); - params.put("ifsExpiryDate", dto.getExpiryDate()!=null?dto.getExpiryDate():null); + params.put("ifsExpiryDate", dto.getExpiryDate()!=null? + DateUtils.format(dto.getExpiryDate(), "yyyy-MM-dd"): null); params.put("ifsLocationNo", dto.getLocationNo()); params.put("ifsLotBatchNo", dto.getBatchNo()); params.put("ifsSerialNo", "*");