W进口仓单推送关务开发;
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package com.mhd.system.api.domain;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class GwLogW implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("日志id")
|
||||
private Long logId;
|
||||
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty("业务ID")
|
||||
private Long businessId;
|
||||
|
||||
@ApiModelProperty("请求报文")
|
||||
private String requestBody;
|
||||
|
||||
@ApiModelProperty("响应报文")
|
||||
private String responseBody;
|
||||
|
||||
@ApiModelProperty("状态(1-初始,2-成功,3-失败)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("错误信息")
|
||||
private String errorMsg;
|
||||
|
||||
@ApiModelProperty("推送时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date sendTime;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("一级组织ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("创建人")
|
||||
private Long createBy;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty("删除标记:1-正常,0-删除")
|
||||
private Integer delFlag;
|
||||
|
||||
// @ApiModelProperty("推送人姓名")
|
||||
// private String pushByName;
|
||||
}
|
||||
+6
@@ -283,6 +283,12 @@ public class ReservationStockInOrderApplicationService {
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean auditState(ReservationStockInOrderDO stockInOrderDO){
|
||||
Integer issueStatus = stockInOrderDO.getIssueStatus();
|
||||
if (issueStatus == 2) {
|
||||
List<Long> idList = new ArrayList();
|
||||
idList.add(stockInOrderDO.getInOrderId());
|
||||
batchPush(idList);
|
||||
}
|
||||
return stockInOrderDomainService.auditState(stockInOrderDO);
|
||||
}
|
||||
|
||||
|
||||
+15
-4
@@ -19,6 +19,7 @@ import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.BmsServiceFeign;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.GwLogW;
|
||||
import com.mhd.system.api.domain.SysDictData;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
@@ -27,6 +28,7 @@ import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
|
||||
import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.facade.IInMaterialDetailService;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
|
||||
@@ -50,6 +52,12 @@ import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrder
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
|
||||
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderImportRowDTO;
|
||||
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.apache.poi.ss.usermodel.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -57,14 +65,12 @@ import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -96,6 +102,11 @@ public class StockInOrderApplicationService {
|
||||
private IStockOutOrderService stockOutOrderService;
|
||||
@Autowired
|
||||
private IHandoverTaskOrderService handoverTaskOrderService;
|
||||
@Autowired
|
||||
private IInMaterialDetailService inMaterialDetailService;
|
||||
private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData";
|
||||
private static final String API_NAME = "save_order_i";
|
||||
private static final String VERIFY = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD";
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+76
-14
@@ -3,6 +3,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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserConfigSwitchPo;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
@@ -21,6 +22,7 @@ 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;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.facade.IInMaterialDetailService;
|
||||
import com.mhd.wms.domain.inventoryAdjustmentRecord.entity.InventoryAdjustmentRecord;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
|
||||
@@ -43,6 +45,8 @@ import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.service.InMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.entity.ShelfMaterialDetail;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.facade.IShelfMaterialDetailService;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.persistence.ShelfMaterialDetailImpl;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
|
||||
@@ -50,6 +54,7 @@ import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetai
|
||||
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.facade.IStockShelfOrderService;
|
||||
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;
|
||||
@@ -93,11 +98,11 @@ public class StockShelfOrderApplicationService {
|
||||
private InMaterialDetailDomainService inMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private ReceiptMaterialDetailDomainService receiptMaterialDetailDomainService;
|
||||
@Autowired
|
||||
@Resource
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Autowired
|
||||
@Resource
|
||||
private OmsServiceFeign omsServiceFeign;
|
||||
@Autowired
|
||||
private ICustomsDeclarationDetailService customsDeclarationDetailService;
|
||||
@@ -115,13 +120,16 @@ public class StockShelfOrderApplicationService {
|
||||
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 = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD";
|
||||
@Autowired
|
||||
private StockInOrderMapper stockInOrderMapper;
|
||||
private IInMaterialDetailService inMaterialDetailService;
|
||||
@Autowired
|
||||
private IShelfMaterialDetailService shelfMaterialDetailService;
|
||||
@Autowired
|
||||
private IStockShelfOrderService stockShelfOrderService;
|
||||
private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData";
|
||||
private static final String API_NAME = "save_order_i";
|
||||
private static final String VERIFY = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD";
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询上架单列表
|
||||
@@ -1067,7 +1075,7 @@ public class StockShelfOrderApplicationService {
|
||||
|
||||
/**
|
||||
* PDA/PC 详情:未完成行将 total* 覆盖为「待上架重量/体积」= 计划 − 累计已上架。
|
||||
* 与收货 {@link com.mhd.wms.application.service.stockReceiptOrder.StockReceiptOrderApplicationService#fillPlanAndPendingMetricsRecursively} 一致:
|
||||
* 与收货 {@code StockReceiptOrderApplicationService#fillPlanAndPendingMetricsRecursively} 一致:
|
||||
* level=2 子行计算时用<strong>计划主行(level=1)上已汇总的 alreadyShelves*</strong>,不能用子行本行累计,
|
||||
* 否则「计划」是整张卡的计划,「已减」却只有子行一批,待上架会偏大。
|
||||
*/
|
||||
@@ -2666,7 +2674,7 @@ public class StockShelfOrderApplicationService {
|
||||
String mtpckEndprdTypecd = "E";
|
||||
if (materialBaseInfoId != null) {
|
||||
MaterialBaseInfo materialBaseIn = materialBaseInfoMapper.selectById(materialBaseInfoId);
|
||||
if (materialBaseIn.getGoodsType() != null) {
|
||||
if (materialBaseIn != null && materialBaseIn.getGoodsType() != null) {
|
||||
Integer goodsType = materialBaseIn.getGoodsType();
|
||||
if (goodsType == 0) {
|
||||
mtpckEndprdTypecd = "M";
|
||||
@@ -2740,15 +2748,69 @@ public class StockShelfOrderApplicationService {
|
||||
Date inputTime = new Date();
|
||||
|
||||
Map<String, Object> item = new HashMap<>();
|
||||
item.put("etpsPreentNo", stockShelfOrder.getInOrderNumber());
|
||||
item.put("etpsPreentNo", stockShelfOrder.getShelfOrderNumber());
|
||||
item.put("inputTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));//或者是前段传时间 或者是加时间字段然后查询拿到这里
|
||||
item.put("stockTypecd", "I");
|
||||
item.put("mtpckEndprdTypecd", mtpckEndprdTypecd);
|
||||
List<Map<String, Object>> detailItems = new ArrayList<>();
|
||||
for (ShelfMaterialDetailPO shelfMaterialDetail : shelfMaterialDetails) {
|
||||
Map<String, Object> detailItem = new HashMap<>();
|
||||
|
||||
//入库单号
|
||||
detailItem.put("etpsPreentNo", stockShelfOrder.getShelfOrderNumber());
|
||||
//序号
|
||||
String lotNumber = shelfMaterialDetail.getLotNumber();
|
||||
if (lotNumber != null) {
|
||||
String[] split = lotNumber.split("-");
|
||||
if (split.length == 2) {
|
||||
detailItem.put("gNo", split[1]);
|
||||
}
|
||||
}
|
||||
MaterialBaseInfo materialBaseIn = materialBaseInfoMapper.selectById(materialBaseInfoId);
|
||||
if (materialBaseIn != null) {
|
||||
//料号
|
||||
detailItem.put("gdsMtno", materialBaseIn.getMaterialCode());
|
||||
//申报单价
|
||||
detailItem.put("dclUprcAmt", materialBaseIn.getUnitPrice());
|
||||
BigDecimal shelvesQuantity = shelfMaterialDetail.getShelvesQuantity();
|
||||
if (shelvesQuantity != null) {
|
||||
if (materialBaseIn.getUnitPrice() != null) {
|
||||
BigDecimal totalAmount = shelvesQuantity.multiply(materialBaseIn.getUnitPrice());
|
||||
//申报总价
|
||||
detailItem.put("dclTotalAmt", totalAmount);
|
||||
}
|
||||
//申报数量
|
||||
detailItem.put("dclQty", shelvesQuantity);
|
||||
//申报币制
|
||||
com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail inMaterialDetail = inMaterialDetailService.getOne(new LambdaQueryWrapper<com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail>().eq(com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail::getMaterialBaseInfoId, materialBaseIn.getMaterialBaseInfoId()).eq(com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail::getInOrderNumber, stockShelfOrder.getInOrderNumber()));
|
||||
detailItem.put("dclCurrcd", inMaterialDetail.getCurrency());
|
||||
}
|
||||
|
||||
}
|
||||
//入仓订单号
|
||||
detailItem.put("orderNo", stockShelfOrder.getInOrderNumber());
|
||||
//入仓订单行号
|
||||
if (lotNumber != null) {
|
||||
String[] split = lotNumber.split("-");
|
||||
if (split.length == 2) {
|
||||
detailItem.put("orderRow", split[1]);
|
||||
}
|
||||
}
|
||||
//进口核注清单号
|
||||
detailItem.put("bondInvtNo", materialBaseInfoId);
|
||||
//进口核注清行号
|
||||
detailItem.put("invtRow", materialBaseInfoId);
|
||||
//仓库
|
||||
detailItem.put("whNo", shelfMaterialDetail.getWarehouseCode());
|
||||
//库位
|
||||
detailItem.put("seatNo", shelfMaterialDetail.getStorageLocationCode());
|
||||
detailItems.add(detailItem);
|
||||
}
|
||||
item.put("qnBillList", detailItems);
|
||||
List<Map<String,Object>> bodyList = new ArrayList<>();
|
||||
bodyList.add(item);
|
||||
|
||||
//构建推送数据
|
||||
|
||||
|
||||
GwLogDTO gwLogDTO = new GwLogDTO();
|
||||
gwLogDTO.setType("保税仓-进口仓单");
|
||||
gwLogDTO.setBusinessId(id);
|
||||
|
||||
+2
@@ -35,4 +35,6 @@ public interface StockShelfOrderMapper extends BaseMapper<StockShelfOrder>
|
||||
void updateOmsInventoryQuantity(@Param("quantity") BigDecimal quantity, @Param("lotNumber")String lotNumber, @Param("inOrderNumber")String inOrderNumber);
|
||||
|
||||
void updateOmsInventorySynchronization(@Param("checkQuantity") BigDecimal checkQuantity, @Param("lotNo") String lotNo, @Param("inOrderNumber") String inOrderNumber);
|
||||
|
||||
public String getUserNcCode(@Param("id") Long id);
|
||||
}
|
||||
+1
-1
@@ -147,7 +147,7 @@ public class StockShelfOrderDomainService {
|
||||
private MaterialBaseInfoMapper materialBaseInfoMapper;
|
||||
@Autowired
|
||||
private ICopyCodeReferenceService copyCodeReferenceService;
|
||||
@Autowired
|
||||
@Resource
|
||||
private OmsServiceFeign omsServiceFeign;
|
||||
|
||||
/**
|
||||
|
||||
@@ -174,4 +174,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ALLOCATION_QUANTITY= ALLOCATION_QUANTITY - #{checkQuantity}
|
||||
where IN_ORDER_NUMBER = #{inOrderNumber} and LOT_NUMBER = #{lotNo}
|
||||
</update>
|
||||
|
||||
<select id="getUserNcCode" parameterType="java.lang.Long" resultType="java.lang.String">
|
||||
select CUSTOMER_NC_CODE from "NGWL_TEST_USER".USER_SHIPPER where 1 = 1 and DEL_FLAG = 1 and USER_ID = #{id} limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user