opt:拣选任务增加深浅库位判断
This commit is contained in:
@@ -13,6 +13,7 @@ import org.nl.common.enums.StatusEnum;
|
|||||||
import org.nl.common.utils.CodeUtil;
|
import org.nl.common.utils.CodeUtil;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.common.utils.SpringContextHolder;
|
||||||
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||||
@@ -53,7 +54,6 @@ public class ToPickPlatformTask extends AbstractTask {
|
|||||||
public JSONObject createTask(JSONObject from) {
|
public JSONObject createTask(JSONObject from) {
|
||||||
String vehicle_code = from.getString("vehicle_code");
|
String vehicle_code = from.getString("vehicle_code");
|
||||||
String target_point = null;// = from.getString("target_point");
|
String target_point = null;// = from.getString("target_point");
|
||||||
|
|
||||||
List<SchBasePoint> targetPoints = iSchBasePointService.list(new QueryWrapper<SchBasePoint>()
|
List<SchBasePoint> targetPoints = iSchBasePointService.list(new QueryWrapper<SchBasePoint>()
|
||||||
.eq("region_code", "PICK01").eq("is_used", true));
|
.eq("region_code", "PICK01").eq("is_used", true));
|
||||||
//通过全局变量获取目标位置
|
//通过全局变量获取目标位置
|
||||||
@@ -83,6 +83,12 @@ public class ToPickPlatformTask extends AbstractTask {
|
|||||||
if (ObjectUtils.isEmpty(struct)){
|
if (ObjectUtils.isEmpty(struct)){
|
||||||
throw new BadRequestException("创建任务失败:未找到该物料对应起点仓位");
|
throw new BadRequestException("创建任务失败:未找到该物料对应起点仓位");
|
||||||
}
|
}
|
||||||
|
String start_struct_code = struct.getStruct_code();
|
||||||
|
if (struct.getStor_code().equals("FStockId")){
|
||||||
|
synchronized ("FStockId"){
|
||||||
|
start_struct_code= SpringContextHolder.getBean(OutStorageTask.class).DoubleStor(struct);
|
||||||
|
}
|
||||||
|
}
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
task.setId(IdUtil.getStringId());
|
task.setId(IdUtil.getStringId());
|
||||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
@@ -93,7 +99,7 @@ public class ToPickPlatformTask extends AbstractTask {
|
|||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
task.setTask_type(from.getString("task_type"));
|
task.setTask_type(from.getString("task_type"));
|
||||||
task.setVehicle_code(vehicle_code);
|
task.setVehicle_code(vehicle_code);
|
||||||
task.setPoint_code1(struct.getStruct_code());
|
task.setPoint_code1(start_struct_code);
|
||||||
task.setPoint_code2(target_point);
|
task.setPoint_code2(target_point);
|
||||||
iSchBaseTaskService.save(task);
|
iSchBaseTaskService.save(task);
|
||||||
Lask_Point = target_point;
|
Lask_Point = target_point;
|
||||||
|
|||||||
@@ -2,21 +2,33 @@ package org.nl.wms.sync_manage.controller.form_mapping;
|
|||||||
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
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;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
import org.nl.common.domain.exception.BadRequestException;
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.utils.FileUtil;
|
import org.nl.common.utils.FileUtil;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.external_system.erp.SyncErpService;
|
import org.nl.wms.external_system.erp.SyncErpService;
|
||||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingQuery;
|
import org.nl.wms.sync_manage.service.field_mapping.dto.MappingQuery;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||||
import org.nl.wms.sync_manage.service.form_mapping.dto.FormMappingQuery;
|
import org.nl.wms.sync_manage.service.form_mapping.dto.FormMappingQuery;
|
||||||
|
import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.expression.EvaluationContext;
|
import org.springframework.expression.EvaluationContext;
|
||||||
@@ -27,9 +39,8 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -50,7 +61,10 @@ import java.util.List;
|
|||||||
@RequestMapping("api/syncFormMapping")
|
@RequestMapping("api/syncFormMapping")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public class SyncFormMappingController {
|
public class SyncFormMappingController {
|
||||||
|
@Autowired
|
||||||
|
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||||
|
@Autowired
|
||||||
|
private PmFormDataMapper pmFormDataMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISyncFormMappingService iSyncFormMappingService;
|
private ISyncFormMappingService iSyncFormMappingService;
|
||||||
@@ -72,7 +86,7 @@ public class SyncFormMappingController {
|
|||||||
}
|
}
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public ResponseEntity<Object> getAll(FormMappingQuery query, PageQuery page) {
|
public ResponseEntity<Object> getAll(FormMappingQuery query, PageQuery page) {
|
||||||
return new ResponseEntity<>(TableDataInfo.build(iSyncFormMappingService.page(page.build(), query.build())), HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(iSyncFormMappingService.page(page.build(), query.build())), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Log("创建表同步配置")
|
@Log("创建表同步配置")
|
||||||
@@ -101,18 +115,48 @@ public class SyncFormMappingController {
|
|||||||
public ResponseEntity<Object> syncAnalyse(@RequestBody JSONObject form){
|
public ResponseEntity<Object> syncAnalyse(@RequestBody JSONObject form){
|
||||||
//参数判读,参数解析,调用参数入库
|
//参数判读,参数解析,调用参数入库
|
||||||
Object analyseData = form.remove("analyseData");
|
Object analyseData = form.remove("analyseData");
|
||||||
Object needSave = form.remove("needSave");
|
|
||||||
if (analyseData == null){
|
if (analyseData == null){
|
||||||
throw new BadRequestException("解析数据不能为空");
|
throw new BadRequestException("解析数据不能为空");
|
||||||
}
|
}
|
||||||
Object mappingJson = form.get("mapping_json");
|
Object mappingJson = form.get("mapping_json");
|
||||||
JSONArray array = JSONArray.parseArray(JSON.toJSONString(mappingJson));
|
JSONArray array = JSONArray.parseArray(JSON.toJSONString(mappingJson));
|
||||||
List<PmFormData> pmFormDatas = formDataService.syncAnalyse(array,form.getString("form_type"),false,(String) analyseData);
|
List<PmFormData> pmFormDatas = formDataService.syncAnalyse(array,form.getString("form_type"),false,(String) analyseData);
|
||||||
if (needSave!=null && (Boolean)needSave){
|
//主单据Id
|
||||||
formDataService.saveBatch(pmFormDatas);
|
final String mainId = pmFormDatas.get(0).getId();
|
||||||
|
Set<String> exitFormDataList = pmFormDataMapper.existFormDataList();
|
||||||
|
for (PmFormData f : pmFormDatas) {
|
||||||
|
//存在ID,主单据不新增不修改,修改未出库单据的明细
|
||||||
|
String id = f.getId() + "$" + f.getForm_type();
|
||||||
|
//实时扫描则同步修改未出库的用料清单单据
|
||||||
|
if (exitFormDataList.contains(id) && true) {
|
||||||
|
//单据明细
|
||||||
|
if (StringUtils.isBlank(f.getCode())) {
|
||||||
|
PmFormData existDtlData = formDataService.getOne(new QueryWrapper<PmFormData>().eq("id", id).select("qty"));
|
||||||
|
if (existDtlData.getQty() != null) {
|
||||||
|
formDataService.update(new LambdaUpdateWrapper<PmFormData>()
|
||||||
|
.set(PmFormData::getMaterial_id, f.getMaterial_id())
|
||||||
|
.set(PmFormData::getUnit_id, f.getUnit_id())
|
||||||
|
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
|
||||||
|
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
||||||
|
.set(PmFormData::getActual_qty, f.getActual_qty())
|
||||||
|
.set(PmFormData::getBar_code, f.getBar_code())
|
||||||
|
.set(PmFormData::getUpdate_name, DateUtil.now())
|
||||||
|
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||||
|
.eq(PmFormData::getId, id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//单据明细
|
||||||
|
if (StringUtils.isBlank(f.getCode())) {
|
||||||
|
f.setParent_id(mainId + "$" + form.getString("form_type"));
|
||||||
|
}
|
||||||
|
f.setId(id);
|
||||||
|
formDataService.save(f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return new ResponseEntity<>(TableDataInfo.build(pmFormDatas),HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/syncData")
|
@PostMapping("/syncData")
|
||||||
@Log("表同步测试")
|
@Log("表同步测试")
|
||||||
public ResponseEntity<Object> syncData(@RequestBody JSONObject form){
|
public ResponseEntity<Object> syncData(@RequestBody JSONObject form){
|
||||||
@@ -151,5 +195,6 @@ public class SyncFormMappingController {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user