add:增加一体机设备,工单,操作接口;

This commit is contained in:
2023-04-10 16:00:41 +08:00
parent 3dcbb17f75
commit f7acb14776
9 changed files with 1161 additions and 843 deletions

View File

@@ -76,8 +76,8 @@ public enum AcsTaskEnum {
JSONArray res = new JSONArray();
task.forEach(t -> {
JSONObject taskEnum = new JSONObject();
taskEnum.put("name", t.getDesc());
taskEnum.put("code", t.getCode());
taskEnum.put("text", t.getDesc());
taskEnum.put("value", t.getCode());
res.add(taskEnum);
});
return res;

View File

@@ -1,24 +1,21 @@
package org.nl.wms.mps.rest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.nl.common.anno.Log;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.api.ResultCode;
import org.nl.modules.common.exception.BizCoreException;
import org.nl.wms.mps.service.ProduceshiftorderService;
import org.nl.wms.mps.service.dto.ProduceshiftorderDto;
import org.nl.wms.mps.service.dto.DeviceDto;
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 org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@@ -30,81 +27,94 @@ import java.util.Map;
@RequiredArgsConstructor
@Api(tags = "一体机工单管理")
@RequestMapping("/api/produceshiftorder")
@SaIgnore
@Slf4j
public class ProduceshiftorderController {
public class ProduceshiftorderController{
private final ProduceshiftorderService produceshiftorderService;
private final ProduceshiftorderService produceshiftorderService;
@PostMapping("/getDevice")
@Log("根据登录用户设备下拉")
@ApiOperation("根据登录用户设备下拉")
public ResponseEntity<Object> getDevice(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK);
}
@PostMapping("/getTable")
@Log("获取工单生产记录")
@ApiOperation("获取工单生产记录")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getTable(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK);
}
@PostMapping("/getDevice")
@Log("根据登录用户设备下拉")
@ApiOperation("根据登录用户设备下拉")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getDevice(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK);
}
@PostMapping("/getDeviceList")
@Log("一体机-根据登录人信息获取设备列表")
@ApiOperation("一体机-根据登录人信息获取设备列表")
public ResponseEntity<List<DeviceDto>> getDeviceList(@RequestBody JSONObject form) {
log.info("海亮一体机服务 [根据登录人信息获取设备列表] 接口被请求");
return new ResponseEntity<>(produceshiftorderService.getDeviceList(form.getString("search_bar")), HttpStatus.OK);
}
@PostMapping("/getTable")
@Log("获取工单生产记录")
@ApiOperation("获取工单生产记录")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getTable(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK);
}
@PostMapping("/getOrderList")
@Log("一体机-工单管理列表")
@ApiOperation("一体机-工单管理列表")
public ResponseEntity<Object> getOrderList(@RequestBody Map<String,String> param, Pageable page) {
log.info("海亮一体机服务 [工单管理列表] 接口被请求, 请求参数-{}", param);
if(null == param) {
throw new BizCoreException(ResultCode.VALIDATE_FAILED);
}
return new ResponseEntity<>(produceshiftorderService.getOrderList(param, page), HttpStatus.OK);
}
@PostMapping("/openStart")
@Log("看板开工")
@ApiOperation("看板开工")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> openStart(@RequestBody JSONObject param) {
produceshiftorderService.openStart(param);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/openStart")
@Log("看板开工")
@ApiOperation("看板开工")
public ResponseEntity<Object> openStart(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.openStart(param), HttpStatus.OK);
}
@PostMapping("/saveReport")
@Log("看板报工")
@ApiOperation("看板报工")
public ResponseEntity<Object> saveReport(@RequestBody JSONObject param) {
produceshiftorderService.saveReport(param);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/saveReport")
@Log("看板报工")
@ApiOperation("看板报工")
public ResponseEntity<Object> saveReport(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.saveReport(param), HttpStatus.OK);
}
@PostMapping("/finish")
@Log("看板强制完成")
@ApiOperation("看板强制完成")
public ResponseEntity<Object> finish(@RequestBody JSONObject param) {
produceshiftorderService.finish(param);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/finish")
@Log("看板强制完成")
@ApiOperation("看板强制完成")
public ResponseEntity<Object> finish(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.finish(param), HttpStatus.OK);
}
@PostMapping("/getReportWork")
@Log("获取当前报工记录")
@ApiOperation("获取当前报工记录")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getReportWork(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK);
}
@PostMapping("/getReportWork")
@Log("获取当前报工记录")
@ApiOperation("获取当前报工记录")
//@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getReportWork(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK);
}
@PostMapping("/getNotWorkDeviceByWorkproceduceId")
@Log("根据工序查询没有工单的设备")
@ApiOperation("根据工序查询没有工单的设备")
//@PreAuthorize("@el.check('WorkProcedure:add')")
public ResponseEntity<Object> getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED);
}
@PostMapping("/getNotWorkDeviceByWorkproceduceId")
@Log("根据工序查询没有工单的设备")
@ApiOperation("根据工序查询没有工单的设备")
//@PreAuthorize("@el.check('WorkProcedure:add')")
public ResponseEntity<Object> getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param), HttpStatus.CREATED);
}
@PostMapping("/replaceDevice")
@Log("更换工单设备")
@ApiOperation("更换工单设备")
public ResponseEntity<Object> replaceDevice(@RequestBody JSONObject param) {
produceshiftorderService.replaceDevice(param);
return new ResponseEntity<>( HttpStatus.OK);
}
@PostMapping("/replaceDevice")
@Log("更换工单设备")
@ApiOperation("更换工单设备")
public ResponseEntity<Object> replaceDevice(@RequestBody JSONObject param) {
produceshiftorderService.replaceDevice(param);
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/getUser")
@Log("查询操作人员")
@ApiOperation("查询操作人员")
public ResponseEntity<Object> getUser() {
return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK);
}
@GetMapping("/getUser")
@Log("查询操作人员")
@ApiOperation("查询操作人员")
public ResponseEntity<Object> getUser() {
return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK);
}
}

View File

@@ -2,7 +2,9 @@ package org.nl.wms.mps.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.api.CommonResult;
import org.nl.system.service.user.dao.SysUser;
import org.nl.wms.mps.service.dto.DeviceDto;
import org.nl.wms.mps.service.dto.ProduceshiftorderDto;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;
@@ -12,133 +14,167 @@ import java.util.List;
import java.util.Map;
/**
* @description 服务接口
* @author qinx
* @date 2022-05-24
**/
public interface ProduceshiftorderService {
* @author qinx
* @description 服务接口
* @date 2022-05-24
**/
public interface ProduceshiftorderService{
/**
* 查询数据分页
*
* @param whereJson 条件
* @param page 分页参数
* @return Map<String, Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询所有数据分页
*
* @param whereJson 条件参数
* @return List<ProduceshiftorderDto>
*/
List<ProduceshiftorderDto> queryAll(Map whereJson);
/**
* 查询所有数据不分页
* @param whereJson 条件参数
* @return List<ProduceshiftorderDto>
*/
List<ProduceshiftorderDto> queryAll(Map whereJson);
/**
* 根据ID查询
*
* @param produceorder_id ID
* @return Produceshiftorder
*/
ProduceshiftorderDto findById(Long produceorder_id);
/**
* 根据ID查询
* @param produceorder_id ID
* @return Produceshiftorder
*/
ProduceshiftorderDto findById(Long produceorder_id);
/**
* 根据编码查询
*
* @param code code
* @return Produceshiftorder
*/
ProduceshiftorderDto findByCode(String code);
/**
* 根据编码查询
* @param code code
* @return Produceshiftorder
*/
ProduceshiftorderDto findByCode(String code);
/**
* 创建
*
* @param dto /
*/
void create(ProduceshiftorderDto dto);
/**
* 编辑
*
* @param dto /
*/
void update(ProduceshiftorderDto dto);
/**
* 创建
* @param dto /
*/
void create(ProduceshiftorderDto dto);
/**
* 多选删除
*
* @param ids /
*/
void deleteAll(Long[] ids);
/**
* 编辑
* @param dto /
*/
void update(ProduceshiftorderDto dto);
/**
* 根据当前登录用户下拉
*
* @param param
* @return
*/
JSONArray getDevice(JSONObject param);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Long[] ids);
/**
* 一体机获取设备列表
*
* @Param: form 请求参数
* @return: 设备列表
* @author gbx
* @date 2023/4/7
*/
List<DeviceDto> getDeviceList(String param);
/**
* 一体机-工单管理列表
*
* @return 工单列表
* @Param form 请求参数
* @author gbx
* @date 2023/04/7
*/
Map<String,Object> getOrderList(Map<String,String> param, Pageable page);
/**
* 根据当前登录用户下拉
* @param param
* @return
*/
JSONArray getDevice(JSONObject param);
/**
* 获取工单生产记录
*
* @param param
* @return
*/
JSONArray getTable(JSONObject param);
/**
* 获取工单生产记录
* @param param
* @return
*/
JSONArray getTable(JSONObject param);
/**
* 开工操作
*
* @param param 请求参数
*/
CommonResult<Map<String,Object>> openStart(JSONObject param);
/**
* 看板开工
* @param param
*/
void openStart(JSONObject param);
/**
* 报工操作
*
* @param param 请求参数
*/
CommonResult<Map<String,Object>> saveReport(JSONObject param);
/**
* 看板报工
* @param param
*/
void saveReport(JSONObject param);
/**
* 完工操作
*
* @param param 请求参数
*/
CommonResult<Map<String,Object>> finish(JSONObject param);
/**
* 看板强制完成
* @param param
*/
void finish(JSONObject param);
/**
* 获取当前报工记录
*
* @param param
* @return
*/
JSONObject getReportWork(JSONObject param);
/**
* 获取当前报工记录
* @param param
* @return
*/
JSONObject getReportWork(JSONObject param);
/**
* 工单强制完成
*
* @param param
*/
void forceFinish(JSONObject param);
/**
* 获取当前工单下的工单生产记录
*
* @param param
* @return
*/
JSONArray getDtl(JSONObject param);
/**
* 工单强制完成
* @param param
*/
void forceFinish(JSONObject param);
/**
* excel工单批量导入
*
* @param file
* @param request
*/
void excelImport(MultipartFile file, HttpServletRequest request);
/**
* 获取当前工单下的工单生产记录
* @param param
* @return
*/
JSONArray getDtl(JSONObject param);
/**
* 更换设备时根据工单所属工序 查询所有工单中没有生产的设备
*
* @param param
* @return
*/
JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param);
/**
* excel工单批量导入
* @param file
* @param request
*/
void excelImport(MultipartFile file, HttpServletRequest request);
/**
* 更换设备
*
* @param param
*/
void replaceDevice(JSONObject param);
/**
* 更换设备时根据工单所属工序 查询所有工单中没有生产的设备
* @param param
* @return
*/
JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param);
/**
* 更换设备
* @param param
*/
void replaceDevice(JSONObject param);
List<SysUser> getUser();
List<SysUser> getUser();
}

View File

@@ -0,0 +1,58 @@
package org.nl.wms.mps.service.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 设备信息
*
* @author gbx
* @since 2023-04-10
*/
@Data
@SuppressWarnings("serial")
public class DeviceDto{
/**
* 设备编码
*/
@ApiModelProperty(value = "/**设备编码*/")
private String deviceCode;
/**
* 设备名称
*/
@ApiModelProperty(value = "/**设备名称*/")
private String deviceName;
/**
* 设备名称
*/
@ApiModelProperty(value = "/**设备名称*/")
private String device_status_name;
/**
* 工单编号
*/
@ApiModelProperty(value = "/**工单编号*/")
private String workorderCode;
/**
* 工单数
*/
@ApiModelProperty(value = "/**工单数*/")
private String job_count;
/**
* 设备状态
*/
@ApiModelProperty(value = "/**设备状态*/")
private String device_status;
/**
* 设备图标路径
*/
@ApiModelProperty(value = "/**设备图标路径*/")
private String device_icon;
/**
* 运行状态
*/
@ApiModelProperty(value = "/**运行状态*/")
private String is_run;
}

View File

@@ -0,0 +1,126 @@
[交易说明]
交易名: pda手持服务查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.device_code TYPEAS s_string
输入.key_value TYPEAS s_string
输入.realproducestart_date TYPEAS s_string
输入.realproduceend_date TYPEAS s_string
输入.flag TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
s.label device_status_name,
r.status_type device_status,
d.device_code,
d.device_name,
d.device_icon,
d.workorder_code
FROM
pdm_bi_device d
LEFT JOIN (
SELECT
device_code,
status_type,
max( order_num ) AS num
FROM
( SELECT order_num, device_code, status_type FROM pdm_bi_devicerunstatusrecord ORDER BY device_code, order_num DESC ) c
GROUP BY
c.device_code
) r ON d.device_code = r.device_code
LEFT JOIN sys_dict s ON s.`value` = r.status_type
AND s.`code` = 'PDM_BI_DEVICERUNSTATUS'
ORDER BY
device_code
LIMIT 10
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
PAGEQUERY
SELECT
dict1.label shift_type_scode_name,
dict2.label order_status_name,
mater.material_name,
workorder.shift_type_scode,
workprocedure.workprocedure_name,
workorder.workorder_status order_status,
workorder.workorder_id,
workorder.workorder_code,
workorder.current_device_code device_code,
workorder.material_id,
workorder.workprocedure_id,
workorder.plan_qty,
workorder.real_qty,
workorder.report_qty,
workorder.realproducestart_date,
workorder.realproduceend_date
FROM
pdm_produce_workorder workorder
LEFT JOIN md_me_materialbase mater ON workorder.material_id = mater.material_id
LEFT JOIN pdm_bi_workprocedure workprocedure ON workorder.workprocedure_id = workprocedure.workprocedure_id
LEFT JOIN sys_dict dict1 ON dict1.`value` = workorder.shift_type_scode
AND dict1.`code` = 'PDM_BI_SHIFTTYPE'
LEFT JOIN sys_dict dict2 ON dict2.`value` = workorder.workorder_status
AND dict2.`code` = 'MPS_BD_ORDERSTATUS'
WHERE
workorder.is_delete = '0'
OPTION 输入.device_code <> ""
(workorder.current_device_code like CONCAT ('%', 输入.device_code, '%'))
ENDOPTION
OPTION 输入.key_value <> ""
(
(workorder.workorder_code like CONCAT ('%', 输入.key_value, '%')) or
(mater.material_name like CONCAT ('%', 输入.key_value, '%')) or
(mater.material_code like CONCAT ('%', 输入.key_value, '%'))
)
ENDOPTION
OPTION 输入.realproducestart_date <> ""
workorder.realproducestart_date >= 输入.realproducestart_date
ENDOPTION
OPTION 输入.realproduceend_date <> ""
workorder.realproduceend_date <= 输入.realproduceend_date
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -163,8 +163,8 @@ public class CacheLineHandServiceImpl implements CacheLineHandService{
map.put("product_area", whereJson.getString("product_area"));
}
//任务类型
if(StrUtil.isNotEmpty(whereJson.getString("task_type"))) {
map.put("task_type", whereJson.getString("task_type"));
if(StrUtil.isNotEmpty(whereJson.getString("code"))) {
map.put("task_type", whereJson.getString("code"));
}
if(StrUtil.isNotEmpty(task_status)) {
task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", "");

View File

@@ -82,7 +82,7 @@ public class TaskController {
.eq(Dict::getCode, "task_status")), HttpStatus.OK);
}
@GetMapping("/taskType")
@PostMapping("/taskType")
@Log("获取任务类型列表")
@ApiOperation("获取任务类型列表")
public ResponseEntity<Object> getTaskType() {