rev:拣选单异常
This commit is contained in:
@@ -36,14 +36,20 @@ public class PickingController {
|
||||
|
||||
@GetMapping()
|
||||
public ResponseEntity<Object> queryAll(FormDataQuery query, PageQuery page) {
|
||||
return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK);
|
||||
return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query, page)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/updateDtl")
|
||||
public ResponseEntity<Object> updateDtl(@RequestBody JSONArray params) {
|
||||
pickingService.update(params);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getSonFormData/{id}")
|
||||
public ResponseEntity<Object> getSonDtlFormData(@PathVariable String id){
|
||||
public ResponseEntity<Object> getSonDtlFormData(@PathVariable String id) {
|
||||
//参数判读,参数解析,调用参数入库
|
||||
//Page<BmFormStruc> page = iBmFormStrucService.page(pageQuery.build(), query.build());
|
||||
return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK);
|
||||
return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,20 +59,23 @@ public class PickingController {
|
||||
iPmFormDataService.syncFormData("type", formDtl);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/savePickTask")
|
||||
@Log("拣选作业")
|
||||
public ResponseEntity<Object> savePickTask(@RequestBody JSONArray params) {
|
||||
pickingService.savePickTask(params);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/updateStatus")
|
||||
public ResponseEntity<Object> updateStatus(@RequestBody JSONObject param) {
|
||||
//TODO:明细校验
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",param.getString("status"))
|
||||
.eq("id",param.getString("id")));
|
||||
.set("status", param.getString("status"))
|
||||
.eq("id", param.getString("id")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/taskOpen")
|
||||
@Log("拣选作业下发")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject param) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
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.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -25,6 +26,8 @@ import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
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.stor_manage.io.service.iostor.dao.StIvtIostorinv;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.dto.StIvtIostorinvdtlVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@@ -32,6 +35,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -46,7 +50,7 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class PickingService {
|
||||
|
||||
private static Map<String,String> Pick_Convery = MapOf.of("1309","1207","1311","1209");
|
||||
private static Map<String, String> Pick_Convery = MapOf.of("1309", "1207", "1311", "1209");
|
||||
@Autowired
|
||||
private IPmFormDataService iFormDataService;
|
||||
@Autowired
|
||||
@@ -57,39 +61,53 @@ public class PickingService {
|
||||
private IBmVehicleInfoService iBmVehicleInfoService;
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private IPmFormDataService pmFormDataService;
|
||||
@Autowired
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvDtlService;
|
||||
|
||||
/**
|
||||
* 生成拣选任务
|
||||
*
|
||||
* @param params
|
||||
*/
|
||||
@Transactional
|
||||
public void savePickTask(JSONArray params){
|
||||
PmFormData dtl = iFormDataService.getById((String)((Map) params.get(0)).get("parent_id"));
|
||||
public void savePickTask(JSONArray params) {
|
||||
if (params.size() == 0) {
|
||||
throw new BadRequestException("作业明细不能为空!");
|
||||
}
|
||||
PmFormData dtl = iFormDataService.getById((String) ((Map) params.get(0)).get("parent_id"));
|
||||
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("vehicle_code", dtl.getVehicle_code()).eq("material_id", dtl.getMaterial_id()));
|
||||
if (one==null){
|
||||
if (one == null) {
|
||||
throw new BadRequestException("拣选明细载具物料信息不存在");
|
||||
}
|
||||
Set<Object> vehicleCodes = params.stream().map(a -> ((Map) a).get("vehicle_code")).collect(Collectors.toSet());
|
||||
int vCode = iBmVehicleInfoService.count(new QueryWrapper<BmVehicleInfo>().in("vehicle_code", vehicleCodes));
|
||||
if (vCode!=vehicleCodes.size()){
|
||||
if (vCode != vehicleCodes.size()) {
|
||||
throw new BadRequestException("载具编码不存在");
|
||||
}
|
||||
vehicleCodes.remove(one.getVehicle_code());
|
||||
int mCode = iMdPbVehicleMaterService.count(new QueryWrapper<MdPbVehicleMater>().in("vehicle_code", vehicleCodes));
|
||||
if (mCode>0){
|
||||
throw new BadRequestException("当前载具"+vehicleCodes.toString()+"以存在载具物料信息");
|
||||
if (mCode > 0) {
|
||||
throw new BadRequestException("当前载具" + vehicleCodes.toString() + "以存在载具物料信息");
|
||||
}
|
||||
String now = DateUtil.now();
|
||||
String user = SecurityUtils.getCurrentNickName();
|
||||
|
||||
String id = dtl.getId();
|
||||
LambdaQueryWrapper<PmFormData> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(PmFormData::getParent_id, id)
|
||||
.and(l -> l.eq(PmFormData::getForm_type, "Picking_Task"));
|
||||
iFormDataService.remove(lqw);
|
||||
for (Object param : params) {
|
||||
JSONObject task = new JSONObject((Map) param);
|
||||
PmFormData data = task.toJavaObject(PmFormData.class);
|
||||
if (StringUtils.isEmpty(data.getParent_id())||StringUtils.isEmpty(data.getVehicle_code())){
|
||||
if (StringUtils.isEmpty(data.getParent_id()) || StringUtils.isEmpty(data.getVehicle_code())) {
|
||||
throw new BadRequestException("创建失败:缺少参数");
|
||||
}
|
||||
String task_type = data.getForm_data().getString("task_type");
|
||||
if (StringUtils.isEmpty(task_type)){
|
||||
if (StringUtils.isEmpty(task_type)) {
|
||||
throw new BadRequestException("创建失败:未配置任务类型");
|
||||
}
|
||||
data.setCreate_time(now);
|
||||
@@ -97,7 +115,8 @@ public class PickingService {
|
||||
data.setId(IdUtil.getStringId());
|
||||
iFormDataService.save(data);
|
||||
}
|
||||
单据状态变动:{
|
||||
单据状态变动:
|
||||
{
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配")).eq("id", dtl.getId()));
|
||||
int count = iFormDataService.count(new QueryWrapper<PmFormData>()
|
||||
@@ -116,12 +135,12 @@ public class PickingService {
|
||||
}
|
||||
|
||||
|
||||
public void taskOpen(JSONObject form){
|
||||
public void taskOpen(JSONObject form) {
|
||||
PmFormData mst = form.toJavaObject(PmFormData.class);
|
||||
if (StringUtils.isEmpty(mst.getProc_inst_id())){
|
||||
if (StringUtils.isEmpty(mst.getProc_inst_id())) {
|
||||
throw new BadRequestException("下发失败:当前单据不存在流程实例id");
|
||||
}
|
||||
if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))){
|
||||
if (!mst.getStatus().equals(StatusEnum.FORM_STATUS.code("已分配"))) {
|
||||
throw new BadRequestException("下发失败:当前单据未分配或者一下发");
|
||||
}
|
||||
JSONObject mstJ = (JSONObject) JSON.toJSON(mst);
|
||||
@@ -131,7 +150,7 @@ public class PickingService {
|
||||
dto.setSource_form_type(mst.getSource_form_type());
|
||||
dto.setSource_form_id(mst.getSource_form_id());
|
||||
dto.setT(mstJ);
|
||||
dto.setItem(packageT(mstJ,"id"));
|
||||
dto.setItem(packageT(mstJ, "id"));
|
||||
|
||||
JSONObject form_data = mstJ.getJSONObject("form_data");
|
||||
String platform = form_data.getString("point_code");
|
||||
@@ -140,18 +159,18 @@ public class PickingService {
|
||||
for (ExecutionDto executionDto : dto.getItem()) {
|
||||
for (ExecutionDto executionDto1 : executionDto.getItem()) {
|
||||
JSONObject dis = executionDto1.getT();
|
||||
if (!"false".equals(dis.getJSONObject("form_data").getString("s_move"))){
|
||||
if (!"false".equals(dis.getJSONObject("form_data").getString("s_move"))) {
|
||||
String vehicle_code = dis.getString("vehicle_code");
|
||||
if (vehicle_code.equals(sourceVehicle)){
|
||||
if (vehicle_code.equals(sourceVehicle)) {
|
||||
converys.add(platform);
|
||||
}else {
|
||||
} else {
|
||||
converys.add(Pick_Convery.get(platform));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String convery : converys) {
|
||||
wmsToAcsService.toCommand(convery,"1");
|
||||
wmsToAcsService.toCommand(convery, "1");
|
||||
}
|
||||
|
||||
// PickingService pickingService = SpringContextHolder.getBean(this.getClass());
|
||||
@@ -179,15 +198,16 @@ public class PickingService {
|
||||
List<PmFormData> dis = iFormDataService.getByParentId(dtl.getId());
|
||||
for (PmFormData data : dis) {
|
||||
String vehicle_code = data.getVehicle_code();
|
||||
if (dtl.getVehicle_code().equals(vehicle_code)){
|
||||
if (dtl.getVehicle_code().equals(vehicle_code)) {
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty",0)
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("frozen_qty", 0)
|
||||
.set("update_time", DateUtil.now())
|
||||
.set("update_name", SecurityUtils.getCurrentNickName())
|
||||
.set("qty",data.getQty())
|
||||
.eq("vehicle_code",vehicle_code));
|
||||
}else {
|
||||
组盘:{
|
||||
.set("qty", data.getQty())
|
||||
.eq("vehicle_code", vehicle_code));
|
||||
} else {
|
||||
组盘:
|
||||
{
|
||||
MdGruopDick dick = new MdGruopDick();
|
||||
dick.setVehicle_code(vehicle_code);
|
||||
dick.setSource_form_type("Picking_Task");
|
||||
@@ -222,10 +242,10 @@ public class PickingService {
|
||||
}
|
||||
}
|
||||
|
||||
private List<ExecutionDto> packageT(JSONObject current,String itemField){
|
||||
private List<ExecutionDto> packageT(JSONObject current, String itemField) {
|
||||
String id = current.getString(itemField);
|
||||
List<PmFormData> items = iFormDataService.getByParentId(id);
|
||||
if (!CollectionUtils.isEmpty(items)){
|
||||
if (!CollectionUtils.isEmpty(items)) {
|
||||
List<ExecutionDto> list = new ArrayList<>();
|
||||
for (PmFormData item : items) {
|
||||
JSONObject itemJ = (JSONObject) JSON.toJSON(item);
|
||||
@@ -235,11 +255,29 @@ public class PickingService {
|
||||
itemDto.setForm_type(item.getForm_type());
|
||||
itemDto.setSource_form_type(item.getSource_form_type());
|
||||
itemDto.setSource_form_id(item.getSource_form_id());
|
||||
itemDto.setItem(packageT(itemJ,itemField));
|
||||
itemDto.setItem(packageT(itemJ, itemField));
|
||||
list.add(itemDto);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void update(JSONArray params) {
|
||||
for (int i = 0; i < params.size(); i++) {
|
||||
JSONObject jsonObject = params.getJSONObject(i);
|
||||
String id = jsonObject.getString("id");
|
||||
Integer assign_qty = jsonObject.getInteger("assign_qty");
|
||||
// Integer qty = jsonObject.getInteger("qty");
|
||||
String vehicle_code = jsonObject.getString("vehicle_code");
|
||||
|
||||
PmFormData pmFormData = new PmFormData();
|
||||
pmFormData.setId(id);
|
||||
pmFormData.setAssign_qty(new BigDecimal(assign_qty));
|
||||
pmFormData.setVehicle_code(vehicle_code);
|
||||
|
||||
pmFormDataService.updateById(pmFormData);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user