Browse Source

Merge remote-tracking branch 'origin/master'

master
psh 8 months ago
parent
commit
dc538e5138
  1. 46
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/IotToWmsController.java
  2. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/IotToWmsService.java
  3. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/BendReq.java
  4. 13
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/SortingReq.java
  5. 14
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/SortingStock.java
  6. 105
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/IotToWmsServiceImpl.java
  7. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java
  8. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java
  9. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
  10. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java
  11. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java
  12. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml
  13. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  14. 66
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/controller/MaterialVehicleBindController.java
  15. 48
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/IMaterialVehicleBindService.java
  16. 58
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/MaterialVehicleBind.java
  17. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/mapper/MaterialVehicleBindMapper.java
  18. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/mapper/MaterialVehicleBindMapper.xml
  19. 43
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dto/MaterialVehicleBindDto.java
  20. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dto/MaterialVehicleBindQuery.java
  21. 84
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/impl/MaterialVehicleBindServiceImpl.java
  22. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  23. 62
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/controller/OrderProcessController.java
  24. 43
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/IOrderProcessService.java
  25. 58
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/OrderProcess.java
  26. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/mapper/OrderProcessMapper.java
  27. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/mapper/OrderProcessMapper.xml
  28. 46
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dto/OrderProcessDto.java
  29. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dto/OrderProcessQuery.java
  30. 80
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/impl/OrderProcessServiceImpl.java
  31. 36
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cy/CYJKTask.java
  32. 97
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cy/CYXLTask.java
  33. 214
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJHKTask.java
  34. 264
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJJKTask.java
  35. 55
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSLTask.java
  36. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJXLTask.java
  37. 125
      lms/nladmin-ui/src/views/wms/sch/materialBind/index.vue
  38. 27
      lms/nladmin-ui/src/views/wms/sch/materialBind/materialVehicleBind.js
  39. 4
      lms/nladmin-ui/src/views/wms/sch/point/index.vue
  40. 130
      lms/nladmin-ui/src/views/wms/sch/process/index.vue
  41. 27
      lms/nladmin-ui/src/views/wms/sch/process/orderProcess.js

46
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/controller/IotToWmsController.java

@ -8,8 +8,10 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.service.IotToWmsService;
import org.nl.wms.ext.service.dto.to.iot.BendReq;
import org.nl.wms.ext.service.dto.to.iot.IotOrdersReq;
import org.nl.wms.ext.service.dto.to.iot.IotPartsReq;
import org.nl.wms.ext.service.dto.to.iot.SortingReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@ -52,4 +54,48 @@ public class IotToWmsController {
return new ResponseEntity<>(iotToWmsService.orders(iotOrdersReq), HttpStatus.OK);
}
@PostMapping("/sortingMaterialInfo")
@Log("分拣系统查询库存")
@ApiOperation("sorting系统查询库存")
public ResponseEntity<Object> sortingMaterialInfo(@RequestBody SortingReq sortingReq) {
return new ResponseEntity<>(iotToWmsService.sortingMaterialInfo(sortingReq), HttpStatus.OK);
}
@PostMapping("/sortingCallMaterial")
@Log("分拣系统下发叫料请求")
@ApiOperation("分拣系统下发叫料请求")
public ResponseEntity<Object> fjMaterialInfo(@RequestBody SortingReq sortingReq) {
return new ResponseEntity<>(iotToWmsService.sortingCallMaterial(sortingReq), HttpStatus.OK);
}
@PostMapping("/sortingBack")
@Log("分拣系统下发回库请求")
@ApiOperation("分拣系统下发回库请求")
public ResponseEntity<Object> sortingBack(@RequestBody SortingReq sortingReq) {
return new ResponseEntity<>(iotToWmsService.sortingBack(sortingReq), HttpStatus.OK);
}
@PostMapping("/sortingBackMaterial")
@Log("分拣系统下发回库托盘物料信息")
@ApiOperation("分拣系统下发回库托盘物料信息")
public ResponseEntity<Object> sortingBackMaterial(@RequestBody SortingReq sortingReq) {
return new ResponseEntity<>(iotToWmsService.sortingBackMaterial(sortingReq), HttpStatus.OK);
}
@PostMapping("/autoBendMaterialInfo")
@Log("自动折弯系统查询物料库存")
@ApiOperation("自动折弯系统查询物料库存")
public ResponseEntity<Object> autoBendMaterialInfo(@RequestBody BendReq bendReq) {
return new ResponseEntity<>(iotToWmsService.autoBendMaterialInfo(bendReq), HttpStatus.OK);
}
@PostMapping("/autoBendCallMaterial")
@Log("自动折弯上料")
@ApiOperation("自动折弯上料")
public ResponseEntity<Object> autoBendCallMaterial(@RequestBody BendReq bendReq) {
return new ResponseEntity<>(iotToWmsService.autoBendCallMaterial(bendReq), HttpStatus.OK);
}
}

17
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/IotToWmsService.java

@ -2,8 +2,14 @@ package org.nl.wms.ext.service;
import com.alibaba.fastjson.JSONObject;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.ext.service.dto.to.iot.BendReq;
import org.nl.wms.ext.service.dto.to.iot.IotOrdersReq;
import org.nl.wms.ext.service.dto.to.iot.IotPartsReq;
import org.nl.wms.ext.service.dto.to.iot.SortingReq;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import java.util.List;
/**
* @Author: sxp
@ -17,4 +23,15 @@ public interface IotToWmsService {
JSONObject orders(IotOrdersReq iotOrdersReq);
List<SchBaseVehiclematerialgroup> sortingMaterialInfo(SortingReq sortingReq);
BaseResponse sortingCallMaterial(SortingReq sortingReq);
BaseResponse sortingBack(SortingReq sortingReq);
BaseResponse sortingBackMaterial(SortingReq sortingReq);
List<SchBaseVehiclematerialgroup> autoBendMaterialInfo(BendReq bendReq);
BaseResponse autoBendCallMaterial(BendReq bendReq);
}

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/BendReq.java

@ -0,0 +1,16 @@
package org.nl.wms.ext.service.dto.to.iot;
import lombok.Data;
/**
* @author songxiaopeng
*/
@Data
public class BendReq {
//订单号
private String order;
//组盘ID
private String groupId;
//请求点位
private String endDeviceCode;
}

13
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/SortingReq.java

@ -0,0 +1,13 @@
package org.nl.wms.ext.service.dto.to.iot;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class SortingReq {
private String order;
private String startDeviceCode;
private String endDeviceCode;
}

14
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/dto/to/iot/SortingStock.java

@ -0,0 +1,14 @@
package org.nl.wms.ext.service.dto.to.iot;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class SortingStock {
private String vehicleCode;
private String materialCode;
private String materialName;
private String orderCode;
}

105
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/IotToWmsServiceImpl.java

@ -1,17 +1,31 @@
package org.nl.wms.ext.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.service.IotToWmsService;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.ext.service.dto.to.iot.BendReq;
import org.nl.wms.ext.service.dto.to.iot.IotOrdersReq;
import org.nl.wms.ext.service.dto.to.iot.IotPartsReq;
import org.nl.wms.ext.service.dto.to.iot.SortingReq;
import org.nl.wms.pda.service.dao.vo.PdaResponseVo;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.materialBind.service.IMaterialVehicleBindService;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author sxp
*/
@ -22,6 +36,12 @@ public class IotToWmsServiceImpl implements IotToWmsService {
@Autowired
private AcsToWmsService acsToWmsService;
@Autowired
private IMaterialVehicleBindService materialVehicleBindService;
@Autowired
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
@Override
public JSONObject acsApply(JSONObject param) {
// return acsToWmsService.acsApply(param);
@ -51,4 +71,89 @@ public class IotToWmsServiceImpl implements IotToWmsService {
return resultJson;
}
@Override
public List<SchBaseVehiclematerialgroup> sortingMaterialInfo(SortingReq sortingReq) {
//todo 现在是查询该订单下的所有组盘信息
// 需确认是否只查询分拣后的物料 以及需要把组盘绑定的物料信息都查出来
String order = sortingReq.getOrder();
return schBaseVehiclematerialgroupService.selectByOrder(order);
}
@Override
public BaseResponse sortingCallMaterial(SortingReq sortingReq) {
JSONObject param = new JSONObject();
param.put("taskCode", IdUtil.getSnowflake(1, 1).nextIdStr());
param.put("taskType", "FJSLTask");
param.put("start_device_code", sortingReq.getStartDeviceCode());
param.put("end_device_code", sortingReq.getEndDeviceCode());
acsToWmsService.acsApply(param);
return BaseResponse.responseOk("任务下发成功");
}
@Override
public BaseResponse sortingBack(SortingReq sortingReq) {
JSONObject param = new JSONObject();
param.put("taskCode", IdUtil.getSnowflake(1, 1).nextIdStr());
param.put("taskType", "FJHKTask");
param.put("start_device_code", sortingReq.getStartDeviceCode());
acsToWmsService.acsApply(param);
return BaseResponse.responseOk("任务下发成功");
}
@Override
public BaseResponse sortingBackMaterial(SortingReq sortingReq) {
// SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
// groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
// groupEntity.setCreate_id("2");
// groupEntity.setCreate_name("ACS");
// groupEntity.setCreate_time(DateUtil.now());
// groupEntity.setVehicle_code(jsonObject.getString("vehicle_code"));
// groupEntity.setVehicle_type(schBaseTask.getVehicle_type());
// groupEntity.setPoint_code(startPoint.getPoint_code());
// groupEntity.setPoint_name(startPoint.getPoint_name());
// groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd"));
// groupEntity.setInstorage_time(DateUtil.now());
// groupEntity.setTask_code(schBaseTask.getTask_code());
// groupEntity.setMove_way(startPoint.getPoint_code());
// groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
// groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
// groupEntity.setIs_delete(false);
// vehiclematerialgroupService.save(groupEntity);
// //todo 多个物料信息绑定
// MaterialVehicleBind materialVehicleBind = new MaterialVehicleBind();
// materialVehicleBind.setId(IdUtil.getSnowflake(1, 1).nextIdStr());
// materialVehicleBind.setCreate_time(DateUtil.now());
// materialVehicleBind.setVehicle_code(jsonObject.getString("vehicle_code"));
// materialVehicleBind.setGroup_id(groupEntity.getGroup_id());
// materialVehicleBind.setMaterial_code(jsonObject.getString("material_code"));
// materialVehicleBind.setMaterial_name(jsonObject.getString("material_name"));
// materialVehicleBind.setOrder_code(jsonObject.getString("order_code"));
// materialVehicleBindService.save(materialVehicleBind);
return BaseResponse.responseOk("物料信息接收成功");
}
@Override
public List<SchBaseVehiclematerialgroup> autoBendMaterialInfo(BendReq bendReq) {
//todo 现在是查询该订单下的所有组盘信息
// 需确认是否只查询分拣后的物料 以及需要把组盘绑定的物料信息都查出来
String order = bendReq.getOrder();
return schBaseVehiclematerialgroupService.selectByOrder(order);
}
@Override
public BaseResponse autoBendCallMaterial(BendReq bendReq) {
String groupId = bendReq.getGroupId();
SchBaseVehiclematerialgroup groupInfo = schBaseVehiclematerialgroupService.getById(groupId);
if (null == groupInfo) {
throw new BadRequestException("请求物料为空");
}
JSONObject param = new JSONObject();
param.put("taskCode", IdUtil.getSnowflake(1, 1).nextIdStr());
param.put("taskType", "ZWSLTask");
param.put("start_device_code", groupInfo.getPoint_code());
param.put("end_device_code", bendReq.getEndDeviceCode());
acsToWmsService.acsApply(param);
return BaseResponse.responseOk("任务下发成功");
}
}

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java

@ -71,6 +71,13 @@ public class PdaController {
// return new ResponseEntity<>(pdaService.zpjb(param), HttpStatus.OK);
// }
@PostMapping("/cyjk")
@Log("冲压下料位叫空")
@ApiOperation("冲压下料位叫空")
public ResponseEntity<Object> cyjk(@RequestBody JSONObject param){
return new ResponseEntity<>(pdaService.cyjk(param), HttpStatus.OK);
}
@PostMapping("/dzwck")
@Log("待折弯件出库")
@ApiOperation("待折弯件出库")
@ -119,4 +126,5 @@ public class PdaController {
public ResponseEntity<Object> getVehicleType(){
return new ResponseEntity<>(pdaService.getVehicleType(), HttpStatus.OK);
}
//todo 指令查询 指令取消、指令完成、任务完成、取消、人工组盘、解绑
}

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java

@ -22,6 +22,8 @@ public interface PdaService {
PdaResponseVo zpjb(JSONObject param);
PdaResponseVo cyjk(JSONObject param);
PdaResponseVo dzwck(JSONObject param);
PdaResponseVo zwjk(JSONObject param);

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java

@ -138,6 +138,14 @@ public class PdaServiceImpl implements PdaService {
return PdaResponseVo.pdaResultOk("组盘解绑成功");
}
@Override
public PdaResponseVo cyjk(JSONObject param) {
param.put("taskCode", IdUtil.getSnowflake(1, 1).nextIdStr());
param.put("taskType", "CYJKTask");
acsToWmsService.acsApply(param);
return PdaResponseVo.pdaResultOk("待折弯件出库成功");
}
@Override
public PdaResponseVo dzwck(JSONObject param) {
param.put("taskCode", IdUtil.getSnowflake(1, 1).nextIdStr());

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -49,4 +50,6 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @return
*/
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
List<SchBaseVehiclematerialgroup> selectByOrder(String order);
}

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import java.util.List;
/**
* @author lyd
* @date 2023-05-16
@ -15,4 +17,6 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVeh
IPage<SchBaseVehiclematerialgroup> selectPageLeftJoin(IPage<SchBaseVehiclematerialgroup> pages, SchBaseVehiclematerialgroupQuery query);
SchBaseVehiclematerialgroup getGroup(JSONObject entity);
List<SchBaseVehiclematerialgroup> selectByOrder(String order);
}

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml

@ -49,4 +49,12 @@
</if>
AND vg.group_bind_material_status = '2'
</select>
<select id="selectByOrder" resultType="org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup">
SELECT *
FROM sch_base_vehiclematerialgroup
WHERE group_id IN (SELECT group_id
FROM material_vehicle_bind
WHERE order_code = #{order})
order by point_code
</select>
</mapper>

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java

@ -19,6 +19,7 @@ import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -79,4 +80,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
return vehiclematerialgroupMapper.getGroup(entity);
}
@Override
public List<SchBaseVehiclematerialgroup> selectByOrder(String order) {
return vehiclematerialgroupMapper.selectByOrder(order);
}
}

66
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/controller/MaterialVehicleBindController.java

@ -0,0 +1,66 @@
package org.nl.wms.sch.materialBind.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.sch.materialBind.service.IMaterialVehicleBindService;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import org.springframework.beans.factory.annotation.Autowired;
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;
import java.util.Set;
/**
* @author songxiaopeng
* @date 2024-05-10
**/
@Slf4j
@RestController
@Api(tags = "载具物料信息绑定管理")
@RequestMapping("/api/materialVehicleBind")
public class MaterialVehicleBindController {
@Autowired
private IMaterialVehicleBindService materialVehicleBindService;
@GetMapping
@Log("查询载具物料信息绑定")
@ApiOperation("查询载具物料信息绑定")
//@SaCheckPermission("@el.check('materialVehicleBind:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(materialVehicleBindService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增载具物料信息绑定")
@ApiOperation("新增载具物料信息绑定")
//@SaCheckPermission("@el.check('materialVehicleBind:add')")
public ResponseEntity<Object> create(@Validated @RequestBody MaterialVehicleBind entity){
materialVehicleBindService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改载具物料信息绑定")
@ApiOperation("修改载具物料信息绑定")
//@SaCheckPermission("@el.check('materialVehicleBind:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody MaterialVehicleBind entity){
materialVehicleBindService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除载具物料信息绑定")
@ApiOperation("删除载具物料信息绑定")
//@SaCheckPermission("@el.check('materialVehicleBind:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
materialVehicleBindService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

48
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/IMaterialVehicleBindService.java

@ -0,0 +1,48 @@
package org.nl.wms.sch.materialBind.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @description 服务接口
* @author songxiaopeng
* @date 2024-05-10
**/
public interface IMaterialVehicleBindService extends IService<MaterialVehicleBind> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<MaterialVehicleBind>
*/
IPage<MaterialVehicleBind> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(MaterialVehicleBind entity);
/**
* 编辑
* @param entity /
*/
void update(MaterialVehicleBind entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
List<MaterialVehicleBind> selectByOrder(String order);
void deleteByGroupId(String groupId);
}

58
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/MaterialVehicleBind.java

@ -0,0 +1,58 @@
package org.nl.wms.sch.materialBind.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @description /
* @author songxiaopeng
* @date 2024-05-10
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("material_vehicle_bind")
public class MaterialVehicleBind implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.NONE)
@ApiModelProperty(value = "ID")
private String id;
@ApiModelProperty(value = "物料编码")
private String material_code;
@ApiModelProperty(value = "物料名称")
private String material_name;
@ApiModelProperty(value = "组盘表id")
private String group_id;
@ApiModelProperty(value = "托盘号")
private String vehicle_code;
@ApiModelProperty(value = "物料数量")
private String material_num;
@ApiModelProperty(value = "订单号")
private String order_code;
@ApiModelProperty(value = "位置")
private String position;
@ApiModelProperty(value = "创建时间")
private String create_time;
@ApiModelProperty(value = "修改时间")
private String update_time;
@ApiModelProperty(value = "是否删除")
private String is_delete;
}

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/mapper/MaterialVehicleBindMapper.java

@ -0,0 +1,12 @@
package org.nl.wms.sch.materialBind.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
/**
* @author songxiaopeng
* @date 2024-05-10
**/
public interface MaterialVehicleBindMapper extends BaseMapper<MaterialVehicleBind> {
}

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dao/mapper/MaterialVehicleBindMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.materialBind.service.dao.mapper.MaterialVehicleBindMapper">
</mapper>

43
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dto/MaterialVehicleBindDto.java

@ -0,0 +1,43 @@
package org.nl.wms.sch.materialBind.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author songxiaopeng
* @date 2024-05-10
**/
@Data
public class MaterialVehicleBindDto implements Serializable {
/** ID */
private String id;
/** 物料编码 */
private String material_code;
/** 物料名称 */
private String material_name;
/** 托盘号 */
private String vehicle_code;
/** 物料数量 */
private String material_num;
/** 订单号 */
private String order_code;
/** 位置 */
private String position;
/** 创建时间 */
private String create_time;
/** 修改时间 */
private String update_time;
/** 是否删除 */
private String is_delete;
}

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/dto/MaterialVehicleBindQuery.java

@ -0,0 +1,12 @@
package org.nl.wms.sch.materialBind.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
/**
* @author songxiaopeng
* @date 2024-05-10
**/
public class MaterialVehicleBindQuery extends BaseQuery<MaterialVehicleBind> {
}

84
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/materialBind/service/impl/MaterialVehicleBindServiceImpl.java

@ -0,0 +1,84 @@
package org.nl.wms.sch.materialBind.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.materialBind.service.IMaterialVehicleBindService;
import org.nl.wms.sch.materialBind.service.dao.mapper.MaterialVehicleBindMapper;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author songxiaopeng
* @description 服务实现
* @date 2024-05-10
**/
@Slf4j
@Service
public class MaterialVehicleBindServiceImpl extends ServiceImpl<MaterialVehicleBindMapper, MaterialVehicleBind> implements IMaterialVehicleBindService {
@Autowired
private MaterialVehicleBindMapper materialVehicleBindMapper;
@Override
public IPage<MaterialVehicleBind> queryAll(Map whereJson, PageQuery page) {
LambdaQueryWrapper<MaterialVehicleBind> lam = new LambdaQueryWrapper<>();
IPage<MaterialVehicleBind> pages = new Page<>(page.getPage() + 1, page.getSize());
materialVehicleBindMapper.selectPage(pages, lam);
return pages;
}
@Override
public void create(MaterialVehicleBind entity) {
String now = DateUtil.now();
entity.setId(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_time(now);
entity.setUpdate_time(now);
materialVehicleBindMapper.insert(entity);
}
@Override
public void update(MaterialVehicleBind entity) {
MaterialVehicleBind dto = materialVehicleBindMapper.selectById(entity.getId());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
String now = DateUtil.now();
entity.setUpdate_time(now);
materialVehicleBindMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
materialVehicleBindMapper.deleteBatchIds(ids);
}
@Override
public List<MaterialVehicleBind> selectByOrder(String order) {
LambdaQueryWrapper<MaterialVehicleBind> lam = new LambdaQueryWrapper<>();
lam.eq(MaterialVehicleBind::getOrder_code, order)
.orderByDesc(MaterialVehicleBind::getCreate_time);
return materialVehicleBindMapper.selectList(lam);
}
@Override
public void deleteByGroupId(String groupId) {
LambdaQueryWrapper<MaterialVehicleBind> lam = new LambdaQueryWrapper<>();
lam.eq(MaterialVehicleBind::getGroup_id, groupId)
.orderByDesc(MaterialVehicleBind::getCreate_time);
materialVehicleBindMapper.delete(lam);
}
}

22
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java

@ -143,17 +143,17 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
// if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) {
// String can_vehicle_type = String.join(",", entity.getCan_vehicle_types());
// entity.setCan_vehicle_type(can_vehicle_type);
// }
// String pointStatus = entity.getPoint_status();
// // 根据点位状态来判断更新内容
// if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
// entity.setVehicle_type("");
// entity.setVehicle_code("");
// entity.setVehicle_qty(0);
// }
if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) {
String can_vehicle_type = String.join(",", entity.getCan_vehicle_types());
entity.setCan_vehicle_type(can_vehicle_type);
}
String pointStatus = entity.getPoint_status();
// 根据点位状态来判断更新内容
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
entity.setVehicle_type("");
entity.setVehicle_code("");
entity.setVehicle_qty(0);
}
pointMapper.updateById(entity);
}

62
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/controller/OrderProcessController.java

@ -0,0 +1,62 @@
package org.nl.wms.sch.process.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.sch.process.service.IOrderProcessService;
import org.nl.wms.sch.process.service.dao.OrderProcess;
import org.springframework.beans.factory.annotation.Autowired;
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;
import java.util.Set;
/**
* @author order_process
* @date 2024-05-09
**/
@Slf4j
@RestController
@Api(tags = "订单工艺信息管理")
@RequestMapping("/api/orderProcess")
public class OrderProcessController {
@Autowired
private IOrderProcessService orderProcessService;
@GetMapping
@Log("查询订单工艺信息")
@ApiOperation("查询订单工艺信息")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(orderProcessService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增订单工艺信息")
@ApiOperation("新增订单工艺信息")
public ResponseEntity<Object> create(@Validated @RequestBody OrderProcess entity){
orderProcessService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改订单工艺信息")
@ApiOperation("修改订单工艺信息")
public ResponseEntity<Object> update(@Validated @RequestBody OrderProcess entity){
orderProcessService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除订单工艺信息")
@ApiOperation("删除订单工艺信息")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
orderProcessService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

43
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/IOrderProcessService.java

@ -0,0 +1,43 @@
package org.nl.wms.sch.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.sch.process.service.dao.OrderProcess;
import java.util.Map;
import java.util.Set;
/**
* @description 服务接口
* @author order_process
* @date 2024-05-09
**/
public interface IOrderProcessService extends IService<OrderProcess> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<OrderProcess>
*/
IPage<OrderProcess> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(OrderProcess entity);
/**
* 编辑
* @param entity /
*/
void update(OrderProcess entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
}

58
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/OrderProcess.java

@ -0,0 +1,58 @@
package org.nl.wms.sch.process.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @description /
* @author order_process
* @date 2024-05-09
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("order_process")
public class OrderProcess implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "order_id", type = IdType.NONE)
@ApiModelProperty(value = "ID")
private String order_id;
@ApiModelProperty(value = "订单号")
private String order;
@ApiModelProperty(value = "工序")
private String process;
@ApiModelProperty(value = "额定最后期限")
private String last_time;
@ApiModelProperty(value = "创建人标识")
private String create_id;
@ApiModelProperty(value = "创建人")
private String create_name;
@ApiModelProperty(value = "创建时间")
private String create_time;
@ApiModelProperty(value = "修改人标识")
private String update_id;
@ApiModelProperty(value = "修改人")
private String update_name;
@ApiModelProperty(value = "修改时间")
private String update_time;
@ApiModelProperty(value = "是否删除")
private String is_delete;
}

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/mapper/OrderProcessMapper.java

@ -0,0 +1,12 @@
package org.nl.wms.sch.process.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.sch.process.service.dao.OrderProcess;
/**
* @author order_process
* @date 2024-05-09
**/
public interface OrderProcessMapper extends BaseMapper<OrderProcess> {
}

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dao/mapper/OrderProcessMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.sch.process.service.dao.mapper.OrderProcessMapper">
</mapper>

46
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dto/OrderProcessDto.java

@ -0,0 +1,46 @@
package org.nl.wms.sch.process.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author order_process
* @date 2024-05-09
**/
@Data
public class OrderProcessDto implements Serializable {
/** ID */
private String order_id;
/** 订单号 */
private String order;
/** 工序 */
private String process;
/** 额定最后期限 */
private String last_time;
/** 创建人标识 */
private String create_id;
/** 创建人 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人标识 */
private String update_id;
/** 修改人 */
private String update_name;
/** 修改时间 */
private String update_time;
/** 是否删除 */
private String is_delete;
}

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/dto/OrderProcessQuery.java

@ -0,0 +1,12 @@
package org.nl.wms.sch.process.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.sch.process.service.dao.OrderProcess;
/**
* @author order_process
* @date 2024-05-09
**/
public class OrderProcessQuery extends BaseQuery<OrderProcess> {
}

80
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/process/service/impl/OrderProcessServiceImpl.java

@ -0,0 +1,80 @@
package org.nl.wms.sch.process.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.process.service.IOrderProcessService;
import org.nl.wms.sch.process.service.dao.mapper.OrderProcessMapper;
import org.nl.wms.sch.process.service.dao.OrderProcess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Set;
/**
* @description 服务实现
* @author order_process
* @date 2024-05-09
**/
@Slf4j
@Service
public class OrderProcessServiceImpl extends ServiceImpl<OrderProcessMapper, OrderProcess> implements IOrderProcessService {
@Autowired
private OrderProcessMapper orderProcessMapper;
@Override
public IPage<OrderProcess> queryAll(Map whereJson, PageQuery page){
LambdaQueryWrapper<OrderProcess> lam = new LambdaQueryWrapper<>();
IPage<OrderProcess> pages = new Page<>(page.getPage() + 1, page.getSize());
orderProcessMapper.selectPage(pages, lam);
return pages;
}
@Override
public void create(OrderProcess entity) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setOrder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
orderProcessMapper.insert(entity);
}
@Override
public void update(OrderProcess entity) {
OrderProcess dto = orderProcessMapper.selectById(entity.getOrder_id());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
orderProcessMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
orderProcessMapper.deleteBatchIds(ids);
}
}

36
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cy/CYJKTask.java

@ -8,6 +8,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.util.StringUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl;
@ -79,7 +81,7 @@ public class CYJKTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
SchBasePoint point = findStartPoint(taskConfig.getStart_region_str());
SchBasePoint point = findStartPoint(taskConfig.getStart_region_str(),task.getVehicle_type());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
@ -106,18 +108,37 @@ public class CYJKTask extends AbstractTask {
}
//查找空托盘
private SchBasePoint findStartPoint(String startRegionStr) {
private SchBasePoint findStartPoint(String startRegionStr,String vehicleType) {
if (StringUtils.isEmpty(startRegionStr)) {
return null;
}
String[] reginList = startRegionStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
.eq(SchBasePoint::getPoint_type, "1")
.eq(SchBasePoint::getCan_vehicle_type, vehicleType)
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
if (ObjectUtil.isNotEmpty(schBasePoints)) {
return schBasePoints.get(0);
}
if (VehicleTypeEnum.LK_RO1.getCode().equals(vehicleType) || VehicleTypeEnum.LK_RO2.getCode().equals(vehicleType)) {
//空托盘从空托盘货架位就近获取,补空料笼从货架及料笼暂存区获取
LambdaQueryWrapper<SchBasePoint> tempAreaLam = new LambdaQueryWrapper<>();
tempAreaLam.eq(SchBasePoint::getRegion_code, "CDLKZC")
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
.eq(SchBasePoint::getCan_vehicle_type, vehicleType)
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true);
List<SchBasePoint> tempAreaList = pointService.list(tempAreaLam);
return ObjectUtil.isNotEmpty(tempAreaList) ? tempAreaList.get(0) : null;
}
return null;
}
@ -144,14 +165,15 @@ public class CYJKTask extends AbstractTask {
// 终点解锁
endPointObj.setIng_task_code("");
endPointObj.setVehicle_code(taskObj.getVehicle_code());
endPointObj.setVehicle_code2(taskObj.getVehicle_code2());
// endPointObj.setVehicle_type(taskObj.getVehicle_type());
endPointObj.setVehicle_qty(1);
endPointObj.setUpdate_time(DateUtil.now());
pointService.update(endPointObj);
// 起点清空
startPointObj.setVehicle_code("");
startPointObj.setVehicle_code2("");
startPointObj.setIng_task_code("");
startPointObj.setVehicle_type("");
startPointObj.setVehicle_qty(0);
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
startPointObj.setUpdate_time(DateUtil.now());
pointService.updateById(startPointObj);
// 任务完成

97
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/cy/CYXLTask.java

@ -19,6 +19,8 @@ import org.nl.wms.pda.service.dao.vo.PdaResponseVo;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.materialBind.service.IMaterialVehicleBindService;
import org.nl.wms.sch.materialBind.service.dao.MaterialVehicleBind;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
@ -29,6 +31,7 @@ import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.enums.VehicleTypeEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.PointUtils;
@ -37,6 +40,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import javax.transaction.Transactional;
import java.util.Arrays;
import java.util.List;
@ -58,10 +62,9 @@ public class CYXLTask extends AbstractTask {
@Autowired
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private IPdmBdWorkorderService workorderService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
private IMaterialVehicleBindService materialVehicleBindService;
@Autowired
private AcsToWmsService acsToWmsService;
@ -71,7 +74,7 @@ public class CYXLTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
SchBasePoint point = findNextPoint(taskConfig.getNext_region_str());
SchBasePoint point = findNextPoint(taskConfig.getNext_region_str(), task.getVehicle_type());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
@ -94,12 +97,13 @@ public class CYXLTask extends AbstractTask {
*
* @return
*/
private SchBasePoint findNextPoint(String nextReginStr) {
//todo 区域优先级,暂时按照创建任务配置时,区域选择顺序
private SchBasePoint findNextPoint(String nextReginStr, String vehicleType) {
//todo 需要和外部系统确认载具类型vehicleType参数值,暂时使用PointStatusEnum
String[] reginList = nextReginStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
.eq(SchBasePoint::getCan_vehicle_type, VehicleTypeEnum.GTP.getCode())
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
.or()
.eq(SchBasePoint::getIng_task_code, ""))
@ -122,13 +126,6 @@ public class CYXLTask extends AbstractTask {
throw new BadRequestException("该任务已取消!");
}
// 获取参数
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
? JSONObject.parseObject(taskObj.getExt_group_data())
: null;
// 载具编码:没有就创建一个
String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
? taskObj.getVehicle_code()
: IdUtil.getSnowflake(1, 1).nextIdStr();
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
@ -145,41 +142,13 @@ public class CYXLTask extends AbstractTask {
}
// 终点解锁
endPointObj.setIng_task_code("");
// endPointObj.setVehicle_code(ObjectUtil.isEmpty(endPointObj.getVehicle_code()) ? vehicle_code : endPointObj.getVehicle_code());
endPointObj.setVehicle_code(taskObj.getVehicle_code());
endPointObj.setVehicle_qty(1);
endPointObj.setVehicle_type(taskObj.getVehicle_type());
endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
pointService.update(endPointObj);
// 要把数据存到组盘表 -> 改造公共方法,返回id
//todo 涉及一对多、设置物料类型为待分拣冲压件、载具类型
// SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
// groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
// groupEntity.setCreate_id("2");
// groupEntity.setCreate_name("ACS");
// groupEntity.setCreate_time(DateUtil.now());
// groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
// ? workorderCode.getMaterial_id()
// : "");
// groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
// ? workorderCode.getStanding_time()
// : 0);
// groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
// ? extGroupData.getBigDecimal("material_qty")
// : BigDecimal.valueOf(0));
// groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
// ? workorderCode.getWorkorder_code()
// : "");
// groupEntity.setVehicle_code(vehicle_code);
// groupEntity.setVehicle_type(taskObj.getVehicle_type());
// groupEntity.setPoint_code(startPoint);
// groupEntity.setPoint_name(startPointObj.getPoint_name());
// groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd"));
// groupEntity.setInstorage_time(DateUtil.now());
// groupEntity.setTask_code(taskObj.getTask_code());
// groupEntity.setMove_way(startPoint);
// groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
// groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
// groupEntity.setIs_delete(false);
// groupEntity.setMove_way(startPoint);
// vehiclematerialgroupService.save(groupEntity);
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
// taskObj.setGroup_id(groupEntity.getGroup_id());
@ -228,7 +197,37 @@ public class CYXLTask extends AbstractTask {
agvStateParam.setStatus("1");
//叉车到位 请求取货
String url = iotUrl + "iot/agvarrive";
applyIot(url, agvStateParam, result);
JSONObject jsonObject = applyIot(url, agvStateParam, result);
if (jsonObject != null) {
//todo 校验返回的物料信息和订单工艺信息
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
groupEntity.setCreate_id("2");
groupEntity.setCreate_name("ACS");
groupEntity.setCreate_time(DateUtil.now());
groupEntity.setVehicle_code(jsonObject.getString("vehicle_code"));
groupEntity.setVehicle_type(schBaseTask.getVehicle_type());
groupEntity.setPoint_code(startPoint.getPoint_code());
groupEntity.setPoint_name(startPoint.getPoint_name());
groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd"));
groupEntity.setInstorage_time(DateUtil.now());
groupEntity.setTask_code(schBaseTask.getTask_code());
groupEntity.setMove_way(startPoint.getPoint_code());
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
groupEntity.setIs_delete(false);
vehiclematerialgroupService.save(groupEntity);
//todo 多个物料信息绑定
MaterialVehicleBind materialVehicleBind = new MaterialVehicleBind();
materialVehicleBind.setId(IdUtil.getSnowflake(1, 1).nextIdStr());
materialVehicleBind.setCreate_time(DateUtil.now());
materialVehicleBind.setVehicle_code(jsonObject.getString("vehicle_code"));
materialVehicleBind.setGroup_id(groupEntity.getGroup_id());
materialVehicleBind.setMaterial_code(jsonObject.getString("material_code"));
materialVehicleBind.setMaterial_name(jsonObject.getString("material_name"));
materialVehicleBind.setOrder_code(jsonObject.getString("order_code"));
materialVehicleBindService.save(materialVehicleBind);
}
//锁住起点
startPoint.setIng_task_code(schBaseTask.getTask_code());
pointService.update(startPoint);
@ -244,12 +243,13 @@ public class CYXLTask extends AbstractTask {
JSONObject jsonObject = new JSONObject();
jsonObject.put("task_code", IdUtil.getSnowflake(1, 1).nextIdStr());
jsonObject.put("taskType", "CYJKTask");
jsonObject.put("vehicleType", schBaseTask.getVehicle_type());
jsonObject.put("next_device_code", schBaseTask.getPoint_code1());
acsToWmsService.acsApply(jsonObject);
}
}
private void applyIot(String url, AgvStateParam agvStateParam, BaseResponse result) {
private JSONObject applyIot(String url, AgvStateParam agvStateParam, BaseResponse result) {
String jsonParam = JSON.toJSONString(agvStateParam);
log.info("请求iot参数为:{}", jsonParam);
try {
@ -261,10 +261,12 @@ public class CYXLTask extends AbstractTask {
log.info("请求iot成功,返回结果为:{}", res);
result.setCode(HttpStatus.OK.value());
result.setMessage("请求iot成功!");
return res.getJSONObject("data");
} else {
log.error("请求iot失败:{}", res);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
return null;
}
} catch (Exception e) {
String msg = e.getMessage();
@ -272,6 +274,7 @@ public class CYXLTask extends AbstractTask {
log.error("请求iot失败:{}", msg);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
return null;
}
}

214
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJHKTask.java

@ -0,0 +1,214 @@
package org.nl.wms.sch.task_manage.task.tasks.fj;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.ext.service.dto.to.iot.AgvStateParam;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.PointUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
/**
* @Author: sxp
* @Description: 分拣回库
* @Date: 2024/3/11
*/
@Slf4j
@Component
@TaskType("FJHKTask")
@Lazy
public class FJHKTask extends AbstractTask {
private static String TASK_CONFIG_CODE = "FJHKTask";
@Autowired
private ISchBasePointService pointService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Override
protected void create() throws BadRequestException {
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
SchBasePoint point = findNextPoint(taskConfig.getNext_region_str(), task.getVehicle_type());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
log.info("分拣下料未找到当前符合条件的点位!");
continue;
}
task.setPoint_code2(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
taskService.update(task);
//发起任务时先把点位占用,防止发起重复任务
point.setIng_task_code(task.getTask_code());
pointService.update(point);
this.renotifyAcs(task);
}
}
/**
* 判断目标点位
*
* @return
*/
private SchBasePoint findNextPoint(String nextReginStr, String vehicleType) {
String[] reginList = nextReginStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
.eq(SchBasePoint::getCan_vehicle_type, vehicleType)
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true)
.orderByAsc(SchBasePoint::getIn_order_seq)
.orderByAsc(SchBasePoint::getPoint_code);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
}
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
// 校验任务
SchBaseTask taskObj = taskService.getById(task_code);
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
throw new BadRequestException("该任务已完成!");
}
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException("该任务已取消!");
}
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
SchBasePoint endPointObj = pointService.getById(endPoint);
// 根据传来的类型去对任务进行操作
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
}
if (status.equals(TaskStatus.FINISHED)) { // 完成
// 起点清空
if (ObjectUtil.isNotEmpty(startPointObj)) {
PointUtils.clearPoint(startPointObj);
}
// 终点解锁
endPointObj.setIng_task_code("");
// endPointObj.setVehicle_code(ObjectUtil.isEmpty(endPointObj.getVehicle_code()) ? vehicle_code + "," : endPointObj.getVehicle_code() + vehicle_code + ",");
endPointObj.setVehicle_qty(1);
pointService.update(endPointObj);
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 终点解锁
if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setIng_task_code("");
//任务取消把原先占用的位置释放
pointService.update(endPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
}
taskService.update(taskObj);
}
@Override
public void forceFinish(String task_code) {
this.updateStatus(task_code, TaskStatus.FINISHED);
}
@Override
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
@Override
protected void feedbackTaskState(JSONObject param, SchBaseTask schBaseTask, BaseResponse result) {
// 反馈上位系统 反馈上位系统成功后,返回200给acs
AgvStateParam agvStateParam = new AgvStateParam();
agvStateParam.setTask_code(schBaseTask.getTask_code());
agvStateParam.setDevice_code(schBaseTask.getPoint_code1());
agvStateParam.setVehicle_code(schBaseTask.getVehicle_code());
String phase = param.getString("phase");
String iotUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("iot_url").getValue();
SchBasePoint startPoint = pointService.getById(schBaseTask.getPoint_code1());
if ("3".equals(phase)) {
agvStateParam.setStatus("1");
//叉车到位 请求取货
String url = iotUrl + "iot/agvarrive";
applyIot(url, agvStateParam, result);
//锁住起点
startPoint.setIng_task_code(schBaseTask.getTask_code());
pointService.update(startPoint);
}
if ("5".equals(phase)) {
agvStateParam.setStatus("2");
//取货完成,请求离开
String url = iotUrl + "iot/agvfinish";
applyIot(url, agvStateParam, result);
//起点解锁 下发补空托盘任务
startPoint.setIng_task_code("");
pointService.update(startPoint);
}
}
private void applyIot(String url, AgvStateParam agvStateParam, BaseResponse result) {
String jsonParam = JSON.toJSONString(agvStateParam);
log.info("请求iot参数为:{}", jsonParam);
try {
String resultMsg = HttpRequest.post(url)
.body(jsonParam)
.execute().body();
JSONObject res = JSONObject.parseObject(resultMsg);
if ("200".equals(res.getString("code"))) {
log.info("请求iot成功,返回结果为:{}", res);
result.setCode(HttpStatus.OK.value());
result.setMessage("请求iot成功!");
} else {
log.error("请求iot失败:{}", res);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
}
} catch (Exception e) {
String msg = e.getMessage();
//请求iot失败
log.error("请求iot失败:{}", msg);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
}
}
}

264
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJJKTask.java

@ -0,0 +1,264 @@
package org.nl.wms.sch.task_manage.task.tasks.fj;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.ext.service.dto.to.iot.AgvStateParam;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.enums.VehicleTypeEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.sch.task_manage.task.tasks.mapper.PointMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
/**
* @Author: sxp
* @Description: 分拣叫空盘
*/
@Slf4j
@Component
@TaskType("FJJKTask")
@Lazy
public class FJJKTask extends AbstractTask {
private static String TASK_CONFIG_CODE = "FJJKTask";
/**
* 入口
*/
private static String ENTRANCE = "1";
@Autowired
private ISchBasePointService pointService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private IPdmBdWorkorderService workorderService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
private PointMapper pointMapper;
@Autowired
private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
// 获取任务
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
// 配置信息
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
SchBasePoint point = findStartPoint(taskConfig.getStart_region_str(), task.getVehicle_type());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
// 消息通知
log.info("冲压机叫空盘未找到所需点位!");
continue;
}
// 设置起点并修改创建成功状态
task.setPoint_code1(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("创建完成");
task.setVehicle_code(point.getVehicle_code());
task.setVehicle_type(point.getVehicle_type());
taskService.update(task);
//发起任务时先把点位占用,防止发起重复任务
point.setIng_task_code(task.getTask_code());
point.setUpdate_id(GeneralDefinition.ACS_ID);
point.setUpdate_name(GeneralDefinition.ACS_NAME);
point.setUpdate_time(DateUtil.now());
pointService.update(point);
//下发
this.renotifyAcs(task);
}
}
//查找空载具
private SchBasePoint findStartPoint(String startRegionStr, String vehicleType) {
if (StringUtils.isEmpty(startRegionStr)) {
return null;
}
String[] reginList = startRegionStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
.eq(SchBasePoint::getCan_vehicle_type, vehicleType)
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true);
List<SchBasePoint> schBasePoints = pointService.list(lam);
if (ObjectUtil.isNotEmpty(schBasePoints)) {
return schBasePoints.get(0);
}
if (VehicleTypeEnum.LK_RO1.getCode().equals(vehicleType) || VehicleTypeEnum.LK_RO2.getCode().equals(vehicleType)) {
//空托盘从空托盘货架位就近获取,补空料笼从货架及料笼暂存区获取
LambdaQueryWrapper<SchBasePoint> tempAreaLam = new LambdaQueryWrapper<>();
tempAreaLam.eq(SchBasePoint::getRegion_code, "CDLKZC")
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
.eq(SchBasePoint::getCan_vehicle_type, vehicleType)
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true);
List<SchBasePoint> tempAreaList = pointService.list(tempAreaLam);
return ObjectUtil.isNotEmpty(tempAreaList) ? tempAreaList.get(0) : null;
}
return null;
}
@Override
protected void updateStatus(String task_code, TaskStatus status) {
// 校验任务
SchBaseTask taskObj = taskService.getById(task_code);
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
throw new BadRequestException("该任务已完成!");
}
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException("该任务已取消!");
}
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
SchBasePoint endPointObj = pointService.getById(endPoint);
// 根据传来的类型去对任务进行操作
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
taskObj.setRemark("执行中");
}
if (status.equals(TaskStatus.FINISHED)) { // 完成
// 终点解锁
endPointObj.setIng_task_code("");
endPointObj.setVehicle_code(taskObj.getVehicle_code());
// endPointObj.setVehicle_type(taskObj.getVehicle_type());
endPointObj.setVehicle_qty(1);
endPointObj.setUpdate_time(DateUtil.now());
pointService.update(endPointObj);
// 起点清空
startPointObj.setVehicle_code("");
startPointObj.setVehicle_type("");
startPointObj.setVehicle_qty(0);
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
startPointObj.setUpdate_time(DateUtil.now());
pointService.updateById(startPointObj);
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 终点解锁
if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setIng_task_code("");
pointService.update(endPointObj);
}
// 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code("");
pointService.update(startPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
}
taskService.update(taskObj);
}
@Override
public void forceFinish(String task_code) {
this.updateStatus(task_code, TaskStatus.FINISHED);
}
@Override
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
@Override
protected void feedbackTaskState(JSONObject param, SchBaseTask schBaseTask, BaseResponse result) {
// 反馈上位系统 反馈上位系统成功后,返回200给acs
AgvStateParam agvStateParam = new AgvStateParam();
agvStateParam.setTask_code(schBaseTask.getTask_code());
agvStateParam.setDevice_code(schBaseTask.getPoint_code2());
agvStateParam.setVehicle_code(schBaseTask.getVehicle_code());
String phase = param.getString("phase");
String iotUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("iot_url").getValue();
SchBasePoint endPoint = pointService.getById(schBaseTask.getPoint_code2());
if ("7".equals(phase)) {
//todo 请求放货状态需要修改
agvStateParam.setStatus("3");
//叉车到位 请求放货
String url = iotUrl + "iot/agvarrive";
applyIot(url, agvStateParam, result);
//锁住终点
endPoint.setIng_task_code(schBaseTask.getTask_code());
pointService.update(endPoint);
}
if ("9".equals(phase)) {
//todo 请求放货状态需要修改
agvStateParam.setStatus("4");
//取货完成,请求离开
String url = iotUrl + "iot/agvfinish";
applyIot(url, agvStateParam, result);
//终点解锁 设置载具类型和编码
endPoint.setIng_task_code("");
// endPoint.setVehicle_code(schBaseTask.getVehicle_code());
// endPoint.setVehicle_type(schBaseTask.getVehicle_type());
pointService.update(endPoint);
}
}
private void applyIot(String url, AgvStateParam agvStateParam, BaseResponse result) {
String jsonParam = JSON.toJSONString(agvStateParam);
log.info("请求iot参数为:{}", jsonParam);
try {
String resultMsg = HttpRequest.post(url)
.body(jsonParam)
.execute().body();
JSONObject res = JSONObject.parseObject(resultMsg);
if ("200".equals(res.getString("code"))) {
log.info("请求iot成功,返回结果为:{}", res);
result.setCode(HttpStatus.OK.value());
result.setMessage("请求iot成功!");
} else {
log.error("请求iot失败:{}", res);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
}
} catch (Exception e) {
String msg = e.getMessage();
//请求iot失败
log.error("请求iot失败:{}", msg);
result.setCode(HttpStatus.BAD_REQUEST.value());
result.setMessage("请求iot失败!");
}
}
}

55
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJSLTask.java

@ -7,6 +7,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.util.StringUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl;
@ -16,6 +18,7 @@ import org.nl.wms.ext.service.dto.to.iot.AgvStateParam;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.materialBind.service.IMaterialVehicleBindService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
@ -50,10 +53,6 @@ import java.util.List;
@Lazy
public class FJSLTask extends AbstractTask {
private static String TASK_CONFIG_CODE = "FJSLTask";
/**
* 入口
*/
private static String ENTRANCE = "1";
@Autowired
private ISchBasePointService pointService;
@Autowired
@ -61,13 +60,9 @@ public class FJSLTask extends AbstractTask {
@Autowired
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private IPdmBdWorkorderService workorderService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
private PointMapper pointMapper;
@Autowired
private WmsToAcsService wmsToAcsService;
private IMaterialVehicleBindService materialVehicleBindService;
@Override
// @Transactional(rollbackFor = Exception.class)
@ -78,7 +73,7 @@ public class FJSLTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
SchBasePoint point = findStartPoint(taskConfig.getStart_region_str());
SchBasePoint point = findStartPoint(task, taskConfig.getStart_region_str());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
@ -88,6 +83,8 @@ public class FJSLTask extends AbstractTask {
}
// 设置起点并修改创建成功状态
task.setPoint_code1(point.getPoint_code());
task.setVehicle_code(point.getVehicle_code());
task.setVehicle_type(point.getVehicle_type());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
taskService.update(task);
@ -102,14 +99,17 @@ public class FJSLTask extends AbstractTask {
}
}
//查找待分拣物料 todo 需要关联组盘信息去查
private SchBasePoint findStartPoint(String startRegionStr) {
//查找起点,如果上位系统指定起点,直接返回起点,未指定,就从数据库中查找
private SchBasePoint findStartPoint(SchBaseTask task, String startRegionStr) {
if (StringUtils.isNotEmpty(task.getPoint_code1())) {
return pointService.selectByExtPointCode(task.getPoint_code1());
}
//从待分拣货架查找 物料类型是待分拣物料,物料类型字段尚未确定
String[] reginList = startRegionStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
.eq(SchBasePoint::getPoint_type,"1")
.eq(SchBasePoint::getCan_vehicle_type, task.getVehicle_type())
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
@ -146,27 +146,29 @@ public class FJSLTask extends AbstractTask {
// 终点解锁
endPointObj.setIng_task_code("");
endPointObj.setVehicle_code(taskObj.getVehicle_code());
endPointObj.setVehicle_code2(taskObj.getVehicle_code2());
endPointObj.setVehicle_qty(1);
endPointObj.setUpdate_time(DateUtil.now());
pointService.update(endPointObj);
// 起点清空
startPointObj.setVehicle_code("");
startPointObj.setVehicle_code2("");
startPointObj.setIng_task_code("");
startPointObj.setVehicle_type("");
startPointObj.setVehicle_qty(0);
startPointObj.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode());
startPointObj.setUpdate_time(DateUtil.now());
pointService.updateById(startPointObj);
//todo 分拣上料完成后 组盘信息解绑
// SchBaseVehiclematerialgroup vehicleMaterialGroupObj = vehiclematerialgroupService.getById(taskObj.getGroup_id());
// vehicleMaterialGroupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
// vehicleMaterialGroupObj.setPoint_code(endPointObj.getPoint_code());
// vehicleMaterialGroupObj.setPoint_name(endPointObj.getPoint_name());
// vehicleMaterialGroupObj.setTask_code(taskObj.getTask_code());
// vehicleMaterialGroupObj.setMove_way(vehicleMaterialGroupObj.getMove_way() + " -> " + endPointObj.getPoint_code());
// vehicleMaterialGroupObj.setUpdate_id(GeneralDefinition.ACS_ID);
// vehicleMaterialGroupObj.setUpdate_name(GeneralDefinition.ACS_NAME);
// vehicleMaterialGroupObj.setUpdate_time(DateUtil.now());
// vehiclematerialgroupService.updateById(vehicleMaterialGroupObj);
// 分拣上料完成后 组盘信息解绑
SchBaseVehiclematerialgroup vehicleMaterialGroupObj = vehiclematerialgroupService.getById(taskObj.getGroup_id());
vehicleMaterialGroupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
vehicleMaterialGroupObj.setPoint_code(endPointObj.getPoint_code());
vehicleMaterialGroupObj.setPoint_name(endPointObj.getPoint_name());
vehicleMaterialGroupObj.setTask_code(taskObj.getTask_code());
vehicleMaterialGroupObj.setMove_way(vehicleMaterialGroupObj.getMove_way() + " -> " + endPointObj.getPoint_code());
vehicleMaterialGroupObj.setUpdate_id(GeneralDefinition.ACS_ID);
vehicleMaterialGroupObj.setUpdate_name(GeneralDefinition.ACS_NAME);
vehicleMaterialGroupObj.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(vehicleMaterialGroupObj);
materialVehicleBindService.deleteByGroupId(vehicleMaterialGroupObj.getGroup_id());
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
@ -231,6 +233,7 @@ public class FJSLTask extends AbstractTask {
pointService.update(endPoint);
}
}
private void applyIot(String url, AgvStateParam agvStateParam, BaseResponse result) {
String jsonParam = JSON.toJSONString(agvStateParam);
log.info("请求iot参数为:{}", jsonParam);

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJXLTask.java

@ -94,6 +94,7 @@ public class FJXLTask extends AbstractTask {
* @return
*/
private SchBasePoint findNextPoint(String nextReginStr) {
//todo 添加点位类型为对应载具
String[] reginList = nextReginStr.split(",");
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, Arrays.asList(reginList))

125
lms/nladmin-ui/src/views/wms/sch/materialBind/index.vue

@ -0,0 +1,125 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="ID">
<el-input v-model="form.id" style="width: 370px;" />
</el-form-item>
<el-form-item label="物料编码">
<el-input v-model="form.material_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="物料名称">
<el-input v-model="form.material_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="托盘号">
<el-input v-model="form.vehicle_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="物料数量">
<el-input v-model="form.material_num" style="width: 370px;" />
</el-form-item>
<el-form-item label="订单号">
<el-input v-model="form.order_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="位置">
<el-input v-model="form.position" style="width: 370px;" />
</el-form-item>
<el-form-item label="创建时间">
<el-input v-model="form.create_time" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改时间">
<el-input v-model="form.update_time" style="width: 370px;" />
</el-form-item>
<el-form-item label="是否删除">
<el-input v-model="form.is_delete" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="id" label="ID" :min-width="flexWidth('id',crud.data,'ID')"/>
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')"/>
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')"/>
<el-table-column prop="vehicle_code" label="托盘号" :min-width="flexWidth('vehicle_code',crud.data,'托盘号')"/>
<el-table-column prop="material_num" label="物料数量" :min-width="flexWidth('material_num',crud.data,'物料数量')"/>
<el-table-column prop="order_code" label="订单号" :min-width="flexWidth('order_code',crud.data,'订单号')"/>
<el-table-column prop="position" label="位置" :min-width="flexWidth('position',crud.data,'位置')"/>
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')"/>
<el-table-column prop="update_time" label="修改时间" :min-width="flexWidth('update_time',crud.data,'修改时间')"/>
<el-table-column prop="is_delete" label="是否删除" :min-width="flexWidth('is_delete',crud.data,'是否删除')"/>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudMaterialVehicleBind from './materialVehicleBind'
import CRUD, {crud, form, header, presenter} from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = {
id: null,
material_code: null,
material_name: null,
vehicle_code: null,
material_num: null,
order_code: null,
position: null,
create_time: null,
update_time: null,
is_delete: null
}
export default {
name: 'MaterialVehicleBind',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '载具物料信息绑定',
url: 'api/materialVehicleBind',
idField: 'id',
sort: 'id,desc',
crudMethod: { ...crudMaterialVehicleBind }
})
},
data() {
return {
permission: {
},
rules: {
} }
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

27
lms/nladmin-ui/src/views/wms/sch/materialBind/materialVehicleBind.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/materialVehicleBind',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/materialVehicleBind/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/materialVehicleBind',
method: 'put',
data
})
}
export default { add, edit, del }

4
lms/nladmin-ui/src/views/wms/sch/point/index.vue

@ -217,7 +217,7 @@
<el-form-item v-if="form.point_status !== '1'" label="子载具编码" prop="vehicle_code2">
<el-input v-model="form.vehicle_code2" clearable style="width: 370px;" />
</el-form-item>
<!-- <el-form-item label="可放载具类型" prop="can_vehicle_types">
<el-form-item label="可放载具类型" prop="can_vehicle_types">
<el-select v-model="form.can_vehicle_types" multiple placeholder="请选择" clearable style="width: 370px;">
<el-option
v-for="item in dict.vehicle_type"
@ -226,7 +226,7 @@
:value="item.value"
/>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item label="载具数量" prop="vehicle_qty">
<el-input-number v-model="form.vehicle_qty" style="width: 370px;" :controls="false" class="clear-number-input" :min="0" :precision="0" :max="99999" label="载具数量" size="mini" />
</el-form-item>

130
lms/nladmin-ui/src/views/wms/sch/process/index.vue

@ -0,0 +1,130 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="ID">
<el-input v-model="form.order_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="订单号">
<el-input v-model="form.order" style="width: 370px;" />
</el-form-item>
<el-form-item label="工序">
<el-input v-model="form.process" style="width: 370px;" />
</el-form-item>
<el-form-item label="额定最后期限">
<el-input v-model="form.last_time" style="width: 370px;" />
</el-form-item>
<el-form-item label="创建人标识">
<el-input v-model="form.create_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="创建人">
<el-input v-model="form.create_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="创建时间">
<el-input v-model="form.create_time" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改人标识">
<el-input v-model="form.update_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改人">
<el-input v-model="form.update_name" style="width: 370px;" />
</el-form-item>
<el-form-item label="修改时间">
<el-input v-model="form.update_time" style="width: 370px;" />
</el-form-item>
<el-form-item label="是否删除">
<el-input v-model="form.is_delete" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="order_id" label="ID" :min-width="flexWidth('order_id',crud.data,'ID')"/>
<el-table-column prop="order" label="订单号" :min-width="flexWidth('order',crud.data,'订单号')"/>
<el-table-column prop="process" label="工序" :min-width="flexWidth('process',crud.data,'工序')"/>
<el-table-column prop="last_time" label="额定最后期限" :min-width="flexWidth('last_time',crud.data,'额定最后期限')"/>
<el-table-column prop="create_id" label="创建人标识" :min-width="flexWidth('create_id',crud.data,'创建人标识')"/>
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')"/>
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')"/>
<el-table-column prop="update_id" label="修改人标识" :min-width="flexWidth('update_id',crud.data,'修改人标识')"/>
<el-table-column prop="update_name" label="修改人" :min-width="flexWidth('update_name',crud.data,'修改人')"/>
<el-table-column prop="update_time" label="修改时间" :min-width="flexWidth('update_time',crud.data,'修改时间')"/>
<el-table-column prop="is_delete" label="是否删除" :min-width="flexWidth('is_delete',crud.data,'是否删除')"/>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudOrderProcess from './orderProcess'
import CRUD, {crud, form, header, presenter} from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = {
order_id: null,
order: null,
process: null,
last_time: null,
create_id: null,
create_name: null,
create_time: null,
update_id: null,
update_name: null,
update_time: null,
is_delete: null
}
export default {
name: 'OrderProcess',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '订单工艺信息',
url: 'api/orderProcess',
idField: 'order_id',
sort: 'order_id,desc',
crudMethod: { ...crudOrderProcess }
})
},
data() {
return {
permission: {
},
rules: {
} }
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

27
lms/nladmin-ui/src/views/wms/sch/process/orderProcess.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/orderProcess',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/orderProcess/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/orderProcess',
method: 'put',
data
})
}
export default { add, edit, del }
Loading…
Cancel
Save