rev:刻字后端代码
This commit is contained in:
@@ -281,17 +281,17 @@
|
||||
</dependency>
|
||||
|
||||
<!-- 解析客户端操作系统、浏览器信息 -->
|
||||
<dependency>
|
||||
<groupId>nl.basjes.parse.useragent</groupId>
|
||||
<artifactId>yauaa</artifactId>
|
||||
<version>5.23</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>nl.basjes.parse.useragent</groupId>-->
|
||||
<!-- <artifactId>yauaa</artifactId>-->
|
||||
<!-- <version>5.23</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>eu.bitwalker</groupId>
|
||||
<artifactId>UserAgentUtils</artifactId>
|
||||
<version>1.21</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>eu.bitwalker</groupId>-->
|
||||
<!-- <artifactId>UserAgentUtils</artifactId>-->
|
||||
<!-- <version>1.21</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!--WQL-->
|
||||
<dependency>
|
||||
|
||||
@@ -28,9 +28,8 @@ public enum AcsTaskEnum {
|
||||
TASK_PRODUCT_WASH("3","专机-深坑任务"),
|
||||
//3个点,任务编号,缓存线满料载具列表
|
||||
TASK_CACHELINE_OUT("4","缓存线-专机缺料任务"),
|
||||
TASK_PLOTTER_MAC("5","刻字机-满料入库"),
|
||||
TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"),
|
||||
TASK_PLOTTER_CALL_MATERIAL("14","刻字机-叫料请求"),
|
||||
TASK_PLOTTER_MAC("5","刻字机-满料入库"),//判断是否铁料框(否的话: 不处理人工处理跟acs反馈sucess):
|
||||
TASK_PLOTTER_EMPTY("6","刻字机-呼叫空框"),//判断是否铁料框(否的话: 不处理人工处理跟acs反馈sucess):一体机加一个呼叫空框请求功能
|
||||
TASK_WARP_MAC("7","包装机-叫料出库"),
|
||||
TASK_WARP_EMPTY("8","包装机-送空框"),
|
||||
TASK_STRUCT_IN("9","入库-半成品-生产入库"),
|
||||
@@ -41,7 +40,11 @@ public enum AcsTaskEnum {
|
||||
TASK_STRUCT_BCP_EMPOUT("17","半成品-空托盘出库"),
|
||||
TASK_STRUCT_CP_IN("11","入库-成品-生产入库"),
|
||||
TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"),
|
||||
TASK_STRUCT_CP_CHECK("13","成品-盘点"),
|
||||
TASK_STRUCT_CP_CHECK("13","-盘点"),
|
||||
TASK_WASH_LACK("20","清洗机-缺料请求"),
|
||||
TASK_WASH_EMP("21","清洗机-空叫空框"),
|
||||
TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位
|
||||
TASK_WASH_FULL_QZ("23","清洗机-满料请求强制"),//去异常位:
|
||||
|
||||
//回调状态
|
||||
STATUS_START("1","执行中"),
|
||||
@@ -52,11 +55,13 @@ public enum AcsTaskEnum {
|
||||
REQUEST_CALLTYPE_EMP("1","专机缺料请求"),
|
||||
REQUEST_PLOTTER_SEND_FULL("3","刻字满料请求"),
|
||||
REQUEST_PLOTTER_CALL_EMP("4","刻字空框请求"),
|
||||
REQUEST_PLOTTER_CALL_MATERIAL("9","刻字叫料请求"),//由mes下发
|
||||
REQUEST_WARP_CALL_FULL("5","包装缺料请求"),
|
||||
REQUEST_WARP_SEND_EMP("6","包装送空框请求"),
|
||||
REQUEST_WASH_EMP("7","清洗机器缺料请求"),
|
||||
REQUEST_WASH_FULL("8","清洗机器满料请求"),
|
||||
REQUEST_WASH_LACK("7","清洗机器缺料请求"),//深坑->清洗:相同物料的重量<150公斤;
|
||||
REQUEST_WASH_EMP("8","清洗机器空框请求"),//清洗机下料位
|
||||
REQUEST_WASH_FULL("9","清洗机器满料请求"),//清洗机满料请求
|
||||
REQUEST_WASH_FULL_ERROR("10","清洗机-满料异常请求"),//去半成品入库
|
||||
|
||||
|
||||
|
||||
//
|
||||
|
||||
@@ -19,11 +19,8 @@ import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import nl.basjes.parse.useragent.UserAgent;
|
||||
import nl.basjes.parse.useragent.UserAgentAnalyzer;
|
||||
import org.nl.modules.common.config.ElAdminProperties;
|
||||
import org.nl.modules.common.utils.ElAdminConstant;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.net.InetAddress;
|
||||
@@ -47,12 +44,12 @@ public class StringUtils {
|
||||
* 注入bean
|
||||
*/
|
||||
|
||||
private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer
|
||||
.newBuilder()
|
||||
.hideMatcherLoadStats()
|
||||
.withCache(10000)
|
||||
.withField(UserAgent.AGENT_NAME_VERSION)
|
||||
.build();
|
||||
// private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer
|
||||
// .newBuilder()
|
||||
// .hideMatcherLoadStats()
|
||||
// .withCache(10000)
|
||||
// .withField(UserAgent.AGENT_NAME_VERSION)
|
||||
// .build();
|
||||
|
||||
/**
|
||||
* 驼峰命名法工具
|
||||
@@ -198,8 +195,9 @@ public class StringUtils {
|
||||
|
||||
|
||||
public static String getBrowser(HttpServletRequest request) {
|
||||
UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent"));
|
||||
return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue();
|
||||
// UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent"));
|
||||
// return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue();
|
||||
return "default";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,6 @@ import org.nl.wms.product_manage.sch.tasks.WashMachineryTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.callEmpty.PlotterCallEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.callMaterial.PlotterCallMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -25,10 +24,10 @@ 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_EMP, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(PlotterCallMaterialTask.class));
|
||||
// AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(EngraveCallMaterialTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class));
|
||||
AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class));
|
||||
System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size());
|
||||
|
||||
@@ -16,18 +16,15 @@
|
||||
package org.nl.modules.common.utils;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import nl.basjes.parse.useragent.UserAgent;
|
||||
import nl.basjes.parse.useragent.UserAgentAnalyzer;
|
||||
import org.nl.modules.common.config.ElAdminProperties;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.net.InetAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
@@ -47,12 +44,6 @@ public class StringUtils {
|
||||
*/
|
||||
|
||||
|
||||
private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer
|
||||
.newBuilder()
|
||||
.hideMatcherLoadStats()
|
||||
.withCache(10000)
|
||||
.withField(UserAgent.AGENT_NAME_VERSION)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* 驼峰命名法工具
|
||||
@@ -188,8 +179,7 @@ public class StringUtils {
|
||||
|
||||
|
||||
public static String getBrowser(HttpServletRequest request) {
|
||||
UserAgent.ImmutableUserAgent userAgent = USER_AGENT_ANALYZER.parse(request.getHeader("User-Agent"));
|
||||
return userAgent.get(UserAgent.AGENT_NAME_VERSION).getValue();
|
||||
return "default";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -102,7 +102,7 @@ public class LogServiceImpl implements LogService {
|
||||
logDto.setMethod(methodName);
|
||||
logDto.setUsername(username);
|
||||
logDto.setParams(getParameter(method, joinPoint.getArgs()));
|
||||
logDto.setBrowser(browser);
|
||||
logDto.setBrowser("default");
|
||||
logRepository.save(logDto);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
|
||||
package org.nl.wms.masterdata_manage.备份pdm.rest;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nl.common.anno.Log;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ldjun
|
||||
* @date 2021-12-19
|
||||
**/
|
||||
//@RestController
|
||||
@RequiredArgsConstructor
|
||||
//@Api(tags = "工序管理")
|
||||
//@RequestMapping("/api/workProcedure")
|
||||
@Slf4j
|
||||
public class WorkProcedureController {
|
||||
|
||||
|
||||
private final WorkProcedureService workProcedureService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询工序")
|
||||
@ApiOperation("查询工序")
|
||||
//@PreAuthorize("@el.check('WorkProcedure:list')")
|
||||
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(workProcedureService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增工序")
|
||||
@ApiOperation("新增工序")
|
||||
//@PreAuthorize("@el.check('WorkProcedure:add')")
|
||||
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody WorkProcedureDto dto) {
|
||||
workProcedureService.create(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改工序")
|
||||
@ApiOperation("修改工序")
|
||||
//@PreAuthorize("@el.check('WorkProcedure:edit')")
|
||||
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody WorkProcedureDto dto) {
|
||||
workProcedureService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除工序")
|
||||
@ApiOperation("删除工序")
|
||||
//@PreAuthorize("@el.check('WorkProcedure:del')")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
workProcedureService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/downSelect")
|
||||
@Log("查询工序下拉列表")
|
||||
@ApiOperation("查询工序下拉列表")
|
||||
public ResponseEntity<Object> downSelect() {
|
||||
return new ResponseEntity<>(workProcedureService.downSelect(), HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/queryWorkprocedure")
|
||||
@Log("查询生产工序")
|
||||
@ApiOperation("查询生产工序")
|
||||
//@PreAuthorize("@el.check('workprocedure:list')")
|
||||
public ResponseEntity<Object> queryWorkprocedure() {
|
||||
return new ResponseEntity<>(workProcedureService.queryWorkprocedure(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
|
||||
package org.nl.wms.masterdata_manage.备份pdm.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @description 服务接口
|
||||
* @date 2021-12-19
|
||||
**/
|
||||
public interface WorkProcedureService {
|
||||
/**
|
||||
* 查询数据分页
|
||||
*
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> queryAll(Map whereJson, Pageable page);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
*
|
||||
* @param whereJson 条件参数
|
||||
* @return List<WorkProcedureDto>
|
||||
*/
|
||||
List<WorkProcedureDto> queryAll(Map whereJson);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
*
|
||||
* @param workProcedure_id ID
|
||||
* @return WorkProcedure
|
||||
*/
|
||||
WorkProcedureDto findById(String workProcedure_id);
|
||||
|
||||
/**
|
||||
* 根据编码查询
|
||||
*
|
||||
* @param code code
|
||||
* @return WorkProcedure
|
||||
*/
|
||||
WorkProcedureDto findByCode(String code);
|
||||
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param dto /
|
||||
*/
|
||||
void create(WorkProcedureDto dto);
|
||||
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
*
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param dto /
|
||||
*/
|
||||
void update(WorkProcedureDto dto);
|
||||
|
||||
|
||||
/**
|
||||
* 获取下拉选列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
JSONArray downSelect();
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param
|
||||
* @return List<PdmBaseWorkprocedureDto>
|
||||
*/
|
||||
List<WorkProcedureDto> queryWorkprocedure();
|
||||
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
package org.nl.wms.masterdata_manage.备份pdm.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @description /
|
||||
* @date 2021-12-19
|
||||
**/
|
||||
@Data
|
||||
public class WorkProcedureDto implements Serializable {
|
||||
|
||||
/** 工序标识 */
|
||||
private String workprocedure_id;
|
||||
|
||||
/** 生产区域 */
|
||||
private String product_area;
|
||||
|
||||
/** 工序编码 */
|
||||
private String workprocedure_code;
|
||||
|
||||
/** 工序名称 */
|
||||
private String workprocedure_name;
|
||||
|
||||
/** 对应工段 */
|
||||
private String worksection_type_scode;
|
||||
|
||||
/** 分段计算类型 */
|
||||
private String burst_type_scode;
|
||||
|
||||
/** 是否关键工序 */
|
||||
private String is_keyworkprocedure;
|
||||
|
||||
/** 是否首道工序 */
|
||||
private String is_first;
|
||||
|
||||
/** 是否启用 */
|
||||
private String is_used;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 创建人 */
|
||||
private String create_id;
|
||||
|
||||
/** 创建人姓名 */
|
||||
private String create_name;
|
||||
|
||||
/** 创建时间 */
|
||||
private String create_time;
|
||||
|
||||
/** 修改人 */
|
||||
private String update_id;
|
||||
|
||||
/** 修改人姓名 */
|
||||
private String update_name;
|
||||
|
||||
/** 修改时间 */
|
||||
private String update_time;
|
||||
}
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
|
||||
package org.nl.wms.masterdata_manage.备份pdm.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.wql.core.bean.ResultBean;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.wms.system_manage.service.user.dto.CurrentUser;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto;
|
||||
|
||||
|
||||
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ldjun
|
||||
* @description 服务实现
|
||||
* @date 2021-12-19
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class WorkProcedureServiceImpl implements WorkProcedureService {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
String where = "";
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure");
|
||||
String search = (String) whereJson.get("search");
|
||||
String product_area = (String) whereJson.get("product_area");
|
||||
if (!StrUtil.isEmpty(search)) {
|
||||
where += " AND (workprocedure_code like '%" + search + "%' OR workprocedure_name like '%" + search + "%' )";
|
||||
}
|
||||
if(!StrUtil.isEmpty(product_area)) {
|
||||
where += " AND product_area = '" + product_area + "'";
|
||||
}
|
||||
ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "is_used = '1' " + where, "workprocedure_code");
|
||||
final JSONObject json = rb.pageResult();
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WorkProcedureDto> queryAll(Map whereJson) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
JSONArray arr = wo.query().getResultJSONArray(0);
|
||||
List<WorkProcedureDto> list = arr.toJavaList(WorkProcedureDto.class);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkProcedureDto findById(String workProcedure_id) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
JSONObject json = wo.query("workProcedure_id =" + workProcedure_id + "").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json)) return null;
|
||||
final WorkProcedureDto obj = json.toJavaObject(WorkProcedureDto.class);
|
||||
return obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkProcedureDto findByCode(String code) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
JSONObject json = wo.query("workprocedure_code ='" + code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json)) return null;
|
||||
final WorkProcedureDto obj = json.toJavaObject(WorkProcedureDto.class);
|
||||
return obj;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(WorkProcedureDto dto) {
|
||||
//判断编码是否存在
|
||||
String workprocedure_code = dto.getWorkprocedure_code();
|
||||
WorkProcedureDto byCode = this.findByCode(workprocedure_code);
|
||||
if (ObjectUtil.isNotEmpty(byCode)) throw new BadRequestException("编码已存在!");
|
||||
CurrentUser currentUser = SecurityUtils.getCurrentUser();
|
||||
String currentUserId = currentUser.getId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
|
||||
dto.setWorkprocedure_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
dto.setCreate_id(currentUserId);
|
||||
dto.setCreate_name(nickName);
|
||||
dto.setUpdate_id(currentUserId);
|
||||
dto.setUpdate_name(nickName);
|
||||
dto.setUpdate_time(DateUtil.now());
|
||||
dto.setCreate_time(DateUtil.now());
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.insert(json);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(WorkProcedureDto dto) {
|
||||
WorkProcedureDto entity = this.findById(dto.getWorkprocedure_id());
|
||||
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
||||
|
||||
String workprocedure_code = entity.getWorkprocedure_code();
|
||||
WorkProcedureDto byCode = this.findByCode(workprocedure_code);
|
||||
if (ObjectUtil.isNotEmpty(byCode) && !dto.getWorkprocedure_id().equals(byCode.getWorkprocedure_id()))
|
||||
throw new BadRequestException("存在相同的编码!");
|
||||
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
|
||||
|
||||
dto.setUpdate_time(DateUtil.now());
|
||||
dto.setUpdate_id(currentUserId);
|
||||
dto.setUpdate_name(nickName);
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.update(json);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(Long[] ids) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
|
||||
for (Long workProcedure_id : ids) {
|
||||
wo.delete("workProcedure_id = '" + workProcedure_id + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray downSelect() {
|
||||
//工序表【PDM_BI_WorkProcedure】
|
||||
WQLObject workProcedureTab = WQLObject.getWQLObject("PDM_BI_WorkProcedure");
|
||||
JSONArray resultJSONArray = workProcedureTab.query("is_used ='1'", "workprocedure_code").getResultJSONArray(0);
|
||||
return resultJSONArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WorkProcedureDto> queryWorkprocedure() {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure");
|
||||
//只查清洗 跟仓储
|
||||
JSONArray arr = wo.query(" is_used = '1' and workprocedure_code in ('12','08')").getResultJSONArray(0);
|
||||
if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(WorkProcedureDto.class);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -11,15 +11,9 @@ 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.modules.wql.core.bean.ResultBean;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.WqlUtil;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.WorkProcedureService;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto;
|
||||
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.service.workprocedure.dto.WorkprocedureQuery;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@@ -90,7 +90,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject param) {
|
||||
String start_point_code = param.getString("device_code");
|
||||
String end_point_code = param.getString("device_code");
|
||||
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_code", param.getString("workorder_code"))
|
||||
.eq("is_delete", false)
|
||||
@@ -111,13 +111,13 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", taskdtl_id);
|
||||
task.put("task_name", AcsTaskEnum.TASK_PLOTTER_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.getCode());
|
||||
task.put("task_name", AcsTaskEnum.TASK_PLOTTER_EMPTY.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_PLOTTER_EMPTY.getCode());
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||
task.put("material_id", order.getMaterial_id());
|
||||
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code1", start_point_code);
|
||||
task.put("point_code2", end_point_code);
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
@@ -181,7 +181,7 @@ public class PlotterCallEmptyTask extends AbstractAcsTask {
|
||||
.eq("point_code",map.get("point_code")));
|
||||
// 设置点位
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code2",map.get("point_code"));
|
||||
taskObj.put("point_code1",map.get("point_code"));
|
||||
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callMaterial;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/6/16 08:40
|
||||
*/
|
||||
@Service
|
||||
public class EngraveCallMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pointConfirm(JSONObject param) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callMaterial;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -16,9 +22,21 @@ import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -28,7 +46,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
private static final String OPT_NAME = "包装机#";
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private WmsToAcsService wms;
|
||||
@Override
|
||||
@@ -94,64 +117,54 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject param) {
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_produce_workOrder");
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
String end_point_code = param.getString("device_code");
|
||||
String workorder = param.getString("workorder_code");
|
||||
if(StrUtil.isEmpty(end_point_code)) {
|
||||
throw new BadRequestException("终点不能为空!");
|
||||
}
|
||||
if(StrUtil.isEmpty(workorder)) {
|
||||
throw new BadRequestException("工单不能为空!");
|
||||
}
|
||||
// 判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + end_point_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) {
|
||||
throw new BadRequestException("当前点位" + end_point_code + "存在未完成的任务");
|
||||
}
|
||||
// 判断工单
|
||||
JSONObject workOrderObj = workOrderTab.query("workorder_code = '" + workorder + "' and workorder_status <> '" + StatusEnum.TASK_FINISH.getCode() + "' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(workOrderObj)){
|
||||
throw new BadRequestException("下发工单不存在未完成工单:"+workorder);
|
||||
PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_code", param.getString("workorder_code"))
|
||||
.eq("is_delete", false)
|
||||
.lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode()));
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
//?刻字满料请求:可以存在多个任务?
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("point_code2", 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")));
|
||||
}
|
||||
// 查找任务状态
|
||||
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextIdStr();
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", taskdtl_id);
|
||||
task.put("task_id", IdUtil.getStringId());
|
||||
task.put("task_name", AcsTaskEnum.TASK_WARP_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_WARP_MAC.getCode());
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("point_code2", end_point_code);
|
||||
task.put("point_code2", param.getString("device_code"));
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("update_id", currentUserId);
|
||||
task.put("update_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("priority", "1");
|
||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(task);
|
||||
task.put("table_fk_id",order.getWorkorder_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
taskService.save(schBaseTask);
|
||||
// 找终点
|
||||
try {
|
||||
pointConfirm(task);
|
||||
JSONArray data = new JSONArray();
|
||||
JSONObject result = taskTab.query("task_id = '" + taskdtl_id + "'").uniqueResult(0);
|
||||
data.add(result);
|
||||
data.add(task);
|
||||
// 下发
|
||||
wms.issueTaskToAcs2(data);
|
||||
} catch (Exception ex) {
|
||||
// 未找到
|
||||
task.put("remark", ex.getMessage());
|
||||
task.put("task_status", StatusEnum.TASK_START_ERROR.getCode());
|
||||
task.put("update_time", DateUtil.now());
|
||||
taskTab.update(task);
|
||||
log.error("刻字请求异常,error:{}",ex);
|
||||
schBaseTask.setRemark(ex.getMessage());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setUpdate_name("acs");
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||
taskService.save(schBaseTask);
|
||||
}
|
||||
return taskdtl_id;
|
||||
return task.getString("task_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -161,26 +174,29 @@ public class WrapCallMaterialTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public void pointConfirm(JSONObject taskObj) {
|
||||
log.info(OPT_NAME+"callMaterial param:{}",JSONObject.toJSONString(taskObj));
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
// 去刻字缓存区找物料
|
||||
JSONObject point = pointTab.query("region_code = 'A1_KZHC' AND point_status = '" +
|
||||
StatusEnum.POINT_STATUS_FULL.getCode() + "' AND lock_type = '" + StatusEnum.LOCK_OFF.getCode() +
|
||||
"' AND is_used = '" + StatusEnum.STATUS_TRUE.getCode() + "' AND is_delete = '" +
|
||||
StatusEnum.STATUS_FLASE.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(point)) {
|
||||
// 找到位置
|
||||
// 点位上锁
|
||||
point.put("lock_type", StatusEnum.LOCK_ON.getCode());
|
||||
pointTab.update(point);
|
||||
// 任务修改
|
||||
taskObj.put("point_code1", point.getString("point_code"));
|
||||
taskObj.put("task_status", StatusEnum.TASK_START_END_P.getCode());
|
||||
// 去刻字缓存区寻找空位
|
||||
List<Map<String, String>> points = pointService.queryVehicle(
|
||||
MapOf.of("is_used", "1",
|
||||
"lock_type", StatusEnum.LOCK_OFF.getCode(),
|
||||
"region_code", "A1_KZHC",
|
||||
"material_id", taskObj.getString("material_id")));
|
||||
if (ObjectUtil.isNotEmpty(points)) {
|
||||
Map<String, String> map = points.get(0);
|
||||
if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_ON.getCode())
|
||||
.eq("point_code",map.get("point_code")));
|
||||
// 设置点位
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
taskObj.put("point_code1",map.get("point_code"));
|
||||
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
taskService.updateById(schBaseTask);
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用空框.");
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
@@ -15,10 +16,18 @@ import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 包装机送空框
|
||||
@@ -27,7 +36,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
private static final String OPT_NAME = "包装机#";
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private WmsToAcsService wms;
|
||||
@Override
|
||||
@@ -148,27 +162,28 @@ public class WrapSendEmptyTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pointConfirm(JSONObject taskObj) {
|
||||
log.info(OPT_NAME+"sendEmptyVehicle param:{}",JSONObject.toJSONString(taskObj));
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
// 去刻字缓存区找空位
|
||||
JSONObject point = pointTab.query("region_code = 'A1_KZHC' AND point_status = '" +
|
||||
StatusEnum.POINT_STATUS_EMPTY.getCode() + "' AND lock_type = '" + StatusEnum.LOCK_OFF.getCode() +
|
||||
"' AND is_used = '" + StatusEnum.STATUS_TRUE.getCode() + "' AND is_delete = '" +
|
||||
StatusEnum.STATUS_FLASE.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(point)) {
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<SchBasePoint> list = pointService.list(new QueryWrapper<SchBasePoint>().isNull("vehicle_code")
|
||||
.eq("is_used", "1")
|
||||
.eq("region_code","A1_KZHC")
|
||||
.eq("lock_type", StatusEnum.LOCK_OFF.getCode()));
|
||||
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
// 找到位置
|
||||
// 点位上锁
|
||||
point.put("lock_type", StatusEnum.LOCK_ON.getCode());
|
||||
pointTab.update(point);
|
||||
SchBasePoint point = list.get(0);
|
||||
point.setLock_type(StatusEnum.LOCK_ON.getCode());
|
||||
pointService.updateById(point);
|
||||
// 设置点位
|
||||
taskObj.put("point_code2", point.getString("point_code"));
|
||||
taskObj.put("task_status", StatusEnum.TASK_START_END_P.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code2",point.getPoint_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
taskService.updateById(schBaseTask);
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,51 +1,59 @@
|
||||
package org.nl.wms.product_manage.sch.tasks.callMaterial;
|
||||
package org.nl.wms.product_manage.sch.tasks.sendMaterial;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.AcsTaskEnum;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
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.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||
import org.nl.wms.product_manage.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||
import org.nl.wms.storage_manage.IOSEnum;
|
||||
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
|
||||
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.TransactionDefinition;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description: 刻字机送料
|
||||
* @Date: 2023/4/3
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2023/6/16 08:40
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
@Slf4j
|
||||
public class WashSendMaterialTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private DivRuleCpService divRuleCpService;
|
||||
@Autowired
|
||||
private IStIvtSectattrService sectattrService;
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Autowired
|
||||
@@ -55,14 +63,15 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
@Autowired
|
||||
private WmsToAcsService wms;
|
||||
@Override
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject param, String status) {
|
||||
SchBaseTask task = taskService.getById(param.getString("task_id"));
|
||||
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_RUNNING.getCode())
|
||||
.set("task_status", StatusEnum.TASK_RUNNING.getCode())
|
||||
.set("update_name","acs")
|
||||
.set("update_time",DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||
.set("update_time", DateUtil.now()).eq("task_id",task.getTask_id()));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||
// 完成
|
||||
@@ -75,6 +84,7 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
.in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3()));
|
||||
}
|
||||
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||
// 完成
|
||||
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||
.set("update_name","acs")
|
||||
@@ -96,32 +106,34 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code")));
|
||||
//?刻字满料请求:可以存在多个任务?
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("point_code1", param.getString("device_code")).lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||
.and(wa->wa
|
||||
.eq("point_code1", param.getString("device_code"))
|
||||
.or()
|
||||
.eq("point_code2", param.getString("device_code")))
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code")));
|
||||
}
|
||||
// 查找任务状态
|
||||
String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||
String taskdtl_id = IdUtil.getStringId();
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_id", taskdtl_id);
|
||||
task.put("task_name", AcsTaskEnum.TASK_PLOTTER_MAC.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.TASK_PLOTTER_MAC.getCode());
|
||||
task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc());
|
||||
task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.getCode());
|
||||
task.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode());
|
||||
task.put("material_id", order.getMaterial_id());
|
||||
task.put("task_status", StatusEnum.TASK_CREATE.getCode());
|
||||
task.put("task_status", TaskStatusEnum.CREATED.getCode());
|
||||
task.put("point_code1", start_point_code);
|
||||
task.put("handle_class", this.getClass().getName());
|
||||
task.put("is_delete", StatusEnum.STATUS_FLASE.getCode());
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
task.put("create_id", currentUserId);
|
||||
task.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("update_id", currentUserId);
|
||||
task.put("update_name", SecurityUtils.getCurrentNickName());
|
||||
task.put("create_time", DateUtil.now());
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("priority", "1");
|
||||
task.put("finished_type", "1");
|
||||
task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode());
|
||||
task.put("table_fk_id",order.getWorkorder_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
@@ -134,7 +146,8 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
// 下发
|
||||
wms.issueTaskToAcs2(data);
|
||||
} catch (Exception ex) {
|
||||
log.error("刻字请求异常,error:{}",ex);
|
||||
// 未找到
|
||||
log.error("刻字满料请求异常,error:{}",ex);
|
||||
schBaseTask.setRemark(ex.getMessage());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setUpdate_name("acs");
|
||||
@@ -155,34 +168,32 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
/**
|
||||
* 满料请求
|
||||
* 从刻字机满料缓存区中获取空位放入就行
|
||||
* @param taskObj: 任务对象
|
||||
*/
|
||||
@Override
|
||||
public void pointConfirm(JSONObject taskObj) {
|
||||
@Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED)
|
||||
public void pointConfirm(JSONObject task) {
|
||||
// 去刻字缓存区寻找空位
|
||||
List<Map<String, String>> points = pointService.queryVehicle(
|
||||
MapOf.of("is_used", "1",
|
||||
"lock_type", StatusEnum.LOCK_OFF.getCode(),
|
||||
"region_code", "A1_KZHC",
|
||||
"material_id", taskObj.getString("material_id")));
|
||||
if (ObjectUtil.isNotEmpty(points)) {
|
||||
Map<String, String> map = points.get(0);
|
||||
if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
}
|
||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||
.set("lock_type",StatusEnum.LOCK_ON.getCode())
|
||||
.eq("point_code",map.get("point_code")));
|
||||
// 设置点位
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code2",map.get("point_code"));
|
||||
SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
taskService.updateById(schBaseTask);
|
||||
} else {
|
||||
throw new BadRequestException("刻字缓存区没有可用货位.");
|
||||
//分配货位。下发任务,更新主单据状态。更新明细任务
|
||||
StIvtSectattr sect = sectattrService.getOne(new QueryWrapper<StIvtSectattr>().eq("sect_name", "半成品库区"));
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("sect_id", sect.getSect_id());
|
||||
jo.put("stor_id", sect.getStor_id());
|
||||
jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
||||
StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo);
|
||||
//少出入库记录
|
||||
if (ObjectUtil.isEmpty(stIvtStructattr)) {
|
||||
throw new BadRequestException("无可分配货位");
|
||||
}
|
||||
stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁"));
|
||||
stIvtStructattr.setInv_code(task.getString("task_code"));
|
||||
// 设置点位
|
||||
task.put("update_time", DateUtil.now());
|
||||
task.put("point_code2",stIvtStructattr.getStruct_code());
|
||||
SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class);
|
||||
schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode());
|
||||
schBaseTask.setUpdate_time(new Date());
|
||||
schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode());
|
||||
taskService.updateById(schBaseTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -190,7 +201,7 @@ public class PlotterCallMaterialTask extends AbstractAcsTask {
|
||||
ArrayList<SchBaseTask> Merge = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(tasks)){
|
||||
for (SchBaseTask task : tasks) {
|
||||
task.setTask_group_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
task.setTask_group_id(IdUtil.getStringId());
|
||||
Merge.add(task);
|
||||
}
|
||||
}
|
||||
@@ -224,6 +224,6 @@ public class PdmProduceWorkorder implements Serializable {
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Boolean is_used_fxx = false;
|
||||
private String package_ext;
|
||||
|
||||
}
|
||||
|
||||
@@ -91,12 +91,12 @@ public class PdmProduceWorkorderrecord implements Serializable {
|
||||
private BigDecimal person_finish_qty;
|
||||
|
||||
/**
|
||||
* 开工时间
|
||||
* 开始时间
|
||||
*/
|
||||
private String operatetime_start;
|
||||
|
||||
/**
|
||||
* 完工时间
|
||||
* 结束时间
|
||||
*/
|
||||
private String operatetime_end;
|
||||
|
||||
|
||||
@@ -128,7 +128,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
|
||||
@Override
|
||||
public void create(JSONObject form) {
|
||||
JSONObject ext = form.getJSONObject("package_ext");
|
||||
form.put("package_ext",null);
|
||||
PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class);
|
||||
entity.setPackage_ext(ext.toJSONString());
|
||||
entity.setWorkorder_id(IdUtil.getStringId());
|
||||
entity.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER"));
|
||||
entity.setCurrent_produce_person_id(SecurityUtils.getCurrentUserId());
|
||||
@@ -636,7 +639,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
form.put("material_spec", material.getMaterial_spec());
|
||||
form.put("device_code", workOrder.getDevice_code());
|
||||
form.put("is_needmove", workOrder.getIs_needmove() ? 1 : 0);
|
||||
form.put("is_used_fxx", workOrder.getIs_used_fxx() ? 1 : 0);
|
||||
form.put("package_ext", workOrder.getPackage_ext());
|
||||
if (param.containsKey("extra_map")) {
|
||||
form.put("extra_map", param.getJSONObject("extra_map"));
|
||||
}
|
||||
@@ -649,28 +652,32 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
||||
Assert.notNull(new Object[]{param, param.get("report_qty"), param.getString("workorder_id")}, "请求参数不能为空");
|
||||
|
||||
PdmProduceWorkorder workorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>().eq("workorder_id", param.getString("workorder_id")));
|
||||
// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) {
|
||||
Assert.notNull(workorder, "当前工单不存在");
|
||||
// if (workorder.getWorkorder_status().equals(WorkerOrderEnum.AUTO_COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) {
|
||||
// throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工");
|
||||
// }
|
||||
Assert.notNull(workorder, "当前工单不存在");
|
||||
PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper<PdmProduceWorkorderrecord>()
|
||||
.eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成")));
|
||||
Assert.notNull(one, param.getString("workorder_id") + "当前工单没有生成状态的报工记录");
|
||||
workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty")));
|
||||
if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) {
|
||||
workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode());
|
||||
JSONArray array = new JSONArray();
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("workorder_id", workorder.getWorkorder_id());
|
||||
map.put("type", WorkerOrderEnum.COMPLETE.getCode());
|
||||
array.add(map);
|
||||
wmsToAcsService.orderStatusUpdate(array);
|
||||
}else {
|
||||
workorder.setWorkorder_status(WorkerOrderEnum.STOP.getCode());
|
||||
}
|
||||
JSONArray array = new JSONArray();
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("workorder_id", workorder.getWorkorder_id());
|
||||
map.put("type", WorkerOrderEnum.COMPLETE.getCode());
|
||||
array.add(map);
|
||||
wmsToAcsService.orderStatusUpdate(array);
|
||||
|
||||
workorder.setReal_qty(null);
|
||||
this.updateById(workorder);
|
||||
reportRecordService.update(new UpdateWrapper<PdmProduceWorkorderrecord>()
|
||||
.set("report_qty", param.getBigDecimal("report_qty"))
|
||||
.set("report_status", ReportEnum.REPORT_STATUS.code("报工"))
|
||||
.set("operatetime_end",DateUtil.now())
|
||||
.set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue()))
|
||||
.eq("macoperate_id", one.getMacoperate_id()));
|
||||
return one.getMacoperate_id();
|
||||
|
||||
@@ -11,12 +11,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.masterdata_manage.备份pdm.service.dto.WorkProcedureDto;
|
||||
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.service.workprocedure.dao.mapper.PdmBiWorkprocedureMapper;
|
||||
import org.nl.wms.system_manage.service.user.dto.CurrentUser;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -5,18 +5,16 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.BaseCode;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.product_manage.sch.tasks.callMaterial.EngraveCallMaterialTask;
|
||||
import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -24,13 +22,16 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @author ZZQ "'
|
||||
* //一体机加一个从入库点到刻字机的搬运任务;
|
||||
* //一体机加一个刻字机到空框回库
|
||||
* //一体机加一个手动打开气缸按钮
|
||||
* //一体机加预料上完:上到刻字机14号设备(虚拟设备)
|
||||
* @Date 2023/6/16 09:21
|
||||
*/
|
||||
@Service
|
||||
@@ -45,7 +46,7 @@ public class EngraveScheduleService {
|
||||
@Autowired
|
||||
private IStIvtIostorinvBcpOutService stIvtIostorinvBcpOutService;
|
||||
@Autowired
|
||||
private EngraveCallMaterialTask engraveCallMaterialTask;
|
||||
private WashSendMaterialTask engraveCallMaterialTask;
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
|
||||
@@ -61,6 +62,7 @@ public class EngraveScheduleService {
|
||||
public void EngravePublish(){
|
||||
/**
|
||||
* 1.查询当前正在执行的刻字工单数组
|
||||
* 3.
|
||||
* 2.获取相同物料的工单:查询半成品库存物料:有的话则进行半成品出库:出到对接位
|
||||
* 3.半成品出库完成后:触发刻字机叫料任务:
|
||||
* 4。根据物料获取工单对应设备:生成刻字机叫料任务
|
||||
|
||||
@@ -453,7 +453,6 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
// 查出对应仓位
|
||||
attrDao = iStIvtStructattrService.getById(struct_id);
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到仓位!");
|
||||
|
||||
// 2.更新分配明细、分配、明细、主表
|
||||
|
||||
@@ -34,7 +34,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '海量mes系统',
|
||||
title: '海亮mes系统',
|
||||
logo: Logo,
|
||||
title_param: 'platform'
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="login" :style="'background-image:url('+ Background +');'">
|
||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form">
|
||||
<h3 class="title">
|
||||
海量mes系统
|
||||
海亮mes系统
|
||||
</h3>
|
||||
<el-form-item prop="username">
|
||||
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
||||
|
||||
@@ -157,8 +157,8 @@
|
||||
<el-table-column prop="nok_qty" label="报废数量" />
|
||||
<el-table-column prop="repare_qty" label="报修数量" />
|
||||
<el-table-column prop="person_finish_qty" label="人员期末数量" :min-width="flexWidth('person_finish_qty',tableData,'人员期末数量')"/>
|
||||
<el-table-column prop="operatetime_start" label="开工时间" :min-width="flexWidth('operatetime_start',tableData,'开工时间')"/>
|
||||
<el-table-column prop="operatetime_end" label="完工时间" />
|
||||
<el-table-column prop="operatetime_start" label="开始时间" :min-width="flexWidth('operatetime_start',tableData,'开工时间')"/>
|
||||
<el-table-column prop="operatetime_end" label="结束时间" />
|
||||
<el-table-column prop="report_status" label="报工状态" >
|
||||
<template slot-scope="scope">
|
||||
{{ reportStatus[scope.row.report_status-1].label }}
|
||||
|
||||
@@ -368,11 +368,47 @@
|
||||
<el-radio
|
||||
v-for="item in dict.IS_OR_NOT"
|
||||
:key="item.id"
|
||||
v-model="form.is_used_fxx"
|
||||
v-model="form.package_ext.is_used_fxx"
|
||||
:label="item.value"
|
||||
>{{ item.label }}
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="包装模版" prop="package_model">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.package_model"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
@focus="materialShow=true"
|
||||
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="拆箱数量" prop="demol_num">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.demol_num"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
@focus="materialShow=true"
|
||||
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="总袋量" prop="demol_num">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.demol_num"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
@focus="materialShow=true"
|
||||
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="form.workprocedure_id == '1535144822984282112'" label="码盘模版" prop="stack_model">
|
||||
<el-input-number
|
||||
v-model="form.package_ext.stack_model"
|
||||
style="width: 200px;"
|
||||
clearable
|
||||
@focus="materialShow=true"
|
||||
@clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||
@@ -512,7 +548,7 @@ const defaultForm = {
|
||||
device_code: null,
|
||||
current_produce_person_id: null,
|
||||
is_canupdate_update: null,
|
||||
is_used_fxx: false,
|
||||
package_ext: {},
|
||||
workorder_status: null,
|
||||
is_needmove: null,
|
||||
sale_id: null,
|
||||
|
||||
@@ -94,8 +94,8 @@
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="person_finish_qty" label="人员期末数量" />-->
|
||||
<el-table-column prop="operatetime_start" label="开工时间" :min-width="flexWidth('operatetime_start',crud.data,'开工时间')"/>
|
||||
<el-table-column prop="operatetime_end" label="完工时间" :min-width="flexWidth('operatetime_end',crud.data,'完工时间')"/>
|
||||
<el-table-column prop="operatetime_start" label="开始时间" :min-width="flexWidth('operatetime_start',crud.data,'开始时间')"/>
|
||||
<el-table-column prop="operatetime_end" label="完成时间" :min-width="flexWidth('operatetime_end',crud.data,'完成时间')"/>
|
||||
<el-table-column prop="report_status" label="报工状态" >
|
||||
<template slot-scope="scope">
|
||||
{{ reportStatus[scope.row.report_status-1].label }}
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
<el-input v-model="scope.row.repare_qty" /></template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="person_finish_qty" label="人员期末数量" />
|
||||
<el-table-column prop="operatetime_start" label="开工时间" />
|
||||
<el-table-column prop="operatetime_end" label="完工时间" />
|
||||
<el-table-column prop="operatetime_start" label="开始时间" />
|
||||
<el-table-column prop="operatetime_end" label="结束时间" />
|
||||
<el-table-column prop="report_status" label="报工状态">
|
||||
<template slot-scope="scope">
|
||||
{{ reportStatus[scope.row.report_status-1].label }}
|
||||
|
||||
Reference in New Issue
Block a user