|
|
|
@ -25,6 +25,7 @@ import com.gaotao.modules.autoWareHourceHaian.mapper.HaiAnAutoIssueTaskLabelMapp |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.mapper.HaiAnAutoIssueTaskMapper; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.mapper.HaiAnPdaAutoWarehouseMapper; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnAutoIssueService; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnHandlingUnitOperationLogService; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnPalletTransferService; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.staticData.HaiAnAreaStaticData; |
|
|
|
import com.gaotao.modules.autoWareHourceHaian.staticData.HaiAnAutoIssueStaticData; |
|
|
|
@ -95,6 +96,9 @@ public class HaiAnAutoIssueServiceImpl implements HaiAnAutoIssueService { |
|
|
|
@Autowired |
|
|
|
private HaiAnAutoIssueLabelFlagPersistService haiAnAutoIssueLabelFlagPersistService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private HaiAnHandlingUnitOperationLogService haiAnHandlingUnitOperationLogService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 按site+搬运任务号拦截重复RFID回调;必须加入回调事务,查无记录时也持有范围锁直到建单结束。- rqrq |
|
|
|
* 原明细尚待发料时继续挂起,新增重复明细或已完结任务仅收口当前回调,不再通知WCS或发料。- rqrq |
|
|
|
@ -599,6 +603,8 @@ public class HaiAnAutoIssueServiceImpl implements HaiAnAutoIssueService { |
|
|
|
} |
|
|
|
// 独立新事务先落 issue_flag:IFS可能已执行,外层收尾回滚时也不能把成功标签再送一遍 - rqrq |
|
|
|
haiAnAutoIssueLabelFlagPersistService.saveIssueFlags(flagRows); |
|
|
|
// 成功标签单独记自动扣账;记录失败则中断收尾,发料状态已提交,下轮按已成功结果补记且不重发 - rqrq |
|
|
|
logSuccessfulAutoIssue(task, flagRows); |
|
|
|
|
|
|
|
// 发料事实已独立保存,再提交留盘标记:S为-1,F/U为-2;标记失败只重试落盘,不重发IFS。- rqrq |
|
|
|
haiAnAutoIssueLabelFlagPersistService.syncTaskPalletFlags(task.getSite(), task.getId(), task.getPalletId()); |
|
|
|
@ -638,6 +644,24 @@ public class HaiAnAutoIssueServiceImpl implements HaiAnAutoIssueService { |
|
|
|
task.getId(), task.getPalletId(), successCount, moveFailCount, failCount, unknownCount); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 发料状态已独立提交后再记操作记录。失败标签不记;同一搬运任务重复收尾由日志服务按标签跳过。 - rqrq |
|
|
|
* 记录失败抛错中断本轮收尾,已成功的发料状态保留,下一轮不再外呼,只补缺失的自动扣账。 - rqrq |
|
|
|
*/ |
|
|
|
private void logSuccessfulAutoIssue(HaiAnAutoIssueTask task, List<HaiAnAutoIssueTaskLabel> flagRows) { |
|
|
|
if (task == null || !StringUtils.hasText(task.getTransportTaskNo())) { |
|
|
|
throw new RuntimeException("自动扣账缺少搬运任务号,无法写入标签操作记录"); |
|
|
|
} |
|
|
|
String taskNo = task.getTransportTaskNo().trim(); |
|
|
|
for (HaiAnAutoIssueTaskLabel label : flagRows) { |
|
|
|
if (label == null || !HaiAnAutoIssueStaticData.ISSUE_FLAG_SUCCESS.equals(label.getIssueFlag())) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
// 每条独立提交:写入失败只回滚这一条,已记下的标签不会被本条失败冲掉 - rqrq |
|
|
|
haiAnHandlingUnitOperationLogService.haiAnLogAutoIssueDeduct(label.getSite(), label.getSerialNo(), taskNo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @author rqrq |
|
|
|
* @Description 仅空状态标签允许组单,外呼前通过独立服务提交 P;重入遇 P/U 转待核实,S/F 复用。外呼异常或回参无法对账转 U,禁止重发和解绑。 - rqrq |
|
|
|
|