进口仓单推送
This commit is contained in:
+158
-14
@@ -2,6 +2,7 @@ package com.mhd.wms.application.service.stockShelfOrder;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserConfigSwitchPo;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
@@ -12,10 +13,10 @@ import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.OmsServiceFeign;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.ContainerFeignPO;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.*;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
@@ -29,7 +30,6 @@ import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.mapper.MaterialBaseInfoMapper;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.system.api.domain.PackDetailFeignPO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.po.BatchDetailPO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.po.BatchPO;
|
||||
@@ -37,7 +37,6 @@ import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
|
||||
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
|
||||
import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
|
||||
import com.mhd.system.api.domain.BatchDetailFeignPO;
|
||||
import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
|
||||
@@ -46,27 +45,30 @@ import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailP
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.mapper.StockInOrderMapper;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.entity.StockShelfOrder;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.mapper.StockShelfOrderMapper;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService;
|
||||
import com.mhd.wms.util.ReceiptBatchDetailFilter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -92,6 +94,8 @@ public class StockShelfOrderApplicationService {
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Autowired
|
||||
private OmsServiceFeign omsServiceFeign;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
@Autowired
|
||||
private MaterialBaseInfoMapper materialBaseInfoMapper;
|
||||
@@ -103,8 +107,15 @@ public class StockShelfOrderApplicationService {
|
||||
private IMaterialBaseInfoService materialBaseInfoService;
|
||||
@Autowired
|
||||
private IMaterialBarCodeService materialBarCodeService;
|
||||
@Resource
|
||||
private StockShelfOrderMapper stockShelfOrderMapper;
|
||||
|
||||
|
||||
private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData";
|
||||
private static final String API_NAME = "save_qnBill_i";
|
||||
private static final String VERIFY = "tjPZMT9fwhZRnv+eTXKF75QXmXzCn7phPagmoUQsvsh2ZTWDjuRxHAgcP0GZENHP";
|
||||
@Autowired
|
||||
private StockInOrderMapper stockInOrderMapper;
|
||||
|
||||
/**
|
||||
* 分页查询上架单列表
|
||||
@@ -2609,4 +2620,137 @@ public class StockShelfOrderApplicationService {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public AjaxResult batchPush(List<Long> idList) {
|
||||
if (idList == null || idList.isEmpty()) {
|
||||
return AjaxResult.error("没有数据需要推送");
|
||||
}
|
||||
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Long pushBy = loginUser != null ? loginUser.getUserid() : null;
|
||||
String pushByName = loginUser != null ? loginUser.getUsername() : null;
|
||||
Long organizationId = loginUser != null ? loginUser.getUserPo().getOrganizationId() : null;
|
||||
Long topOrganizationId = loginUser != null ? loginUser.getUserPo().getTopOrganizationId() : null;
|
||||
String organizationName = loginUser != null ? loginUser.getUserPo().getOrganizationName() : null;
|
||||
|
||||
int successCount = 0;
|
||||
int failCount = 0;
|
||||
StringBuilder failMsg = new StringBuilder();
|
||||
|
||||
for(Long id : idList){
|
||||
|
||||
StockShelfOrder stockShelfOrder = stockShelfOrderMapper.selectById(id);
|
||||
// StockInOrderPO stockInOrderPO = stockInOrderMapper.selectByInOrderNumber(stockShelfOrder.getInOrderNumber());
|
||||
// if(stockInOrderPO == null){
|
||||
// throw new ServiceException("该订单还未入库");
|
||||
// }
|
||||
|
||||
System.out.println(stockShelfOrder);
|
||||
String etpsPreentNo = stockShelfOrder.getInOrderNumber();//入库单号
|
||||
//如果是上架的时候推送,name就是现在的时间 ,没有找到上架完成时间
|
||||
Date inputTime = new Date();//录入时间-现在时间
|
||||
|
||||
//Date inputTime = stockInOrderPO.getWarehouseDate();//录入时间-入仓时间
|
||||
char mtpckEndprdTypecd = 'E';
|
||||
|
||||
Map<String, Object> item = new HashMap<>();
|
||||
item.put("etpsPreentNo", stockShelfOrder.getInOrderNumber());
|
||||
item.put("inputTime", new Date());//或者是前段传时间 或者是加时间字段然后查询拿到这里
|
||||
item.put("mtpckEndprdTypecd", 'E');
|
||||
List<Map<String,Object>> bodyList = new ArrayList<>();
|
||||
bodyList.add(item);
|
||||
|
||||
//构建推送数据
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
GwLogDTO gwLogDTO = new GwLogDTO();
|
||||
gwLogDTO.setType("出口订单");
|
||||
gwLogDTO.setBusinessId(id);
|
||||
gwLogDTO.setRequestBody(com.alibaba.fastjson.JSONObject.toJSONString(bodyList));
|
||||
gwLogDTO.setResponseBody("");
|
||||
gwLogDTO.setStatus(1);
|
||||
gwLogDTO.setSendTime(new Date());
|
||||
gwLogDTO.setOrganizationId(organizationId);
|
||||
gwLogDTO.setTopOrganizationId(topOrganizationId);
|
||||
gwLogDTO.setOrganizationName(organizationName);
|
||||
gwLogDTO.setCreateBy(pushBy);
|
||||
gwLogDTO.setCreateTime(new Date());
|
||||
gwLogDTO.setDelFlag(1);
|
||||
//gwLogMapper.insert(gwLogDTO);
|
||||
|
||||
updatePushStatus(id, 2, new Date(), pushBy,pushByName);
|
||||
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(PUSH_API_URL);
|
||||
StringEntity postingString = new StringEntity(com.alibaba.fastjson.JSONObject.toJSONString(bodyList), "UTF-8");
|
||||
httpPost.setEntity(postingString);
|
||||
httpPost.setHeader("Content-type", "application/json");
|
||||
httpPost.setHeader("apiName", API_NAME);
|
||||
httpPost.setHeader("verify", VERIFY);
|
||||
|
||||
try {
|
||||
CloseableHttpResponse response = httpClient.execute(httpPost);
|
||||
String responseString = EntityUtils.toString(response.getEntity());
|
||||
gwLogDTO.setResponseBody(responseString);
|
||||
|
||||
if (response.getStatusLine().getStatusCode() == 200) {
|
||||
gwLogDTO.setStatus(2);
|
||||
updatePushStatus(id, 3, new Date(), pushBy,pushByName);
|
||||
successCount++;
|
||||
} else {
|
||||
gwLogDTO.setStatus(3);
|
||||
gwLogDTO.setErrorMsg(responseString);
|
||||
updatePushStatus(id, 4, new Date(), pushBy,pushByName);
|
||||
failCount++;
|
||||
failMsg.append("id:").append(id).append("失败;");
|
||||
}
|
||||
// gwLogMapper.updateById(gwLog);
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
gwLogDTO.setStatus(3);
|
||||
gwLogDTO.setErrorMsg(e.getMessage());
|
||||
gwLogDTO.setResponseBody("请求异常:" + e.getMessage());
|
||||
// gwLogMapper.updateById(gwLog);
|
||||
updatePushStatus(id, 4, new Date(), pushBy,pushByName);
|
||||
failCount++;
|
||||
failMsg.append("id:").append(id).append("异常:").append(e.getMessage()).append(";");
|
||||
log.error("保税仓推送异常: id={}, error={}", id, e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
httpClient.close();
|
||||
} catch (Exception e) {
|
||||
log.error("关闭httpClient异常: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String resultMsg = "推送完成: 成功" + successCount + "条, 失败" + failCount + "条";
|
||||
if (failCount > 0) {
|
||||
resultMsg += "[" + failMsg.toString() + "]";
|
||||
}
|
||||
return AjaxResult.success(resultMsg);
|
||||
}
|
||||
|
||||
private void updatePushStatus(Long id, Integer pushStatus, Date pushTime, Long pushBy,String pushByName) {
|
||||
StockShelfOrder entity = new StockShelfOrder();
|
||||
entity.setShelfOrderId(id);
|
||||
entity.setPushStatus(pushStatus);
|
||||
if (pushTime != null) {
|
||||
entity.setPushTime(pushTime);
|
||||
}
|
||||
if (pushBy != null) {
|
||||
entity.setPushBy(pushBy);
|
||||
}
|
||||
if (pushByName != null) {
|
||||
entity.setPushByName(pushByName);
|
||||
}
|
||||
stockShelfOrderMapper.updateById(entity);
|
||||
}
|
||||
|
||||
}
|
||||
+3
@@ -6,6 +6,7 @@ import com.mhd.wms.domain.stockInOrder.entity.StockInOrder;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
|
||||
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -27,4 +28,6 @@ public interface StockInOrderMapper extends BaseMapper<StockInOrder>
|
||||
List<StockInOrderPO> queryNoticePrint(StockInOrderDO stockInOrderDO);
|
||||
|
||||
List<InMaterialDetailPO> queryNoticePrintDetail(StockInOrderDO stockInOrderDO);
|
||||
|
||||
StockInOrderPO selectByInOrderNumber(@Param("inOrderNumber") String inOrderNumber);
|
||||
}
|
||||
|
||||
+8
-1
@@ -88,7 +88,14 @@ public class StockShelfOrderApi extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ApiOperation("推送")
|
||||
@PostMapping("/batchPush")
|
||||
public AjaxResult batchPush(@RequestBody List<Long> idList){
|
||||
if(idList == null || idList.isEmpty()){
|
||||
return AjaxResult.error("没有数据需要推送");
|
||||
}
|
||||
return stockShelfOrderApplicationService.batchPush(idList);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -542,4 +542,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectByInOrderNumber" resultMap="StockInOrderResult">
|
||||
SELECT *
|
||||
|
||||
FROM stock_in_order
|
||||
WHERE del_flag = 1
|
||||
AND in_order_number = #{inOrderNumber}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user