rev:修改异常入库分配规则
This commit is contained in:
@@ -84,7 +84,7 @@ public class PdaPickController {
|
|||||||
//生成拣选明细:传主表信息
|
//生成拣选明细:传主表信息
|
||||||
Assert.noNullElements(new Object[]{pickTask,pickTask.getId(),pickTask.getPick_vehicle_23(),pickTask.getPick_vehicle_13(),pickTask.getIs_move(),pickTask.getPoint_code(),pickTask.getProduct_area(),pickTask.getStor_code()},"拣选确认异常,请求参数不能为空");
|
Assert.noNullElements(new Object[]{pickTask,pickTask.getId(),pickTask.getPick_vehicle_23(),pickTask.getPick_vehicle_13(),pickTask.getIs_move(),pickTask.getPoint_code(),pickTask.getProduct_area(),pickTask.getStor_code()},"拣选确认异常,请求参数不能为空");
|
||||||
RedissonUtils.lock(() -> {
|
RedissonUtils.lock(() -> {
|
||||||
pickingService.pdaPick(pickTask);
|
pickingService.pdaPickTask(pickTask);
|
||||||
}, pickTask.getCode()+"手持拣选操作", null);
|
}, pickTask.getCode()+"手持拣选操作", null);
|
||||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import org.nl.wms.stor_manage.io.service.iostor_dtl.dto.StIvtIostorinvdtlVo;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
@@ -296,14 +297,24 @@ public class PickingService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手持拣选功能
|
||||||
|
* @param pickTask
|
||||||
|
*/
|
||||||
|
public void pdaPickTask(PickTask pickTask) {
|
||||||
|
PickingService pickingService = SpringContextHolder.getBean(PickingService.class);
|
||||||
|
FlowContinueEvent continueEvent = pickingService.pdaPick(pickTask);
|
||||||
|
BussEventMulticaster.Publish(continueEvent);
|
||||||
|
}
|
||||||
@Transactional
|
@Transactional
|
||||||
public void pdaPick(PickTask pickTask) {
|
public FlowContinueEvent pdaPick(PickTask pickTask) {
|
||||||
PmFormData mst = iFormDataService.getById(pickTask.getId());
|
PmFormData mst = iFormDataService.getById(pickTask.getId());
|
||||||
if (mst==null||mst.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))||mst.getStatus().equals(StatusEnum.FORM_STATUS.code("取消"))){
|
if (mst==null||mst.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))||mst.getStatus().equals(StatusEnum.FORM_STATUS.code("取消"))){
|
||||||
throw new BadRequestException("拣选作业不存在或已完成");
|
throw new BadRequestException("拣选作业不存在或已完成");
|
||||||
}
|
}//只能有一条明细
|
||||||
List<PmFormData> dtls = iFormDataService.getByParentId(pickTask.getId());
|
List<PmFormData> dtls = iFormDataService.getByParentId(pickTask.getId());
|
||||||
if (CollectionUtils.isEmpty(dtls)||dtls.size()>0){
|
if (CollectionUtils.isEmpty(dtls)||dtls.size()>1){
|
||||||
throw new BadRequestException("拣选作业明细数据异常");
|
throw new BadRequestException("拣选作业明细数据异常");
|
||||||
}
|
}
|
||||||
PmFormData dtl = dtls.get(0);
|
PmFormData dtl = dtls.get(0);
|
||||||
@@ -342,7 +353,66 @@ public class PickingService {
|
|||||||
out.put("form_data",outof);
|
out.put("form_data",outof);
|
||||||
array.add(in);
|
array.add(in);
|
||||||
array.add(out);
|
array.add(out);
|
||||||
|
//更新主要单据执行中
|
||||||
|
mst.setStatus(StatusEnum.FORM_STATUS.code("已分配"));
|
||||||
|
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||||
|
.set("status",StatusEnum.FORM_STATUS.code("已分配"))
|
||||||
|
.set("update_time",DateUtil.now())
|
||||||
|
.set("update_name",SecurityUtils.getCurrentNickName())
|
||||||
|
.eq("id",pickTask.getId())
|
||||||
|
);
|
||||||
this.savePickTask(array);
|
this.savePickTask(array);
|
||||||
this.taskOpen((JSONObject) JSONObject.toJSON(mst));
|
if (StringUtils.isEmpty(mst.getProc_inst_id())) {
|
||||||
|
throw new BadRequestException("下发失败:当前单据不存在流程实例id");
|
||||||
|
}
|
||||||
|
if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))) {
|
||||||
|
throw new BadRequestException("下发失败:当前单据未分配或者一下发");
|
||||||
|
}
|
||||||
|
JSONObject mstJ = (JSONObject) JSON.toJSON(mst);
|
||||||
|
ExecutionDto dto = new ExecutionDto();
|
||||||
|
dto.setForm_id(mst.getId());
|
||||||
|
dto.setForm_type(mst.getForm_type());
|
||||||
|
dto.setSource_form_type(mst.getSource_form_type());
|
||||||
|
dto.setSource_form_id(mst.getSource_form_id());
|
||||||
|
dto.setT(mstJ);
|
||||||
|
dto.setItem(packageT(mstJ, "id"));
|
||||||
|
JSONObject form_data = mstJ.getJSONObject("form_data");
|
||||||
|
String platform = form_data.getString("point_code");
|
||||||
|
String sourceVehicle = mstJ.getString("vehicle_code");
|
||||||
|
List<Map<String,Object>> converys = new ArrayList<>();
|
||||||
|
for (ExecutionDto executionDto : dto.getItem()) {
|
||||||
|
for (ExecutionDto executionDto1 : executionDto.getItem()) {
|
||||||
|
JSONObject dis = executionDto1.getT();
|
||||||
|
if (!"false".equals(dis.getJSONObject("form_data").getString("is_move"))) {
|
||||||
|
String vehicle_code = dis.getString("vehicle_code");
|
||||||
|
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>().eq("vehicle_code", vehicle_code));
|
||||||
|
if (vehicleInfo==null || vehicleInfo.getH()==null ||vehicleInfo.getH().intValue()<1){
|
||||||
|
throw new BadRequestException(vehicle_code+"载具信息不存在,请确认载具基础表载具及高度信息是否完整");
|
||||||
|
}
|
||||||
|
if (vehicle_code.equals(sourceVehicle)) {
|
||||||
|
converys.add(MapOf.of("c",platform,"v",vehicleInfo.getH()));
|
||||||
|
} else {
|
||||||
|
converys.add(MapOf.of("c",Pick_Convery.get(platform),"v",vehicleInfo.getH()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("拣选平台输送线分配信息"+converys);
|
||||||
|
for (Map<String,Object> convery : converys) {
|
||||||
|
wmsToAcsService.toCommand((String)convery.get("c"), "1",(Integer) convery.get("v"));
|
||||||
|
}
|
||||||
|
|
||||||
|
PickingService pickingService = SpringContextHolder.getBean(this.getClass());
|
||||||
|
pickingService.disGroup(mst);
|
||||||
|
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||||
|
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||||
|
.eq("id",mst.getId()));
|
||||||
|
//只有透传才有vehicle_code参数否则只有inst_id
|
||||||
|
FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), (PermeateFunction<String, String>) (inst_id, vehicle_code) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||||
|
.set("proc_inst_id",inst_id)
|
||||||
|
.eq("is_delete",false)
|
||||||
|
.eq("vehicle_code",vehicle_code)), null)
|
||||||
|
.setDto(dto);
|
||||||
|
return continueEvent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user