add:清洗代码
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package org.nl.common.domain;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@FunctionalInterface
|
||||
public
|
||||
interface ReturnLockProcess<T> {
|
||||
T process() throws IOException;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public enum AcsTaskEnum {
|
||||
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_SEND_MATERIAL("7","储料仓上料"),//深坑->清洗:相同物料的重量<150公斤;
|
||||
REQUEST_WASH_FULL("9","清洗机器满料请求"),//清洗机满料请求//去半成品入库
|
||||
REQUEST_WASH_EMP("10","清洗机器空框请求"),//清洗机下料位
|
||||
REQUEST_WASH_FULL_ERROR("11","清洗机-满料异常请求"),//去半成品入库 异常位
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.common.utils;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
import org.nl.common.domain.LockProcess;
|
||||
import org.nl.common.domain.ReturnLockProcess;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.redisson.api.RLock;
|
||||
@@ -42,4 +43,28 @@ public class RedissonUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static<T> T lockAndReturn(ReturnLockProcess<T> process, String key, Integer seconds){
|
||||
RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class);
|
||||
RLock lock = redissonClient.getLock(key);
|
||||
boolean isLock;
|
||||
if (seconds == null){
|
||||
isLock = lock.tryLock();
|
||||
}else {
|
||||
isLock = lock.tryLock(seconds, TimeUnit.SECONDS);
|
||||
}
|
||||
try {
|
||||
if (isLock){
|
||||
T result = process.process();
|
||||
return result;
|
||||
} else {
|
||||
throw new BadRequestException("当前业务 key:"+key+"正在执行请稍后再试");
|
||||
}
|
||||
}finally {
|
||||
if (isLock){
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext_manage.acs.service.impl.AcsToWmsServiceImpl;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.SpeMachinery.SpeEmpTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.SpeMachinery.SpeFullTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.WashMachineryTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashMachineryTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashCallEmptyTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.packageWrap.WrapCallMaterialTask;
|
||||
@@ -27,7 +27,7 @@ public class ConventConfig implements SmartLifecycle {
|
||||
public void start() {
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_FULL, SpringContextHolder.getBean(SpeFullTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_EMP, SpringContextHolder.getBean(SpeEmpTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||
// AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class));
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.nl.common.utils.api.ResultCode;
|
||||
import org.nl.modules.common.exception.BizCoreException;
|
||||
import org.nl.wms.ext_manage.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.TaskScheduleService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.WashMachineryTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashMachineryTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -73,11 +73,10 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>(acsToWmsService.orderStatus(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/washOrder")
|
||||
@PostMapping("/washTask")
|
||||
@Log("ACS给WMS反馈清洗工单完成")
|
||||
//("ACS给WMS反馈清洗工单完成")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> washOrderFinish(@RequestBody JSONObject param) {
|
||||
public ResponseEntity<Object> washTaskFinish(@RequestBody JSONObject param) {
|
||||
washMachineryTask.updateTaskStatus( param, param.getString("status"));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.nl.wms.ext_manage.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.pda_manage.pda.service.CacheLineHandService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.nl.wms.scheduler_manage.service.task.TaskService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.WashMachineryTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashMachineryTask;
|
||||
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;
|
||||
|
||||
@@ -5,9 +5,12 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.LockProcess;
|
||||
import org.nl.common.domain.ReturnLockProcess;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
@@ -25,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -79,7 +83,7 @@ public class AgvInstService {
|
||||
task.put("task_type",AcsTaskEnum.TASK_PRODUCT_WASH.getCode());
|
||||
task.put("task_name",AcsTaskEnum.TASK_PRODUCT_WASH.getDesc());
|
||||
// query.put("qty",quantity) 深坑物料需要转重量
|
||||
collect = deviceService.workproceduceDevicesWeight(query);
|
||||
collect = RedissonUtils.lockAndReturn((ReturnLockProcess<List<Map<String, String>>>) () -> deviceService.workproceduceDevicesWeight(query), "allocation:A1_SKQX", 2);
|
||||
}else {
|
||||
collect = deviceService.workproceduceDevicesQty(query);
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
|
||||
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
|
||||
, "is_send", task.getBoolean("is_send")?"1":"0"
|
||||
, "vehicle_code", task.getString("vehicle_code")
|
||||
, "in_pcsn", task.getString("task_code")
|
||||
, "agv_system_type", task.getString("agv_system_type")
|
||||
));
|
||||
form.add(param);
|
||||
|
||||
@@ -271,7 +271,6 @@ public class WmsToSapServiceImpl implements WmsToSapService {
|
||||
String material_code = row.getString("Matnr").replaceAll("^(0+)", "");
|
||||
//获取物料对应的物料标识
|
||||
MdMeMaterialbase mater_jo = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
|
||||
deliver_jo.setMaterial_code(material_code);
|
||||
if (ObjectUtil.isEmpty(mater_jo)) {
|
||||
deliver_jo.setMaterial_id("");
|
||||
deliver_jo.setIs_success("0");
|
||||
|
||||
@@ -48,7 +48,6 @@ public class PcsDeliveryOrder implements Serializable {
|
||||
* 物料标识
|
||||
*/
|
||||
private String material_id;
|
||||
private String material_code;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
deliveryorder.*,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec,
|
||||
unit.unit_name
|
||||
FROM
|
||||
PCS_delivery_order deliveryorder
|
||||
@@ -18,7 +19,7 @@
|
||||
and deliveryorder.deliver_code like '%${deliver_code}%'
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
and deliveryorder.sale_code = #{status}
|
||||
and deliveryorder.status = #{status}
|
||||
</if>
|
||||
<if test="product_series != null and product_series != ''">
|
||||
and material.product_series in ${product_series}
|
||||
|
||||
@@ -0,0 +1,253 @@
|
||||
package org.nl.wms.pda_manage.pda.controller;
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/7/12 21:13
|
||||
*/
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
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.service.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashMachineryTask;
|
||||
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.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RestController
|
||||
@Api(tags = "成品手持服务")
|
||||
@RequestMapping("/api/pda/wash")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class PdaWashController {
|
||||
|
||||
private static double LIMIT_WEIGHT = 150000L;
|
||||
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
private IPdmBiDeviceService iDeviceService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private WashMachineryTask washMachineryTask;
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
|
||||
@PostMapping("/specList")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> queryAll(@RequestBody JSONObject whereJson){
|
||||
List<Map> specs = new ArrayList<>();
|
||||
List<PdmBiDevice> list = iDeviceService.list(new QueryWrapper<PdmBiDevice>()
|
||||
.eq("workprocedure_id", "1535144552481034240")
|
||||
.eq("is_used", true)
|
||||
.ne("material_id", "")
|
||||
.isNotNull("material_id"));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
Set materials = list.stream().map(a->a.getMaterial_id()).collect(Collectors.toSet());
|
||||
List<MdMeMaterialbase> materialbases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>()
|
||||
.in("material_id", materials));
|
||||
for (MdMeMaterialbase materialbase : materialbases) {
|
||||
Map item = new HashMap<>();
|
||||
item.put("label",materialbase.getMaterial_spec());
|
||||
item.put("value",materialbase.getMaterial_id());
|
||||
specs.add(item);
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(specs),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/query")
|
||||
@Log("深坑物料")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> query(@RequestBody JSONObject query) {
|
||||
//设备
|
||||
QueryWrapper<PdmBiDevice> queryWrapper = new QueryWrapper<PdmBiDevice>()
|
||||
.eq("workprocedure_id", "1535144552481034240")
|
||||
.eq("is_used", true)
|
||||
.eq("product_area",query.getString("product_area"));
|
||||
if (StringUtils.isNotEmpty(query.getString("material_id"))){
|
||||
queryWrapper.eq("material_id",query.getString("material_id"));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(query.getString("device_code"))){
|
||||
queryWrapper.eq("device_code",query.getString("device_code"));
|
||||
}
|
||||
List<Map<String, Object>> list = iDeviceService.listMaps(queryWrapper);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
Set materials = list.stream().map(a->a.get("material_id")).collect(Collectors.toSet());
|
||||
Set devices = list.stream().map(a->a.get("device_code")).collect(Collectors.toSet());
|
||||
HashMap<String, SchBaseTask> taskMap = taskService.list(new QueryWrapper<SchBaseTask>().in("point_code2", devices)
|
||||
.eq("task_status", StatusEnum.TASK_RUNNING.getCode()))
|
||||
.stream().collect(HashMap::new, (k, v) -> k.put(v.getPoint_code2(), v), HashMap::putAll);
|
||||
Map<String, MdMeMaterialbase> materialMap = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>()
|
||||
.in("material_id", materials))
|
||||
.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll);
|
||||
for (Map pdmBiDevice : list) {
|
||||
MdMeMaterialbase materialbase = materialMap.get(pdmBiDevice.get("material_id"));
|
||||
SchBaseTask baseTask = taskMap.get(pdmBiDevice.get("device_code"));
|
||||
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():"");
|
||||
pdmBiDevice.put("task_code",baseTask!=null?baseTask.getTask_code():"");
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/submitWash")
|
||||
@Log("提交清洗")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> submitWash(@RequestBody String[] devices) {
|
||||
if (devices.length>0){
|
||||
List<PdmBiDevice> list = iDeviceService.list(new QueryWrapper<PdmBiDevice>()
|
||||
.eq("workprocedure_id", "1535144552481034240")
|
||||
.in("device_code", devices));
|
||||
Set<String> collect = list.stream().map(PdmBiDevice::getMaterial_id).collect(Collectors.toSet());
|
||||
if (!CollectionUtils.isEmpty(collect)){
|
||||
if (collect.size()>1){
|
||||
throw new BadRequestException("选择的储料仓必须是相同物料");
|
||||
}
|
||||
double sum = list.stream().mapToDouble(a->a.getDeviceinstor_weight().doubleValue()).sum();
|
||||
if (sum>LIMIT_WEIGHT){
|
||||
throw new BadRequestException("选择的储料仓必物料总重量大于150公斤");
|
||||
}
|
||||
//生成生坑清洗爬坡任务
|
||||
try {
|
||||
JSONObject param = new JSONObject(MapOf.of("devices", list));
|
||||
RedissonUtils.lock( () -> washMachineryTask.createTask(param), "allocation:A1_SKQX", null);
|
||||
}catch (Exception ex){
|
||||
log.error("清洗上料任务失败:{}",ex);
|
||||
throw new BadRequestException("任务创建失败:"+ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
/*-----------------倒料---------------------*/
|
||||
|
||||
@PostMapping("/weighing")
|
||||
@Log("称重")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> weighing(@RequestBody JSONObject param) {
|
||||
List<String> devices = (List<String>) param.get("list");
|
||||
JSONObject req = new JSONObject();
|
||||
req.put("device_code",devices.get(0));
|
||||
JSONObject result = wmsToAcsService.request(req, "api/wms/handWeigh");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
List<Map> ws = new ArrayList<>();
|
||||
Map map = new HashMap<>();
|
||||
map.put("deviceinstor_weight",StringUtils.isEmpty(result.getString("weight"))?"0":result.getString("weight"));
|
||||
map.put("device_code",devices.get(0));
|
||||
ws.add(map);
|
||||
return new ResponseEntity<>(TableDataInfo.build(ws),HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/weighingFinish")
|
||||
@Log("深坑倒料确认")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> weighingFinish(@RequestBody JSONObject form) {
|
||||
List<Map> list = new ArrayList<>();
|
||||
String device_code = form.getString("device_code");
|
||||
|
||||
MdMeMaterialbase one = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
|
||||
.eq("material_code", form.getString("material_code")));
|
||||
if (one ==null){
|
||||
throw new BadRequestException("当前物料编码不存在"+form.getString("material_code"));
|
||||
}
|
||||
iDeviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("material_id",one.getMaterial_id())
|
||||
.set("remark","")
|
||||
.set("deviceinstor_weight",form.getBigDecimal("deviceinstor_weight"))
|
||||
.eq("device_code",device_code));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/materialList")
|
||||
@Log("物料列表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> materialList(@RequestBody JSONObject query, PageQuery page) {
|
||||
List<Map> list = new ArrayList<>();
|
||||
QueryWrapper<MdMeMaterialbase> queryWrapper = new QueryWrapper<>();
|
||||
if (StringUtils.isNotEmpty(query.getString("material_code"))){
|
||||
queryWrapper.eq("material_code",query.getString("material_code"));
|
||||
}
|
||||
Page<MdMeMaterialbase> result = materialbaseService.page(page.build(),queryWrapper);
|
||||
return new ResponseEntity<>(TableDataInfo.build(result),HttpStatus.OK);
|
||||
}
|
||||
|
||||
/*-----------------清洗下料---------------------*/
|
||||
@PostMapping("/washTasks")
|
||||
@Log("物料列表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> washTasks(@RequestBody JSONObject query) {
|
||||
List<Map<String, Object>> taskMap = taskService.listMaps(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_status", StatusEnum.TASK_FINISH.getCode()).eq("task_step", 2));
|
||||
if (!CollectionUtils.isEmpty(taskMap)){
|
||||
Set materials = taskMap.stream().map(a->a.get("material_id")).collect(Collectors.toSet());
|
||||
Map<String, MdMeMaterialbase> materialMap = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>()
|
||||
.in("material_id", materials))
|
||||
.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll);
|
||||
for (Map task : taskMap) {
|
||||
MdMeMaterialbase materialbase = materialMap.get(task.get("material_id"));
|
||||
task.put("material_name",materialbase!=null?materialbase.getMaterial_name():"");
|
||||
task.put("material_code",materialbase!=null?materialbase.getMaterial_code():"");
|
||||
task.put("material_spec",materialbase!=null?materialbase.getMaterial_spec():"");
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(taskMap),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("//washTaskFinish")
|
||||
@Log("强制完成任务")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> washTaskFinish(@RequestBody JSONObject query) {
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_step",3)
|
||||
.eq("task_id",query.getString("task_id")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/washVechileInfo")
|
||||
@Log("物料列表")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> washVechileInfo(@RequestBody JSONObject query) {
|
||||
JSONObject req = new JSONObject();
|
||||
req.put("device_code","A1_CPQXJ_01_X");
|
||||
JSONObject result = wmsToAcsService.request(req, "api/wms/handWeight");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
List<Object> list = new ArrayList<>();
|
||||
list.add(MapOf.of("weight",result.get("weight"),"vechile_code",result.getString("vechile_code")));
|
||||
return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask;
|
||||
@@ -25,6 +26,7 @@ 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.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@@ -51,7 +53,7 @@ public class TmpKZController {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("deviceinstorQty")
|
||||
@PostMapping("deviceinstorQty")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> deviceinstorQty(@RequestBody JSONObject param){
|
||||
SchBasePoint one = basePointService.getOne(new QueryWrapper<SchBasePoint>()
|
||||
@@ -70,7 +72,7 @@ public class TmpKZController {
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping("callVechile")
|
||||
@PostMapping("callVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> callVechile(@RequestBody JSONObject param){
|
||||
plotterCallEmptyTask.callEmpVechile(param.getString("device_code"));
|
||||
@@ -78,7 +80,7 @@ public class TmpKZController {
|
||||
}
|
||||
|
||||
//鞋料
|
||||
@RequestMapping("kzunload")
|
||||
@PostMapping("kzunload")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> kzunload(@RequestBody JSONObject param) {
|
||||
JSONObject jo = new JSONObject();
|
||||
@@ -89,45 +91,51 @@ public class TmpKZController {
|
||||
}
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("kzresidue")
|
||||
@PostMapping("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", "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"));
|
||||
}
|
||||
RedissonUtils.lock(()->{
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("next_point_code", param.getString("device_code"));
|
||||
jo.put("start_point_code", "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"));
|
||||
}
|
||||
},"kzresidue",null);
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("tmpcallVechile")
|
||||
@PostMapping("tmpcallVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> tmpcallVechile(@RequestBody JSONObject param){
|
||||
JSONObject moveTask =taskService.createMoveTask("A1_BCPRKW_SD", "A1_KZ_SL", 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"));
|
||||
}
|
||||
moveTask.put("task_status",StatusEnum.TASK_PUBLISH.getCode());
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
RedissonUtils.lock(()->{
|
||||
JSONObject moveTask =taskService.createMoveTask("A1_BCPRKW_SD", "A1_KZ_SL", 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"));
|
||||
}
|
||||
moveTask.put("task_status",StatusEnum.TASK_FINISH.getCode());
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
},"刻字上料呼叫载具",null);
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
@RequestMapping("tmpsendVechile")
|
||||
@PostMapping("tmpsendVechile")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> tmpsendVechile(@RequestBody JSONObject param){
|
||||
JSONObject moveTask = taskService.createMoveTask("A1_KZ_SL", "A1_BCPRKW_SD", 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"));
|
||||
}
|
||||
moveTask.put("task_status",StatusEnum.TASK_PUBLISH.getCode());
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
RedissonUtils.lock(()->{
|
||||
JSONObject moveTask = taskService.createMoveTask("A1_KZ_SL", "A1_BCPRKW_SD", 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"));
|
||||
}
|
||||
moveTask.put("task_status",StatusEnum.TASK_FINISH.getCode());
|
||||
taskService.save(moveTask.toJavaObject(SchBaseTask.class));
|
||||
},"刻字上料送载具",null);
|
||||
return new ResponseEntity<>( HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.product_manage.controller.device;
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -15,6 +16,8 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||
import org.nl.wms.product_manage.service.device.dto.DeviceQuery;
|
||||
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
||||
import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure;
|
||||
import org.nl.wms.product_manage.备份pdm.service.DeviceService;
|
||||
import org.nl.wms.product_manage.备份pdm.service.dto.DeviceDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -40,6 +43,9 @@ public class PdmBiDeviceController {
|
||||
private DeviceService deviceService;
|
||||
@Autowired
|
||||
private IPdmBiDeviceService iDeviceService;
|
||||
@Autowired
|
||||
private IPdmBiWorkprocedureService pdmBiWorkprocedureService;
|
||||
|
||||
|
||||
@GetMapping
|
||||
@Log("查询生产设备")
|
||||
@@ -96,10 +102,8 @@ public class PdmBiDeviceController {
|
||||
|
||||
@GetMapping("/getWorkprocedure")
|
||||
@Log("工序下拉")
|
||||
//("工序下拉")
|
||||
//@PreAuthorize("@el.check('device:list')")
|
||||
public ResponseEntity<Object> getWorkprocedure () {
|
||||
return new ResponseEntity<>(deviceService.getWorkprocedure(), HttpStatus.OK);
|
||||
return new ResponseEntity<>(pdmBiWorkprocedureService.list(new QueryWrapper<PdmBiWorkprocedure>().eq("is_used",true)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getDeviceList")
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.product_manage.controller.device;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
@@ -67,7 +68,7 @@ public class SpecialDeviceController {
|
||||
@Log("更新物料")
|
||||
//("更新物料")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> queryList (@RequestBody JSONObject query){
|
||||
public ResponseEntity<Object> update (@RequestBody JSONObject query){
|
||||
String device_code = query.getString("device_code");
|
||||
if (StringUtils.isNotEmpty(device_code)){
|
||||
iDeviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
@@ -93,5 +94,15 @@ public class SpecialDeviceController {
|
||||
}
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/setUsed")
|
||||
@Log("设置启停")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> setUsed (@RequestBody JSONObject query){
|
||||
Assert.notNull(new Object[]{query,query.getString("device_code"),query.get("is_used")},"请求参数不能为空");
|
||||
iDeviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("is_used",query.getBoolean("is_used"))
|
||||
.eq("device_code",query.getString("device_code")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,8 +14,10 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
||||
import org.nl.wms.product_manage.备份pdm.service.DeviceService;
|
||||
import org.nl.wms.product_manage.备份pdm.service.dto.DeviceDto;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -33,6 +35,8 @@ import java.util.Map;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class DeviceServiceImpl implements DeviceService {
|
||||
@Autowired
|
||||
private IPdmBiWorkprocedureService pdmBiWorkprocedureService;
|
||||
|
||||
@Override
|
||||
public Map<String,Object> queryAll(Map whereJson, Pageable page){
|
||||
|
||||
@@ -1,164 +0,0 @@
|
||||
package org.nl.wms.scheduler_manage.service.extendtask;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import groovy.lang.GroovyShell;
|
||||
import groovy.lang.Script;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.ConstantParam;
|
||||
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.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
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.service.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWashorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWashorder;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.FileSystemResourceLoader;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 专机任务
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class WashMachineryTask extends AbstractAcsTask {
|
||||
private static final String SK_WORKPRODURE_ID = "1535144552481034240";
|
||||
@Autowired
|
||||
private IPdmProduceWashorderService iPdmProduceWashorderService;
|
||||
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
@Autowired
|
||||
private IPdmBiDeviceService deviceService;
|
||||
|
||||
FileSystemResourceLoader loader = new FileSystemResourceLoader();
|
||||
GroovyShell groovyShell = new GroovyShell();
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateTaskStatus(JSONObject param,String status) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
|
||||
Assert.notEmpty(new Object[]{param,param.getString("workorder_id")},"参数不能为空");
|
||||
String inDevices = param.getString("in_devices");
|
||||
String workorderId = param.getString("workorder_id");
|
||||
if (!StringUtils.isBlank(inDevices)){
|
||||
String sql = Arrays.stream(inDevices.split(",")).collect(Collectors.joining("','"));
|
||||
//跟新工单:状态为完成;跟新点位 material_id is not null and point_status = '2'
|
||||
pointTab.update(MapOf.of("material_id","","point_status","1"),"point_code in ('"+sql+"')");
|
||||
QueryWrapper<PdmProduceWashorder> query = new QueryWrapper<>();
|
||||
PdmProduceWashorder update = new PdmProduceWashorder();
|
||||
update.setIs_error(false);
|
||||
update.setError_info("");
|
||||
update.setUpdate_time(DateUtil.now());
|
||||
update.setCreate_name("acs");
|
||||
update.setStatus(StatusEnum.TASK_FINISH.getCode());
|
||||
iPdmProduceWashorderService.update(update,new QueryWrapper<PdmProduceWashorder>().eq("workorder_id",workorderId));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public String createTask(JSONObject param) {
|
||||
//清洗机是否有物料重量上线?{"device_code":"A1_CPQXJ_01_S","type":"7"}
|
||||
PdmProduceWashorder status = iPdmProduceWashorderService.getOne(new QueryWrapper<PdmProduceWashorder>().lt("status", WorkerOrderEnum.COMPLETE.getCode()));
|
||||
if (status!=null){
|
||||
return "";
|
||||
}
|
||||
//TODO:判断是否人工仓优先:人工仓一台一台爬,机械仓根据物料爬
|
||||
QueryWrapper<PdmBiDevice> query = new QueryWrapper<PdmBiDevice>()
|
||||
.gt("deviceinstor_qty", 0)
|
||||
.eq("is_used", true)
|
||||
.eq("workprocedure_id", SK_WORKPRODURE_ID)
|
||||
.isNotNull("material_id")
|
||||
.orderByDesc("deviceinstor_qty");
|
||||
|
||||
List<PdmBiDevice> SKQX = deviceService.list(query);
|
||||
|
||||
//查询深坑相同物料类型的点位:深坑单位:重量
|
||||
if (SKQX.size()>0){
|
||||
|
||||
Map<String, List<PdmBiDevice>> collect = SKQX.stream().collect(Collectors.groupingBy(PdmBiDevice::getMaterial_id));
|
||||
//查询清洗设备最大重量
|
||||
Resource resource = loader.getResource("classpath:/groovyFile.groovy");
|
||||
Script script = groovyShell.parse(resource.getFile());
|
||||
ArrayList<JSONObject> result = (ArrayList)script.invokeMethod("getPoints", new Object[]{SKQX, collect, 9999999d});
|
||||
//确认acs参数 创建工单下发acs
|
||||
if (!CollectionUtils.isEmpty(result)){
|
||||
String material_id = result.get(0).getString("material_id");
|
||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_id", material_id).eq("is_delete", false));
|
||||
PdmProduceWashorder washorder = new PdmProduceWashorder();
|
||||
washorder.setWorkorder_id(IdUtil.getStringId());
|
||||
washorder.setWorkorder_code(IdUtil.getStringId());
|
||||
washorder.setDevice_code(param.getString("device_code"));
|
||||
washorder.setWeight(new BigDecimal(result.stream().mapToDouble(value -> value.getDouble("weight")).sum()));
|
||||
washorder.setQty(new BigDecimal(result.stream().mapToDouble(value -> value.getDouble("qty")).sum()));
|
||||
washorder.setMaterial_code(material.getMaterial_code());
|
||||
washorder.setMaterial_spec(material.getMaterial_spec());
|
||||
washorder.setMaterial_id(material.getMaterial_id());
|
||||
washorder.setCreate_time(DateUtil.now());
|
||||
washorder.setIn_devices(result.stream().map(a->a.getString("device_code")).collect(Collectors.joining(",")));
|
||||
washorder.setProduct_area("A1");
|
||||
washorder.setCreate_id("1");
|
||||
washorder.setCreate_name("acs");
|
||||
washorder.setStatus(StatusEnum.TASK_CREATE.getCode());
|
||||
//下发:"人工框:一个一个爬坡:是人工仓优先还是自动仓优先
|
||||
JSONArray request = new JSONArray();
|
||||
JSONObject jsonObject = new JSONObject(MapOf.of("workorder_id", washorder.getWorkorder_id()
|
||||
, "workorder_code", washorder.getWorkorder_code()
|
||||
, "qty", washorder.getQty()
|
||||
,"weight",washorder.getWeight()
|
||||
, "material_code", washorder.getMaterial_code()
|
||||
, "material_spec", washorder.getMaterial_spec()
|
||||
, "device_code", washorder.getDevice_code()
|
||||
, "in_devices", washorder.getIn_devices()
|
||||
));
|
||||
request.add(jsonObject);
|
||||
Map<String, Object> response = wmsToAcsService.order(request);
|
||||
if (response.get("status").equals(HttpStatus.BAD_REQUEST)){
|
||||
washorder.setError_info((String) response.get("message"));
|
||||
washorder.setStatus(StatusEnum.TASK_START_ERROR.getCode());
|
||||
washorder.setIs_error(true);
|
||||
}
|
||||
iPdmProduceWashorderService.save(washorder);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public void pointConfirm(JSONObject param) {
|
||||
//查询深坑相同物料类型的点位
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
JSONArray points = pointTab.query("material_id is not null and point_status = 1 and is_used = 1 and lock_type = 0 and region_code = '" + ConstantParam.SK_REGION + "'").getResultJSONArray(0);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -35,7 +36,7 @@ public abstract class AbstractAcsTask {
|
||||
public void notifyAcs(JSONArray param){};
|
||||
|
||||
public List<SchBaseTask> schedulerTask(List<SchBaseTask> tasks){
|
||||
return tasks;
|
||||
return new ArrayList<>();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -110,7 +110,10 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
//?刻字满料请求:可以存在多个任务?
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("point_code2", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
.nested(i -> i
|
||||
.eq("point_code1", param.getString("device_code")).or()
|
||||
.eq("point_code3", param.getString("device_code")))
|
||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
||||
|
||||
@@ -105,10 +105,13 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("起点不能为空!");
|
||||
}
|
||||
// 判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + start_point_code + "' " +
|
||||
"and task_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' " +
|
||||
"and task_status <> '" + StatusEnum.TASK_CANNEL.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) {
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.nested(i -> i
|
||||
.eq("point_code1", param.getString("device_code")).or()
|
||||
.eq("point_code3", param.getString("device_code")))
|
||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
throw new BadRequestException("当前点位" + start_point_code + "存在未完成的任务");
|
||||
}
|
||||
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
package org.nl.wms.scheduler_manage.service.extendtask.wash;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
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 groovy.lang.GroovyShell;
|
||||
import groovy.lang.Script;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.ConstantParam;
|
||||
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.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.wms.ext_manage.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
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.IPdmProduceWashorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWashorder;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.FileSystemResourceLoader;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 专机任务
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class WashMachineryTask extends AbstractAcsTask {
|
||||
private static String SK_WORKPRODURE_ID = "1535144552481034240";
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private IPdmBiDeviceService deviceService;
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateTaskStatus(JSONObject param,String status) {
|
||||
QueryWrapper<SchBaseTask> query = new QueryWrapper<>();
|
||||
if (StringUtils.isNotEmpty(param.getString("in_pcsn"))){
|
||||
query.eq("task_code",param.getString("in_pcsn"));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(param.getString("task_id"))){
|
||||
query.eq("task_id",param.getString("task_id"));
|
||||
}
|
||||
SchBaseTask taskDao = taskService.getOne(query);
|
||||
// 更新任务状态为完成
|
||||
if (taskDao.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())||taskDao.getTask_status().equals(TaskStatusEnum.CANCEL.getCode())){
|
||||
return;
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
taskDao.setTask_step(2);
|
||||
taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
taskDao.setUpdate_time(new Date());
|
||||
taskDao.setFinished_type(AcsTaskEnum.AUTO_TASK_FINISHED_TYPE.getCode());
|
||||
taskDao.setUpdate_name("acs");
|
||||
deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("material_id","")
|
||||
.set("is_used",true)
|
||||
.set("deviceinstor_qty",0)
|
||||
.set("deviceinstor_weight",0)
|
||||
.set("update_time",DateUtil.now())
|
||||
.in("device_code",taskDao.getPoint_code1().split(",")));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||
taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||
taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
|
||||
deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("is_used",true)
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("remark","")
|
||||
.in("device_code",taskDao.getPoint_code1().split(",")));
|
||||
}
|
||||
taskService.updateById(taskDao);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public String createTask(JSONObject param) {
|
||||
//清洗机是否有物料重量上线?{"devices":"string[]","material_id":"7"}
|
||||
List<PdmBiDevice> devices = (List<PdmBiDevice>) param.get("devices");
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.in("point_code2", devices.stream().map(PdmBiDevice::getDevice_code).collect(Collectors.toList()))
|
||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前点位存在正在执行的任务:"
|
||||
+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
}
|
||||
JSONArray data = new JSONArray();
|
||||
JSONArray items = new JSONArray();
|
||||
ArrayList<String> start_points = new ArrayList<>();
|
||||
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
task.put("task_name", AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.REQUEST_WASH_SEND_MATERIAL.getCode());
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("task_status", StatusEnum.TASK_PUBLISH.getCode());
|
||||
task.put("point_code3", "A1_SKQXJ_01_S");//A1_SKQXJ_01_X
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_send", "1");
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
task.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("is_auto_issue", false);
|
||||
task.put("priority", "1");
|
||||
task.put("task_step", 1);
|
||||
task.put("material_id",devices.get(0).getMaterial_id());
|
||||
task.put("material_qty",devices.stream().mapToInt(a->a.getDeviceinstor_weight().intValue()).sum());
|
||||
|
||||
task.put("point_code1",devices.stream().map(PdmBiDevice::getDevice_code).collect(Collectors.joining(",")));
|
||||
taskService.save(task.toJavaObject(SchBaseTask.class));
|
||||
// 下发
|
||||
JSONObject acsRequest = new JSONObject(MapOf.of("device_code","A1_CPQXJ_01_S","in_pcsn",task.getString("task_code"),"in_devices",task.getString("point_code1")));
|
||||
JSONObject result = wmsToAcsService.request(acsRequest, "api/wms/cleaningIn");
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException((String)result.get("message"));
|
||||
}
|
||||
deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("is_used",false)
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("remark",task.getString("task_id"))
|
||||
.in("device_code",devices.stream().map(PdmBiDevice::getDevice_code).collect(Collectors.toList())));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void cancel(String taskId) {
|
||||
SchBaseTask taskDao = taskService.getById(taskId);
|
||||
if (taskDao !=null){
|
||||
taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
|
||||
deviceService.update(new UpdateWrapper<PdmBiDevice>()
|
||||
.set("is_used",true)
|
||||
.eq("device_code",taskDao.getPoint_code1()));
|
||||
taskService.updateById(taskDao);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void pointConfirm(JSONObject param) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,6 @@ 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));
|
||||
|
||||
switch (method_name) { // forceFinish, cancel
|
||||
case "immediateNotifyAcs":
|
||||
if (Integer.valueOf(taskObj.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
package org.nl.wms.storage_manage.productmanage.controller.moreOrLess;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.mps_manage.deliveryorder.service.IPcsDeliveryOrderService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIfDeliveryorderCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dto.DeliveQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -16,6 +22,9 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 销售发货单表 前端控制器
|
||||
@@ -34,11 +43,18 @@ public class StIfDeliveryorderCpController {
|
||||
@Autowired
|
||||
private IStIfDeliveryorderCpService iStIfDeliveryorderCpService;
|
||||
|
||||
@Autowired
|
||||
private IPcsDeliveryOrderService pcsDeliveryOrderService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询生产订单")
|
||||
//("查询生产订单")
|
||||
public ResponseEntity<Object> query(DeliveQuery query, PageQuery page){
|
||||
return new ResponseEntity<>(iStIfDeliveryorderCpService.pageQuery(query,page), HttpStatus.OK);
|
||||
Page<Object> pageable = PageHelper.startPage(page.getPage() + 1, page.getSize());
|
||||
List<Map> mst_detail = pcsDeliveryOrderService.queryAll((Map) JSON.toJSON(query));
|
||||
TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
|
||||
build.setTotalElements(pageable.getTotal());
|
||||
return new ResponseEntity<>(build, HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -97,18 +97,21 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
.eq(MpsSaleOrder::getSale_code, row.getBase_bill_code())
|
||||
.eq(MpsSaleOrder::getSeq_no, row.getBase_bill_table())
|
||||
);
|
||||
if (ObjectUtil.isEmpty(orderDao))
|
||||
throw new BadRequestException("销售单不存在!");
|
||||
// if (ObjectUtil.isEmpty(orderDao)) {
|
||||
// throw new BadRequestException("销售单不存在!");
|
||||
// }
|
||||
|
||||
row.setBase_billdtl_id(orderDao.getSale_id().toString());
|
||||
row.setBase_bill_code(orderDao.getSale_code());
|
||||
row.setBase_bill_type(orderDao.getSale_type());
|
||||
row.setBase_bill_table(orderDao.getSeq_no().toString());
|
||||
row.setBase_billdtl_id(orderDao==null?"":orderDao.getSale_id().toString());
|
||||
row.setBase_bill_code(row.getBase_bill_code());
|
||||
row.setBase_bill_type(orderDao==null?"":orderDao.getSale_type());
|
||||
row.setBase_bill_table(row.getBase_bill_table());
|
||||
|
||||
if (IOSEnum.IO_TYPE.code("入库").equals(mstDao.getIo_type())){
|
||||
// 入库: 更新销售单状态
|
||||
orderDao.setStatus(IOSEnum.ORDER_STATUS.code("提交"));
|
||||
iMpsSaleOrderService.updateById(orderDao);
|
||||
if (orderDao!=null){
|
||||
orderDao.setStatus(IOSEnum.ORDER_STATUS.code("提交"));
|
||||
iMpsSaleOrderService.updateById(orderDao);
|
||||
}
|
||||
} else {
|
||||
// 出库: 更新发货单状态
|
||||
iStIfDeliveryorderCpService.update(
|
||||
@@ -130,6 +133,8 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
row.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||
row.setReal_qty(row.getPlan_qty());
|
||||
row.setUnassign_qty(row.getPlan_qty());
|
||||
row.setQty_unit_id("16");
|
||||
row.setQty_unit_name("个\\只");
|
||||
this.save(row);
|
||||
total_qty += row.getPlan_qty().doubleValue();
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
@@ -39,14 +40,20 @@ public class SysDictController {
|
||||
private final ISysDictService dictService;
|
||||
|
||||
@GetMapping
|
||||
//("查询字典")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery pageable){
|
||||
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("all")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> queryAll(@RequestBody JSONObject whereJson){
|
||||
List<Dict> list = dictService.list(new QueryWrapper<Dict>()
|
||||
.eq("code", StringUtils.isEmpty(whereJson.getString("code"))?"product_area":whereJson.getString("code"))
|
||||
.select("code","label","value"));
|
||||
return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("新增字典")
|
||||
@PostMapping
|
||||
//("新增字典")
|
||||
public ResponseEntity<Object> create(@RequestBody Dict dict){
|
||||
dictService.create(dict);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
@@ -54,30 +61,24 @@ public class SysDictController {
|
||||
|
||||
@PutMapping
|
||||
@Log("修改字典")
|
||||
//("修改字典")
|
||||
//@SaCheckPermission("@el.check('dict:edit')")
|
||||
public ResponseEntity<Object> updateDict(@Validated @RequestBody Dict dto){
|
||||
dictService.updateDict(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除字典")
|
||||
//("删除字典")
|
||||
@DeleteMapping
|
||||
// @SaCheckPermission("dict:del")
|
||||
public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
|
||||
dictService.deleteBatchByIds(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/dictDetail")
|
||||
//("查询字典详情")
|
||||
public ResponseEntity<Object> queryDetails(@RequestParam Map criteria, PageQuery pageable){
|
||||
DictQuery dictQuery = JSONObject.parseObject(JSONObject.toJSONString(criteria), DictQuery.class);
|
||||
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAllDetail(dictQuery,pageable)),HttpStatus.OK);
|
||||
}
|
||||
|
||||
//("查询多个字典详情")
|
||||
@GetMapping(value = "/dictDetail/map")
|
||||
public ResponseEntity<Object> getDictDetailMaps(@RequestParam String dictName){
|
||||
String[] names = dictName.split("[,,]");
|
||||
@@ -89,9 +90,7 @@ public class SysDictController {
|
||||
}
|
||||
|
||||
@Log("新增字典详情")
|
||||
//("新增字典详情")
|
||||
@PostMapping("/dictDetail")
|
||||
// @SaCheckPermission("dict:add")
|
||||
public ResponseEntity<Object> createDetail(@RequestBody Dict resources){
|
||||
dictService.createDetail(resources);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
|
||||
@@ -131,7 +131,7 @@ generator:
|
||||
|
||||
#是否开启 swagger-ui
|
||||
swagger:
|
||||
enabled: true
|
||||
enabled: false
|
||||
|
||||
# IP 本地解析
|
||||
ip:
|
||||
|
||||
@@ -2,7 +2,7 @@ spring:
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
active: dev
|
||||
active: dev3
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
data:
|
||||
|
||||
@@ -19,7 +19,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!--引入默认的一些设置-->
|
||||
<!-- <include resource="log/AutoCreateInst.xml"/>-->
|
||||
<appender name="esLogAppender" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
|
||||
<url>http://127.0.0.1:9200/_bulk</url>
|
||||
<url>http://192.168.46.225:9200/_bulk</url>
|
||||
<index>${esIndex}</index>
|
||||
<type>mes_log</type>
|
||||
<loggerName>es-logger</loggerName> <!-- optional -->
|
||||
|
||||
Reference in New Issue
Block a user