rev:刻字包装服务
This commit is contained in:
@@ -3,7 +3,7 @@ package org.nl.common.utils;
|
|||||||
import com.google.common.cache.Cache;
|
import com.google.common.cache.Cache;
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.wms.pda_manage.pda.dto.MaterialDto;
|
import org.nl.wms.pda_manage.pda.service.dto.MaterialDto;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeEmpTask;
|
|||||||
import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeFullTask;
|
import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeFullTask;
|
||||||
import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
||||||
import org.nl.wms.product_manage.sch.tasks.callEmpty.PlotterCallEmptyTask;
|
import org.nl.wms.product_manage.sch.tasks.callEmpty.PlotterCallEmptyTask;
|
||||||
|
import org.nl.wms.product_manage.sch.tasks.callEmpty.WashCallEmptyTask;
|
||||||
import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask;
|
import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask;
|
||||||
import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask;
|
import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask;
|
||||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask;
|
import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask;
|
||||||
|
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
||||||
import org.springframework.context.SmartLifecycle;
|
import org.springframework.context.SmartLifecycle;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@@ -27,9 +29,10 @@ public class ConventConfig implements SmartLifecycle {
|
|||||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class));
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class));
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class));
|
||||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class));
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class));
|
||||||
// AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(EngraveCallMaterialTask.class));
|
|
||||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class));
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class));
|
||||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class));
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class));
|
||||||
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_FULL, SpringContextHolder.getBean(WashSendMaterialTask.class));
|
||||||
|
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashCallEmptyTask.class));
|
||||||
System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size());
|
System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package org.nl.wms.masterdata_manage.storage.service.storage;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -46,4 +47,11 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
|||||||
* @param jo
|
* @param jo
|
||||||
*/
|
*/
|
||||||
StIvtStructattr getExceedAttr(JSONObject jo);
|
StIvtStructattr getExceedAttr(JSONObject jo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓位锁定
|
||||||
|
* @param type
|
||||||
|
* @param inv_code
|
||||||
|
*/
|
||||||
|
void lockStruct(String struct_code, String type, String inv_code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,12 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ
|
|||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper;
|
||||||
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -35,10 +39,6 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtSectattrService sectattrService;
|
private IStIvtSectattrService sectattrService;
|
||||||
@Autowired
|
|
||||||
private IStIvtBsrealstorattrService storattrService;
|
|
||||||
@Autowired
|
|
||||||
private IStIvtStructattrService structattrService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject form) {
|
public String create(JSONObject form) {
|
||||||
@@ -98,7 +98,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
JSONObject sect_cas = new JSONObject();
|
JSONObject sect_cas = new JSONObject();
|
||||||
sect_cas.put("value", sect.getSect_id());
|
sect_cas.put("value", sect.getSect_id());
|
||||||
sect_cas.put("label", sect.getSect_name());
|
sect_cas.put("label", sect.getSect_name());
|
||||||
List<StIvtStructattr> struct_list = structattrService.list(new QueryWrapper<StIvtStructattr>().eq("is_used", true)
|
List<StIvtStructattr> struct_list = this.list(new QueryWrapper<StIvtStructattr>().eq("is_used", true)
|
||||||
.eq("sect_id", sect.getSect_id()));
|
.eq("sect_id", sect.getSect_id()));
|
||||||
if (struct_list.size() > 0) {
|
if (struct_list.size() > 0) {
|
||||||
JSONArray struct_ja = new JSONArray();
|
JSONArray struct_ja = new JSONArray();
|
||||||
@@ -137,4 +137,13 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
.set("update_time",new Date())
|
.set("update_time",new Date())
|
||||||
.eq("struct_id",form.getString("struct_id")));
|
.eq("struct_id",form.getString("struct_id")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
|
public void lockStruct(String struct_code, String type, String inv_code) {
|
||||||
|
this.update(new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
|
.eq(StIvtStructattr::getStruct_code, struct_code)
|
||||||
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code(type))
|
||||||
|
.set(StIvtStructattr::getInv_code,inv_code));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.json.XML;
|
import org.json.XML;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.utils.WebServiceUtil;
|
import org.nl.common.utils.WebServiceUtil;
|
||||||
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.utils.RedisUtils;
|
import org.nl.modules.common.utils.RedisUtils;
|
||||||
@@ -29,14 +28,13 @@ import org.nl.wms.masterdata_manage.备份master.constant.MaterOptTypeEnum;
|
|||||||
import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
|
import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
|
||||||
import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService;
|
import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService;
|
||||||
import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto;
|
import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto;
|
||||||
import org.nl.wms.pda_manage.pda.dto.MaterialDto;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.nl.wms.pda_manage.pda.service.dto.MaterialDto;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.wms.pda_manage.pda.rest;
|
package org.nl.wms.pda_manage.pda.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
@@ -12,7 +12,7 @@ import org.nl.common.TableDataInfo;
|
|||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.utils.api.ResultCode;
|
import org.nl.common.utils.api.ResultCode;
|
||||||
import org.nl.modules.common.exception.BizCoreException;
|
import org.nl.modules.common.exception.BizCoreException;
|
||||||
import org.nl.wms.pda_manage.pda.dto.MaterialDto;
|
import org.nl.wms.pda_manage.pda.service.dto.MaterialDto;
|
||||||
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
||||||
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -21,7 +21,6 @@ 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 javax.annotation.Resource;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.wms.pda_manage.pda.rest;
|
package org.nl.wms.pda_manage.pda.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
@@ -7,8 +7,6 @@ import io.swagger.annotations.Api;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.nl.common.domain.ConstantParam;
|
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package org.nl.wms.pda_manage.pda.controller;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2023/7/3 15:29
|
||||||
|
* 刻字相关临时方案
|
||||||
|
*/
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@Api(tags = "成品手持服务")
|
||||||
|
@RequestMapping("/api/pda")
|
||||||
|
@Slf4j
|
||||||
|
@SaIgnore
|
||||||
|
public class TmpKZController {
|
||||||
|
|
||||||
|
@RequestMapping("deviceinstorQty")
|
||||||
|
public ResponseEntity<Object> deviceinstorQty(@RequestBody JSONObject param){
|
||||||
|
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("callVechile")
|
||||||
|
public ResponseEntity<Object> callVechile(@RequestBody JSONObject param){
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@RequestMapping("kzunload")
|
||||||
|
public ResponseEntity<Object> kzunload(@RequestBody JSONObject param){
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@RequestMapping("kzresidue")
|
||||||
|
public ResponseEntity<Object> kzresidue(@RequestBody JSONObject param){
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@RequestMapping("tmpcallVechile")
|
||||||
|
public ResponseEntity<Object> tmpcallVechile(@RequestBody JSONObject param){
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@RequestMapping("tmpsendVechile")
|
||||||
|
public ResponseEntity<Object> tmpsendVechile(@RequestBody JSONObject param){
|
||||||
|
return new ResponseEntity<>( HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ package org.nl.wms.pda_manage.pda.service;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.nl.common.utils.api.CommonResult;
|
import org.nl.common.utils.api.CommonResult;
|
||||||
import org.nl.wms.pda_manage.pda.dto.MaterialDto;
|
import org.nl.wms.pda_manage.pda.service.dto.MaterialDto;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.wms.pda_manage.pda.dto;
|
package org.nl.wms.pda_manage.pda.service.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.wms.pda_manage.pda.dto;
|
package org.nl.wms.pda_manage.pda.service.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -8,7 +8,6 @@ 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.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.jsonwebtoken.lang.Assert;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
@@ -18,7 +17,6 @@ import org.nl.common.enums.StatusEnum;
|
|||||||
import org.nl.common.utils.*;
|
import org.nl.common.utils.*;
|
||||||
import org.nl.common.utils.api.CommonResult;
|
import org.nl.common.utils.api.CommonResult;
|
||||||
import org.nl.common.utils.api.RestBusinessTemplate;
|
import org.nl.common.utils.api.RestBusinessTemplate;
|
||||||
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.common.utils.RedisUtils;
|
import org.nl.modules.common.utils.RedisUtils;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
@@ -27,7 +25,7 @@ import org.nl.modules.wql.util.WqlUtil;
|
|||||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.pda_manage.pda.dto.MaterialDto;
|
import org.nl.wms.pda_manage.pda.service.dto.MaterialDto;
|
||||||
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
||||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||||
@@ -46,7 +44,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,200 @@
|
|||||||
|
package org.nl.wms.product_manage.sch.tasks.callEmpty;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清洗下料叫空框请求
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class WashCallEmptyTask extends AbstractAcsTask {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Autowired
|
||||||
|
private WmsToAcsService wms;
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateTaskStatus(JSONObject param, String status) {
|
||||||
|
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_RUNNING.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
|
// 完成
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public String createTask(JSONObject param) {
|
||||||
|
String end_point_code = param.getString("device_code");
|
||||||
|
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
|
.eq("workorder_code", param.getString("workorder_code"))
|
||||||
|
.eq("is_delete", false)
|
||||||
|
.lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode()));
|
||||||
|
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||||
|
//?刻字满料请求:可以存在多个任务?
|
||||||
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.and(wa->wa
|
||||||
|
.eq("point_code1", param.getString("device_code"))
|
||||||
|
.or()
|
||||||
|
.eq("point_code2", param.getString("device_code")))
|
||||||
|
);
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
||||||
|
}
|
||||||
|
// 查找任务状态
|
||||||
|
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
|
JSONObject task = new JSONObject();
|
||||||
|
task.put("task_id", taskdtl_id);
|
||||||
|
task.put("task_name", AcsTaskEnum.TASK_PLOTTER_EMPTY.getDesc());
|
||||||
|
task.put("task_type", AcsTaskEnum.TASK_PLOTTER_EMPTY.getCode());
|
||||||
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||||
|
task.put("material_id", order.getMaterial_id());
|
||||||
|
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||||
|
task.put("point_code2", end_point_code);
|
||||||
|
task.put("handle_class", this.getClass().getName());
|
||||||
|
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||||
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
|
task.put("create_id", currentUserId);
|
||||||
|
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||||
|
task.put("update_id", currentUserId);
|
||||||
|
task.put("update_name", SecurityUtils.getCurrentNickName());
|
||||||
|
task.put("create_time", DateUtil.now());
|
||||||
|
task.put("update_time", DateUtil.now());
|
||||||
|
task.put("priority", "1");
|
||||||
|
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||||
|
task.put("table_fk_id",order.getWorkorder_code());
|
||||||
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
|
taskService.save(schBaseTask);
|
||||||
|
// 找终点
|
||||||
|
try {
|
||||||
|
pointConfirm(task);
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
data.add(task);
|
||||||
|
// 下发
|
||||||
|
wms.issueTaskToAcs2(data);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("刻字请求异常,error:{}",ex);
|
||||||
|
schBaseTask.setRemark(ex.getMessage());
|
||||||
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
schBaseTask.setUpdate_name("acs");
|
||||||
|
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
taskService.save(schBaseTask);
|
||||||
|
}
|
||||||
|
return taskdtl_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_id) {
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 满料请求
|
||||||
|
* 从刻字机满料缓存区中获取空位放入就行
|
||||||
|
* @param taskObj: 任务对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject taskObj) {
|
||||||
|
// 去刻字缓存区寻找空框 TODO:空箱
|
||||||
|
List<Map<String, String>> points = pointService.queryVehicle(
|
||||||
|
MapOf.of("is_used", "1",
|
||||||
|
"lock_type", StatusEnum.LOCK_OFF.getCode(),
|
||||||
|
"region_code", "A1_KZHC",
|
||||||
|
"material_null", "material_null"));
|
||||||
|
if (ObjectUtil.isNotEmpty(points)) {
|
||||||
|
Map<String, String> map = points.get(0);
|
||||||
|
if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){
|
||||||
|
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||||
|
}
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_ON.getCode())
|
||||||
|
.eq("point_code",map.get("point_code")));
|
||||||
|
// 设置点位
|
||||||
|
taskObj.put("update_time", DateUtil.now());
|
||||||
|
taskObj.put("point_code1",map.get("point_code"));
|
||||||
|
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||||
|
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||||
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
taskService.updateById(schBaseTask);
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SchBaseTask> schedulerTask(List<SchBaseTask> tasks) {
|
||||||
|
ArrayList<SchBaseTask> Merge = new ArrayList<>();
|
||||||
|
if (!CollectionUtils.isEmpty(tasks)){
|
||||||
|
for (SchBaseTask task : tasks) {
|
||||||
|
task.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||||
|
Merge.add(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Merge;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,213 @@
|
|||||||
|
package org.nl.wms.product_manage.sch.tasks.sendMaterial;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
|
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||||
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ 清洗异常时去异常位
|
||||||
|
* @Date 2023/6/16 08:40
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class WashSendMaterialQZTask extends AbstractAcsTask {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DivRuleCpService divRuleCpService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtSectattrService sectattrService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Autowired
|
||||||
|
private WmsToAcsService wms;
|
||||||
|
@Override
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateTaskStatus(JSONObject param, String status) {
|
||||||
|
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status", StatusEnum.TASK_RUNNING.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time", DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
|
// 完成
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
|
// 完成
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public String createTask(JSONObject param) {
|
||||||
|
String start_point_code = param.getString("device_code");
|
||||||
|
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
|
.eq("workorder_code", param.getString("workorder_code"))
|
||||||
|
.eq("is_delete", false)
|
||||||
|
.lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode()));
|
||||||
|
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||||
|
//?刻字满料请求:可以存在多个任务?
|
||||||
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.and(wa->wa
|
||||||
|
.eq("point_code1", param.getString("device_code"))
|
||||||
|
.or()
|
||||||
|
.eq("point_code2", param.getString("device_code")))
|
||||||
|
);
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
||||||
|
}
|
||||||
|
// 查找任务状态
|
||||||
|
String taskdtl_id = IdUtil.getStringId();
|
||||||
|
JSONObject task = new JSONObject();
|
||||||
|
task.put("task_id", taskdtl_id);
|
||||||
|
task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL_ERROR.getDesc());
|
||||||
|
task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL_ERROR.getCode());
|
||||||
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||||
|
task.put("material_id", order.getMaterial_id());
|
||||||
|
task.put("material_qty", param.getString("weight"));
|
||||||
|
task.put("vehicle_code", param.getString("vehicle_code"));
|
||||||
|
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||||
|
task.put("point_code1", start_point_code);
|
||||||
|
task.put("handle_class", this.getClass().getName());
|
||||||
|
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||||
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
|
task.put("create_id", currentUserId);
|
||||||
|
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||||
|
task.put("create_time", DateUtil.now());
|
||||||
|
task.put("priority", "1");
|
||||||
|
task.put("finished_type", "1");
|
||||||
|
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||||
|
task.put("table_fk_id",order.getWorkorder_code());
|
||||||
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
|
taskService.save(schBaseTask);
|
||||||
|
// 找终点
|
||||||
|
try {
|
||||||
|
pointConfirm(task);
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
data.add(task);
|
||||||
|
// 下发
|
||||||
|
wms.issueTaskToAcs2(data);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
// 未找到
|
||||||
|
log.error("刻字满料请求异常,error:{}",ex);
|
||||||
|
schBaseTask.setRemark(ex.getMessage());
|
||||||
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
schBaseTask.setUpdate_name("acs");
|
||||||
|
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
taskService.save(schBaseTask);
|
||||||
|
}
|
||||||
|
return taskdtl_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_id) {
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.set("update_name","acs")
|
||||||
|
.set("update_time",DateUtil.now()).eq("task_id",task_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 满料请求
|
||||||
|
* 从刻字机满料缓存区中获取空位放入就行
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED)
|
||||||
|
public void pointConfirm(JSONObject task) {
|
||||||
|
// 去刻字缓存区寻找空位
|
||||||
|
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>().isNull("vehicle_code")
|
||||||
|
.eq("is_used", "1")
|
||||||
|
.eq("region_code","A1_BCP_YC")//半成品
|
||||||
|
.eq("lock_type", StatusEnum.LOCK_OFF.getCode()));
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(list)) {
|
||||||
|
// 找到位置
|
||||||
|
// 点位上锁
|
||||||
|
SchBasePoint point = list.get(0);
|
||||||
|
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||||
|
pointService.updateById(point);
|
||||||
|
// 设置点位
|
||||||
|
task.put("update_time", DateUtil.now());
|
||||||
|
task.put("point_code2",point.getPoint_code());
|
||||||
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
|
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||||
|
schBaseTask.setTask_type(AcsTaskEnum.TASK_WASH_FULL_QZ.getCode());
|
||||||
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
taskService.updateById(schBaseTask);
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("异常位没有可用货位.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SchBaseTask> schedulerTask(List<SchBaseTask> tasks) {
|
||||||
|
ArrayList<SchBaseTask> Merge = new ArrayList<>();
|
||||||
|
if (!CollectionUtils.isEmpty(tasks)){
|
||||||
|
for (SchBaseTask task : tasks) {
|
||||||
|
task.setTask_group_id(IdUtil.getStringId());
|
||||||
|
Merge.add(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Merge;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,10 +8,12 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.enums.WorkerOrderEnum;
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
@@ -31,6 +33,7 @@ import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
|||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.TransactionDefinition;
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
@@ -45,11 +48,14 @@ import java.util.stream.Collectors;
|
|||||||
/*
|
/*
|
||||||
* @author ZZQ
|
* @author ZZQ
|
||||||
* @Date 2023/6/16 08:40
|
* @Date 2023/6/16 08:40
|
||||||
|
* 清洗机下料满料请求
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WashSendMaterialTask extends AbstractAcsTask {
|
public class WashSendMaterialTask extends AbstractAcsTask {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IStIvtStructattrService structattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private DivRuleCpService divRuleCpService;
|
private DivRuleCpService divRuleCpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -61,6 +67,8 @@ public class WashSendMaterialTask extends AbstractAcsTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private WashSendMaterialQZTask sendMaterialQZTask;
|
||||||
|
@Autowired
|
||||||
private WmsToAcsService wms;
|
private WmsToAcsService wms;
|
||||||
@Override
|
@Override
|
||||||
|
|
||||||
@@ -98,63 +106,69 @@ public class WashSendMaterialTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String createTask(JSONObject param) {
|
public String createTask(JSONObject param) {
|
||||||
String start_point_code = param.getString("device_code");
|
if (StringUtils.isEmpty(param.getString("weight"))||StringUtils.isEmpty(param.getString("vehicle_code"))){
|
||||||
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
return sendMaterialQZTask.createTask(param);
|
||||||
.eq("workorder_code", param.getString("workorder_code"))
|
}else {
|
||||||
.eq("is_delete", false)
|
String start_point_code = param.getString("device_code");
|
||||||
.lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode()));
|
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
.eq("workorder_code", param.getString("workorder_code"))
|
||||||
//?刻字满料请求:可以存在多个任务?
|
.eq("is_delete", false)
|
||||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
.lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode()));
|
||||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||||
.and(wa->wa
|
//?刻字满料请求:可以存在多个任务?
|
||||||
.eq("point_code1", param.getString("device_code"))
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
.or()
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
.eq("point_code2", param.getString("device_code")))
|
.and(wa->wa
|
||||||
);
|
.eq("point_code1", param.getString("device_code"))
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
.or()
|
||||||
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
.eq("point_code2", param.getString("device_code")))
|
||||||
}
|
);
|
||||||
// 查找任务状态
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
String taskdtl_id = IdUtil.getStringId();
|
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
||||||
JSONObject task = new JSONObject();
|
}
|
||||||
task.put("task_id", taskdtl_id);
|
// 查找任务状态
|
||||||
task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc());
|
String taskdtl_id = IdUtil.getStringId();
|
||||||
task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.getCode());
|
JSONObject task = new JSONObject();
|
||||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
task.put("task_id", taskdtl_id);
|
||||||
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc());
|
||||||
task.put("material_id", order.getMaterial_id());
|
task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.getCode());
|
||||||
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
task.put("point_code1", start_point_code);
|
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||||
task.put("handle_class", this.getClass().getName());
|
task.put("material_id", order.getMaterial_id());
|
||||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
task.put("material_qty", param.getString("weight"));
|
||||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
task.put("vehicle_code", param.getString("vehicle_code"));
|
||||||
task.put("create_id", currentUserId);
|
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
task.put("point_code1", start_point_code);
|
||||||
task.put("create_time", DateUtil.now());
|
task.put("handle_class", this.getClass().getName());
|
||||||
task.put("priority", "1");
|
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||||
task.put("finished_type", "1");
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
task.put("create_id", currentUserId);
|
||||||
task.put("table_fk_id",order.getWorkorder_code());
|
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
task.put("create_time", DateUtil.now());
|
||||||
taskService.save(schBaseTask);
|
task.put("priority", "1");
|
||||||
// 找终点
|
task.put("finished_type", "1");
|
||||||
try {
|
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||||
pointConfirm(task);
|
task.put("table_fk_id",order.getWorkorder_code());
|
||||||
JSONArray data = new JSONArray();
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
data.add(task);
|
|
||||||
// 下发
|
|
||||||
wms.issueTaskToAcs2(data);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
// 未找到
|
|
||||||
log.error("刻字满料请求异常,error:{}",ex);
|
|
||||||
schBaseTask.setRemark(ex.getMessage());
|
|
||||||
schBaseTask.setUpdate_time(new Date());
|
|
||||||
schBaseTask.setUpdate_name("acs");
|
|
||||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
|
||||||
taskService.save(schBaseTask);
|
taskService.save(schBaseTask);
|
||||||
|
// 找终点
|
||||||
|
try {
|
||||||
|
pointConfirm(task);
|
||||||
|
JSONArray data = new JSONArray();
|
||||||
|
data.add(task);
|
||||||
|
// 下发
|
||||||
|
wms.issueTaskToAcs2(data);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
// 未找到
|
||||||
|
log.error("刻字满料请求异常,error:{}",ex);
|
||||||
|
schBaseTask.setRemark(ex.getMessage());
|
||||||
|
schBaseTask.setUpdate_time(new Date());
|
||||||
|
schBaseTask.setUpdate_name("acs");
|
||||||
|
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
taskService.save(schBaseTask);
|
||||||
|
}
|
||||||
|
return taskdtl_id;
|
||||||
}
|
}
|
||||||
return taskdtl_id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -167,33 +181,31 @@ public class WashSendMaterialTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 满料请求
|
* 满料请求
|
||||||
* 从刻字机满料缓存区中获取空位放入就行
|
* 清洗机入半成品库
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED)
|
|
||||||
public void pointConfirm(JSONObject task) {
|
public void pointConfirm(JSONObject task) {
|
||||||
// 去刻字缓存区寻找空位
|
RedissonUtils.lock(()->{
|
||||||
//分配货位。下发任务,更新主单据状态。更新明细任务
|
// 去刻字缓存区寻找空位
|
||||||
StIvtSectattr sect = sectattrService.getOne(new QueryWrapper<StIvtSectattr>().eq("sect_name", "半成品库区"));
|
//分配货位。下发任务,更新主单据状态。更新明细任务
|
||||||
JSONObject jo = new JSONObject();
|
StIvtSectattr sect = sectattrService.getOne(new QueryWrapper<StIvtSectattr>().eq("sect_name", "半成品库区"));
|
||||||
jo.put("sect_id", sect.getSect_id());
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("stor_id", sect.getStor_id());
|
jo.put("sect_id", sect.getSect_id());
|
||||||
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
jo.put("stor_id", sect.getStor_id());
|
||||||
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
||||||
//少出入库记录
|
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
||||||
if (ObjectUtil.isEmpty(stIvtStructattr)) {
|
//少出入库记录
|
||||||
throw new BadRequestException("无可分配货位");
|
if (ObjectUtil.isEmpty(stIvtStructattr)) {
|
||||||
}
|
throw new BadRequestException("无可分配货位");
|
||||||
stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁"));
|
}
|
||||||
stIvtStructattr.setInv_code(task.getString("task_code"));
|
// 设置点位
|
||||||
// 设置点位
|
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||||
task.put("update_time", DateUtil.now());
|
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||||
task.put("point_code2",stIvtStructattr.getStruct_code());
|
schBaseTask.setUpdate_time(new Date());
|
||||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode());
|
||||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
taskService.updateById(schBaseTask);
|
||||||
schBaseTask.setUpdate_time(new Date());
|
structattrService.lockStruct(stIvtStructattr.getStruct_code(), "入库锁",schBaseTask.getTask_id());
|
||||||
schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode());
|
},"banchengpin_ruku",1);
|
||||||
taskService.updateById(schBaseTask);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -56,4 +56,10 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
Map getWorkprodureByCode(String id);
|
Map getWorkprodureByCode(String id);
|
||||||
|
|
||||||
List<Map<String,String>> getAllPointRegin(String points);
|
List<Map<String,String>> getAllPointRegin(String points);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务回调
|
||||||
|
* @param jo
|
||||||
|
*/
|
||||||
|
void taskOperate(JSONObject jo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
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.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
@@ -14,16 +15,25 @@ import io.jsonwebtoken.lang.Assert;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||||
import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper;
|
import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper;
|
||||||
import org.nl.wms.scheduler_manage.service.region.ISchBaseRegionService;
|
import org.nl.wms.scheduler_manage.service.region.ISchBaseRegionService;
|
||||||
import org.nl.wms.scheduler_manage.service.region.dao.SchBaseRegion;
|
import org.nl.wms.scheduler_manage.service.region.dao.SchBaseRegion;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.storage_manage.CHECKEnum;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -47,6 +57,9 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseRegionService schBaseRegionService;
|
private ISchBaseRegionService schBaseRegionService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object queryAll(Map whereJson, PageQuery pageQuery) {
|
public Object queryAll(Map whereJson, PageQuery pageQuery) {
|
||||||
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
|
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
|
||||||
@@ -193,4 +206,21 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
public List<Map<String,String>> getAllPointRegin(String points) {
|
public List<Map<String,String>> getAllPointRegin(String points) {
|
||||||
return this.baseMapper.getRegionCollent(points);
|
return this.baseMapper.getRegionCollent(points);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void taskOperate(JSONObject form) {
|
||||||
|
String status = form.getString("status");
|
||||||
|
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
|
//释放目标点位
|
||||||
|
// 更新任务为完成
|
||||||
|
SchBaseTask one = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("task_id", form.getString("task_id")));
|
||||||
|
this.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("vehicle_code",StringUtils.isEmpty(one.getVehicle_code())?UUID.randomUUID().toString():one.getVehicle_code())
|
||||||
|
.set("vehicle_qty",one.getMaterial_qty())
|
||||||
|
.set("material_id",one.getMaterial_id())
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode()).set("point_code",one.getPoint_code2()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.common.enums.WorkerOrderEnum;
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
import org.nl.common.utils.BaseCode;
|
import org.nl.common.utils.BaseCode;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
||||||
@@ -15,6 +16,7 @@ import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
|||||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -77,51 +79,54 @@ public class EngraveScheduleService {
|
|||||||
Map<String, List<PdmProduceWorkorder>> collect = list.stream().collect(Collectors.groupingBy(PdmProduceWorkorder::getMaterial_id));
|
Map<String, List<PdmProduceWorkorder>> collect = list.stream().collect(Collectors.groupingBy(PdmProduceWorkorder::getMaterial_id));
|
||||||
//工单开工规则
|
//工单开工规则
|
||||||
for (Map.Entry<String, List<PdmProduceWorkorder>> entry : collect.entrySet()) {
|
for (Map.Entry<String, List<PdmProduceWorkorder>> entry : collect.entrySet()) {
|
||||||
JSONObject form = new JSONObject();
|
|
||||||
form.put("stor_id","528627995269533696");//st_ivt_sectattr紫铜车间-半成品库区
|
|
||||||
form.put("sect_id","1528631044482404352");
|
|
||||||
form.put("material_id",entry.getKey());
|
|
||||||
form.put("product_code","A1");//车间
|
|
||||||
form.put("point_code","A1_KZPP_D");
|
|
||||||
StIvtStructivtCp structivtCp = stIvtIostorinvBcpOutService.autoConfirm(form);
|
|
||||||
if (structivtCp == null){ continue; }
|
|
||||||
//生成输送线到刻字机任务
|
|
||||||
//工单物料分配规则
|
|
||||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", entry.getKey()).eq("is_delete", false));
|
|
||||||
List<PdmProduceWorkorder> current_workorders = entry.getValue();
|
|
||||||
BigDecimal canuse_qty = structivtCp.getCanuse_qty();
|
|
||||||
String grop_id = IdUtil.getStringId();
|
|
||||||
|
|
||||||
for (PdmProduceWorkorder current_workorder : current_workorders) {
|
JSONObject form = new JSONObject();
|
||||||
BigDecimal need = current_workorder.getPlan_qty().subtract(current_workorder.getDq_real_qty());
|
form.put("stor_id","528627995269533696");//st_ivt_sectattr紫铜车间-半成品库区
|
||||||
if (need.intValue() <= 0){ continue; }
|
form.put("sect_id","1528631044482404352");
|
||||||
int min = Math.min(canuse_qty.intValue(), need.intValue());
|
form.put("material_id",entry.getKey());
|
||||||
|
form.put("product_code","A1");//车间
|
||||||
|
form.put("point_code","A1_KZPP_D");//刻字爬坡倒料点
|
||||||
|
StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form);
|
||||||
|
if (stIvtStructivtBcp != null){
|
||||||
|
//生成输送线到刻字机任务
|
||||||
|
//工单物料分配规则
|
||||||
|
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", entry.getKey()).eq("is_delete", false));
|
||||||
|
List<PdmProduceWorkorder> current_workorders = entry.getValue();
|
||||||
|
BigDecimal canuse_qty = stIvtStructivtBcp.getCanuse_qty();
|
||||||
|
String grop_id = IdUtil.getStringId();
|
||||||
|
|
||||||
JSONObject taskForm = new JSONObject();
|
for (PdmProduceWorkorder current_workorder : current_workorders) {
|
||||||
taskForm.put("workorder_code",current_workorder.getWorkorder_code());
|
BigDecimal need = current_workorder.getPlan_qty().subtract(current_workorder.getDq_real_qty());
|
||||||
taskForm.put("device_code",current_workorder.getDevice_code());
|
if (need.intValue() <= 0){ continue; }
|
||||||
taskForm.put("qty",min);
|
int min = Math.min(canuse_qty.intValue(), need.intValue());
|
||||||
taskForm.put("weight",material.getNet_weight().doubleValue()*min);
|
|
||||||
taskForm.put("material_id",material.getMaterial_id());
|
JSONObject taskForm = new JSONObject();
|
||||||
taskForm.put("material_code",material.getMaterial_code());
|
taskForm.put("workorder_code",current_workorder.getWorkorder_code());
|
||||||
taskForm.put("material_spec",material.getMaterial_spec());
|
taskForm.put("device_code",current_workorder.getDevice_code());
|
||||||
taskForm.put("task_grop_id", grop_id);
|
taskForm.put("qty",min);
|
||||||
engraveCallMaterialTask.createTask(taskForm);
|
taskForm.put("weight",material.getNet_weight().doubleValue()*min);
|
||||||
canuse_qty = canuse_qty.subtract(need);
|
taskForm.put("material_id",material.getMaterial_id());
|
||||||
if (canuse_qty.intValue()<=0){return;}
|
taskForm.put("material_code",material.getMaterial_code());
|
||||||
}
|
taskForm.put("material_spec",material.getMaterial_spec());
|
||||||
if (canuse_qty.intValue() > 0){
|
taskForm.put("task_grop_id", grop_id);
|
||||||
JSONObject taskForm = new JSONObject();
|
engraveCallMaterialTask.createTask(taskForm);
|
||||||
taskForm.put("workorder_code"," ");
|
canuse_qty = canuse_qty.subtract(need);
|
||||||
taskForm.put("device_code","");
|
if (canuse_qty.intValue()<=0){return;}
|
||||||
taskForm.put("qty",canuse_qty);
|
}
|
||||||
taskForm.put("weight",material.getNet_weight().multiply(canuse_qty));
|
if (canuse_qty.intValue() > 0){
|
||||||
taskForm.put("material_id",material.getMaterial_id());
|
JSONObject taskForm = new JSONObject();
|
||||||
taskForm.put("material_code",material.getMaterial_code());
|
taskForm.put("workorder_code"," ");
|
||||||
taskForm.put("material_spec",material.getMaterial_spec());
|
taskForm.put("device_code","");
|
||||||
taskForm.put("task_grop_id", grop_id);
|
taskForm.put("qty",canuse_qty);
|
||||||
engraveCallMaterialTask.createTask(taskForm);
|
taskForm.put("weight",material.getNet_weight().multiply(canuse_qty));
|
||||||
}
|
taskForm.put("material_id",material.getMaterial_id());
|
||||||
|
taskForm.put("material_code",material.getMaterial_code());
|
||||||
|
taskForm.put("material_spec",material.getMaterial_spec());
|
||||||
|
taskForm.put("task_grop_id", grop_id);
|
||||||
|
engraveCallMaterialTask.createTask(taskForm);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.productmanage.util;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -39,5 +40,8 @@ public interface DivRuleCpService {
|
|||||||
* @return StIvtStructattr /
|
* @return StIvtStructattr /
|
||||||
*/
|
*/
|
||||||
StIvtStructivtCp divRuleOut(JSONObject whereJson);
|
StIvtStructivtCp divRuleOut(JSONObject whereJson);
|
||||||
StIvtStructivtCp divRuleOutAndLock(JSONObject whereJson);
|
|
||||||
|
StIvtStructivtBcp divRuleOutBcp(JSONObject whereJson);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,13 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivt
|
|||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.TransactionDefinition;
|
||||||
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -34,13 +39,13 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtStructivtCpService iStIvtStructivtCpService; // 仓位库存服务
|
protected IStIvtStructivtCpService iStIvtStructivtCpService; // 仓位库存服务
|
||||||
|
|
||||||
private StIvtStructattr attrDao;
|
@Autowired
|
||||||
|
private IStIvtStructivtBcpService bcpService;
|
||||||
|
|
||||||
private StIvtStructivtCp ivtDao;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StIvtStructattr divRuleIn(JSONObject whereJson) {
|
public StIvtStructattr divRuleIn(JSONObject whereJson) {
|
||||||
|
StIvtStructattr attrDao;
|
||||||
String stor_id = whereJson.getString("stor_id");
|
String stor_id = whereJson.getString("stor_id");
|
||||||
String sect_id = whereJson.getString("sect_id");
|
String sect_id = whereJson.getString("sect_id");
|
||||||
|
|
||||||
@@ -49,15 +54,15 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
|
|||||||
|
|
||||||
switch (whereJson.getString("rule_type")) {
|
switch (whereJson.getString("rule_type")) {
|
||||||
case RuleUtil.PRODUCTION_IN_1 :
|
case RuleUtil.PRODUCTION_IN_1 :
|
||||||
attrDao = iStIvtStructattrService.getOne(
|
attrDao = iStIvtStructattrService.getOne(
|
||||||
new QueryWrapper<StIvtStructattr>().lambda()
|
new QueryWrapper<StIvtStructattr>().lambda()
|
||||||
.eq(StIvtStructattr::getStor_id, stor_id)
|
.eq(StIvtStructattr::getStor_id, stor_id)
|
||||||
.eq(StIvtStructattr::getSect_id, sect_id)
|
.eq(StIvtStructattr::getSect_id, sect_id)
|
||||||
.eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是"))
|
.eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是"))
|
||||||
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
.eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq(StIvtStructattr::getStoragevehicle_code,"")
|
.eq(StIvtStructattr::getStoragevehicle_code, "")
|
||||||
.orderByAsc(StIvtStructattr::getStruct_code)
|
.orderByAsc(StIvtStructattr::getStruct_code)
|
||||||
,false);
|
, false);
|
||||||
break;
|
break;
|
||||||
case RuleUtil.PRODUCTION_IN_2 :
|
case RuleUtil.PRODUCTION_IN_2 :
|
||||||
attrDao = iStIvtStructattrService.getExceedAttr(whereJson);
|
attrDao = iStIvtStructattrService.getExceedAttr(whereJson);
|
||||||
@@ -70,13 +75,15 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
|
|||||||
.eq(StIvtStructattr::getStruct_id, attrDao.getControl_code())
|
.eq(StIvtStructattr::getStruct_id, attrDao.getControl_code())
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return attrDao;
|
return attrDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StIvtStructivtCp divRuleOut(JSONObject whereJson) {
|
public StIvtStructivtCp divRuleOut(JSONObject whereJson) {
|
||||||
|
StIvtStructivtCp ivtDao;
|
||||||
|
|
||||||
String stor_id = whereJson.getString("stor_id");
|
String stor_id = whereJson.getString("stor_id");
|
||||||
String sect_id = whereJson.getString("sect_id");
|
String sect_id = whereJson.getString("sect_id");
|
||||||
@@ -97,30 +104,14 @@ public class DivRuleCpServiceImpl implements DivRuleCpService {
|
|||||||
throw new BadRequestException("物料不能为空");
|
throw new BadRequestException("物料不能为空");
|
||||||
ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson);
|
ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ivtDao;
|
return ivtDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StIvtStructivtCp divRuleOutAndLock(JSONObject whereJson) {
|
public StIvtStructivtBcp divRuleOutBcp(JSONObject whereJson) {
|
||||||
RedissonUtils.lock(()->{
|
return bcpService.queryIvtOutOne(whereJson);
|
||||||
switch (whereJson.getString("rule_type")) {
|
|
||||||
case RuleUtil.PRODUCTION_OUT_1 :
|
|
||||||
if (ObjectUtil.isEmpty(whereJson.getString("sale_id"))) throw new BadRequestException("销售单不能为空");
|
|
||||||
ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson);
|
|
||||||
break;
|
|
||||||
case RuleUtil.PRODUCTION_OUT_2 :
|
|
||||||
ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//锁定
|
|
||||||
iStIvtStructattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
|
|
||||||
.eq(StIvtStructattr::getStruct_code, ivtDao.getStruct_code())
|
|
||||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))
|
|
||||||
.set(StIvtStructattr::getInv_code,""));
|
|
||||||
},whereJson.getString("material_id"),1);
|
|
||||||
return ivtDao;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
import org.nl.wms.storage_manage.pda.service.PdaStBcpInService;
|
import org.nl.wms.storage_manage.pda.service.PdaStBcpInService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService;
|
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
||||||
@@ -57,6 +58,10 @@ public enum TASKEnum implements FunctionStrategy<String, JSONObject> {
|
|||||||
IStIvtCheckmstCpService bean = SpringContextHolder.getBean(IStIvtCheckmstCpService.class);
|
IStIvtCheckmstCpService bean = SpringContextHolder.getBean(IStIvtCheckmstCpService.class);
|
||||||
bean.taskOperate(form);
|
bean.taskOperate(form);
|
||||||
}),
|
}),
|
||||||
|
POINT_FINISH_TASK(type -> AcsTaskEnum.TASK_WASH_FULL_QZ.getCode().equals(type), form -> {
|
||||||
|
ISchBasePointService bean = SpringContextHolder.getBean(ISchBasePointService.class);
|
||||||
|
bean.taskOperate(form);
|
||||||
|
}),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -53,7 +55,11 @@ public interface IStIvtIostorinvBcpOutService extends IService<StIvtIostorinvBcp
|
|||||||
* param.put("material_id", form.getString("material_id"));
|
* param.put("material_id", form.getString("material_id"));
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
StIvtStructivtCp autoConfirm(JSONObject param);
|
StIvtStructivtBcp autoConfirmout(JSONObject param);
|
||||||
|
|
||||||
|
StIvtStructattr autoConfirmin(JSONObject param);
|
||||||
|
|
||||||
|
void lockStruct(String struct,String type,String inv_code);
|
||||||
/**
|
/**
|
||||||
* 下发单据
|
* 下发单据
|
||||||
* @param form
|
* @param form
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.nl.common.enums.AcsTaskEnum;
|
|||||||
import org.nl.common.publish.BussEventMulticaster;
|
import org.nl.common.publish.BussEventMulticaster;
|
||||||
import org.nl.common.publish.event.PointEvent;
|
import org.nl.common.publish.event.PointEvent;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
@@ -38,10 +39,8 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
|||||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
|
||||||
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
|
import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||||
@@ -53,6 +52,7 @@ import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcp
|
|||||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
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 java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -76,8 +76,6 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtStructivtBcpService structivtBcpService;
|
private IStIvtStructivtBcpService structivtBcpService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtStructivtflowService structivtflowService;
|
|
||||||
@Autowired
|
|
||||||
private IStIvtStructattrService structattrService;
|
private IStIvtStructattrService structattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private DivRuleCpService divRuleCpService;
|
private DivRuleCpService divRuleCpService;
|
||||||
@@ -244,69 +242,148 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
public StIvtStructivtBcp autoConfirmout(JSONObject form) {
|
||||||
public StIvtStructivtCp autoConfirm(JSONObject form) {
|
final StIvtStructivtBcp[] structivtBcp = new StIvtStructivtBcp[1];
|
||||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", form.getString("material_id")));
|
RedissonUtils.lock(()->{
|
||||||
JSONObject param = new JSONObject();
|
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", form.getString("material_id")));
|
||||||
param.put("stor_id", form.getString("stor_id"));
|
JSONObject param = new JSONObject();
|
||||||
param.put("sect_id", form.getString("sect_id"));
|
param.put("stor_id", form.getString("stor_id"));
|
||||||
param.put("material_id", form.getString("material_id"));
|
param.put("sect_id", form.getString("sect_id"));
|
||||||
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
param.put("material_id", form.getString("material_id"));
|
||||||
// 2.锁定仓位
|
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
||||||
StIvtStructivtCp structivtBcp = divRuleCpService.divRuleOutAndLock(param);
|
// 2.锁定仓位
|
||||||
if (structivtBcp == null){
|
structivtBcp[0] = divRuleCpService.divRuleOutBcp(param);
|
||||||
return null;
|
if (structivtBcp[0] != null){
|
||||||
}
|
StIvtIostorinvBcp mst = new StIvtIostorinvBcp();
|
||||||
StIvtIostorinvBcp mst = new StIvtIostorinvBcp();
|
mst.setIostorinv_id(IdUtil.getStringId());
|
||||||
mst.setIostorinv_id(IdUtil.getStringId());
|
mst.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||||
mst.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
mst.setBiz_date(form.getString("biz_date"));
|
||||||
mst.setBiz_date(form.getString("biz_date"));
|
mst.setBill_type(form.getString("bill_type"));
|
||||||
mst.setBill_type(form.getString("bill_type"));
|
mst.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
||||||
mst.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
mst.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
mst.setRemark(form.getString("remark"));
|
||||||
mst.setRemark(form.getString("remark"));
|
mst.setWorkshop_id(form.getString("product_code"));
|
||||||
mst.setWorkshop_id(form.getString("product_code"));
|
mst.setPoint_code(form.getString("point_code"));
|
||||||
mst.setPoint_code(form.getString("point_code"));
|
mst.setMaterial_id(material.getMaterial_id());
|
||||||
mst.setMaterial_id(material.getMaterial_id());
|
mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today());
|
||||||
mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today());
|
mst.setPlan_qty(structivtBcp[0].getCanuse_qty());
|
||||||
mst.setPlan_qty(structivtBcp.getCanuse_qty());
|
mst.setQuality_scode(structivtBcp[0].getQuality_scode());
|
||||||
mst.setQuality_scode(structivtBcp.getQuality_scode());
|
mst.setQty_unit_id(structivtBcp[0].getQty_unit_id());
|
||||||
mst.setQty_unit_id(structivtBcp.getQty_unit_id());
|
mst.setBase_bill_code("");
|
||||||
mst.setBase_bill_code("");
|
mst.setQty_unit_name(" ");
|
||||||
mst.setQty_unit_name(" ");
|
mst.setUnit_weight(material.getNet_weight());
|
||||||
mst.setUnit_weight(material.getNet_weight());
|
mst.setStoragevehicle_code(" ");
|
||||||
mst.setStoragevehicle_code(" ");
|
mst.setStoragevehicle_id(" ");
|
||||||
mst.setStoragevehicle_id(" ");
|
仓库数据:
|
||||||
仓库数据:
|
{
|
||||||
{
|
StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper<StIvtBsrealstorattr>().eq("stor_id", form.getString("stor_id")));
|
||||||
StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper<StIvtBsrealstorattr>().eq("stor_id", form.getString("stor_id")));
|
mst.setStor_id(stor.getStor_id());
|
||||||
mst.setStor_id(stor.getStor_id());
|
mst.setStor_code(stor.getStor_code());
|
||||||
mst.setStor_code(stor.getStor_code());
|
mst.setStor_name(stor.getStor_name());
|
||||||
mst.setStor_name(stor.getStor_name());
|
StIvtSectattr sect = sectattrService.getById(form.getString("sect_id"));
|
||||||
StIvtSectattr sect = sectattrService.getById(form.getString("sect_id"));
|
mst.setSect_code(sect.getSect_code());
|
||||||
mst.setSect_code(sect.getSect_code());
|
mst.setSect_id(sect.getSect_id());
|
||||||
mst.setSect_id(sect.getSect_id());
|
mst.setSect_name(sect.getSect_name());
|
||||||
mst.setSect_name(sect.getSect_name());
|
mst.setStruct_id(structivtBcp[0].getStruct_id());
|
||||||
mst.setStruct_id(structivtBcp.getStruct_id());
|
mst.setStruct_code(structivtBcp[0].getStruct_code());
|
||||||
mst.setStruct_code(structivtBcp.getStruct_code());
|
mst.setStruct_name(structivtBcp[0].getStruct_name());
|
||||||
mst.setStruct_name(structivtBcp.getStruct_name());
|
}
|
||||||
}
|
mst.setCreate_id("1");
|
||||||
mst.setCreate_id("1");
|
mst.setCreate_name("acs");
|
||||||
mst.setCreate_name("acs");
|
mst.setCreate_time(DateUtil.now());
|
||||||
mst.setCreate_time(DateUtil.now());
|
PointEvent event = PointEvent.builder()
|
||||||
PointEvent event = PointEvent.builder()
|
.type(AcsTaskEnum.TASK_STRUCT_OUT.getCode())
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_OUT.getCode())
|
.point_code1(mst.getPoint_code())
|
||||||
.point_code1(mst.getPoint_code())
|
.point_code2(structivtBcp[0].getStruct_code())
|
||||||
.point_code2(structivtBcp.getStruct_code())
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
.product_area(mst.getWorkshop_id())
|
||||||
.product_area(mst.getWorkshop_id())
|
.callback((Consumer<String>) mst::setTask_id)
|
||||||
.callback((Consumer<String>) mst::setTask_id)
|
.build();
|
||||||
.build();
|
BussEventMulticaster.Publish(event);
|
||||||
BussEventMulticaster.Publish(event);
|
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||||
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
this.save(mst);
|
||||||
this.save(mst);
|
this.lockStruct(structivtBcp[0].getStruct_code(), "出库锁",mst.getTask_id());
|
||||||
return structivtBcp;
|
}
|
||||||
|
},form.getString("material_id"),1);
|
||||||
|
return structivtBcp[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StIvtStructattr autoConfirmin(JSONObject form) {
|
||||||
|
final StIvtStructattr[] structattr = new StIvtStructattr[1];
|
||||||
|
RedissonUtils.lock(()->{
|
||||||
|
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", form.getString("material_id")));
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("stor_id", form.getString("stor_id"));
|
||||||
|
param.put("sect_id", form.getString("sect_id"));
|
||||||
|
param.put("material_id", form.getString("material_id"));
|
||||||
|
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
||||||
|
// 2.锁定仓位
|
||||||
|
structattr[0] = divRuleCpService.divRuleIn(param);
|
||||||
|
if (structattr[0] != null){
|
||||||
|
StIvtIostorinvBcp mst = new StIvtIostorinvBcp();
|
||||||
|
mst.setIostorinv_id(IdUtil.getStringId());
|
||||||
|
mst.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||||
|
mst.setBiz_date(form.getString("biz_date"));
|
||||||
|
mst.setBill_type(form.getString("bill_type"));
|
||||||
|
mst.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
||||||
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
|
mst.setRemark(form.getString("remark"));
|
||||||
|
mst.setWorkshop_id(form.getString("product_code"));
|
||||||
|
mst.setPoint_code(form.getString("point_code"));
|
||||||
|
mst.setMaterial_id(material.getMaterial_id());
|
||||||
|
mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today());
|
||||||
|
// mst.setPlan_qty(structattr.getCanuse_qty());
|
||||||
|
// mst.setQuality_scode(structattr.getQuality_scode());
|
||||||
|
// mst.setQty_unit_id(structattr.getQty_unit_id());
|
||||||
|
mst.setBase_bill_code("");
|
||||||
|
mst.setQty_unit_name(" ");
|
||||||
|
mst.setUnit_weight(material.getNet_weight());
|
||||||
|
mst.setStoragevehicle_code(" ");
|
||||||
|
mst.setStoragevehicle_id(" ");
|
||||||
|
仓库数据:
|
||||||
|
{
|
||||||
|
StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper<StIvtBsrealstorattr>().eq("stor_id", form.getString("stor_id")));
|
||||||
|
mst.setStor_id(stor.getStor_id());
|
||||||
|
mst.setStor_code(stor.getStor_code());
|
||||||
|
mst.setStor_name(stor.getStor_name());
|
||||||
|
StIvtSectattr sect = sectattrService.getById(form.getString("sect_id"));
|
||||||
|
mst.setSect_code(sect.getSect_code());
|
||||||
|
mst.setSect_id(sect.getSect_id());
|
||||||
|
mst.setSect_name(sect.getSect_name());
|
||||||
|
mst.setStruct_id(structattr[0].getStruct_id());
|
||||||
|
mst.setStruct_code(structattr[0].getStruct_code());
|
||||||
|
mst.setStruct_name(structattr[0].getStruct_name());
|
||||||
|
}
|
||||||
|
mst.setCreate_id("1");
|
||||||
|
mst.setCreate_name("acs");
|
||||||
|
mst.setCreate_time(DateUtil.now());
|
||||||
|
PointEvent event = PointEvent.builder()
|
||||||
|
.type(AcsTaskEnum.TASK_STRUCT_OUT.getCode())
|
||||||
|
.point_code1(mst.getPoint_code())
|
||||||
|
.point_code2(structattr[0].getStruct_code())
|
||||||
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
|
.product_area(mst.getWorkshop_id())
|
||||||
|
.callback((Consumer<String>) mst::setTask_id)
|
||||||
|
.build();
|
||||||
|
BussEventMulticaster.Publish(event);
|
||||||
|
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||||
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
|
this.save(mst);
|
||||||
|
this.lockStruct(structattr[0].getStruct_code(), "出库锁",mst.getTask_id());
|
||||||
|
}
|
||||||
|
} ,"banchengpin_ruku",2);
|
||||||
|
return structattr[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
|
public void lockStruct(String struct, String type, String inv_code) {
|
||||||
|
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
|
.eq(StIvtStructattr::getStruct_code, struct)
|
||||||
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code(type))
|
||||||
|
.set(StIvtStructattr::getInv_code,inv_code));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.nl.common.publish.BussEventMulticaster;
|
|||||||
import org.nl.common.publish.event.PointEvent;
|
import org.nl.common.publish.event.PointEvent;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
@@ -259,58 +260,55 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String confirmTask(JSONObject form) {
|
public String confirmTask(JSONObject form) {
|
||||||
Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空");
|
RedissonUtils.lock(()->{
|
||||||
StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id"));
|
Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空");
|
||||||
checkParam(mst);
|
StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id"));
|
||||||
//分配货位。下发任务,更新主单据状态。更新明细任务
|
checkParam(mst);
|
||||||
StIvtSectattr sect = sectattrService.getOne(new QueryWrapper<StIvtSectattr>().eq("sect_name", "半成品库区"));
|
//分配货位。下发任务,更新主单据状态。更新明细任务
|
||||||
JSONObject jo = new JSONObject();
|
StIvtSectattr sect = sectattrService.getOne(new QueryWrapper<StIvtSectattr>().eq("sect_name", "半成品库区"));
|
||||||
jo.put("sect_id", sect.getSect_id());
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("stor_id", sect.getStor_id());
|
jo.put("sect_id", sect.getSect_id());
|
||||||
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
jo.put("stor_id", sect.getStor_id());
|
||||||
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
||||||
|
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(stIvtStructattr)) {
|
if (ObjectUtil.isEmpty(stIvtStructattr)) {
|
||||||
throw new BadRequestException("无可分配货位");
|
throw new BadRequestException("无可分配货位");
|
||||||
}
|
}
|
||||||
|
|
||||||
stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁"));
|
仓库信息:
|
||||||
stIvtStructattr.setInv_code(mst.getBill_code());
|
{
|
||||||
//维护载具
|
mst.setSect_id(stIvtStructattr.getSect_id());
|
||||||
structattrService.updateById(stIvtStructattr);
|
mst.setSect_code(stIvtStructattr.getSect_code());
|
||||||
|
mst.setSect_name(stIvtStructattr.getSect_name());
|
||||||
|
mst.setStruct_id(stIvtStructattr.getStruct_id());
|
||||||
|
mst.setStruct_code(stIvtStructattr.getStruct_code());
|
||||||
|
mst.setStruct_name(stIvtStructattr.getStruct_name());
|
||||||
|
}
|
||||||
|
|
||||||
仓库信息:
|
PointEvent event = PointEvent.builder()
|
||||||
{
|
.type(AcsTaskEnum.TASK_STRUCT_IN.getCode())
|
||||||
mst.setSect_id(stIvtStructattr.getSect_id());
|
.acs_task_type("7")
|
||||||
mst.setSect_code(stIvtStructattr.getSect_code());
|
.task_group_id(IdUtil.getStringId())
|
||||||
mst.setSect_name(stIvtStructattr.getSect_name());
|
.point_code1(mst.getPoint_code())
|
||||||
mst.setStruct_id(stIvtStructattr.getStruct_id());
|
.point_code2(stIvtStructattr.getStruct_code())
|
||||||
mst.setStruct_code(stIvtStructattr.getStruct_code());
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
mst.setStruct_name(stIvtStructattr.getStruct_name());
|
.product_area(mst.getWorkshop_id())
|
||||||
}
|
.callback((Consumer<String>) mst::setTask_id)
|
||||||
|
.build();
|
||||||
|
BussEventMulticaster.Publish(event);
|
||||||
|
|
||||||
PointEvent event = PointEvent.builder()
|
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_IN.getCode())
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
.acs_task_type("7")
|
mst.setUpdate_time(DateUtil.now());
|
||||||
.task_group_id(IdUtil.getStringId())
|
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
.point_code1(mst.getPoint_code())
|
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
.point_code2(stIvtStructattr.getStruct_code())
|
this.updateById(mst);
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
// 下发任务
|
||||||
.product_area(mst.getWorkshop_id())
|
sendTask(mst.getTask_id());
|
||||||
.callback((Consumer<String>) mst::setTask_id)
|
structattrService.lockStruct(stIvtStructattr.getStruct_code(), "入库锁",mst.getTask_id());
|
||||||
.build();
|
},"banchengpin_ruku",2);
|
||||||
BussEventMulticaster.Publish(event);
|
return null;
|
||||||
|
|
||||||
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
|
||||||
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
|
||||||
mst.setUpdate_time(DateUtil.now());
|
|
||||||
mst.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
||||||
mst.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
||||||
this.updateById(mst);
|
|
||||||
|
|
||||||
// 下发任务
|
|
||||||
sendTask(mst.getTask_id());
|
|
||||||
return mst.getTask_id();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkParam(StIvtIostorinvBcp mst) {
|
private void checkParam(StIvtIostorinvBcp mst) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.semimanage.service.structIvt;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery;
|
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@@ -41,4 +42,6 @@ public interface IStIvtStructivtBcpService extends IService<StIvtStructivtBcp> {
|
|||||||
List<Map> getPdaBcpIvt(JSONObject jo);
|
List<Map> getPdaBcpIvt(JSONObject jo);
|
||||||
|
|
||||||
List<Map> getPdaBcpMaterialIvt(JSONObject jo);
|
List<Map> getPdaBcpMaterialIvt(JSONObject jo);
|
||||||
|
|
||||||
|
StIvtStructivtBcp queryIvtOutOne(JSONObject json);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dto.StructIvtBcpQuery;
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dto.StructIvtBcpQuery;
|
||||||
|
|
||||||
@@ -35,4 +36,6 @@ public interface StIvtStructivtBcpMapper extends BaseMapper<StIvtStructivtBcp> {
|
|||||||
List<Map> getPdaBcpIvt(JSONObject jo);
|
List<Map> getPdaBcpIvt(JSONObject jo);
|
||||||
|
|
||||||
List<Map> getPdaBcpMaterialIvt(JSONObject jo);
|
List<Map> getPdaBcpMaterialIvt(JSONObject jo);
|
||||||
|
|
||||||
|
StIvtStructivtBcp queryIvtOutOne(JSONObject json);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,4 +236,25 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryIvtOutOne" resultType="org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp">
|
||||||
|
SELECT
|
||||||
|
ivt.*
|
||||||
|
FROM
|
||||||
|
st_ivt_structivt_bcp ivt
|
||||||
|
LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id
|
||||||
|
WHERE ivt.canuse_qty > 0
|
||||||
|
<if test="stor_id != null and stor_id != ''">
|
||||||
|
and attr.stor_id = #{stor_id}
|
||||||
|
</if>
|
||||||
|
<if test="sect_id != null and sect_id != ''">
|
||||||
|
and attr.sect_id = #{sect_id}
|
||||||
|
</if>
|
||||||
|
<if test="material_id != null and material_id != ''">
|
||||||
|
and ivt.material_id = #{material_id}
|
||||||
|
</if>
|
||||||
|
order by ivt.canuse_qty ASC,ivt.struct_code ASC
|
||||||
|
|
||||||
|
LIMIT 1
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -61,6 +61,11 @@ public class StIvtStructivtBcpServiceImpl extends ServiceImpl<StIvtStructivtBcpM
|
|||||||
return this.baseMapper.getPdaBcpMaterialIvt(jo);
|
return this.baseMapper.getPdaBcpMaterialIvt(jo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StIvtStructivtBcp queryIvtOutOne(JSONObject json) {
|
||||||
|
return this.baseMapper.queryIvtOutOne(json);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getBcpIvt(StructIvtBcpQuery query, PageQuery pageQuery) {
|
public Object getBcpIvt(StructIvtBcpQuery query, PageQuery pageQuery) {
|
||||||
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.system_manage.controller.dict;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaIgnore;
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
@@ -121,8 +122,8 @@ public class SysDictController {
|
|||||||
@ApiOperation("查询字典详情")
|
@ApiOperation("查询字典详情")
|
||||||
@PostMapping("/dictDetailByCode")
|
@PostMapping("/dictDetailByCode")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> createDetail(@RequestBody String code){
|
public ResponseEntity<Object> queryDetail(@RequestBody JSONObject code){
|
||||||
return new ResponseEntity<>(dictService.getDictByName(code),HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(dictService.getDictByName(code.getString("code"))),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, Dict> impleme
|
|||||||
public List<Dict> getDictByName(String name) {
|
public List<Dict> getDictByName(String name) {
|
||||||
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>().eq(Dict::getCode, name)
|
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>().eq(Dict::getCode, name)
|
||||||
.isNotNull(Dict::getLabel)
|
.isNotNull(Dict::getLabel)
|
||||||
.ne(Dict::getLabel, ""));
|
.ne(Dict::getLabel, "").select(Dict::getLabel,Dict::getValue));
|
||||||
return dictList;
|
return dictList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -391,9 +391,9 @@
|
|||||||
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="总袋量" prop="demol_num">
|
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="总袋量" prop="bag_num">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="form.package_ext.demol_num"
|
v-model="form.package_ext.bag_num"
|
||||||
style="width: 200px;"
|
style="width: 200px;"
|
||||||
clearable
|
clearable
|
||||||
@focus="materialShow=true"
|
@focus="materialShow=true"
|
||||||
|
|||||||
Reference in New Issue
Block a user