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

View File

@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
* @Date 2025/2/6 14:34
* 二楼入库任务
*/
@Service
@Service("secondFloorInStorage")
@Slf4j
public class SecondFloorInStorageTask extends AbstractTask {
@@ -109,8 +109,7 @@ public class SecondFloorInStorageTask extends AbstractTask {
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
.eq("is_used", true)
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
.eq("stor_code", "FStockId")
.eq("sect_code", "LXHCK01");
.eq("stor_code", "CStockId");
query.isNull("vehicle_code");
List<StIvtStructattr> list = iStIvtStructattrService.list(query);
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){
if (service.equals("InStorage")){
applyTaskMap.get(type).createTask(data);
}

View File

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

View File

@@ -56,12 +56,17 @@ public class PdaOutController {
public ResponseEntity<List<Map>> orderType() {
List<Map> result = new ArrayList<>();
List<BmFormStruc> list = iBmFormStrucService.list(new QueryWrapper<BmFormStruc>()
.like("form_desc","出库")
.select("form_type","form_name"));
for (BmFormStruc formStruc : list) {
result.add(MapOf.of("text",formStruc.getForm_name(),"value",formStruc.getForm_type()));
}
// List<BmFormStruc> list = iBmFormStrucService.list(new QueryWrapper<BmFormStruc>()
// .like("form_desc","出库")
// .select("form_type","form_name"));
// for (BmFormStruc formStruc : list) {
// 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);
}

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' ";
} 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' ";
//调拨出入库,采购退料单,销售退货入库单,其他出库单
} 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' ";
} else {

View File

@@ -96,7 +96,39 @@
<appender-ref ref="luceneAppender" />
<queueSize>512</queueSize>
</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">
<root level="info">