rev:刻字包装任务/工序/工单merge
This commit is contained in:
@@ -45,6 +45,7 @@ public enum AcsTaskEnum {
|
||||
TASK_WASH_EMP("21","清洗机-空叫空框"),
|
||||
TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位
|
||||
TASK_WASH_FULL_QZ("23","清洗机-满料请求强制"),//去异常位:
|
||||
TASK_POINT_TO_POINT("99","点对点搬运"),//去异常位:
|
||||
|
||||
//回调状态
|
||||
STATUS_START("1","执行中"),
|
||||
@@ -53,18 +54,17 @@ public enum AcsTaskEnum {
|
||||
//专机请求
|
||||
REQUEST_CALLTYPE_FULL("2","专机满料请求"),
|
||||
REQUEST_CALLTYPE_EMP("1","专机缺料请求"),
|
||||
REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"),
|
||||
REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"),
|
||||
REQUEST_WARP_CALL_FULL("5","包装缺料请求"),
|
||||
REQUEST_WARP_SEND_EMP("6","包装送空框请求"),
|
||||
REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"),//ok
|
||||
REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"),//ok
|
||||
REQUEST_WARP_CALL_FULL("5","包装缺料请求"),//ok
|
||||
REQUEST_WARP_SEND_EMP("6","包装送空框请求"),//ok
|
||||
REQUEST_WASH_LACK("7","清洗机器缺料请求"),//深坑->清洗:相同物料的重量<150公斤;
|
||||
REQUEST_WASH_EMP("8","清洗机器空框请求"),//清洗机下料位
|
||||
REQUEST_WASH_FULL("9","清洗机器满料请求"),//清洗机满料请求
|
||||
REQUEST_WASH_FULL_ERROR("10","清洗机-满料异常请求"),//去半成品入库
|
||||
REQUEST_WASH_FULL("8","清洗机器满料请求"),//清洗机满料请求//去半成品入库
|
||||
REQUEST_WASH_EMP("10","清洗机器空框请求"),//清洗机下料位
|
||||
REQUEST_WASH_FULL_ERROR("11","清洗机-满料异常请求"),//去半成品入库 异常位
|
||||
REQUEST_WASH_PLOTTER_EMP("12","刻字上料空框回库"),
|
||||
|
||||
|
||||
|
||||
//
|
||||
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
|
||||
AGV_SYSTEM_NB("1","诺宝机器人任务"),
|
||||
AGV_SYSTEM_XC("2","叉车任务"),
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ public enum StatusEnum {
|
||||
CACHE_VEL_DIS("5","不显示","",null),
|
||||
//任务状态
|
||||
TASK_CREATE("1","生成","",1),
|
||||
TASK_START_ERROR("2","点位确认异常","",1<<2),
|
||||
TASK_START_ERROR("2","任务异常","",1<<2),
|
||||
//TASK_END_P("3","确定终点",""),
|
||||
TASK_START_END_P("4","起点和终点确认","",1<<3),
|
||||
TASK_PUBLISH("5","下发","",1<<4),
|
||||
|
||||
@@ -48,19 +48,16 @@ public class AcsUtil {
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info("ACS反馈异常----------------------------------------+"+api+",---"+e.getMessage());
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("status", "400");
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
result.put("error", msg);
|
||||
result.put("error", e.getMessage());
|
||||
}
|
||||
//acs抛异常这里
|
||||
if (api.equals("api/wms/task")){
|
||||
List<String> errorList = new ArrayList();
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("status", "400");
|
||||
JSONArray errorArr = result.getJSONArray("result");
|
||||
if (errorArr !=null && errorArr.size()>0){
|
||||
errorList = errorArr.stream().map(a -> ((JSONObject) a).getString("task_id")).collect(Collectors.toList());
|
||||
@@ -93,15 +90,13 @@ public class AcsUtil {
|
||||
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
||||
JSONObject result = new JSONObject();
|
||||
if (StrUtil.equals(StatusEnum.STATUS_FLASE.getCode(), isConnect)) {
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("status", "200");
|
||||
result.put("message", "下发成功,但未连接ACS!");
|
||||
result.put("data", new JSONObject());
|
||||
return result;
|
||||
}
|
||||
|
||||
//ACS地址:127.0.0.1:8010
|
||||
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue();
|
||||
|
||||
String url = acsUrl + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
@@ -113,13 +108,16 @@ public class AcsUtil {
|
||||
} catch (Exception e) {
|
||||
log.info("ACS反馈异常----------------------------------------+"+api+",---"+e.getMessage());
|
||||
String msg = e.getMessage();
|
||||
//ConnectException: Connection refused: connect
|
||||
//网络不通
|
||||
result.put("status", HttpStatus.BAD_REQUEST);
|
||||
result.put("status", "400");
|
||||
result.put("message", "网络不通,操作失败!");
|
||||
result.put("data", new JSONObject());
|
||||
result.put("error", msg);
|
||||
}
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
result.put("status", "400");
|
||||
result.put("message", result.getString("message"));
|
||||
result.put("data", new JSONObject());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,15 +3,25 @@ package org.nl.common.utils;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.nl.common.publish.event.PublishEvent;
|
||||
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.system_manage.service.ql.IPdmQlOptionService;
|
||||
import org.nl.wms.system_manage.service.ql.dao.PdmQlOption;
|
||||
import org.nl.wms.system_manage.service.ql.dto.OptionRecordQuery;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
/*
|
||||
@@ -27,9 +37,9 @@ public class OptionRecord {
|
||||
qlOption.setOptiod_date(JSON.toJSONString(option));
|
||||
}
|
||||
qlOption.setOrderno(order);
|
||||
qlOption.setOption_id(IdUtil.getStringId());
|
||||
qlOption.setType(type.name());
|
||||
qlOption.setCreate_id(DateUtil.now());
|
||||
qlOption.setCreate_time(SecurityUtils.getCurrentUserId());
|
||||
qlOption.setCreate_time(DateUtil.now());
|
||||
qlOption.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
qlOption.setBussclass(classname.name());
|
||||
qlOption.setStatus(status);
|
||||
@@ -68,5 +78,6 @@ public class OptionRecord {
|
||||
WORKORDER,
|
||||
MATERIAL,
|
||||
VECHILE,
|
||||
POINT,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@ import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl;
|
||||
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.WashMachineryTask;
|
||||
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.sendEmpty.WrapSendEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.plotter.PlotterCallEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.wash.WashCallEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.packageWrap.WrapCallMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.packageWrap.WrapSendEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.plotter.PlotterSendMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.wash.WashSendMaterialTask;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
|
||||
@@ -71,7 +71,6 @@ public class LogAspect {
|
||||
|
||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||
Method method = signature.getMethod();
|
||||
String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()";
|
||||
String params = getParameter(method, joinPoint.getArgs());
|
||||
HttpServletRequest request = RequestHolder.getHttpServletRequest();
|
||||
String url = request.getRequestURI();
|
||||
@@ -92,29 +91,6 @@ public class LogAspect {
|
||||
Log log = new Log("INFO", System.currentTimeMillis() - comming);
|
||||
logService.save(getUsername(), StringUtils.getBrowser(request), requestIp, joinPoint, log);
|
||||
}
|
||||
if (logInfo.isInterfaceLog()) {
|
||||
try {
|
||||
WQLObject interfaceLog = WQLObject.getWQLObject("sys_interface_log");
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("log_id", IdUtil.getStringId());
|
||||
json.put("description", logInfo.value());
|
||||
json.put("log_type", logInfo.interfaceLogType().getDesc());
|
||||
json.put("log_level", "1");
|
||||
json.put("method", methodName);
|
||||
json.put("params", getParameter(method, joinPoint.getArgs()));
|
||||
json.put("request_ip", StringUtils.getIp(request));
|
||||
json.put("time", System.currentTimeMillis() - comming);
|
||||
json.put("username", getUsername());
|
||||
json.put("address", StringUtils.getCityInfo(requestIp));
|
||||
json.put("browser", StringUtils.getBrowser(request));
|
||||
json.put("exception_detail", IdUtil.getStringId());
|
||||
json.put("create_time", DateUtil.now());
|
||||
Object parse = JSONObject.parse(result.toString());
|
||||
json.put("return_result", parse);
|
||||
interfaceLog.insert(json);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}catch (Exception ex){
|
||||
StringBuffer errorStack = new StringBuffer();
|
||||
errorStack.append("<br/>【异常堆栈:");
|
||||
|
||||
@@ -65,4 +65,12 @@ public interface WmsToAcsService {
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> action(JSONArray arr);
|
||||
|
||||
/**
|
||||
* 目标请求
|
||||
* @param arr
|
||||
* @param url
|
||||
* @return
|
||||
*/
|
||||
JSONObject request(JSONObject arr,String url);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
|
||||
|
||||
@Override
|
||||
public Map<String, Object> apply(JSONObject param) {
|
||||
Assert.notNull(param,"请求参数不能为空");
|
||||
Assert.notNull(param,"请求参数不能为空");//{"workorder_code":230704889,"device_code":"A1_BZJ_1","type":"5"}
|
||||
Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!");
|
||||
AcsTaskEnum taskEnum = AcsTaskEnum.getType(param.getString("type"), "REQUEST_");
|
||||
|
||||
|
||||
@@ -135,5 +135,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
return AcsUtil.notifyAcs(api, arr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject request(JSONObject arr, String url) {
|
||||
return AcsUtil.notifyAcs(url, arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,46 +7,126 @@ package org.nl.wms.pda_manage.pda.controller;
|
||||
*/
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.swagger.annotations.Api;
|
||||
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.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.product_manage.sch.tasks.plotter.PlotterCallEmptyTask;
|
||||
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.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;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@Api(tags = "成品手持服务")
|
||||
@Api(tags = "一体机刻字服务")
|
||||
@RequestMapping("/api/pda")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class TmpKZController {
|
||||
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private ISchBasePointService basePointService;
|
||||
@Autowired
|
||||
private PlotterCallEmptyTask plotterCallEmptyTask;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
/**
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("deviceinstorQty")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> deviceinstorQty(@RequestBody JSONObject param){
|
||||
|
||||
SchBasePoint one = basePointService.getOne(new QueryWrapper<SchBasePoint>()
|
||||
.eq("device_code", param.getString("device_code"))
|
||||
.eq("point_type", StatusEnum.POINT_LOCATION_IN.getCode()));
|
||||
if (one==null){
|
||||
throw new BadRequestException("当前设备无倒料点");
|
||||
}
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("device_code", one.getPoint_code());
|
||||
jo.put("qty", param.getString("qty"));
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/handPour");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping("callVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> callVechile(@RequestBody JSONObject param){
|
||||
plotterCallEmptyTask.callEmpVechile(param.getString("device_code"));
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
//鞋料
|
||||
@RequestMapping("kzunload")
|
||||
public ResponseEntity<Object> kzunload(@RequestBody JSONObject param){
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> kzunload(@RequestBody JSONObject param) {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("device_code", "A1_KZ_SL");
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/startDischarge");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("kzresidue")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> kzresidue(@RequestBody JSONObject param){
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("next_point_code", param.getString("device_code"));
|
||||
jo.put("start_point_code", param.getString("A1_KZ_SL"));
|
||||
jo.put("weight", param.getString("qty"));
|
||||
JSONObject result = wmsToAcsService.request(jo, "api/wms/putOver");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("tmpcallVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> tmpcallVechile(@RequestBody JSONObject param){
|
||||
JSONObject moveTask =taskService.createMoveTask("", "", AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20);
|
||||
JSONArray data = new JSONArray();
|
||||
data.add(moveTask);
|
||||
Map<String, Object> result = wmsToAcsService.issueTaskToAcs2(data);
|
||||
if (StrUtil.equals((String)result.get("status"), "400")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("tmpsendVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> tmpsendVechile(@RequestBody JSONObject param){
|
||||
JSONObject moveTask = taskService.createMoveTask("", "", AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20);
|
||||
JSONArray data = new JSONArray();
|
||||
data.add(moveTask);
|
||||
Map<String, Object> result = wmsToAcsService.issueTaskToAcs2(data);
|
||||
if (StrUtil.equals((String)result.get("status"), "400")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ public class SpecialDeviceController {
|
||||
for (Map pdmBiDevice : list.getRecords()) {
|
||||
MdMeMaterialbase materialbase = materialMap.get(pdmBiDevice.get("material_id"));
|
||||
pdmBiDevice.put("material_name",materialbase!=null?materialbase.getMaterial_name():"");
|
||||
pdmBiDevice.put("material_code",materialbase!=null?materialbase.getMaterial_code():"");
|
||||
pdmBiDevice.put("material_spec",materialbase!=null?materialbase.getMaterial_spec():"");
|
||||
}
|
||||
}
|
||||
@@ -77,5 +78,20 @@ public class SpecialDeviceController {
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/setEmp")
|
||||
@Log("设置空点位")
|
||||
@ApiOperation("设置空点位")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> setEmp (@RequestBody String[]ids){
|
||||
if (ids.length>0){
|
||||
iDeviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("material_id","")
|
||||
.set("deviceinstor_qty",0)
|
||||
.set("deviceinstor_weight",0)
|
||||
.set("remark","")
|
||||
.in("device_code",ids));
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public abstract class AbstractAcsTask {
|
||||
public void notifyAcs(JSONArray param){};
|
||||
|
||||
public List<SchBaseTask> schedulerTask(List<SchBaseTask> tasks){
|
||||
return new ArrayList<>();
|
||||
return tasks;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ package org.nl.wms.product_manage.sch.manage;
|
||||
*/
|
||||
public enum TaskStatusEnum {
|
||||
CREATED("1", "生成"),
|
||||
SURE_START_ERROR("2", "点位确认异常"),
|
||||
SURE_START_ERROR("2", "任务异常"),
|
||||
//SURE_END("3", "确定终点"),
|
||||
START_AND_POINT("4", "起点终点确认"),
|
||||
ISSUE("5", "下发"),
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
|
||||
package org.nl.wms.product_manage.sch.rest;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.wms.product_manage.sch.service.PointService;
|
||||
import org.nl.wms.product_manage.sch.service.dto.PointDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @date 2021-08-19
|
||||
**/
|
||||
//@RestController
|
||||
@RequiredArgsConstructor
|
||||
//@Api(tags = "点位管理")
|
||||
//@RequestMapping("/api/point")
|
||||
//@Slf4j
|
||||
public class PointController {
|
||||
|
||||
private final PointService pointService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询点位")
|
||||
@ApiOperation("查询点位")
|
||||
//@SaCheckPermission("point:list")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(pointService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增点位")
|
||||
@ApiOperation("新增点位")
|
||||
//@SaCheckPermission("point:add")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody PointDto dto) {
|
||||
pointService.create(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改点位")
|
||||
@ApiOperation("修改点位")
|
||||
//@SaCheckPermission("point:edit")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody PointDto dto) {
|
||||
pointService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除点位")
|
||||
@ApiOperation("删除点位")
|
||||
//@SaCheckPermission("point:del")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
pointService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PutMapping("/changeActive")
|
||||
@Log("修改点位启用状态")
|
||||
@ApiOperation("修改点位启用状态")
|
||||
//@SaCheckPermission("store:edit")
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject json) {
|
||||
pointService.changeActive(json);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/getPoint")
|
||||
@Log("查询点位下拉框")
|
||||
@ApiOperation("查询点位下拉框")
|
||||
//@SaCheckPermission("materialtype:list")
|
||||
public ResponseEntity<Object> queryPoint(@RequestBody Map whereJson) {
|
||||
return new ResponseEntity<>(pointService.getPoint(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/selectPoint")
|
||||
@Log("查询点位管理")
|
||||
@ApiOperation("查询点位管理")
|
||||
//@SaCheckPermission("Point:list")
|
||||
public ResponseEntity<Object> selectPoint(@RequestParam Map whereJson, Pageable page){
|
||||
return new ResponseEntity<>(pointService.selectPoint(whereJson,page),HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/getRegion")
|
||||
@Log("获取区域")
|
||||
@ApiOperation("获取区域")
|
||||
public ResponseEntity<Object> getRegion(){
|
||||
return new ResponseEntity<>(pointService.getRegion(),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("启动与禁用")
|
||||
@PostMapping("/changeUsed")
|
||||
@ApiOperation("启动与禁用")
|
||||
public ResponseEntity<Object> changeUsedOn(@RequestBody JSONObject jsonObject) {
|
||||
pointService.changeUsed(jsonObject);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("锁定与解锁")
|
||||
@PostMapping("/changeLock")
|
||||
@ApiOperation("锁定与解锁")
|
||||
public ResponseEntity<Object> changeLock(@RequestBody JSONObject jsonObject) {
|
||||
pointService.changeLock(jsonObject);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
package org.nl.wms.product_manage.sch.rest;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.wms.product_manage.sch.service.RegionService;
|
||||
import org.nl.wms.product_manage.sch.service.dto.RegionDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author lyd
|
||||
* @date 2023-03-17
|
||||
**/
|
||||
//@RestController
|
||||
@RequiredArgsConstructor
|
||||
//@Api(tags = "区域管理管理")
|
||||
//@RequestMapping("/api/region")
|
||||
//@Slf4j
|
||||
public class RegionController {
|
||||
|
||||
private final RegionService regionService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询区域管理")
|
||||
@ApiOperation("查询区域管理")
|
||||
//@SaCheckPermission("region:list")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(regionService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getPointQuery")
|
||||
@Log("获取可用点位")
|
||||
@ApiOperation("获取可用点位")
|
||||
//@SaCheckPermission("region:list")
|
||||
public ResponseEntity<Object> getPointQuery(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(regionService.getPointQuery(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增区域管理")
|
||||
@ApiOperation("新增区域管理")
|
||||
//@SaCheckPermission("region:add")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody RegionDto dto) {
|
||||
regionService.create(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改区域管理")
|
||||
@ApiOperation("修改区域管理")
|
||||
//@SaCheckPermission("region:edit")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody RegionDto dto) {
|
||||
regionService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除区域管理")
|
||||
@ApiOperation("删除区域管理")
|
||||
//@SaCheckPermission("region:del")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody String[] codes) {
|
||||
regionService.deleteAll(codes);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getPointStatusSelectByCode")
|
||||
@Log("获取点位状态下拉框")
|
||||
@ApiOperation("获取点位状态下拉框")
|
||||
//@SaCheckPermission("region:add")
|
||||
public ResponseEntity<Object> getPointStatusSelectByCode(@RequestBody String region_code) {
|
||||
return new ResponseEntity<>(regionService.getPointStatusSelectByCode(region_code), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/getPointTypeSelectByCode")
|
||||
@Log("获取点位类型下拉框")
|
||||
@ApiOperation("获取点位类型下拉框")
|
||||
//@SaCheckPermission("region:add")
|
||||
public ResponseEntity<Object> getPointTypeSelectByCode(@RequestBody String region_code) {
|
||||
return new ResponseEntity<>(regionService.getPointTypeSelectByCode(region_code), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/getRegionSelect")
|
||||
@Log("获取区域下拉框")
|
||||
@ApiOperation("获取区域下拉框")
|
||||
public ResponseEntity<Object> getRegionSelect(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(regionService.getRegionSelect(whereJson), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callMaterial;
|
||||
package org.nl.wms.product_manage.sch.tasks.packageWrap;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
@@ -10,11 +10,13 @@ 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.jetbrains.annotations.NotNull;
|
||||
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.MapOf;
|
||||
import org.nl.common.utils.OptionRecord;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -33,6 +35,7 @@ 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;
|
||||
@@ -57,61 +60,45 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task.getString("task_id") + "' " +
|
||||
"and task_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' " +
|
||||
"and task_status <> '" + StatusEnum.TASK_CANNEL.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
SchBaseTask one = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_id", task.getString("task_id")));
|
||||
if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) {
|
||||
throw new BadRequestException("任务已完成,不可取消!");
|
||||
}
|
||||
String pointCode1 = taskObj.getString("point_code1");
|
||||
JSONObject pointObj = null;
|
||||
if (ObjectUtil.isNotEmpty(pointCode1)) {
|
||||
pointObj = pointTab.query("point_code = '" + pointCode1 + "'").uniqueResult(0);
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||
// 执行中
|
||||
// 任务执行中
|
||||
taskObj.put("task_status", StatusEnum.TASK_RUNNING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
if (ObjectUtil.isNotEmpty(pointObj)) {
|
||||
// 释放点位并赋值
|
||||
pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
pointObj.put("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode());
|
||||
pointObj.put("material_id", taskObj.getString("material_id"));
|
||||
pointObj.put("update_time", DateUtil.now());
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
// 2任务完成
|
||||
taskObj.put("task_status", StatusEnum.TASK_FINISH.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))?
|
||||
task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
/**
|
||||
* 取消任务
|
||||
* 1、点位恢复
|
||||
* 2、任务状态修改
|
||||
*/
|
||||
// 2点位恢复
|
||||
if (ObjectUtil.isNotEmpty(pointObj)) {
|
||||
// 释放点位
|
||||
pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
pointObj.put("update_time", DateUtil.now());
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
// 2任务取消
|
||||
taskObj.put("task_status", StatusEnum.TASK_CANNEL.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))?
|
||||
task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode());
|
||||
taskTab.update(taskObj);
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_RUNNING.getCode()).set("update_time",new Date())
|
||||
.eq("task_id",one.getTask_id()));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>().set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.set("material_id","").set("qty",0)
|
||||
.set("task_id","")
|
||||
.set("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.eq("point_code",one.getPoint_code1()));
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_FINISH.getCode()).set("update_time",new Date())
|
||||
.eq("task_id",task.getString("task_id")));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||
// 完成
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.set("task_id","")
|
||||
.eq("point_code",one.getPoint_code1()));
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||
.set("update_time",new Date())
|
||||
.eq("task_id",task.getString("task_id")));
|
||||
}
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE,
|
||||
status,
|
||||
OptionRecord.Buss.POINT,
|
||||
one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -130,23 +117,7 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
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", IdUtil.getStringId());
|
||||
task.put("task_name", AcsTaskEnum.TASK_WARP_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_WARP_MAC.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("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code2", param.getString("device_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("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||
task.put("table_fk_id",order.getWorkorder_code());
|
||||
JSONObject task = packageTask(param, order);
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
taskService.save(schBaseTask);
|
||||
// 找终点
|
||||
@@ -155,48 +126,93 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
JSONArray data = new JSONArray();
|
||||
data.add(task);
|
||||
// 下发
|
||||
wms.issueTaskToAcs2(data);
|
||||
wms.issueTaskToAcs(data);
|
||||
} catch (Exception ex) {
|
||||
log.error("刻字请求异常,error:{}",ex);
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.in("point_code",schBaseTask.getPoint_code1(),schBaseTask.getPoint_code2()));
|
||||
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.updateById(schBaseTask);
|
||||
}
|
||||
return task.getString("task_id");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private JSONObject packageTask(JSONObject param, PdmProduceWorkorder order) {
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
task.put("task_name", AcsTaskEnum.TASK_WARP_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_WARP_MAC.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("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code3", param.getString("device_code"));
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
task.put("is_send", true);
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("finished_type", "1");
|
||||
task.put("priority", "1");
|
||||
task.put("material_id",order.getMaterial_id());
|
||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||
task.put("table_fk_id", order.getWorkorder_code());
|
||||
return task;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pointConfirm(JSONObject taskObj) {
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<Map<String, String>> points = pointService.queryVehicle(
|
||||
MapOf.of("is_used", "1",
|
||||
"lock_type", StatusEnum.LOCK_OFF.getCode(),
|
||||
"region_code", "A1_KZHC",
|
||||
"material_id", taskObj.getString("material_id")));
|
||||
if (ObjectUtil.isNotEmpty(points)) {
|
||||
Map<String, String> map = points.get(0);
|
||||
if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("region_code", "A1_KZHC")
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode())
|
||||
.eq("is_used", "1")
|
||||
.eq("point_status", StatusEnum.POINT_STATUS_FULL.getCode())
|
||||
.eq("material_id", task.getString("material_id"))
|
||||
.gt("qty", 0));
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
SchBasePoint schBasePoint = list.get(0);
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_ON.getCode())
|
||||
.eq("point_code",map.get("point_code")));
|
||||
.set("task_id",task.getString("task_id"))
|
||||
.eq("point_code",schBasePoint.getPoint_code()));
|
||||
// 设置点位
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code1",map.get("point_code"));
|
||||
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code1",schBasePoint.getPoint_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
taskService.updateById(schBaseTask);
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD,
|
||||
WorkerOrderEnum.CREATE.getCode(),
|
||||
OptionRecord.Buss.POINT,
|
||||
task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id")));
|
||||
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.sendEmpty;
|
||||
package org.nl.wms.product_manage.sch.tasks.packageWrap;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
@@ -7,9 +7,13 @@ import cn.hutool.core.util.StrUtil;
|
||||
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.MapOf;
|
||||
import org.nl.common.utils.OptionRecord;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -47,60 +51,46 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task.getString("task_id") + "' " +
|
||||
"AND task_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' " +
|
||||
"AND task_status <> '" + StatusEnum.TASK_CANNEL.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(taskObj)) {
|
||||
SchBaseTask one = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_id", task.getString("task_id")));
|
||||
if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) {
|
||||
throw new BadRequestException("任务已完成,不可取消!");
|
||||
}
|
||||
String pointCode2 = taskObj.getString("point_code2");
|
||||
JSONObject pointObj = null;
|
||||
if (ObjectUtil.isNotEmpty(pointCode2)) {
|
||||
pointObj = pointTab.query("point_code = '" + pointCode2 + "'").uniqueResult(0);
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||
// 执行中
|
||||
// 任务执行中
|
||||
taskObj.put("task_status", StatusEnum.TASK_RUNNING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
if (ObjectUtil.isNotEmpty(pointObj)) {
|
||||
// 释放点位并赋值
|
||||
pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
pointObj.put("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode());
|
||||
pointObj.put("update_time", DateUtil.now());
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
// 2任务完成
|
||||
taskObj.put("task_status", StatusEnum.TASK_FINISH.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))?
|
||||
task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
/**
|
||||
* 取消任务
|
||||
* 1、点位恢复
|
||||
* 2、任务状态修改
|
||||
*/
|
||||
// 2点位恢复
|
||||
if (ObjectUtil.isNotEmpty(pointObj)) {
|
||||
// 释放点位
|
||||
pointObj.put("lock_type", StatusEnum.LOCK_OFF.getCode());
|
||||
pointObj.put("update_time", DateUtil.now());
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
// 2任务取消
|
||||
taskObj.put("task_status", StatusEnum.TASK_CANNEL.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("finished_type", ObjectUtil.isNotEmpty(task.getString("finished_type"))?
|
||||
task.getString("finished_type"):AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode());
|
||||
taskTab.update(taskObj);
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_RUNNING.getCode()).set("update_time",new Date())
|
||||
.eq("task_id",task.getString("task_id")));
|
||||
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>().set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.set("point_status",StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode())
|
||||
.set("material_id","")
|
||||
.set("task_id","")
|
||||
.set("qty",0)
|
||||
.eq("point_code",one.getPoint_code3()));
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_FINISH.getCode()).set("update_time",new Date())
|
||||
.eq("task_id",task.getString("task_id")));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||
// 完成
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.set("material_id","").set("qty",0)
|
||||
.eq("point_code",one.getPoint_code3()));
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_CANNEL.getCode()).set("update_time",new Date())
|
||||
.eq("task_id",task.getString("task_id")));
|
||||
}
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE,
|
||||
status,
|
||||
OptionRecord.Buss.POINT,
|
||||
one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -130,6 +120,7 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("is_send", true);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("update_id", currentUserId);
|
||||
task.put("update_name", SecurityUtils.getCurrentNickName());
|
||||
@@ -137,20 +128,20 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("priority", "1");
|
||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
taskService.save(schBaseTask);
|
||||
// 找终点
|
||||
try {
|
||||
pointConfirm(task);
|
||||
JSONArray data = new JSONArray();
|
||||
JSONObject result = taskTab.query("task_id = '" + taskdtl_id + "'").uniqueResult(0);
|
||||
data.add(result);
|
||||
data.add(task);
|
||||
// 下发
|
||||
wms.issueTaskToAcs2(data);
|
||||
wms.issueTaskToAcs(data);
|
||||
} catch (Exception ex) {
|
||||
// 未找到
|
||||
task.put("remark", ex.getMessage());
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("task_status", StatusEnum.TASK_START_END_P.getCode());
|
||||
task.put("task_status", StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskTab.update(task);
|
||||
}
|
||||
return taskdtl_id;
|
||||
@@ -164,23 +155,32 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>().isNull("vehicle_code")
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("is_used", "1")
|
||||
.eq("region_code","A1_KZHC")
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode()));
|
||||
.eq("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode())
|
||||
.last("and (material_id is null or material_id = '')")
|
||||
);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
// 找到位置
|
||||
// 点位上锁
|
||||
SchBasePoint point = list.get(0);
|
||||
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||
point.setTask_id(task.getString("task_id"));
|
||||
pointService.updateById(point);
|
||||
// 设置点位
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code2",point.getPoint_code());
|
||||
task.put("point_code3",point.getPoint_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD,
|
||||
WorkerOrderEnum.CREATE.getCode(),
|
||||
OptionRecord.Buss.POINT,
|
||||
task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id")));
|
||||
taskService.updateById(schBaseTask);
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
@@ -1,8 +1,7 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callEmpty;
|
||||
package org.nl.wms.product_manage.sch.tasks.plotter;
|
||||
|
||||
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 cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
@@ -11,10 +10,13 @@ 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.jetbrains.annotations.NotNull;
|
||||
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.MapOf;
|
||||
import org.nl.common.utils.OptionRecord;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -58,33 +60,46 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
private WmsToAcsService wms;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject param, String status) {
|
||||
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
SchBaseTask one = taskService.getById(task.getString("task_id"));
|
||||
if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) {
|
||||
throw new BadRequestException("任务已完成,不可取消!");
|
||||
}
|
||||
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()));
|
||||
.set("update_time",DateUtil.now()).eq("task_id",task.getString("task_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()));
|
||||
.set("update_time",DateUtil.now()).eq("task_id",task.getString("task_id")));
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>().set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.set("material_id","").set("qty",0)
|
||||
.set("task_id","")
|
||||
.eq("point_code",one.getPoint_code1()));
|
||||
|
||||
}
|
||||
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()));
|
||||
.set("update_time",DateUtil.now()).eq("task_id",task.getString("task_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()));
|
||||
.set("task_id","")
|
||||
.eq("point_code",one.getPoint_code1()));
|
||||
}
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE,
|
||||
status,
|
||||
OptionRecord.Buss.POINT,
|
||||
one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -108,28 +123,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
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());
|
||||
JSONObject task = packageTask(end_point_code, order.getMaterial_id(),order.getWorkorder_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
taskService.save(schBaseTask);
|
||||
// 找终点
|
||||
@@ -147,7 +141,33 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskService.save(schBaseTask);
|
||||
}
|
||||
return taskdtl_id;
|
||||
return task.getString("task_id");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private JSONObject packageTask(String end_point_code, String material_id,String fk) {
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
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", material_id);
|
||||
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code3", 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", fk);
|
||||
return task;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -161,29 +181,29 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
/**
|
||||
* 满料请求
|
||||
* 从刻字机满料缓存区中获取空位放入就行
|
||||
* @param taskObj: 任务对象
|
||||
* @param : 任务对象
|
||||
*/
|
||||
@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")));
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("is_used", "1")
|
||||
.eq("region_code","A1_KZHC")
|
||||
.eq("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode())
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode())
|
||||
.last("and (material_id is null or material_id = '')")
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
SchBasePoint point = list.get(0);
|
||||
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||
point.setTask_id(task.getString("task_id"));
|
||||
pointService.updateById(point);
|
||||
// 设置点位
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code1",map.get("point_code"));
|
||||
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code1",point.getPoint_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
taskService.updateById(schBaseTask);
|
||||
} else {
|
||||
@@ -202,4 +222,38 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
}
|
||||
return Merge;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void callEmpVechile(String device_code) {
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("is_used", "1")
|
||||
.eq("region_code","A1_KZHC")
|
||||
.eq("point_status", StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode())
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode())
|
||||
.last("and (material_id is null or material_id = '')")
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
SchBasePoint point = list.get(0);
|
||||
JSONObject task = packageTask(device_code, null, null);
|
||||
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||
point.setTask_id(task.getString("task_id"));
|
||||
pointService.updateById(point);
|
||||
// 设置点位
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code1",point.getPoint_code());
|
||||
task.put("task_status",StatusEnum.TASK_START_END_P.getCode());
|
||||
task.put("task_group_id",IdUtil.getStringId());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
taskService.save(schBaseTask);
|
||||
JSONArray data = new JSONArray();
|
||||
data.add(task);
|
||||
// 下发
|
||||
Map<String, Object> result = wms.issueTaskToAcs2(data);
|
||||
if (!StrUtil.equals((String)result.get("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.sendMaterial;
|
||||
package org.nl.wms.product_manage.sch.tasks.plotter;
|
||||
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -10,10 +10,13 @@ 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.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.OptionRecord;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -22,6 +25,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
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.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||
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;
|
||||
@@ -52,37 +56,59 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private WmsToAcsService wms;
|
||||
@Override
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject param, String status) {
|
||||
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||
SchBaseTask one = taskService.getById(param.getString("task_id"));
|
||||
if (one.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())||one.getTask_status().equals(StatusEnum.TASK_CANNEL.getCode())) {
|
||||
throw new BadRequestException("任务已完成,不可取消!");
|
||||
}
|
||||
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()));
|
||||
UpdateWrapper<SchBaseTask> updateWrapper = new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status", StatusEnum.TASK_RUNNING.getCode())
|
||||
.set("update_name", "acs")
|
||||
.set("update_time", DateUtil.now()).eq("task_id", one.getTask_id());
|
||||
if (!("fall_finish"+one.getTask_id()).equals(one.getRemark())){
|
||||
updateWrapper.set("remark","fall_finish"+one.getTask_id());
|
||||
Map<String, String> extParam = (Map)param.get("ext_param");
|
||||
String weight = extParam.get("weight");
|
||||
if (StringUtils.isNotEmpty(weight) && Integer.valueOf(weight)>0){
|
||||
updateWrapper.set("material_qty",weight);
|
||||
}
|
||||
}
|
||||
taskService.update(updateWrapper);
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
||||
.set("point_status",StatusEnum.POINT_STATUS_FULL.getCode())
|
||||
.set("update_name","acs")
|
||||
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||
.set("update_time",DateUtil.now()).eq("task_id",one.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()));
|
||||
.set("point_status",StatusEnum.POINT_STATUS_FULL.getCode())
|
||||
.set("material_id",one.getMaterial_id())
|
||||
.set("qty",one.getMaterial_qty())
|
||||
.eq("point_code",one.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()));
|
||||
.set("update_time",DateUtil.now()).eq("task_id",one.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()));
|
||||
.set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.eq("point_code",one.getPoint_code3()));
|
||||
}
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.UPDATE,
|
||||
status,
|
||||
OptionRecord.Buss.POINT,
|
||||
one.getPoint_code1(), MapOf.of("start",one.getPoint_code1(),"end",one.getPoint_code3(),"time",DateUtil.now(),"order",one.getTask_id()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -100,7 +126,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
.and(wa->wa
|
||||
.eq("point_code1", param.getString("device_code"))
|
||||
.or()
|
||||
.eq("point_code2", param.getString("device_code")))
|
||||
.eq("point_code3", 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")));
|
||||
@@ -112,7 +138,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
task.put("task_name", AcsTaskEnum.TASK_PLOTTER_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.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("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_WEIGHING_TASK_OF_PS20.getCode());
|
||||
task.put("material_id", order.getMaterial_id());
|
||||
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||
task.put("point_code1", start_point_code);
|
||||
@@ -120,6 +146,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("is_send", true);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("priority", "1");
|
||||
@@ -134,7 +161,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
JSONArray data = new JSONArray();
|
||||
data.add(task);
|
||||
// 下发
|
||||
wms.issueTaskToAcs2(data);
|
||||
wms.issueTaskToAcs(data);
|
||||
} catch (Exception ex) {
|
||||
// 未找到
|
||||
log.error("刻字满料请求异常,error:{}",ex);
|
||||
@@ -142,7 +169,7 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setUpdate_name("acs");
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskService.save(schBaseTask);
|
||||
taskService.updateById(schBaseTask);
|
||||
}
|
||||
return taskdtl_id;
|
||||
}
|
||||
@@ -162,24 +189,33 @@ public class PlotterSendMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>().isNull("vehicle_code")
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>()
|
||||
.eq("is_used", "1")
|
||||
.eq("region_code","A1_KZHC")
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode()));
|
||||
|
||||
.eq("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode())
|
||||
.last("and (material_id is null or material_id = '')")
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
// 找到位置
|
||||
// 点位上锁
|
||||
SchBasePoint point = list.get(0);
|
||||
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||
point.setTask_id(task.getString("task_id"));
|
||||
pointService.updateById(point);
|
||||
// 设置点位
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code2",point.getPoint_code());
|
||||
task.put("point_code3",point.getPoint_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
taskService.updateById(schBaseTask);
|
||||
OptionRecord.recordAsync(OptionRecord.OptionEnum.ADD,
|
||||
WorkerOrderEnum.CREATE.getCode(),
|
||||
OptionRecord.Buss.POINT,
|
||||
task.getString("point_code1"), MapOf.of("start",task.getString("point_code1"),"end",task.getString("point_code3"),"time",DateUtil.now(),"order",task.getString("task_id")));
|
||||
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callEmpty;
|
||||
package org.nl.wms.product_manage.sch.tasks.wash;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
@@ -112,7 +112,7 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
||||
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("point_code3", end_point_code);
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
@@ -140,7 +140,7 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setUpdate_name("acs");
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskService.save(schBaseTask);
|
||||
taskService.updateById(schBaseTask);
|
||||
}
|
||||
return taskdtl_id;
|
||||
}
|
||||
@@ -154,13 +154,13 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
/**
|
||||
* 满料请求
|
||||
* 从刻字机满料缓存区中获取空位放入就行
|
||||
* 空框请求
|
||||
* 从半成品区中获取空位放入就行
|
||||
* @param taskObj: 任务对象
|
||||
*/
|
||||
@Override
|
||||
public void pointConfirm(JSONObject taskObj) {
|
||||
// 去刻字缓存区寻找空框 TODO:空箱
|
||||
//TODO:从半成品区中获取空位放入就行
|
||||
List<Map<String, String>> points = pointService.queryVehicle(
|
||||
MapOf.of("is_used", "1",
|
||||
"lock_type", StatusEnum.LOCK_OFF.getCode(),
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.sendMaterial;
|
||||
package org.nl.wms.product_manage.sch.tasks.wash;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
@@ -154,7 +154,7 @@ public class WashSendMaterialQZTask extends AbstractAcsTask {
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setUpdate_name("acs");
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskService.save(schBaseTask);
|
||||
taskService.updateById(schBaseTask);
|
||||
}
|
||||
return taskdtl_id;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.sendMaterial;
|
||||
package org.nl.wms.product_manage.sch.tasks.wash;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
@@ -30,13 +30,10 @@ 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.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||
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;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.nl.wms.product_manage.service.processroute.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
@@ -24,6 +26,7 @@ public class PdmBiProcessroute implements Serializable {
|
||||
/**
|
||||
* 工艺路线标识
|
||||
*/
|
||||
@TableId(value = "processroute_id")
|
||||
private String processroute_id;
|
||||
|
||||
/**
|
||||
|
||||
@@ -89,7 +89,7 @@ public class PdmBiProcessrouteServiceImpl extends ServiceImpl<PdmBiProcessrouteM
|
||||
processroute.setRemark(json.getString("remark"));
|
||||
processroute.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
processroute.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
processroute.setCreate_name(DateUtil.now());
|
||||
processroute.setCreate_time(DateUtil.now());
|
||||
return processroute;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,9 @@ public class PdmBiProcessrouteServiceImpl extends ServiceImpl<PdmBiProcessrouteM
|
||||
processroutedtl.setWorkprocedure_no(i + 1);
|
||||
if (i == 0) {
|
||||
processroutedtl.setPreworkprocedure_id(" ");
|
||||
processroutedtl.setNextworkprocedure_id(dataArr.getJSONObject(i + 1).getString("workprocedure_id"));
|
||||
if (dataArr.size()>1){
|
||||
processroutedtl.setNextworkprocedure_id(dataArr.getJSONObject(i + 1).getString("workprocedure_id"));
|
||||
}
|
||||
} else if ( i == dataArr.size() - 1) {
|
||||
processroutedtl.setPreworkprocedure_id(dataArr.getJSONObject(i - 1).getString("workprocedure_id"));
|
||||
processroutedtl.setNextworkprocedure_id(" ");
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
<if test="query.workorder_id != null and query.workorder_id != ''">
|
||||
and wr.workorder_id = #{query.workorder_id}
|
||||
</if>
|
||||
<if test="query.workorder_code != null and query.workorder_code != ''">
|
||||
and wr.workorder_code = #{query.workorder_code}
|
||||
</if>
|
||||
<if test="query.shift_type_scode != null and query.shift_type_scode != ''">
|
||||
and wr.shift_type_scode = #{query.shift_type_scode}
|
||||
</if>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package org.nl.wms.product_manage.service.workorder.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@@ -14,11 +15,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.jsonwebtoken.lang.Assert;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
@@ -33,6 +35,8 @@ import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService;
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.mps.service.WorkOrderImportEnum;
|
||||
import org.nl.wms.mps.service.dto.ProduceWorkorderDto;
|
||||
import org.nl.wms.mps.service.dto.ProduceshiftorderDto;
|
||||
import org.nl.wms.product_manage.ReportEnum;
|
||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||
@@ -49,6 +53,7 @@ import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureServic
|
||||
import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure;
|
||||
import org.nl.wms.system_manage.service.user.ISysUserService;
|
||||
import org.nl.wms.system_manage.service.user.dao.SysUser;
|
||||
import org.redisson.misc.Hash;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@@ -65,6 +70,7 @@ import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -78,7 +84,7 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorkorderMapper,PdmProduceWorkorder> implements IPdmProduceWorkorderService{
|
||||
public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorkorderMapper, PdmProduceWorkorder> implements IPdmProduceWorkorderService {
|
||||
@Autowired
|
||||
private IMdPbClassstandardService classstandardService;
|
||||
@Autowired
|
||||
@@ -100,7 +106,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
public Object queryAll(WorkorderQuery query, PageQuery pageQuery) {
|
||||
if (!StringUtils.isEmpty(query.getProduct_series())) {
|
||||
String collect = classstandardService.getChildIdStr(query.getProduct_series())
|
||||
.stream().collect(Collectors.joining("','"));
|
||||
.stream().collect(Collectors.joining("','"));
|
||||
query.setProduct_series("('" + collect + "')");
|
||||
}
|
||||
if (!StringUtils.isEmpty(query.getOrder_status()) && query.getOrder_status().contains("-1")) {
|
||||
@@ -123,9 +129,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
@Override
|
||||
public void create(JSONObject form) {
|
||||
JSONObject ext = form.getJSONObject("package_ext");
|
||||
form.put("package_ext",null);
|
||||
PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class);
|
||||
entity.setPackage_ext(ext.toJSONString());
|
||||
if (ext!=null){
|
||||
entity.setPackage_ext(ext.toJSONString());
|
||||
}
|
||||
entity.setWorkorder_id(IdUtil.getStringId());
|
||||
entity.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER"));
|
||||
entity.setCurrent_produce_person_id(SecurityUtils.getCurrentUserId());
|
||||
@@ -141,32 +148,20 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
@Override
|
||||
public void updateForm(JSONObject form) {
|
||||
Assert.notNull(form, "参数不能为空");
|
||||
PdmProduceWorkorder one = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", form.getString("workorder_id")));
|
||||
if(one == null) {
|
||||
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||
PdmProduceWorkorder one = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_id", form.getString("workorder_id"))
|
||||
.in("workorder_status", "1","2","4"));
|
||||
if (one == null) {
|
||||
throw new BadRequestException("工单状态非生产状态下不允许修改");
|
||||
}
|
||||
PdmProduceWorkorder newEntity = form.toJavaObject(PdmProduceWorkorder.class);
|
||||
PdmProduceWorkorder pdmProduceWorkorder = PdmProduceWorkorder
|
||||
.builder()
|
||||
.workorder_id(newEntity.getWorkorder_id())
|
||||
.product_area(newEntity.getProduct_area())
|
||||
.workprocedure_id(newEntity.getWorkprocedure_id())
|
||||
.material_id(newEntity.getMaterial_id())
|
||||
.material_weight(newEntity.getMaterial_weight())
|
||||
.plan_qty(newEntity.getPlan_qty())
|
||||
.planproducestart_date(newEntity.getPlanproducestart_date())
|
||||
.planproduceend_date(newEntity.getPlanproduceend_date())
|
||||
.report_qty(newEntity.getReport_qty())
|
||||
.shift_type_scode(newEntity.getShift_type_scode())
|
||||
.sale_id(newEntity.getSale_id())
|
||||
.is_needmove(newEntity.getIs_needmove())
|
||||
.is_canupdate_update(newEntity.getIs_canupdate_update())
|
||||
.down_time(DateUtil.now())
|
||||
.down_id(SecurityUtils.getCurrentUserId())
|
||||
.down_name(SecurityUtils.getCurrentNickName())
|
||||
.build();
|
||||
this.updateById(pdmProduceWorkorder);
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, pdmProduceWorkorder.getWorkorder_id());
|
||||
PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class);
|
||||
entity.setDown_time(DateUtil.now());
|
||||
entity.setDown_id(SecurityUtils.getCurrentUserId());
|
||||
entity.setDown_name(SecurityUtils.getCurrentNickName());
|
||||
entity.setReal_qty(null);
|
||||
this.updateById(entity);
|
||||
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, entity.getWorkorder_id());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -175,9 +170,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void down(List<String> ids) {
|
||||
if(ids == null || ids.size() == 0) {
|
||||
if (ids == null || ids.size() == 0) {
|
||||
return;
|
||||
}
|
||||
List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids).lt("workorder_status",WorkerOrderEnum.AUTO_COMPLETE.getCode()));
|
||||
@@ -205,44 +199,27 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
.set("down_time", new Date())
|
||||
.in("workorder_id", ids));
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0]));
|
||||
}
|
||||
|
||||
public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) {
|
||||
List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids));
|
||||
for(PdmProduceWorkorder one : workorders) {
|
||||
WorkorderRecord record = WorkorderRecord
|
||||
.builder()
|
||||
.workorder_id(one.getWorkorder_id())
|
||||
.device_code(one.getDevice_code())
|
||||
.dq_init_qty(one.getReal_qty())
|
||||
.dq_finish_qty(one.getReal_qty())
|
||||
.operatetime_start(one.getCreate_time())
|
||||
.workprocedure_id(one.getWorkprocedure_id())
|
||||
.operatetime_end(DateUtil.now())
|
||||
.shift_type_scode(one.getShift_type_scode())
|
||||
.product_area(one.getProduct_area())
|
||||
.build();
|
||||
OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unDown(List<String> ids) {
|
||||
if(ids == null || ids.size() == 0) {
|
||||
if (ids == null || ids.size() == 0) {
|
||||
return;
|
||||
}
|
||||
List<PdmProduceWorkorder> list = this.list(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.ne("workorder_status", WorkerOrderEnum.SEND.getCode())
|
||||
.in("workorder_id", ids));
|
||||
if(list.size() > 0) {
|
||||
.ne("workorder_status", WorkerOrderEnum.SEND.getCode())
|
||||
.in("workorder_id", ids));
|
||||
if (list.size() > 0) {
|
||||
throw new BadRequestException("只有下发状态的工单才能取消下发");
|
||||
}
|
||||
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
||||
.set("workorder_status", WorkerOrderEnum.CREATE.getCode())
|
||||
.set("down_id", SecurityUtils.getCurrentUserId())
|
||||
.set("down_name", SecurityUtils.getCurrentNickName())
|
||||
.set("down_time", new Date())
|
||||
.in("workorder_id", ids));
|
||||
.set("workorder_status", WorkerOrderEnum.CREATE.getCode())
|
||||
.set("down_id", SecurityUtils.getCurrentUserId())
|
||||
.set("down_name", SecurityUtils.getCurrentNickName())
|
||||
.set("down_time", new Date())
|
||||
.in("workorder_id", ids));
|
||||
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0]));
|
||||
}
|
||||
|
||||
@@ -250,44 +227,42 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finish(JSONObject param) {
|
||||
//强制完成时修改工单状态
|
||||
String workorder_id = param
|
||||
.getJSONObject("row")
|
||||
.getString("workorder_id");
|
||||
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
||||
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
||||
.set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())
|
||||
.set("confirm_id", SecurityUtils.getCurrentUserId())
|
||||
.set("confirm_name", SecurityUtils.getCurrentNickName())
|
||||
.set("confirm_time", new Date())
|
||||
.in("workorder_id", workorder_id));
|
||||
.set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())
|
||||
.set("confirm_id", SecurityUtils.getCurrentUserId())
|
||||
.set("confirm_name", SecurityUtils.getCurrentNickName())
|
||||
.set("confirm_time", new Date())
|
||||
.in("workorder_id", workorder_id));
|
||||
JSONArray array = new JSONArray();
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("workorder_id", workorder_id);
|
||||
map.put("type", WorkerOrderEnum.COMPLETE.getCode());
|
||||
array.add(map);
|
||||
Map<String,Object> result = wmsToAcsService.orderStatusUpdate(array);
|
||||
if(!HttpStatus.OK.equals(result.get("status"))) {
|
||||
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
||||
if (!HttpStatus.OK.equals(result.get("status"))) {
|
||||
log.error((String) result.get("message"));
|
||||
}
|
||||
this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id);
|
||||
}
|
||||
|
||||
|
||||
//public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) {
|
||||
// List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids));
|
||||
// for (PdmProduceWorkorder one : workorders) {
|
||||
// WorkorderRecord record = WorkorderRecord.builder()
|
||||
// .workorder_id(one.getWorkorder_id())
|
||||
// .device_code(one.getDevice_code())
|
||||
// .dq_init_qty(one.getReal_qty())
|
||||
// .dq_finish_qty(one.getReal_qty())
|
||||
// .operatetime_start(one.getCreate_time())
|
||||
// .workprocedure_id(one.getWorkprocedure_id())
|
||||
// .operatetime_end(DateUtil.now())
|
||||
// .shift_type_scode(one.getShift_type_scode())
|
||||
// .product_area(one.getProduct_area()).build();
|
||||
// OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record);
|
||||
// }
|
||||
// }
|
||||
public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) {
|
||||
// List<PdmProduceWorkorder> workorders = this.list(new QueryWrapper<PdmProduceWorkorder>().in("workorder_id", ids));
|
||||
// for (PdmProduceWorkorder one : workorders) {
|
||||
// WorkorderRecord record = WorkorderRecord.builder()
|
||||
// .workorder_id(one.getWorkorder_id())
|
||||
// .device_code(one.getDevice_code())
|
||||
// .dq_init_qty(one.getReal_qty())
|
||||
// .dq_finish_qty(one.getReal_qty())
|
||||
// .operatetime_start(one.getCreate_time())
|
||||
// .workprocedure_id(one.getWorkprocedure_id())
|
||||
// .operatetime_end(DateUtil.now())
|
||||
// .shift_type_scode(one.getShift_type_scode())
|
||||
// .product_area(one.getProduct_area()).build();
|
||||
// OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(), OptionRecord.Buss.WORKORDER, one.getWorkorder_id(), record);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -423,8 +398,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
workorder.setMaterial_id(mdMeMaterialbases.get(0).getMaterial_id());
|
||||
}else {
|
||||
Optional<MdMeMaterialbase> first = mdMeMaterialbases.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S")
|
||||
&& Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1))
|
||||
).findFirst();
|
||||
&& Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1))
|
||||
).findFirst();
|
||||
if (first.isPresent()){
|
||||
workorder.setMaterial_id(first.get().getMaterial_id());
|
||||
}else {
|
||||
@@ -545,8 +520,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
workorder.setMaterial_id(mdMeMaterialbases.get(0).getMaterial_id());
|
||||
}else {
|
||||
Optional<MdMeMaterialbase> first = mdMeMaterialbases.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S")
|
||||
&& Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1))
|
||||
).findFirst();
|
||||
&& Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1))
|
||||
).findFirst();
|
||||
if (first.isPresent()){
|
||||
workorder.setMaterial_id(first.get().getMaterial_id());
|
||||
}else {
|
||||
@@ -562,8 +537,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
} else {
|
||||
List<String> workprocedures = data.stream().map(PdmProduceWorkorder::getWorkprocedure_id).collect(Collectors.toList());
|
||||
List<PdmBiDevice> list = deviceService.list(new QueryWrapper<PdmBiDevice>()
|
||||
.in("workprocedure_id", workprocedures)
|
||||
);
|
||||
.in("workprocedure_id", workprocedures)
|
||||
);
|
||||
Map<String, List<PdmBiDevice>> listMap = list.stream().collect(Collectors.groupingBy(PdmBiDevice::getWorkprocedure_id));
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
PdmProduceWorkorder item = data.get(i);
|
||||
@@ -616,9 +591,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
//1-创建、2-下发、3-生产中、4-暂停、6-完成
|
||||
//判断该工单状态
|
||||
PdmProduceWorkorder result = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("device_code", param.getString("device_code"))
|
||||
.in("workorder_status", "3", "4")
|
||||
.ne("workorder_id", param.getString("workorder_id")));
|
||||
.eq("device_code", param.getString("device_code"))
|
||||
.in("workorder_status", "3", "4")
|
||||
.eq("is_delete",false)
|
||||
.ne("workorder_id", param.getString("workorder_id")));
|
||||
if (ObjectUtil.isNotEmpty(result)) {
|
||||
throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!");
|
||||
}
|
||||
@@ -626,9 +602,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
|
||||
JSONObject order = packageForm(param);
|
||||
//开工时更新设备生产的物料规格
|
||||
// deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
// .set("spec",order.getString("material_spec"))
|
||||
// .eq("device_code",order.getString("device_code")));
|
||||
// deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
// .set("spec",order.getString("material_spec"))
|
||||
// .eq("device_code",order.getString("device_code")));
|
||||
array.add(order);
|
||||
//下发acs
|
||||
PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
@@ -643,7 +619,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
throw new BadRequestException("当前工单存在未报工的报工记录,请先进行报工");
|
||||
}
|
||||
Map<String, Object> resp = wmsToAcsService.order(array);
|
||||
if (HttpStatus.BAD_REQUEST.value() == (int)resp.get("status")) {
|
||||
String status = String.valueOf(resp.get("status"));
|
||||
if (!status.equals("200")) {
|
||||
throw new BadRequestException(resp.get("message") != null ? String.valueOf(resp.get("message")) : "acs反馈异常");
|
||||
}
|
||||
return RestBusinessTemplate.execute(() -> resp);
|
||||
@@ -694,11 +671,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
|
||||
PdmProduceWorkorder workorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
Assert.notNull(workorder, "当前工单不存在");
|
||||
// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.AUTO_COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) {
|
||||
// throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工");
|
||||
// }
|
||||
// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.AUTO_COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) {
|
||||
// throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工");
|
||||
// }
|
||||
PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper<PdmProduceWorkorderrecord>()
|
||||
.eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成")));
|
||||
.eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成")));
|
||||
Assert.notNull(one, param.getString("workorder_id") + "当前工单没有生成状态的报工记录");
|
||||
workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty")));
|
||||
if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) {
|
||||
@@ -716,11 +693,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
workorder.setReal_qty(null);
|
||||
this.updateById(workorder);
|
||||
reportRecordService.update(new UpdateWrapper<PdmProduceWorkorderrecord>()
|
||||
.set("report_qty", param.getBigDecimal("report_qty"))
|
||||
.set("report_status", ReportEnum.REPORT_STATUS.code("报工"))
|
||||
.set("operatetime_end",DateUtil.now())
|
||||
.set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue()))
|
||||
.eq("macoperate_id", one.getMacoperate_id()));
|
||||
.set("report_qty", param.getBigDecimal("report_qty"))
|
||||
.set("report_status", ReportEnum.REPORT_STATUS.code("报工"))
|
||||
.set("operatetime_end",DateUtil.now())
|
||||
.set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue()))
|
||||
.eq("macoperate_id", one.getMacoperate_id()));
|
||||
return one.getMacoperate_id();
|
||||
}
|
||||
|
||||
@@ -845,8 +822,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map> getOrderList(Map<String,String> param, Pageable page) {
|
||||
public List<Map> getOrderList(Map<String, String> param, Pageable page) {
|
||||
return this.baseMapper.orderList(param);
|
||||
}
|
||||
|
||||
@@ -854,9 +832,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
public void updateReport(JSONObject param) {
|
||||
Assert.notNull(param, "参数不能为空");
|
||||
PdmProduceWorkorderrecord record = reportRecordService.getOne(new QueryWrapper<PdmProduceWorkorderrecord>()
|
||||
.eq("macoperate_id", param.getString("macoperate_id")));
|
||||
.eq("macoperate_id", param.getString("macoperate_id")));
|
||||
PdmProduceWorkorder workorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_id", record.getWorkorder_id()));
|
||||
.eq("workorder_id", record.getWorkorder_id()));
|
||||
if (!workorder.getIs_canupdate_update()) {
|
||||
throw new BadRequestException("当前工单设置为不允许修改报工记录");
|
||||
}
|
||||
@@ -869,6 +847,6 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
}
|
||||
updateWrapper.set("report_qty", param.getBigDecimal("report_qty"));
|
||||
reportRecordService.update(updateWrapper
|
||||
.eq("macoperate_id", param.getString("macoperate_id")));
|
||||
.eq("macoperate_id", param.getString("macoperate_id")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,11 @@ package org.nl.wms.scheduler_manage.controller.point;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.wms.product_manage.sch.service.PointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
@@ -32,9 +34,6 @@ import java.util.Map;
|
||||
@RequestMapping("/api/point")
|
||||
public class SchBasePointController {
|
||||
|
||||
@Autowired
|
||||
private PointService pointService;
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService basePointService;
|
||||
@Autowired
|
||||
@@ -125,7 +124,22 @@ public class SchBasePointController {
|
||||
@Log("查询刻字点位")
|
||||
@ApiOperation("查询点位")
|
||||
public ResponseEntity<Object> queryVehicle(@RequestParam Map whereJson, PageQuery page) {
|
||||
return new ResponseEntity<>(basePointService.queryVehicle(whereJson,page), HttpStatus.OK);
|
||||
return new ResponseEntity<>(basePointService.queryPointMaterial(whereJson,page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/setEmp")
|
||||
@Log("设置点位为空")
|
||||
@ApiOperation("设置点位为空")
|
||||
public ResponseEntity<Object> setEmp(@RequestBody Long[] ids) {
|
||||
if (ids.length>0){
|
||||
basePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type","0")
|
||||
.set("material_id","")
|
||||
.set("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode())
|
||||
.set("qty",0)
|
||||
.in("point_id",ids));
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,10 +22,12 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
|
||||
Object queryAll(Map whereJson, PageQuery page);
|
||||
|
||||
Object queryVehicle(Map whereJson, PageQuery page);
|
||||
Object queryPointMaterial(Map whereJson, PageQuery page);
|
||||
|
||||
List<Map<String,String>> queryVehicle(Map query);
|
||||
|
||||
List<Map<String,String>> queryPointMaterial(Map query);
|
||||
|
||||
/**
|
||||
*
|
||||
* 获取点位
|
||||
|
||||
@@ -78,7 +78,11 @@ public class SchBasePoint implements Serializable {
|
||||
/**
|
||||
* 物料标识
|
||||
*/
|
||||
private Long material_id;
|
||||
private String material_id;
|
||||
/**
|
||||
* 物料数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
@@ -158,7 +162,7 @@ public class SchBasePoint implements Serializable {
|
||||
/**
|
||||
* 在执行的任务标识
|
||||
*/
|
||||
private Long task_id;
|
||||
private String task_id;
|
||||
|
||||
/**
|
||||
* 位置
|
||||
|
||||
@@ -24,6 +24,7 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
||||
List<Map> queryAll(Map<String,Object> map);
|
||||
|
||||
List<Map> queryVehicle(Map<String,Object> map);
|
||||
List<Map> queryPointMaterial(Map<String,Object> map);
|
||||
|
||||
/**
|
||||
* 点位管理页面查询
|
||||
|
||||
@@ -209,4 +209,63 @@
|
||||
</if>
|
||||
|
||||
</select>
|
||||
<select id="queryPointMaterial" resultType="java.util.Map">
|
||||
SELECT
|
||||
point.*,
|
||||
d3.label as lock_type_name,
|
||||
region.region_name,
|
||||
ma.material_name,
|
||||
ma.material_code,
|
||||
ma.material_spec
|
||||
FROM
|
||||
sch_base_point point
|
||||
LEFT JOIN SCH_BASE_Region region ON point.region_code = region.region_code
|
||||
LEFT JOIN sys_dict d3 ON point.lock_type = d3.value and d3.code='d_lock_type'
|
||||
LEFT JOIN md_me_materialbase ma ON ma.material_id = point.material_id
|
||||
WHERE
|
||||
point.is_delete = '0'
|
||||
<if test="region_code != null and region_code != ''">
|
||||
and point.region_code = #{region_code}
|
||||
</if>
|
||||
<if test="material_id != null and material_id != ''">
|
||||
and vehicle.material_id = #{material_id}
|
||||
</if>
|
||||
<if test="material_null != null and material_null != ''">
|
||||
point.vehicle_code is not null and point.vehicle_code <![CDATA[<>]]> ''
|
||||
and point.qty > 0
|
||||
</if>
|
||||
<if test="point_type != null and point_type != ''">
|
||||
and point.point_type = #{point_type}
|
||||
</if>
|
||||
<if test="lock_type != null and lock_type != ''">
|
||||
and point.lock_type = #{lock_type}
|
||||
</if>
|
||||
<if test="product_area != null and product_area != ''">
|
||||
and point.product_area = #{product_area}
|
||||
</if>
|
||||
<if test="point_status != null and point_status != ''">
|
||||
and point.point_status = #{point_status}
|
||||
</if>
|
||||
<if test="point_status == '00'">
|
||||
and (point.vehicle_code is null or point.vehicle_code = '')
|
||||
</if>
|
||||
<if test="is_used != null and is_used != ''">
|
||||
and point.is_used = #{is_used}
|
||||
</if>
|
||||
<if test="block_num != null and block_num != ''">
|
||||
and point.block_num = #{block_num}
|
||||
</if>
|
||||
<if test="row_num != null and row_num != ''">
|
||||
and point.row_num = #{row_num}
|
||||
</if>
|
||||
<if test="col_num != null and col_num != ''">
|
||||
and point.col_num = #{col_num}
|
||||
</if>
|
||||
<if test="layer_num != null and layer_num != ''">
|
||||
and point.layer_num = #{layer_num}
|
||||
</if>
|
||||
<if test="name != null and name != ''">
|
||||
and ( point.point_code like '%${name}' or point.point_name like '%${name}' )
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -99,19 +99,10 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return build;
|
||||
}
|
||||
@Override
|
||||
public Object queryVehicle(Map whereJson, PageQuery pageQuery) {
|
||||
public Object queryPointMaterial(Map whereJson, PageQuery pageQuery) {
|
||||
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
|
||||
page.setOrderBy("point_code asc");
|
||||
List<Map<String, String>> list = this.queryVehicle(whereJson);
|
||||
list.forEach(a->{
|
||||
a.put("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode());
|
||||
if (a.get("vehicle_code")!=null){
|
||||
a.put("point_status",StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode());
|
||||
};
|
||||
if (a.get("material_spec")!=null){
|
||||
a.put("point_status",StatusEnum.POINT_STATUS_FULL.getCode());
|
||||
};
|
||||
});
|
||||
List<Map<String, String>> list = this.queryPointMaterial(whereJson);
|
||||
TableDataInfo build = TableDataInfo.build(list);
|
||||
build.setTotalElements(page.getTotal());
|
||||
return build;
|
||||
@@ -122,6 +113,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return schBasePointMapper.queryVehicle(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String,String>> queryPointMaterial(Map query) {
|
||||
return schBasePointMapper.queryPointMaterial(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object selectPoint(Map query, PageQuery pageQuery) {
|
||||
Page<Object> page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize());
|
||||
|
||||
@@ -8,13 +8,11 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.BaseCode;
|
||||
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.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.wash.WashSendMaterialTask;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
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.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||
import org.slf4j.MDC;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.nl.wms.scheduler_manage.service.task;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@@ -24,4 +26,6 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
void operation(Map<String, Object> param);
|
||||
|
||||
List<Map> queryAll(Map query);
|
||||
|
||||
JSONObject createMoveTask(String start, String end, AcsTaskEnum taskEnum, AcsTaskEnum acstype);
|
||||
}
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
package org.nl.wms.scheduler_manage.service.task.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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 org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
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.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
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.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -40,6 +45,8 @@ import java.util.Map;
|
||||
@Service
|
||||
public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBaseTask> implements ISchBaseTaskService {
|
||||
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private AcsToWmsService acsToWmsService;
|
||||
@@ -59,23 +66,28 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
String task_id = MapUtil.getStr(map, "task_id");
|
||||
String method_name = MapUtil.getStr(map, "method_name");
|
||||
SchBaseTask taskObj = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||
if (taskObj.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
throw new BadRequestException("任务已完成!不允许下发");
|
||||
}
|
||||
|
||||
switch (method_name) { // forceFinish, cancel
|
||||
case "immediateNotifyAcs":
|
||||
if (!taskObj.getTask_status().equals(TaskStatusEnum.START_AND_POINT.getCode())){
|
||||
if (Integer.valueOf(taskObj.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
||||
try {
|
||||
AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(taskObj.getHandle_class()));
|
||||
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(taskObj));
|
||||
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||
JSONArray array = new JSONArray();
|
||||
array.add(JSON.toJSON(task));
|
||||
wms.issueTaskToAcs(array);
|
||||
Map<String, Object> result = wms.issueTaskToAcs(array);
|
||||
String status = String.valueOf(result.get("status"));
|
||||
if (!status.equals("200")) {
|
||||
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
||||
}
|
||||
}catch (Exception ex){
|
||||
taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskObj.setRemark(ex.getMessage());
|
||||
taskObj.setUpdate_time(new Date());
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||
.in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2()));
|
||||
this.updateById(taskObj);
|
||||
}
|
||||
}
|
||||
@@ -93,12 +105,18 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
.eq("task_id", task_id));
|
||||
break;
|
||||
case "cancel":
|
||||
JSONArray cancel = new JSONArray();
|
||||
JSONObject res2 = new JSONObject();
|
||||
res2.put("task_id", task_id);
|
||||
res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode());
|
||||
cancel.add(res2);
|
||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
|
||||
if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_PUBLISH.getCode())){
|
||||
JSONArray cancel = new JSONArray();
|
||||
JSONObject res2 = new JSONObject();
|
||||
res2.put("task_id", task_id);
|
||||
res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode());
|
||||
cancel.add(res2);
|
||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
|
||||
}else {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'");
|
||||
}
|
||||
|
||||
break;
|
||||
case "delete":
|
||||
SchBaseTask one = getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||
@@ -119,4 +137,34 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject createMoveTask(String start, String end, AcsTaskEnum taskEnum, AcsTaskEnum acstype) {
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
task.put("task_name", taskEnum.getDesc());
|
||||
task.put("task_type", taskEnum.getCode());
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("acs_task_type", acstype.getCode());
|
||||
task.put("material_id", "");
|
||||
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code3", end);
|
||||
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", "");
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code1",start);
|
||||
task.put("task_status",StatusEnum.TASK_START_END_P.getCode());
|
||||
task.put("task_group_id", IdUtil.getStringId());
|
||||
return task;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,10 +38,8 @@ public class SysDictController {
|
||||
|
||||
private final ISysDictService dictService;
|
||||
|
||||
@Log("查询字典")
|
||||
@GetMapping
|
||||
@ApiOperation("查询字典")
|
||||
// @SaCheckPermission("dict:list")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery pageable){
|
||||
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK);
|
||||
}
|
||||
@@ -49,7 +47,6 @@ public class SysDictController {
|
||||
@Log("新增字典")
|
||||
@PostMapping
|
||||
@ApiOperation("新增字典")
|
||||
// @SaCheckPermission("dict:add")
|
||||
public ResponseEntity<Object> create(@RequestBody Dict dict){
|
||||
dictService.create(dict);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
@@ -112,13 +109,11 @@ public class SysDictController {
|
||||
@Log("删除字典详情")
|
||||
@ApiOperation("删除字典详情")
|
||||
@DeleteMapping(value = "/dictDetail/{id}")
|
||||
// @SaCheckPermission("dict:del")
|
||||
public ResponseEntity<Object> deleteDetail(@PathVariable String id){
|
||||
dictService.deleteDetail(id);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("查询字典详情")
|
||||
@ApiOperation("查询字典详情")
|
||||
@PostMapping("/dictDetailByCode")
|
||||
@SaIgnore
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -96,14 +97,13 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, Dict> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteBatchByIds(Set<String> ids) {
|
||||
// 查找code删除
|
||||
ids.forEach(id -> {
|
||||
String code = sysDictMapper.selectById(id).getCode();
|
||||
sysDictMapper.delete(new LambdaQueryWrapper<Dict>().eq(Dict::getCode, code));
|
||||
});
|
||||
}
|
||||
if (ids.size()>0){
|
||||
List<Dict> dicts = this.list(new QueryWrapper<Dict>().in("dict_id", ids));
|
||||
this.remove(new QueryWrapper<Dict>().in("code",dicts.stream().map(Dict::getCode).collect(Collectors.toSet())));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<Dict> queryAllDetail(DictQuery criteria, PageQuery page) {
|
||||
|
||||
@@ -61,10 +61,6 @@ public class PdmQlOption implements Serializable {
|
||||
*/
|
||||
private String create_time;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String create_id;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
||||
@@ -0,0 +1,203 @@
|
||||
server:
|
||||
port: 8011
|
||||
#配置数据源
|
||||
spring:
|
||||
data:
|
||||
elasticsearch:
|
||||
repositories:
|
||||
enabled: true
|
||||
client:
|
||||
reactive:
|
||||
#endpoints: 172.31.185.110:8200,172.31.154.9:8200 #内网
|
||||
# endpoints: 47.96.133.178:8200 #外网
|
||||
endpoints: http://127.0.0.1:9200 #外网
|
||||
elasticsearch:
|
||||
rest:
|
||||
#uris: 172.31.185.110:8200,172.31.154.9:8200 #内网
|
||||
# uris: 47.96.133.178:8200 #外网
|
||||
uris: http://127.0.0.1:9200 #外网
|
||||
# username: elastic
|
||||
# password: 123456
|
||||
datasource:
|
||||
druid:
|
||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||
username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:123456}
|
||||
password: ${DB_PWD:942464Yy}
|
||||
|
||||
# 初始连接数
|
||||
initial-size: 5
|
||||
# 最小连接数
|
||||
min-idle: 15
|
||||
# 最大连接数
|
||||
max-active: 30
|
||||
# 是否自动回收超时连接
|
||||
remove-abandoned: true
|
||||
# 超时时间(以秒数为单位)
|
||||
remove-abandoned-timeout: 180
|
||||
# 获取连接超时时间
|
||||
max-wait: 3000
|
||||
# 连接有效性检测时间
|
||||
time-between-eviction-runs-millis: 60000
|
||||
# 连接在池中最小生存的时间
|
||||
min-evictable-idle-time-millis: 300000
|
||||
# 连接在池中最大生存的时间
|
||||
max-evictable-idle-time-millis: 900000
|
||||
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
|
||||
test-while-idle: true
|
||||
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
|
||||
test-on-borrow: true
|
||||
# 是否在归还到池中前进行检验
|
||||
test-on-return: false
|
||||
# 检测连接是否有效
|
||||
validation-query: select 1
|
||||
# 配置监控统计
|
||||
webStatFilter:
|
||||
enabled: true
|
||||
stat-view-servlet:
|
||||
enabled: true
|
||||
url-pattern: /druid/*
|
||||
reset-enable: false
|
||||
filters:
|
||||
DruidFilter,stat
|
||||
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:1}
|
||||
#host: ${REDIS_HOST:127.0.0.1}
|
||||
host: ${REDIS_HOST:localhost}
|
||||
port: ${REDIS_PORT:6379}
|
||||
password: ${REDIS_PWD:}
|
||||
#连接超时时间
|
||||
timeout: 5000
|
||||
redisson:
|
||||
config: |
|
||||
threads: 4
|
||||
nettyThreads: 4
|
||||
singleServerConfig:
|
||||
connectionMinimumIdleSize: 8
|
||||
connectionPoolSize: 8
|
||||
address: redis://127.0.0.1:6379
|
||||
idleConnectionTimeout: 10000
|
||||
timeout: 3000
|
||||
# 登录相关配置
|
||||
login:
|
||||
# 登录缓存
|
||||
cache-enable: true
|
||||
# 是否限制单用户登录
|
||||
single-login: false
|
||||
# 验证码
|
||||
login-code:
|
||||
# 验证码类型配置 查看 LoginProperties 类
|
||||
code-type: arithmetic
|
||||
# 登录图形验证码有效时间/分钟
|
||||
expiration: 2
|
||||
# 验证码高度
|
||||
width: 111
|
||||
# 验证码宽度
|
||||
heigth: 36
|
||||
# 内容长度
|
||||
length: 2
|
||||
# 字体名称,为空则使用默认字体
|
||||
font-name:
|
||||
# 字体大小
|
||||
font-size: 25
|
||||
|
||||
#jwt
|
||||
jwt:
|
||||
header: Authorization
|
||||
# 令牌前缀
|
||||
token-start-with: Bearer
|
||||
# 必须使用最少88位的Base64对该令牌进行编码
|
||||
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
|
||||
# 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
|
||||
token-validity-in-seconds: 14400000
|
||||
# 在线用户key
|
||||
online-key: online-token-
|
||||
# 验证码
|
||||
code-key: code-key-
|
||||
# token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
|
||||
detect: 1800000
|
||||
# 续期时间范围,默认1小时,单位毫秒
|
||||
renew: 3600000
|
||||
|
||||
#是否允许生成代码,生产环境设置为false
|
||||
generator:
|
||||
enabled: true
|
||||
|
||||
#是否开启 swagger-ui
|
||||
swagger:
|
||||
enabled: true
|
||||
|
||||
# IP 本地解析
|
||||
ip:
|
||||
local-parsing: true
|
||||
|
||||
# 文件存储路径
|
||||
file:
|
||||
mac:
|
||||
path: ~/file/
|
||||
avatar: ~/avatar/
|
||||
linux:
|
||||
path: /home/eladmin/file/
|
||||
avatar: /home/eladmin/avatar/
|
||||
windows:
|
||||
path: C:\eladmin\file\
|
||||
avatar: C:\eladmin\avatar\
|
||||
# 文件大小 /M
|
||||
maxSize: 100
|
||||
avatarMaxSize: 5
|
||||
|
||||
sa-token:
|
||||
# token 名称 (同时也是cookie名称)
|
||||
token-name: Authorization
|
||||
# token 有效期,单位s 默认30天, -1代表永不过期
|
||||
timeout: 2592000
|
||||
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||
activity-timeout: -1
|
||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||
is-share: false
|
||||
# token风格
|
||||
token-style: random-128
|
||||
# 是否输出操作日志
|
||||
is-log: false
|
||||
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
|
||||
# token 前缀
|
||||
token-prefix:
|
||||
cookie:
|
||||
# 配置 Cookie 作用域:根据二级域名实现sso登入如lms.sso.com;acs.sso.com
|
||||
domain:
|
||||
is-read-cookie: false
|
||||
|
||||
#jetcache:
|
||||
# defaultCacheType: LOCAL
|
||||
# statIntervalMinutes: 15
|
||||
# areaInCacheName: false
|
||||
# hiddenPackages: com.yb
|
||||
# local:
|
||||
# default:
|
||||
# type: caffeine
|
||||
# limit: 100
|
||||
# keyConvertor: fastjson
|
||||
# expireAfterWriteInMillis: 60000
|
||||
# remote:
|
||||
# default:
|
||||
# type: redis.lettuce
|
||||
# keyConvertor: fastjson
|
||||
# valueEncoder: kryo
|
||||
# valueDecoder: kryo
|
||||
# poolConfig:
|
||||
# minIdle: 5
|
||||
# maxIdle: 200
|
||||
# maxTotal: 1000
|
||||
# uri:
|
||||
# - redis://127.0.0.1:6379
|
||||
es:
|
||||
index: mes_log
|
||||
schedulerFile: /Users/mima0000/Desktop/scheduler.xml
|
||||
Reference in New Issue
Block a user