7 changed files with 268 additions and 78 deletions
-
5src/main/java/com/gaotao/modules/handlingunit/dao/HandlingUnitMapper.java
-
10src/main/java/com/gaotao/modules/handlingunit/service/HandlingUnitGetIfsService.java
-
100src/main/java/com/gaotao/modules/handlingunit/service/impl/HandlingUnitGetIfsServiceImpl.java
-
77src/main/java/com/gaotao/modules/outsourcing/service/impl/OutsourcingReturnServiceImpl.java
-
90src/main/java/com/gaotao/modules/production/service/impl/ProductionReturnServiceImpl.java
-
63src/main/resources/mapper/handlingunit/HandlingUnitMapper.xml
-
1src/main/resources/mapper/outsourcing/OutsourcingReturnMapper.xml
@ -0,0 +1,10 @@ |
|||
package com.gaotao.modules.handlingunit.service; |
|||
|
|||
import com.gaotao.modules.handlingunit.entity.HandlingUnit; |
|||
|
|||
import java.util.List; |
|||
import java.util.Set; |
|||
|
|||
public interface HandlingUnitGetIfsService { |
|||
String getHandlingUnitGetIfs(Set<String> unitIds, String site, String partNo)throws Exception; |
|||
} |
|||
@ -0,0 +1,100 @@ |
|||
package com.gaotao.modules.handlingunit.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|||
import com.gaotao.modules.api.entity.issueAndReturnVo.AnInventoryPartInStockVo; |
|||
import com.gaotao.modules.api.service.IfsApiIssueAndReturnService; |
|||
import com.gaotao.modules.handlingunit.dao.HandlingUnitMapper; |
|||
import com.gaotao.modules.handlingunit.entity.HandlingUnit; |
|||
import com.gaotao.modules.handlingunit.service.HandlingUnitGetIfsService; |
|||
import com.gaotao.modules.handlingunit.service.HandlingUnitIdLogService; |
|||
import com.gaotao.modules.handlingunit.service.HandlingUnitService; |
|||
import com.gaotao.modules.production.entity.dto.WorkOrderMaterialDto; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Propagation; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.util.StringUtils; |
|||
|
|||
import java.text.ParseException; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Objects; |
|||
import java.util.Set; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
public class HandlingUnitGetIfsServiceImpl extends ServiceImpl<HandlingUnitMapper, HandlingUnit> implements HandlingUnitGetIfsService { |
|||
|
|||
@Autowired |
|||
private IfsApiIssueAndReturnService ifsApiIssueAndReturnService; |
|||
@Autowired |
|||
private HandlingUnitMapper handlingUnitMapper; |
|||
|
|||
@Override |
|||
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) |
|||
public String getHandlingUnitGetIfs(Set<String> unitIds, String site, String partNo) throws Exception { |
|||
List<AnInventoryPartInStockVo> partInStock = ifsApiIssueAndReturnService.getAnInventoryPartInStock(site, partNo); |
|||
|
|||
List<HandlingUnit> handlingUnits = handlingUnitMapper.selectByUnitIds(unitIds,site); |
|||
|
|||
// 遍历handlingUnits,匹配partInStock并回写数据 |
|||
if (handlingUnits != null && partInStock != null) { |
|||
for (HandlingUnit handlingUnit : handlingUnits) { |
|||
for (AnInventoryPartInStockVo stock : partInStock) { |
|||
// 匹配条件:site=Contract && partNo=PartNo && batchNo=LotBatchNo && locationId=LocationNo && wdr=WaivDevRejNo |
|||
if (Objects.equals(handlingUnit.getSite(), stock.getContract()) && |
|||
Objects.equals(handlingUnit.getPartNo(), stock.getPartNo()) && |
|||
Objects.equals(handlingUnit.getBatchNo(), stock.getLotBatchNo()) && |
|||
Objects.equals(handlingUnit.getLocationId(), stock.getLocationNo()) && |
|||
Objects.equals(handlingUnit.getWdr(), stock.getWaivDevRejNo())) { |
|||
|
|||
// 回写ReceiptDate |
|||
if (StringUtils.hasText(stock.getReceiptDate())) { |
|||
handlingUnit.setReceiveDate(parseDate(stock.getReceiptDate())); |
|||
} |
|||
|
|||
// 回写ExpirationDate |
|||
if (StringUtils.hasText(stock.getExpirationDate())) { |
|||
handlingUnit.setExpiredDate(parseDate(stock.getExpirationDate())); |
|||
} |
|||
|
|||
// 找到匹配项后跳出内层循环 |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
int i = handlingUnitMapper.updateExpiredDate(handlingUnits); |
|||
if (i > 0){ |
|||
return "200"; |
|||
} |
|||
return "400"; |
|||
} |
|||
|
|||
/** |
|||
* 解析日期字符串为Date对象 |
|||
* @param dateStr 日期字符串 |
|||
* @return Date对象,解析失败返回null |
|||
*/ |
|||
private Date parseDate(String dateStr) { |
|||
if (!StringUtils.hasText(dateStr)) { |
|||
return null; |
|||
} |
|||
try { |
|||
// 尝试常见的日期格式 |
|||
String[] patterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss", "yyyy/MM/dd"}; |
|||
for (String pattern : patterns) { |
|||
try { |
|||
SimpleDateFormat sdf = new SimpleDateFormat(pattern); |
|||
return sdf.parse(dateStr); |
|||
} catch (ParseException e) { |
|||
// 继续尝试下一个格式 |
|||
} |
|||
} |
|||
} catch (Exception e) { |
|||
// 解析失败返回null |
|||
} |
|||
return null; |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue