diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java index 5697a51..b35beeb 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java @@ -30,6 +30,7 @@ public class EXTConstant { */ public final static String QUERY_INVENTORY_ZD_API = "/app/restful/api/v3/wms/getInventoryList"; - public static final List ZD_STOR_SET = Arrays.asList("6001"); + public static final String ZD_STOR_SET = "ZD_STOR_SET"; +// Arrays.asList("6001","6.011"); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java index a0513fc..ce79eb3 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; +import org.nl.wms.ext_manage.enums.EXTConstant; import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; import org.nl.wms.ext_manage.service.WmsToZDWmdService; import org.nl.wms.pm_manage.purchase.service.enums.PurchaseBillStatus; @@ -13,11 +15,19 @@ import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl; import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasedtlMapper; import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasemstMapper; +import org.nl.wms.system_manage.enums.SysParamConstant; +import org.nl.wms.system_manage.service.param.ISysParamService; +import org.nl.wms.system_manage.service.param.dao.Param; +import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -35,62 +45,64 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { @Autowired private WmsToZDWmdService wmsToZDWmdService; + @Autowired + private ISysParamService iSysParamService; + @Override @Transactional(rollbackFor = Exception.class) - public void syncPurchaseBill(BillChangeDto billChangeDto) { + public void syncPurchaseBill(BillChangeDto billChangeDto) { String billId = billChangeDto.getBillid(); Integer status = billChangeDto.getStatus();//1:已提交;2:更新;3:删除; + //更新单据 + final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ + throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + } + Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); + List ZD_STOR_SET; + if (zdStorParam!=null){ + ZD_STOR_SET = JSONObject.parseObject(zdStorParam.getValue(), List.class); + } else { + ZD_STOR_SET = new ArrayList<>(); + } switch (status){ case 1: + case 2: //增加单据 Purchasemst easMst = easQueryService.queryMst(billId); if (easMst == null) { throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); } - easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMst.setModify_date(DateUtil.now()); - List easDtlList = easQueryService.queryDtlList(billId); - for (Purchasedtl dtl : easDtlList) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ - //中鼎立库 - easMst.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); - } - } - purchasemstMapper.insert(easMst); - - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); - break; - case 2: - //更新单据 purchasedtlMapper.delete(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); purchasemstMapper.delete(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - - //增加单据 - Purchasemst easMstUpdate = easQueryService.queryMst(billId); - if (easMstUpdate == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); - } - easMstUpdate.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMstUpdate.setModify_date(DateUtil.now()); - List easDtlListUpdate = easQueryService.queryDtlList(billId); - for (Purchasedtl dtl : easDtlListUpdate) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ + //更新单据 + List easDtlList = easQueryService.queryDtlList(billId); + Boolean allZD = true; + for (Purchasedtl dtl : easDtlList) { + if (ZD_STOR_SET.contains(dtl.getHouse_code())){ //中鼎立库 - easMstUpdate.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); + dtl.setInstock_qty(dtl.getQty()); + easMst.setForwardZD(1); + easMst.setBill_status(PurchaseBillStatus.EXECUTING.getCode()); + }else { + allZD = false; } } - purchasemstMapper.insert(easMstUpdate); - - log.info("EAS采购入库单更新完成, billId: {}", billId); + if (easMst.getForwardZD()==1){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -105,56 +117,55 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { public void syncTransferBill(BillChangeDto billChangeDto) { String billId = billChangeDto.getBillid(); Integer status = billChangeDto.getStatus();//1:已提交;2:更新;3:删除; + //更新单据 + final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ + throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + } + Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); + List ZD_STOR_SET; + if (zdStorParam!=null){ + ZD_STOR_SET = JSONObject.parseObject(zdStorParam.getValue(), List.class); + } else { + ZD_STOR_SET = new ArrayList<>(); + } switch (status){ case 1: + case 2: //增加单据 Purchasemst easMst = easQueryService.queryMstByTransfer(billId); if (easMst == null) { throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); } - easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMst.setModify_date(DateUtil.now()); - List easDtlList = easQueryService.queryDtlListByTransfer(billId); - for (Purchasedtl dtl : easDtlList) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ - //中鼎立库 - easMst.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); - } - } - purchasemstMapper.insert(easMst); - - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); - break; - case 2: - //更新单据 purchasedtlMapper.delete(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); purchasemstMapper.delete(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - - //增加单据 - Purchasemst easMstUpdate = easQueryService.queryMstByTransfer(billId); - if (easMstUpdate == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); - } - easMstUpdate.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMstUpdate.setModify_date(DateUtil.now()); - List easDtlListUpdate = easQueryService.queryDtlListByTransfer(billId); - for (Purchasedtl dtl : easDtlListUpdate) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ + //更新单据 + List easDtlList = easQueryService.queryDtlListByTransfer(billId); + Boolean allZD = true; + for (Purchasedtl dtl : easDtlList) { + if (ZD_STOR_SET.contains(dtl.getHouse_code())){ //中鼎立库 - easMstUpdate.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); + dtl.setInstock_qty(dtl.getQty()); + easMst.setForwardZD(1); + easMst.setBill_status(PurchaseBillStatus.EXECUTING.getCode()); + }else { + allZD = false; } } - purchasemstMapper.insert(easMstUpdate); - - log.info("EAS采购入库单更新完成, billId: {}", billId); + if (easMst.getForwardZD()==1){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 @@ -169,56 +180,55 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { public void syncOtherBill(BillChangeDto billChangeDto) { String billId = billChangeDto.getBillid(); Integer status = billChangeDto.getStatus();//1:已提交;2:更新;3:删除; + //更新单据 + final Purchasemst purchasemst = purchasemstMapper.selectOne(new LambdaQueryWrapper() + .eq(Purchasemst::getBill_id, billId)); + if (purchasemst!=null && !purchasemst.getBill_status().equals(PurchaseBillStatus.CREATED.getCode())){ + throw new BadRequestException("EAS采购单同步失败:当前单据在WMS系统中已经执行 " + billId); + } + Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); + List ZD_STOR_SET; + if (zdStorParam!=null){ + ZD_STOR_SET = JSONObject.parseObject(zdStorParam.getValue(), List.class); + } else { + ZD_STOR_SET = new ArrayList<>(); + } switch (status){ case 1: + case 2: //增加单据 Purchasemst easMst = easQueryService.queryMstByOther(billId); if (easMst == null) { throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); } - easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMst.setModify_date(DateUtil.now()); - List easDtlList = easQueryService.queryDtlListByOther(billId); - for (Purchasedtl dtl : easDtlList) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ - //中鼎立库 - easMst.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); - } - } - purchasemstMapper.insert(easMst); - - log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); - break; - case 2: - //更新单据 purchasedtlMapper.delete(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, billId)); purchasemstMapper.delete(new LambdaQueryWrapper() .eq(Purchasemst::getBill_id, billId)); - - //增加单据 - Purchasemst easMstUpdate = easQueryService.queryMstByOther(billId); - if (easMstUpdate == null) { - throw new BadRequestException("EAS采购单同步失败:EAS系统中未找到单据: " + billId); - } - easMstUpdate.setBill_status(PurchaseBillStatus.CREATED.getCode()); - easMstUpdate.setModify_date(DateUtil.now()); - List easDtlListUpdate = easQueryService.queryDtlListByOther(billId); - for (Purchasedtl dtl : easDtlListUpdate) { - purchasedtlMapper.insert(dtl); - if (dtl.getHouse_code().contains("ZDLK")){ + //更新单据 + List easDtlList = easQueryService.queryDtlListByOther(billId); + Boolean allZD = true; + for (Purchasedtl dtl : easDtlList) { + if (ZD_STOR_SET.contains(dtl.getHouse_code())){ //中鼎立库 - easMstUpdate.setForwardZD(1); - //TODO 转发中鼎参数待确定 - wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); + dtl.setInstock_qty(dtl.getQty()); + easMst.setForwardZD(1); + easMst.setBill_status(PurchaseBillStatus.EXECUTING.getCode()); + }else { + allZD = false; } } - purchasemstMapper.insert(easMstUpdate); - - log.info("EAS采购入库单更新完成, billId: {}", billId); + if (easMst.getForwardZD()==1){ + if (allZD){ + //如果全部都是中鼎的则由中鼎回传EAS + easMst.setBill_status(PurchaseBillStatus.COMPLETED.getCode()); + } + //转发中鼎 + wmsToZDWmdService.syncPurchaseReceiving(billChangeDto); + } + purchasedtlMapper.batchSave(easDtlList); + purchasemstMapper.insert(easMst); + log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); break; case 3: //删除单据 diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java index 9e46d83..bd549fd 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java @@ -1,11 +1,14 @@ package org.nl.wms.ext_manage.service; import com.alibaba.fastjson.JSONObject; +import org.nl.common.utils.MapOf; +import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; import org.nl.wms.ext_manage.service.dto.ZDInventory; import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; import org.springframework.http.ResponseEntity; import java.util.List; +import java.util.Map; /** *

@@ -17,6 +20,8 @@ import java.util.List; */ public interface WmsToZDWmdService { + public static Map ZD_LOS_MAPPING = MapOf.of("EP2","6.002"); + /** * 生产领料需求单下发 * @@ -28,9 +33,9 @@ public interface WmsToZDWmdService { ResponseEntity syncDemandOrder(List demands); /** - * 采购入库单下发 + * EAS入库单下发 */ - ResponseEntity syncPurchaseReceiving(JSONObject whereJson); + ResponseEntity syncPurchaseReceiving(BillChangeDto billChangeDto); /** * */ diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java index 8d7d018..0bc6405 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java @@ -5,9 +5,10 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.nl.common.annotation.Mock; import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; -import org.nl.wms.ext_manage.enums.EXTConstant; +import org.nl.wms.ext_manage.purchase.service.dto.BillChangeDto; import org.nl.wms.ext_manage.service.WmsToZDWmdService; import org.nl.wms.ext_manage.service.dto.ZDInventory; import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; @@ -20,6 +21,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; @Service @Slf4j @@ -27,13 +29,41 @@ public class WmsToZDWmdServiceImpl implements WmsToZDWmdService { @Override public ResponseEntity syncDemandOrder(List demands) { log.info("syncDemandOrder生产领料需求单下发输入参数:-------------------" + demands.size()); - String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL).getValue(); + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL_REQUISITION).getValue(); try { + //数据转换 + List> targetList = new ArrayList<>(); + for (PmDemandDto demand : demands) { + java.util.Map map = new java.util.HashMap<>(); + map.put("Id", demand.getId()); + map.put("Creator", demand.getCreator()); + map.put("CreateTime", demand.getCreateTime()); + map.put("Priority", demand.getPriority()); + map.put("Status", 0); + map.put("WorkOrder", demand.getWorkOrder()); + map.put("SkuCode", demand.getSkuCode()); + map.put("SkuName", demand.getSkuName()); + map.put("Qty", demand.getQty().intValue()); + map.put("Unit", demand.getUnit()); + map.put("TargetArea", demand.getTargetArea()); + map.put("ProductionLine", demand.getProductionLine()); + map.put("Source", demand.getProductionLine()); + map.put("CarrierType", demand.getCarrierType()); + map.put("TargetHouseCode", demand.getTargetHouseCode()); + map.put("SN", demand.getSn()); + targetList.add(map); + } + final String param = JSON.toJSONString(targetList); + log.info("syncDemandOrder需求单请求参数:-------------------" + param); String resultMsg = HttpRequest.post(url) - .body(JSONArray.parseArray(JSON.toJSONString(demands)).toJSONString()) + .body(JSONArray.parseArray(param).toJSONString()) .execute().body(); JSONObject result = JSONObject.parseObject(resultMsg); log.info("syncDemandOrder需求单下发输出参数:-------------------" + result.toString()); + Integer respCode = result.getInteger("respCode"); + if (respCode == null || respCode != 0) { + throw new BadRequestException("中鼎库存查询失败:" + result.getString("respMsg")); + } return new ResponseEntity<>(result, HttpStatus.OK); } catch (Exception e) { throw new BadRequestException("中鼎需求单下发失败:" + e.getMessage()); @@ -41,38 +71,42 @@ public class WmsToZDWmdServiceImpl implements WmsToZDWmdService { } @Override - public ResponseEntity syncPurchaseReceiving(JSONObject whereJson) { - log.info("syncPurchaseReceiving采购入库单下发输入参数:-------------------" + whereJson.toString()); - String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL).getValue(); + public ResponseEntity syncPurchaseReceiving(BillChangeDto billChangeDto) { + final String param = JSON.toJSONString(billChangeDto); + log.info("syncPurchaseReceiving采购入库单下发输入参数:-------------------" + param); + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL_REQUISITION).getValue(); try { String resultMsg = HttpRequest.post(url) - .body(whereJson.toString()) + .body(param) .execute().body(); JSONObject result = JSONObject.parseObject(resultMsg); + Integer respCode = result.getInteger("respCode"); + if (respCode == null || respCode != 0) { + throw new BadRequestException("中鼎单据下推失败:" + result.getString("respMsg")); + } log.info("syncPurchaseReceiving采购入库单下发输出参数:-------------------" + result.toString()); return new ResponseEntity<>(result, HttpStatus.OK); } catch (Exception e) { - throw new BadRequestException("中鼎采购入库单下发失败:" + e.getMessage()); + throw new BadRequestException("中鼎单据下推失败:" + e.getMessage()); } } @Override + @Mock(desc = "库存查询mock",enable = true) public ResponseEntity> queryInventory(String skuCode) { List inventorys = new ArrayList<>(); log.info("queryInventory查询SKU库存输入参数:skuCode={}", skuCode); - Param param = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL); + Param param = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL_LOC); if (param==null){ return new ResponseEntity<>(inventorys, HttpStatus.OK); // throw new BadRequestException("查询中鼎库存失败,接口地址未配置"); } - String baseUrl = param.getValue(); - String url = baseUrl + EXTConstant.QUERY_INVENTORY_ZD_API; - + String url = param.getValue(); JSONObject requestBody = new JSONObject(); + requestBody.put("SkuCode", ""); requestBody.put("SkuCode", skuCode); - requestBody.put("HouseCode", ""); + requestBody.put("HouseCode", "6.002"); requestBody.put("HouseCodeLis", new JSONArray()); - try { String resultMsg = HttpRequest.post(url) .contentType("application/json") diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java index 7f0e304..96231b1 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java @@ -47,6 +47,12 @@ public class PmDemand extends Model { @TableField("target_area") private String target_area; + @TableField("target_house_code") + private String target_house_code; + + @TableField("carrier_type") + private String carrier_type; + @TableField("production_line") private String production_line; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml index ad62c8a..263631b 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml @@ -15,6 +15,8 @@ + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java index 13fbbf3..2e88fb4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java @@ -21,6 +21,8 @@ public class PmDemandDto implements Serializable { private BigDecimal assignQty; private String unit; private String targetArea; + private String targetHouseCode; + private String carrierType; private String productionLine; private String sn; private String createAt; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java index eeeb1f7..c364bed 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java @@ -19,58 +19,65 @@ import java.math.BigDecimal; public class PmDemandParam { @NotBlank(message = "单据唯一ID不能为空") - @JsonProperty(value = "Id") - private String Id; + @JsonProperty(value = "id") + private String id; @NotBlank(message = "操作人不能为空") - @JsonProperty(value = "Creator") - private String Creator; + @JsonProperty(value = "creator") + private String creator; @NotBlank(message = "需求日期不能为空") - @JsonProperty(value = "CreateTime") - private String CreateTime; + @JsonProperty(value = "createTime") + private String createTime; @NotNull(message = "优先级不能为空") - @JsonProperty(value = "Priority") - private Integer Priority; + @JsonProperty(value = "priority") + private Integer priority; - @JsonProperty(value = "Status") - private String Status; + @JsonProperty(value = "status") + private String status; @NotBlank(message = "工单编号不能为空") - @JsonProperty(value = "WorkOrder") - private String WorkOrder; + @JsonProperty(value = "workOrder") + private String workOrder; @NotBlank(message = "物料编码不能为空") - @JsonProperty(value = "SkuCode") - private String SkuCode; + @JsonProperty(value = "skuCode") + private String skuCode; @NotBlank(message = "物料名称不能为空") - @JsonProperty(value = "SkuName") - private String SkuName; + @JsonProperty(value = "skuName") + private String skuName; @NotNull(message = "数量不能为空") @DecimalMin(value = "0", inclusive = false, message = "数量必须大于0") - @JsonProperty(value = "Qty") - private BigDecimal Qty; + @JsonProperty(value = "qty") + private BigDecimal qty; @DecimalMin(value = "0", inclusive = false, message = "数量必须大于0") - @JsonProperty(value = "QssignQty") - private BigDecimal QssignQty; + @JsonProperty(value = "qssignQty") + private BigDecimal qssignQty; @NotBlank(message = "单位不能为空") - @JsonProperty(value = "Unit") - private String Unit; + @JsonProperty(value = "unit") + private String unit; @NotBlank(message = "目标库存地点不能为空") - @JsonProperty(value = "TargetArea") - private String TargetArea; + @JsonProperty(value = "targetArea") + private String targetArea; @NotBlank(message = "产线不能为空") - @JsonProperty(value = "ProductionLine") - private String ProductionLine; + @JsonProperty(value = "productionLine") + private String productionLine; + @NotBlank(message = "目标库存地点不能为空") + @JsonProperty(value = "targetHouseCode") + private String targetHouseCode; - @JsonProperty(value = "SN") - private String SN; + @NotBlank(message = "产线不能为空") + @JsonProperty(value = "carrierType") + private String carrierType; + + @JsonProperty(value = "sn") + private String sn; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java index 95df90c..21184ca 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java @@ -12,6 +12,8 @@ public class PmDemandQuery extends BaseQuery { private Integer status; private String workOrder; private String skuCode; + private String targetHouseCode; + private String carrierType; private String productionLine; private String targetArea; private String startTime; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java index b39189e..814936f 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; @@ -26,6 +27,9 @@ import org.nl.wms.pm_manage.demand.service.dto.PmDemandParam; import org.nl.wms.pm_manage.demand.service.dto.PmDemandQuery; import org.nl.wms.pm_manage.demand.service.enums.DemandStatus; import org.nl.wms.sch_manage.enums.StatusEnum; +import org.nl.wms.system_manage.service.param.ISysParamService; +import org.nl.wms.system_manage.service.param.dao.Param; +import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService; import org.nl.wms.warehouse_manage.inventory.IStInventoryService; @@ -57,7 +61,7 @@ public class PmDemandServiceImpl extends ServiceImpl i @Autowired private IMdMeMaterialbaseService iMdMeMaterialbaseService; @Autowired - private IMdPbMeasureunitService iMdPbMeasureunitService; + private ISysParamService iSysParamService; @Override public Page queryPage(PmDemandQuery query, PageQuery pageQuery) { @@ -84,8 +88,10 @@ public class PmDemandServiceImpl extends ServiceImpl i demand.setQty(param.getQty()); demand.setUnit(param.getUnit()); demand.setTarget_area(param.getTargetArea()); + demand.setTarget_house_code(param.getTargetHouseCode()); + demand.setCarrier_type(param.getCarrierType()); demand.setProduction_line(param.getProductionLine()); - demand.setSn(param.getSN()); + demand.setSn(param.getSn()); demand.setCreate_at(DateUtil.now()); this.save(demand); } @@ -171,7 +177,12 @@ public class PmDemandServiceImpl extends ServiceImpl i demandDto.setSkuCode(item.getSkuCode()); demandDto.setSkuName(null); demandDto.setQty(item.getQty()); - demandDto.setHouseCode(item.getHouseCode()); + //中鼎库存有映射 + String houseMapping = WmsToZDWmdService.ZD_LOS_MAPPING.get(item.getHouseCode()); + if (StringUtils.isEmpty(houseMapping)){ + throw new BadRequestException("分配失败,当前中鼎仓库编码未配置映射"); + } + demandDto.setHouseCode(houseMapping); demandDto.setHouseName(null); resultList.add(demandDto); } @@ -190,8 +201,15 @@ public class PmDemandServiceImpl extends ServiceImpl i throw new BadRequestException("下推失败,单据状态不为已分配不能下推"); } // 一次性分成两组 + Param zdStorParam = iSysParamService.findByCode(EXTConstant.ZD_STOR_SET); + List ZD_STOR_SET; + if (zdStorParam!=null){ + ZD_STOR_SET = JSONObject.parseObject(zdStorParam.getValue(), List.class); + } else { + ZD_STOR_SET = new ArrayList<>(); + } Map> partitioned = pmDemandDtos.stream() - .collect(Collectors.partitioningBy(a -> EXTConstant.ZD_STOR_SET + .collect(Collectors.partitioningBy(a -> ZD_STOR_SET .contains(JSONObject.parseObject(a.getInventoryDis()).getString("horseCode")))); List zdDemands = partitioned.get(true); List otherDemands = partitioned.get(false); @@ -235,7 +253,11 @@ public class PmDemandServiceImpl extends ServiceImpl i for (PmDemandDto demand : demands) { JSONObject detailRow = new JSONObject(); detailRow.put("material_code", demand.getSkuCode()); - detailRow.put("material_id", codeToIdMap.get(demand.getSkuCode()).getMaterial_id()); + MdMeMaterialbase materialbase = codeToIdMap.get(demand.getSkuCode()); + if (materialbase == null){ + throw new BadRequestException("下推失败,"+demand.getSkuCode()+"在WMS中不存在"); + } + detailRow.put("material_id", materialbase.getMaterial_id()); detailRow.put("qty_unit_name", demand.getUnit()); detailRow.put("qty_unit_id", codeToIdMap.get(demand.getSkuCode()).getQty_unit_id()); detailRow.put("qty", demand.getQty()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasedtl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasedtl.java index 8cacb88..afb3c3f 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasedtl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasedtl.java @@ -8,6 +8,9 @@ import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; +/** + * 采购入库单分录信息表实体类 + */ @Data @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_purchasedtl") @@ -15,36 +18,84 @@ public class Purchasedtl implements Serializable { private static final long serialVersionUID = 1L; + /** + * 自增主键ID + */ @TableId("id") private Long id; + /** + * 分录id + */ private String entry_id; + /** + * 单据主表关联id + */ private String bill_id; + /** + * 行号 + */ private String item_no; + /** + * 品类编码 + */ private String category_code; + /** + * 品类名称 + */ private String category_name; + /** + * 物料编码 + */ private String sku_code; + /** + * 物料名称 + */ private String sku_name; + /** + * 物料规格 + */ private String model; + /** + * 仓库号 + */ private String house_code; + /** + * 批次号 + */ private String batch_no; + /** + * 数量 + */ private BigDecimal qty; + /** + * 单位编码 + */ private String unit_code; + /** + * 单位 + */ private String unit; + /** + * 跟踪号 + */ private String track_no; + /** + * 已入库数量 + */ private BigDecimal instock_qty; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/PurchasedtlMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/PurchasedtlMapper.java index 667f109..9b29fc3 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/PurchasedtlMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/PurchasedtlMapper.java @@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl; +import java.util.List; + @Mapper public interface PurchasedtlMapper extends BaseMapper { + + void batchSave(List entitys); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasedtlMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasedtlMapper.xml index 240a40b..b4a66f4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasedtlMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasedtlMapper.xml @@ -2,4 +2,44 @@ + + INSERT INTO st_ivt_purchasedtl ( + id, + entry_id, + bill_id, + item_no, + category_code, + category_name, + sku_code, + sku_name, + model, + house_code, + batch_no, + qty, + unit_code, + unit, + track_no, + instock_qty + ) VALUES + + ( + #{item.id}, + #{item.entryId}, + #{item.billId}, + #{item.itemNo}, + #{item.categoryCode}, + #{item.categoryName}, + #{item.skuCode}, + #{item.skuName}, + #{item.model}, + #{item.houseCode}, + #{item.batchNo}, + #{item.qty}, + #{item.unitCode}, + #{item.unit}, + #{item.trackNo}, + #{item.instockQty} + ) + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java index ea2c350..9966af0 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java @@ -25,7 +25,9 @@ public class SysParamConstant { /** * 中鼎系统URL */ - public final static String ZD_URL = "zd_url"; + public final static String ZD_URL_REQUISITION = "ZD_URL_REQUISITION"; + public final static String ZD_URL_LOC = "ZD_URL_LOC"; + public final static String ZD_URL_IOORDER = "ZD_URL_IOORDER"; /** * MES URL */ diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/param/impl/SysParamServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/param/impl/SysParamServiceImpl.java index dff9d92..0aef89b 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/param/impl/SysParamServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/service/param/impl/SysParamServiceImpl.java @@ -64,6 +64,9 @@ public class SysParamServiceImpl extends ServiceImpl impl param.setUpdate_id(currentUserId); param.setUpdate_name(nickName); param.setUpdate_time(now); + param.setZh_name(param.getName()); + param.setEn_name(param.getName()); + param.setIn_name(param.getName()); paramMapper.insert(param); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java index 93cbe59..6e4e30a 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java @@ -284,6 +284,9 @@ public class OutBillServiceImpl extends ServiceImpl i } bsrealStorattr = iBsrealStorattrService.findByCode(storCode); } + if (bsrealStorattr == null){ + throw new BadRequestException("生成出库单失败,仓库编码不存在"); + } map.put("iostorinv_id", iostorinv_id); map.put("bill_code", CodeUtil.getNewCode("OUT_STORE_CODE")); map.put("biz_date", map.getString("biz_date").substring(0, 10)); diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue index b276fc9..e08c5e1 100644 --- a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue @@ -52,17 +52,17 @@ 物料:{{ currentDemand.skuCode }} {{ currentDemand.skuName }}  |  需求数量:{{ currentDemand.qty }} {{ currentDemand.unit }} - + - - - + + + + +