package com.gaotao.modules.autoWareHourceHaian.controller; import com.gaotao.common.utils.PageUtils; import com.gaotao.common.utils.R; import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnLabelQuerySplitCheckData; import com.gaotao.modules.autoWareHourceHaian.service.HaiAnLabelQueryService; import com.gaotao.modules.autoWareHourceHaian.service.HaiAnPdaLabelSplitService; import com.gaotao.modules.handlingunit.entity.dto.HandlingUnitDto; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author rqrq * @Description 海安标签位置查询控制器,复刻labelQueryLocation并切换海安托盘关联链路 - rqrq */ @RestController @RequestMapping("/autoWareHourceHaian/haiAnLabelQuery") public class HaiAnLabelQueryController { @Autowired private HaiAnLabelQueryService haiAnLabelQueryService; @Autowired private HaiAnPdaLabelSplitService haiAnPdaLabelSplitService; /** * @author rqrq * @Description 分页查询海安标签位置列表,site必填用于主厂和子站点汇总过滤 - rqrq * @param data 查询条件 - rqrq * @return page分页结果 - rqrq */ @PostMapping("/getHandlingUnitLabelListLocation") public R getHandlingUnitLabelListLocation(@RequestBody HandlingUnitDto data) { if (data == null || StringUtils.isBlank(data.getSite())) { return R.error("工厂编码不能为空"); } // 调用海安标签服务执行位置查询,关键入参site用于隔离当前工厂;失败会影响标签位置追踪 - rqrq PageUtils page = haiAnLabelQueryService.getHandlingUnitLabelListLocation(data); return R.ok().put("page", page); } /** * @author rqrq * @Description 标签查询点击拆分前的门禁。命中54子工厂且标签仍在立库区域A01托盘上时抛错,页面不打开拆分弹窗。人工分拣不调用本接口。 - rqrq * @param data 标签自身工厂和标签号 - rqrq * @return 允许拆分时返回成功;拒绝时由异常返回业务错误 - rqrq */ @PostMapping("/checkLabelQuerySplit") public R checkLabelQuerySplit(@RequestBody HaiAnLabelQuerySplitCheckData data) { // 空请求无法判断标签工厂,直接失败,避免漏校验后打开拆分弹窗 - rqrq if (data == null || StringUtils.isBlank(data.getSite()) || StringUtils.isBlank(data.getUnitId())) { return R.error("标签工厂和标签号不能为空"); } // 调用立库在盘门禁:入参是标签自身工厂和标签号;命中A01在盘会抛出业务错误,未命中则允许继续拆分 - rqrq haiAnPdaLabelSplitService.assertLabelQuerySplitAllowed(data.getSite(), data.getUnitId()); return R.ok(); } }