fix:修复ERP回传物料信息不存在

This commit is contained in:
2025-02-12 21:29:38 +08:00
parent 33ad2a0d7e
commit 3eb688cdf1
7 changed files with 63 additions and 23 deletions

View File

@@ -1,17 +1,17 @@
##货位分配原则 出入库 ##货位分配原则 出入库
###1、上轻下重原则 ###1、上轻下重原则
根据货物重量选择摆放位置。把重的东西放在下层,把轻放在货架上层。需要人工搬运的大型货物以腰部的高度摆放。这样提高效率、保证安全。 根据货物重量选择摆放位置。把重的东西放在下层,把轻放在货架上层。需要人工搬运的大型货物以腰部的高度摆放。这样提高效率、保证安全。
###2、优先靠近出入口原则 ###2、优先靠近出入口原则
根据出入库频率选定位置。出入库频率高的货物应放在靠近出入口,易于作业的地方;流动性差的货物放在离出入口较远的地方;季节性物品按季节特性来选定场所摆放。 根据出入库频率选定位置。出入库频率高的货物应放在靠近出入口,易于作业的地方;流动性差的货物放在离出入口较远的地方;季节性物品按季节特性来选定场所摆放。
###3、先进先出原则 ###3、先进先出原则
一般企业为了加快周转,先入先出一同种物料出库时,先入库的物资,需要先提取出库,以加快物料周转,从而避免因物料长期积压产生锈蚀、变形、变质及其他损坏造成的损失。因此在货位分配时要方便先进物品优先出库。 一般企业为了加快周转,先入先出一同种物料出库时,先入库的物资,需要先提取出库,以加快物料周转,从而避免因物料长期积压产生锈蚀、变形、变质及其他损坏造成的损失。因此在货位分配时要方便先进物品优先出库。
###4、同类物品集中原则 ###4、同类物品集中原则
同一品种同一地方保管。为提高作业效率和保管效率同一物品或类似物品应在同一地方保管,提高仓储工作效率。 同一品种同一地方保管。为提高作业效率和保管效率同一物品或类似物品应在同一地方保管,提高仓储工作效率。
###5、多巷道分布原则 ###5、多巷道分布原则
货位分配是应提高可靠性,分巷道存放一仓库有多个巷道时,同种物品分散在不同的巷道进行存放。以防止因某巷道堵塞影响某种物料的出库,造成生产中断。 货位分配是应提高可靠性,分巷道存放一仓库有多个巷道时,同种物品分散在不同的巷道进行存放。以防止因某巷道堵塞影响某种物料的出库,造成生产中断。
###6.超限分配原则: ###6.超限分配原则:
对于货位超限:横向/纵向暂用多个货位.高度超限 对于货位超限:横向/纵向暂用多个货位.高度超限
##规则处理方式:责任链模式 ##规则处理方式:责任链模式
list->5 list->5

View File

@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
* @Date 2025/2/6 14:34 * @Date 2025/2/6 14:34
* 二楼入库任务 * 二楼入库任务
*/ */
@Service @Service("secondFloorInStorage")
@Slf4j @Slf4j
public class SecondFloorInStorageTask extends AbstractTask { public class SecondFloorInStorageTask extends AbstractTask {
@@ -109,8 +109,7 @@ public class SecondFloorInStorageTask extends AbstractTask {
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>() QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
.eq("is_used", true) .eq("is_used", true)
.eq("lock_type", StatusEnum.LOCK.code("无锁")) .eq("lock_type", StatusEnum.LOCK.code("无锁"))
.eq("stor_code", "FStockId") .eq("stor_code", "CStockId");
.eq("sect_code", "LXHCK01");
query.isNull("vehicle_code"); query.isNull("vehicle_code");
List<StIvtStructattr> list = iStIvtStructattrService.list(query); List<StIvtStructattr> list = iStIvtStructattrService.list(query);
List<StIvtStructattr> structList = sameBlockNumRuleHandler.handler(list, null); List<StIvtStructattr> structList = sameBlockNumRuleHandler.handler(list, null);

View File

@@ -49,7 +49,6 @@ public class AcsToWmsService {
public void applyTask(String service,String type,JSONObject data){ public void applyTask(String service,String type,JSONObject data){
if (service.equals("InStorage")){ if (service.equals("InStorage")){
applyTaskMap.get(type).createTask(data); applyTaskMap.get(type).createTask(data);
} }

View File

@@ -1,6 +1,7 @@
package org.nl.wms.flow_manage.flow.service.classprocessimpl; package org.nl.wms.flow_manage.flow.service.classprocessimpl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@@ -157,6 +158,9 @@ public class SyncReceiptProcessHandler implements ClassProcess {
for (int i = 0; i < fEntityArray.size(); i++) { for (int i = 0; i < fEntityArray.size(); i++) {
JSONObject fEntity = fEntityArray.getJSONObject(i); JSONObject fEntity = fEntityArray.getJSONObject(i);
List<MdMeMaterialbase> materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber"))); List<MdMeMaterialbase> materialList = iMdMeMaterialbaseService.list(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code,JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber")));
if (ObjectUtil.isEmpty(materialList)) {
throw new BadRequestException("回传失败:查询物料信息,物料编码不存在:"+JSON.parseObject(fEntity.getString("FMaterialId")).getString("FNumber"));
}
MdMeMaterialbase materialInfo = materialList.get(0); MdMeMaterialbase materialInfo = materialList.get(0);
//没有启用批次号 //没有启用批次号
if ("0".equals(materialInfo.getPrint_no())) { if ("0".equals(materialInfo.getPrint_no())) {

View File

@@ -56,12 +56,17 @@ public class PdaOutController {
public ResponseEntity<List<Map>> orderType() { public ResponseEntity<List<Map>> orderType() {
List<Map> result = new ArrayList<>(); List<Map> result = new ArrayList<>();
List<BmFormStruc> list = iBmFormStrucService.list(new QueryWrapper<BmFormStruc>() // List<BmFormStruc> list = iBmFormStrucService.list(new QueryWrapper<BmFormStruc>()
.like("form_desc","出库") // .like("form_desc","出库")
.select("form_type","form_name")); // .select("form_type","form_name"));
for (BmFormStruc formStruc : list) { // for (BmFormStruc formStruc : list) {
result.add(MapOf.of("text",formStruc.getForm_name(),"value",formStruc.getForm_type())); // result.add(MapOf.of("text",formStruc.getForm_name(),"value",formStruc.getForm_type()));
} // }
result.add(MapOf.of("text","生产用料清单","value","PRD_PPBOM"));
result.add(MapOf.of("text","委外用料清单","value","SUB_PickMtrl"));
result.add(MapOf.of("text","直接调拨单","value","STK_TransferDirect"));
result.add(MapOf.of("text","简单领料申请单","value","ka7c19edf9d4b4b39b8cc4a06802163b0"));
result.add(MapOf.of("text","其他出库单","value","STK_MisDelivery"));
return new ResponseEntity<>(result,HttpStatus.OK); return new ResponseEntity<>(result,HttpStatus.OK);
} }

View File

@@ -232,6 +232,7 @@ public class SyncErpBillsScheduleService {
filterString += "AND FDocumentStatus = 'C' AND F_PMSY_BillStatus = 'A' AND F_PMSY_CreateDate >= '" + timeStart + " 00:00:00' AND F_PMSY_CreateDate <= '" + timeEnd + " 23:59:59' "; filterString += "AND FDocumentStatus = 'C' AND F_PMSY_BillStatus = 'A' AND F_PMSY_CreateDate >= '" + timeStart + " 00:00:00' AND F_PMSY_CreateDate <= '" + timeEnd + " 23:59:59' ";
} else if ("SAL_SaleOrder".equals(formType)) { } else if ("SAL_SaleOrder".equals(formType)) {
filterString += " AND FDocumentStatus = 'C' AND FCloseStatus ='A' AND FCreateDate >= '" + timeStart + " 00:00:00' and FCreateDate <= '" + timeEnd + " 23:59:59' "; filterString += " AND FDocumentStatus = 'C' AND FCloseStatus ='A' AND FCreateDate >= '" + timeStart + " 00:00:00' and FCreateDate <= '" + timeEnd + " 23:59:59' ";
//调拨出入库,采购退料单,销售退货入库单,其他出库单
} else if ("STK_TransferDirect".equals(formType) || "STK_MisDelivery".equals(formType) || "PUR_MRB".equals(formType) || "SAL_RETURNSTOCK".equals(formType)) { } else if ("STK_TransferDirect".equals(formType) || "STK_MisDelivery".equals(formType) || "PUR_MRB".equals(formType) || "SAL_RETURNSTOCK".equals(formType)) {
filterString += " AND FDocumentStatus ='B' AND FCreateDate >= '" + timeStart + " 00:00:00' and FCreateDate <= '" + timeEnd + " 23:59:59' "; filterString += " AND FDocumentStatus ='B' AND FCreateDate >= '" + timeStart + " 00:00:00' and FCreateDate <= '" + timeEnd + " 23:59:59' ";
} else { } else {

View File

@@ -96,7 +96,39 @@
<appender-ref ref="luceneAppender" /> <appender-ref ref="luceneAppender" />
<queueSize>512</queueSize> <queueSize>512</queueSize>
</appender> </appender>
<springProfile name="dev">
<root level="info">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="CONSOLE"/>
</root>
<logger name="org.nl.wms.system_manage.service.quartz.task" level="ERROR" additivity="true">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="jdbc" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.hibernate" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.quartz" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="com.google" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework.data" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
</springProfile>
<!--开发环境:打印控制台--> <!--开发环境:打印控制台-->
<springProfile name="dev3"> <springProfile name="dev3">
<root level="info"> <root level="info">