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(); JSONArray res = new JSONArray();
task.forEach(t -> { task.forEach(t -> {
JSONObject taskEnum = new JSONObject(); JSONObject taskEnum = new JSONObject();
taskEnum.put("name", t.getDesc()); taskEnum.put("text", t.getDesc());
taskEnum.put("code", t.getCode()); taskEnum.put("value", t.getCode());
res.add(taskEnum); res.add(taskEnum);
}); });
return res; return res;

View File

@@ -1,24 +1,21 @@
package org.nl.wms.mps.rest; package org.nl.wms.mps.rest;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.nl.common.anno.Log; import org.nl.common.anno.Log;
import lombok.extern.slf4j.Slf4j; 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.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.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -30,81 +27,94 @@ import java.util.Map;
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "一体机工单管理") @Api(tags = "一体机工单管理")
@RequestMapping("/api/produceshiftorder") @RequestMapping("/api/produceshiftorder")
@SaIgnore
@Slf4j @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") @PostMapping("/getDeviceList")
@Log("根据登录用户设备下拉") @Log("一体机-根据登录人信息获取设备列表")
@ApiOperation("根据登录用户设备下拉") @ApiOperation("一体机-根据登录人信息获取设备列表")
//@PreAuthorize("@el.check('produceshiftorder:list')") public ResponseEntity<List<DeviceDto>> getDeviceList(@RequestBody JSONObject form) {
public ResponseEntity<Object> getDevice(@RequestBody JSONObject param) { log.info("海亮一体机服务 [根据登录人信息获取设备列表] 接口被请求");
return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK); return new ResponseEntity<>(produceshiftorderService.getDeviceList(form.getString("search_bar")), HttpStatus.OK);
} }
@PostMapping("/getTable") @PostMapping("/getOrderList")
@Log("获取工单生产记录") @Log("一体机-工单管理列表")
@ApiOperation("获取工单生产记录") @ApiOperation("一体机-工单管理列表")
//@PreAuthorize("@el.check('produceshiftorder:list')") public ResponseEntity<Object> getOrderList(@RequestBody Map<String,String> param, Pageable page) {
public ResponseEntity<Object> getTable(@RequestBody JSONObject param) { log.info("海亮一体机服务 [工单管理列表] 接口被请求, 请求参数-{}", param);
return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK); if(null == param) {
} throw new BizCoreException(ResultCode.VALIDATE_FAILED);
}
return new ResponseEntity<>(produceshiftorderService.getOrderList(param, page), HttpStatus.OK);
}
@PostMapping("/openStart") @PostMapping("/openStart")
@Log("看板开工") @Log("看板开工")
@ApiOperation("看板开工") @ApiOperation("看板开工")
//@PreAuthorize("@el.check('produceshiftorder:list')") public ResponseEntity<Object> openStart(@RequestBody JSONObject param) {
public ResponseEntity<Object> openStart(@RequestBody JSONObject param) { return new ResponseEntity<>(produceshiftorderService.openStart(param), HttpStatus.OK);
produceshiftorderService.openStart(param); }
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/saveReport") @PostMapping("/saveReport")
@Log("看板报工") @Log("看板报工")
@ApiOperation("看板报工") @ApiOperation("看板报工")
public ResponseEntity<Object> saveReport(@RequestBody JSONObject param) { public ResponseEntity<Object> saveReport(@RequestBody JSONObject param) {
produceshiftorderService.saveReport(param); return new ResponseEntity<>(produceshiftorderService.saveReport(param), HttpStatus.OK);
return new ResponseEntity<>(HttpStatus.OK); }
}
@PostMapping("/finish") @PostMapping("/finish")
@Log("看板强制完成") @Log("看板强制完成")
@ApiOperation("看板强制完成") @ApiOperation("看板强制完成")
public ResponseEntity<Object> finish(@RequestBody JSONObject param) { public ResponseEntity<Object> finish(@RequestBody JSONObject param) {
produceshiftorderService.finish(param); return new ResponseEntity<>(produceshiftorderService.finish(param), HttpStatus.OK);
return new ResponseEntity<>(HttpStatus.OK); }
}
@PostMapping("/getReportWork") @PostMapping("/getReportWork")
@Log("获取当前报工记录") @Log("获取当前报工记录")
@ApiOperation("获取当前报工记录") @ApiOperation("获取当前报工记录")
//@PreAuthorize("@el.check('produceshiftorder:list')") //@PreAuthorize("@el.check('produceshiftorder:list')")
public ResponseEntity<Object> getReportWork(@RequestBody JSONObject param) { public ResponseEntity<Object> getReportWork(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK); return new ResponseEntity<>(produceshiftorderService.getReportWork(param), HttpStatus.OK);
} }
@PostMapping("/getNotWorkDeviceByWorkproceduceId") @PostMapping("/getNotWorkDeviceByWorkproceduceId")
@Log("根据工序查询没有工单的设备") @Log("根据工序查询没有工单的设备")
@ApiOperation("根据工序查询没有工单的设备") @ApiOperation("根据工序查询没有工单的设备")
//@PreAuthorize("@el.check('WorkProcedure:add')") //@PreAuthorize("@el.check('WorkProcedure:add')")
public ResponseEntity<Object> getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { public ResponseEntity<Object> getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) {
return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED); return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param), HttpStatus.CREATED);
} }
@PostMapping("/replaceDevice") @PostMapping("/replaceDevice")
@Log("更换工单设备") @Log("更换工单设备")
@ApiOperation("更换工单设备") @ApiOperation("更换工单设备")
public ResponseEntity<Object> replaceDevice(@RequestBody JSONObject param) { public ResponseEntity<Object> replaceDevice(@RequestBody JSONObject param) {
produceshiftorderService.replaceDevice(param); produceshiftorderService.replaceDevice(param);
return new ResponseEntity<>( HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@GetMapping("/getUser") @GetMapping("/getUser")
@Log("查询操作人员") @Log("查询操作人员")
@ApiOperation("查询操作人员") @ApiOperation("查询操作人员")
public ResponseEntity<Object> getUser() { public ResponseEntity<Object> getUser() {
return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK); 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.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.api.CommonResult;
import org.nl.system.service.user.dao.SysUser; 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.nl.wms.mps.service.dto.ProduceshiftorderDto;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -12,133 +14,167 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* @description 服务接口 * @author qinx
* @author qinx * @description 服务接口
* @date 2022-05-24 * @date 2022-05-24
**/ **/
public interface ProduceshiftorderService { public interface ProduceshiftorderService{
/**
* 查询数据分页
*
* @param whereJson 条件
* @param page 分页参数
* @return Map<String, Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/** /**
* 查询数据分页 * 查询所有数据分页
* @param whereJson 条件 *
* @param page 分页参数 * @param whereJson 条件参数
* @return Map<String,Object> * @return List<ProduceshiftorderDto>
*/ */
Map<String,Object> queryAll(Map whereJson, Pageable page); List<ProduceshiftorderDto> queryAll(Map whereJson);
/** /**
* 查询所有数据不分页 * 根据ID查询
* @param whereJson 条件参数 *
* @return List<ProduceshiftorderDto> * @param produceorder_id ID
*/ * @return Produceshiftorder
List<ProduceshiftorderDto> queryAll(Map whereJson); */
ProduceshiftorderDto findById(Long produceorder_id);
/** /**
* 根据ID查询 * 根据编码查询
* @param produceorder_id ID *
* @return Produceshiftorder * @param code code
*/ * @return Produceshiftorder
ProduceshiftorderDto findById(Long produceorder_id); */
ProduceshiftorderDto findByCode(String code);
/** /**
* 根据编码查询 * 创建
* @param code code *
* @return Produceshiftorder * @param dto /
*/ */
ProduceshiftorderDto findByCode(String code); void create(ProduceshiftorderDto dto);
/**
* 编辑
*
* @param dto /
*/
void update(ProduceshiftorderDto dto);
/** /**
* 创建 * 多选删除
* @param dto / *
*/ * @param ids /
void create(ProduceshiftorderDto dto); */
void deleteAll(Long[] ids);
/** /**
* 编辑 * 根据当前登录用户下拉
* @param dto / *
*/ * @param param
void update(ProduceshiftorderDto dto); * @return
*/
JSONArray getDevice(JSONObject param);
/** /**
* 多选删除 * 一体机获取设备列表
* @param ids / *
*/ * @Param: form 请求参数
void deleteAll(Long[] ids); * @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 * @param param
*/ * @return
JSONArray getDevice(JSONObject param); */
JSONArray getTable(JSONObject param);
/** /**
* 获取工单生产记录 * 开工操作
* @param param *
* @return * @param param 请求参数
*/ */
JSONArray getTable(JSONObject param); CommonResult<Map<String,Object>> openStart(JSONObject param);
/** /**
* 看板开工 * 报工操作
* @param param *
*/ * @param param 请求参数
void openStart(JSONObject param); */
CommonResult<Map<String,Object>> saveReport(JSONObject param);
/** /**
* 看板报工 * 完工操作
* @param param *
*/ * @param param 请求参数
void saveReport(JSONObject param); */
CommonResult<Map<String,Object>> finish(JSONObject param);
/** /**
* 看板强制完成 * 获取当前报工记录
* @param param *
*/ * @param param
void finish(JSONObject param); * @return
*/
JSONObject getReportWork(JSONObject param);
/** /**
* 获取当前报工记录 * 工单强制完成
* @param param *
* @return * @param param
*/ */
JSONObject getReportWork(JSONObject param); void forceFinish(JSONObject param);
/**
* 获取当前工单下的工单生产记录
*
* @param param
* @return
*/
JSONArray getDtl(JSONObject param);
/** /**
* 工单强制完成 * excel工单批量导入
* @param param *
*/ * @param file
void forceFinish(JSONObject param); * @param request
*/
void excelImport(MultipartFile file, HttpServletRequest request);
/** /**
* 获取当前工单下的工单生产记录 * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备
* @param param *
* @return * @param param
*/ * @return
JSONArray getDtl(JSONObject param); */
JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param);
/** /**
* excel工单批量导入 * 更换设备
* @param file *
* @param request * @param param
*/ */
void excelImport(MultipartFile file, HttpServletRequest request); void replaceDevice(JSONObject param);
/** List<SysUser> getUser();
* 更换设备时根据工单所属工序 查询所有工单中没有生产的设备
* @param param
* @return
*/
JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param);
/**
* 更换设备
* @param param
*/
void replaceDevice(JSONObject param);
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")); map.put("product_area", whereJson.getString("product_area"));
} }
//任务类型 //任务类型
if(StrUtil.isNotEmpty(whereJson.getString("task_type"))) { if(StrUtil.isNotEmpty(whereJson.getString("code"))) {
map.put("task_type", whereJson.getString("task_type")); map.put("task_type", whereJson.getString("code"));
} }
if(StrUtil.isNotEmpty(task_status)) { if(StrUtil.isNotEmpty(task_status)) {
task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", "");

View File

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