add:设备运行记录
This commit is contained in:
@@ -57,10 +57,10 @@ public class CodeGenerator {
|
||||
mpg.setGlobalConfig(gc);
|
||||
// 数据源配置
|
||||
DataSourceConfig dsc = new DataSourceConfig();
|
||||
dsc.setUrl("jdbc:mysql://192.168.46.5:3306/hl_one_mes_test?serverTimezone=GMT&setUnicode=true&characterEncoding=utf8");
|
||||
dsc.setUrl("jdbc:mysql://localhost:3306/hl_one_mes?serverTimezone=GMT&setUnicode=true&characterEncoding=utf8");
|
||||
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
|
||||
dsc.setUsername("root");
|
||||
dsc.setPassword("123456");
|
||||
dsc.setPassword("942464Yy");
|
||||
mpg.setDataSource(dsc);
|
||||
// 包配置
|
||||
PackageConfig pc = new PackageConfig();
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.wms.device_manage.service.deviceRecord;
|
||||
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.PdmBiDevicerunstatusrecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 设备运行状态表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-08-25
|
||||
*/
|
||||
public interface IPdmBiDevicerunstatusrecordService extends IService<PdmBiDevicerunstatusrecord> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.nl.wms.device_manage.service.deviceRecord.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 设备运行状态表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-08-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("pdm_bi_devicerunstatusrecord")
|
||||
public class PdmBiDevicerunstatusrecord implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 记录标识
|
||||
*/
|
||||
private Long record_id;
|
||||
|
||||
/**
|
||||
* 设备标识
|
||||
*/
|
||||
private String device_code;
|
||||
|
||||
/**
|
||||
* 故障标识
|
||||
*/
|
||||
private String err_status_id;
|
||||
|
||||
/**
|
||||
* 状态类型
|
||||
*/
|
||||
private String status_type;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String start_time;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String end_time;
|
||||
|
||||
@TableId(value = "order_num", type = IdType.AUTO)
|
||||
private Long order_num;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.nl.wms.device_manage.service.deviceRecord.dao.mapper;
|
||||
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.PdmBiDevicerunstatusrecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 设备运行状态表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-08-25
|
||||
*/
|
||||
public interface PdmBiDevicerunstatusrecordMapper extends BaseMapper<PdmBiDevicerunstatusrecord> {
|
||||
|
||||
List<PdmBiDevicerunstatusrecord> allDeviceStatus();
|
||||
|
||||
List<Map> errorTop(String date);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.device_manage.service.deviceRecord.dao.mapper.PdmBiDevicerunstatusrecordMapper">
|
||||
|
||||
<select id="allDeviceStatus" resultType="org.nl.wms.device_manage.service.deviceRecord.dao.PdmBiDevicerunstatusrecord">
|
||||
select *
|
||||
from
|
||||
(select * from pdm_bi_devicerunstatusrecord order by order_num desc limit 99999999 )
|
||||
as a GROUP BY a.device_code
|
||||
</select>
|
||||
<select id="errorTop"
|
||||
resultType="java.util.Map">
|
||||
select COUNT(device_code) AS err_num,MAX(device_code) AS device_name
|
||||
from pdm_bi_devicerunstatusrecord where start_time > #{date} and status_type = '5' GROUP BY
|
||||
device_code
|
||||
ORDER BY err_num desc
|
||||
LIMIT 10;
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.device_manage.service.deviceRecord.impl;
|
||||
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.PdmBiDevicerunstatusrecord;
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.mapper.PdmBiDevicerunstatusrecordMapper;
|
||||
import org.nl.wms.device_manage.service.deviceRecord.IPdmBiDevicerunstatusrecordService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 设备运行状态表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2023-08-25
|
||||
*/
|
||||
@Service
|
||||
public class PdmBiDevicerunstatusrecordServiceImpl extends ServiceImpl<PdmBiDevicerunstatusrecordMapper, PdmBiDevicerunstatusrecord> implements IPdmBiDevicerunstatusrecordService {
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.ext_manage.bigScreen.service.AgvBigScreenService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -22,7 +23,8 @@ import org.springframework.web.bind.annotation.*;
|
||||
@CrossOrigin
|
||||
public class AgvBigScreenController {
|
||||
|
||||
private final AgvBigScreenService agvBigScreenService;
|
||||
@Autowired
|
||||
private AgvBigScreenService agvBigScreenService;
|
||||
|
||||
@PostMapping("/getTask")
|
||||
//("查询任务")
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
package org.nl.wms.ext_manage.bigScreen.rest;
|
||||
|
||||
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.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.ext_manage.bigScreen.service.DeviceScreenService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -14,14 +10,11 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
//@RestController
|
||||
@RequiredArgsConstructor
|
||||
//@Api(tags = "设备监控大屏")
|
||||
//@RequestMapping("/api/deviceScreen")
|
||||
//@SaIgnore
|
||||
//@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/deviceScreen")
|
||||
public class DeviceScreenController {
|
||||
private final DeviceScreenService deviceScreenService;
|
||||
@Autowired
|
||||
private DeviceScreenService deviceScreenService;
|
||||
|
||||
@PostMapping("/deviceStatus")
|
||||
//("设备实时状态")
|
||||
|
||||
@@ -22,105 +22,13 @@ public class AgvBigScreenServiceImpl implements AgvBigScreenService {
|
||||
@Override
|
||||
public JSONObject getTask(JSONObject whereJson) {
|
||||
JSONObject result = new JSONObject();
|
||||
try {
|
||||
JSONObject param = new JSONObject();
|
||||
// 1.获取总任务数
|
||||
String today = DateUtil.today();
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "1");
|
||||
map.put("today", "%"+today+"%");
|
||||
JSONObject jsonAll = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonAll)) {
|
||||
param.put("all_task_number",jsonAll.getString("all_task_number"));
|
||||
} else {
|
||||
param.put("all_task_number","0");
|
||||
}
|
||||
|
||||
// 2.获取已执行任务数 状态 = 99
|
||||
map.put("flag", "2");
|
||||
JSONObject jsonFinish = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonFinish)) {
|
||||
param.put("finish_task_number",jsonFinish.getString("finish_task_number"));
|
||||
} else {
|
||||
param.put("finish_task_number","0");
|
||||
}
|
||||
|
||||
// 3.获取取消的任务数 是否删除 = 1
|
||||
map.put("flag", "3");
|
||||
JSONObject jsonCancel = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonCancel)) {
|
||||
param.put("cancel_task_number",jsonCancel.getString("cancel_task_number"));
|
||||
} else {
|
||||
param.put("cancel_task_number","0");
|
||||
}
|
||||
|
||||
// 4.获取未执行任务数 状态 <> 99
|
||||
map.put("flag", "4");
|
||||
JSONObject jsonNotFinish = WQL.getWO("AGVBIGSCREEN01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonNotFinish)) {
|
||||
param.put("not_finish_task_number",jsonNotFinish.getString("not_finish_task_number"));
|
||||
} else {
|
||||
param.put("not_finish_task_number","0");
|
||||
}
|
||||
|
||||
result.put("code", "1");
|
||||
result.put("desc", "查询成功");
|
||||
result.put("srb", param);
|
||||
} catch (Exception e) {
|
||||
result.put("code", "0");
|
||||
result.put("desc", "查询失败:"+e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getAgvMsg(JSONObject whereJson) {
|
||||
JSONObject result = new JSONObject();
|
||||
try {
|
||||
WQLObject agvTab = WQLObject.getWQLObject("DS_AGV_AgvStatus");
|
||||
JSONObject srb = new JSONObject();
|
||||
JSONArray errorArr = new JSONArray();
|
||||
|
||||
JSONArray agv_info = new JSONArray();
|
||||
for (int i = 1; i <= 7; i++) {
|
||||
JSONObject json = new JSONObject();
|
||||
String agv_code = String.valueOf(i);
|
||||
JSONObject jsonAgv = agvTab.query("agv_code = '" + agv_code + "'").uniqueResult(0);
|
||||
// 1.车号
|
||||
json.put("agv_code", agv_code);
|
||||
// 2.任务: 0为无任务、1为有任务
|
||||
json.put("agv_statetype", jsonAgv.getString("agv_statetype"));
|
||||
// 3.电量
|
||||
json.put("agv_power", jsonAgv.getString("agv_power"));
|
||||
// 4.预警: 0为正常,1为报警
|
||||
String error_status = jsonAgv.getString("error_status");
|
||||
if (StrUtil.equals(error_status,"1")) {
|
||||
// 只要有一辆车有报警信息 状态则为1
|
||||
srb.put("error_status", "1");
|
||||
// 5.预警信息
|
||||
errorArr.add(jsonAgv.getString("error_info"));
|
||||
}
|
||||
// 6.agv名称
|
||||
json.put("agv_name", jsonAgv.getString("agv_name"));
|
||||
// 7.x坐标
|
||||
json.put("x_coordinate", jsonAgv.getString("x_coordinate"));
|
||||
// 8.y坐标
|
||||
json.put("y_coordinate", jsonAgv.getString("y_coordinate"));
|
||||
// 9.方向类型
|
||||
json.put("direction_type", jsonAgv.getString("direction_type"));
|
||||
|
||||
agv_info.add(json);
|
||||
}
|
||||
srb.put("agv_info_arr", agv_info);
|
||||
srb.put("agv_error_arr", errorArr);
|
||||
|
||||
result.put("srb", srb);
|
||||
result.put("code", "1");
|
||||
result.put("desc", "查询成功");
|
||||
} catch (Exception e) {
|
||||
result.put("code", "0");
|
||||
result.put("desc", "查询失败:"+e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,71 +7,65 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.enums.WorkerOrderEnum;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.PdmBiDevicerunstatusrecord;
|
||||
import org.nl.wms.device_manage.service.deviceRecord.dao.mapper.PdmBiDevicerunstatusrecordMapper;
|
||||
import org.nl.wms.ext_manage.bigScreen.DeviceUtils;
|
||||
import org.nl.wms.ext_manage.bigScreen.SwitchOnOff;
|
||||
import org.nl.wms.ext_manage.bigScreen.service.DeviceScreenService;
|
||||
|
||||
|
||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
|
||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class DeviceScreenServiceImpl implements DeviceScreenService {
|
||||
|
||||
@Autowired
|
||||
private IPdmBiDeviceService pdmBiDeviceService;
|
||||
@Autowired
|
||||
private IPdmProduceWorkorderService workorderService;
|
||||
@Resource
|
||||
private PdmBiDevicerunstatusrecordMapper devicerunstatusrecordMapper;
|
||||
|
||||
@Override
|
||||
public JSONObject deviceStatus(JSONObject param) {
|
||||
if (SwitchOnOff.type == 1) {
|
||||
return DeviceUtils.deviceStatus(param);
|
||||
}
|
||||
//正常运行:有工单正在工作的;暂未生产:有工单没有在工作的;空闲设备:没有工单的,没故障的;故障设备:状态为故障的
|
||||
JSONArray device_rows = WQLObject.getWQLObject("PDM_BI_Device").query("is_active = '1' AND is_delete = '0'").getResultJSONArray(0);
|
||||
List<PdmBiDevice> device_rows = pdmBiDeviceService.list(new QueryWrapper<PdmBiDevice>().eq("is_delete", false).eq("is_used", true));
|
||||
int total_num = device_rows.size();
|
||||
|
||||
//查询故障设备
|
||||
JSONArray err_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "7").process().getResultJSONArray(0);
|
||||
int err_device = err_rows.size();
|
||||
|
||||
//查询运行设备
|
||||
JSONArray run_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "8").process().getResultJSONArray(0);
|
||||
int run_device = run_rows.size();
|
||||
|
||||
//查询有工单,没有故障的设备
|
||||
JSONArray task_rows = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "9").process().getResultJSONArray(0);
|
||||
//查询暂未生产设备
|
||||
int prepare_device = task_rows.size() - run_device;
|
||||
|
||||
if (prepare_device < 0) {
|
||||
prepare_device = 0;
|
||||
}
|
||||
|
||||
//空闲设备
|
||||
int free_device = total_num - task_rows.size() - err_device;
|
||||
|
||||
List<PdmBiDevicerunstatusrecord> list = devicerunstatusrecordMapper.allDeviceStatus();
|
||||
Map<String, List<PdmBiDevicerunstatusrecord>> collect = list.stream().collect(Collectors.groupingBy(PdmBiDevicerunstatusrecord::getStatus_type));
|
||||
List<PdmProduceWorkorder> runningWorkOrder = workorderService.list(new QueryWrapper<PdmProduceWorkorder>()
|
||||
.eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode()));
|
||||
|
||||
JSONArray result = new JSONArray();
|
||||
JSONObject run = new JSONObject();
|
||||
run.put("name", "正常运行");
|
||||
run.put("value", run_device);
|
||||
result.add(run);
|
||||
JSONObject pre = new JSONObject();
|
||||
pre.put("name", "暂未生产");
|
||||
pre.put("value", prepare_device);
|
||||
result.add(pre);
|
||||
JSONObject free = new JSONObject();
|
||||
free.put("name", "空闲设备");
|
||||
free.put("value", free_device);
|
||||
result.add(free);
|
||||
JSONObject err = new JSONObject();
|
||||
err.put("name", "故障设备");
|
||||
err.put("value", err_device);
|
||||
result.add(err);
|
||||
result.add(MapOf.of("name", "正常运行","value", collect.get(StatusEnum.DEVICE_STATUS_RUNING.getCode()).size()));
|
||||
result.add(MapOf.of("name", "暂未生产","value", (runningWorkOrder.size() - collect.get(StatusEnum.DEVICE_STATUS_RUNING.getCode()).size())<0?0:(runningWorkOrder.size() - collect.get(StatusEnum.DEVICE_STATUS_RUNING.getCode()).size())));
|
||||
result.add(MapOf.of("name", "空闲设备","value", total_num - runningWorkOrder.size() - collect.get(StatusEnum.DEVICE_STATUS_ERROR.getCode()).size()));
|
||||
result.add(MapOf.of("name", "故障设备","value", collect.get(StatusEnum.DEVICE_STATUS_ERROR.getCode()).size()));
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("ja", result);
|
||||
jo.put("total_num", total_num);
|
||||
@@ -86,7 +80,6 @@ public class DeviceScreenServiceImpl implements DeviceScreenService {
|
||||
public JSONObject oeeAndTeep(JSONObject param) {
|
||||
JSONObject oee = new JSONObject();
|
||||
JSONObject teep = new JSONObject();
|
||||
|
||||
//value1:过去一个月;value2:目标;value3:实际
|
||||
oee.put("value1", "78.0");
|
||||
oee.put("value2", "76.0");
|
||||
@@ -106,7 +99,8 @@ public class DeviceScreenServiceImpl implements DeviceScreenService {
|
||||
|
||||
@Override
|
||||
public JSONObject queryDeviceByWork(JSONObject param) {
|
||||
JSONArray result = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "1").process().getResultJSONArray(0);
|
||||
//WQL.getWO("QDEVICE_SCREEN").addParam("flag", "1").process().getResultJSONArray(0)
|
||||
JSONArray result = new JSONArray();
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
@@ -119,12 +113,10 @@ public class DeviceScreenServiceImpl implements DeviceScreenService {
|
||||
if (SwitchOnOff.type == 1) {
|
||||
return DeviceUtils.deviceErrorNum(param);
|
||||
}
|
||||
String today = DateUtil.today() + "%";
|
||||
JSONArray result = WQL.getWO("QDEVICE_SCREEN").addParam("flag", "2").addParam("today", today).process().getResultJSONArray(0);
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", result);
|
||||
returnjo.put("result", devicerunstatusrecordMapper.errorTop(DateUtil.today()));
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,17 +5,19 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext_manage.bigScreen.DeviceUtils;
|
||||
import org.nl.wms.ext_manage.bigScreen.OrderDto;
|
||||
import org.nl.wms.ext_manage.bigScreen.SwitchOnOff;
|
||||
import org.nl.wms.ext_manage.bigScreen.WordOrderUtils;
|
||||
import org.nl.wms.ext_manage.bigScreen.test.service.BigTestService;
|
||||
|
||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -29,9 +31,12 @@ import java.util.List;
|
||||
* @createDate: 2023/1/10
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class BigTestServiceImpl implements BigTestService {
|
||||
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
|
||||
@Override
|
||||
public void save(JSONObject jsonObject) {
|
||||
JSONObject oneInfo = jsonObject.getJSONObject("oneInfo");
|
||||
@@ -698,7 +703,6 @@ public class BigTestServiceImpl implements BigTestService {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//物料表
|
||||
WQLObject wo_material = WQLObject.getWQLObject("md_me_materialbase");
|
||||
// 调用用 hutool 方法读取数据 调用第一个sheet白班数据
|
||||
ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0);
|
||||
// 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列
|
||||
@@ -719,8 +723,11 @@ public class BigTestServiceImpl implements BigTestService {
|
||||
if (j == 1) {
|
||||
String material_code = String.valueOf(list.get(j));
|
||||
orderDto.setMaterial_code(material_code);
|
||||
JSONObject jsonObject = wo_material.query("material_code = '" + material_code + "'").uniqueResult(0);
|
||||
orderDto.setMaterial_spec(jsonObject.getString("material_spec"));
|
||||
MdMeMaterialbase one = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
|
||||
if (one==null){
|
||||
throw new BadRequestException("当前物料编码不存在:"+material_code);
|
||||
}
|
||||
orderDto.setMaterial_spec(one.getMaterial_spec());
|
||||
}
|
||||
if (j == 2) {
|
||||
Integer plan_qty = 0;
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
[交易说明]
|
||||
交易名: AGV监控中心查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.today TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
count(task.task_id) AS all_task_number
|
||||
FROM
|
||||
SCH_BASE_Task task
|
||||
WHERE
|
||||
1 = 1
|
||||
|
||||
OPTION 输入.today <> ""
|
||||
task.create_time like 输入.today
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
count(task.task_id) AS finish_task_number
|
||||
FROM
|
||||
SCH_BASE_Task task
|
||||
WHERE
|
||||
task.task_status = '99'
|
||||
|
||||
OPTION 输入.today <> ""
|
||||
task.create_time like 输入.today
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
count(task.task_id) AS cancel_task_number
|
||||
FROM
|
||||
SCH_BASE_Task task
|
||||
WHERE
|
||||
task.is_delete = '1'
|
||||
|
||||
OPTION 输入.today <> ""
|
||||
task.create_time like 输入.today
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
count(task.task_id) AS not_finish_task_number
|
||||
FROM
|
||||
SCH_BASE_Task task
|
||||
WHERE
|
||||
task.task_status <> '99'
|
||||
|
||||
OPTION 输入.today <> ""
|
||||
task.create_time like 输入.today
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -1,383 +0,0 @@
|
||||
[交易说明]
|
||||
交易名: bom查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.workprocedure TYPEAS s_string
|
||||
输入.begin_time TYPEAS s_string
|
||||
输入.end_time TYPEAS s_string
|
||||
输入.now_time TYPEAS s_string
|
||||
输入.produce_date TYPEAS s_string
|
||||
输入.end_produce_date TYPEAS s_string
|
||||
输入.begin_produce_date TYPEAS s_string
|
||||
输入.worksection_type_scode TYPEAS s_string
|
||||
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
|
||||
sum( shiftorder.real_qty ) AS real_qty,
|
||||
sum( shiftorder.plan_qty ) AS plan_qty ,
|
||||
convert(sum( shiftorder.real_qty )/sum( shiftorder.plan_qty ),DECIMAL(10,2))*100 as finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
where
|
||||
|
||||
shiftorder.is_delete='0'
|
||||
and shiftorder.order_status<>'00'
|
||||
OPTION 输入.worksection_type_scode <> ""
|
||||
workprocedure.worksection_type_scode = 输入.worksection_type_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
shiftorder.produceorder_code,
|
||||
shiftorder.plan_qty,
|
||||
shiftorder.real_qty,
|
||||
(shiftorder.plan_qty - shiftorder.real_qty) AS gap_qty,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec,
|
||||
CONVERT ( ( shiftorder.real_qty / shiftorder.plan_qty ), DECIMAL ( 10, 3 ) ) * 100 AS finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||
where
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( shiftorder.real_qty ) AS real_qty,
|
||||
sum( shiftorder.plan_qty ) AS plan_qty,
|
||||
CONVERT ( sum( shiftorder.real_qty ) / sum( shiftorder.plan_qty ), DECIMAL ( 10, 3 ) ) * 100 AS finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
RIGHT JOIN (
|
||||
SELECT
|
||||
route.material_id,
|
||||
dtl.workprocedure_id
|
||||
FROM
|
||||
PDM_BI_ProductProcessRoute route
|
||||
LEFT JOIN PDM_BI_ProductProcessRouteDtl dtl ON route.productprocess_id = dtl.productprocess_id
|
||||
WHERE
|
||||
route.material_id IN ( SELECT DISTINCT shiftorder.material_id FROM mps_bd_produceshiftorder shiftorder )
|
||||
AND dtl.nextworkprocedure_id = '1535144552481034240'
|
||||
) a ON a.material_id = shiftorder.material_id
|
||||
AND a.workprocedure_id = shiftorder.workprocedure_id
|
||||
where
|
||||
1=1
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
count(*) as count
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
where
|
||||
shiftorder.is_delete='0'
|
||||
and shiftorder.order_status<>'00'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
count(*) as count
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
where
|
||||
shiftorder.realproduceend_date > shiftorder.planproduceend_date
|
||||
and shiftorder.order_status<>'00'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
IF 输入.flag = "7"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( real_qty ) AS real_qty,
|
||||
sum( plan_qty ) AS plan_qty,
|
||||
CONVERT ( sum( shiftorder.real_qty ) / sum( shiftorder.plan_qty ), DECIMAL ( 10, 3 ) ) * 100 AS finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON workprocedure.workprocedure_id = shiftorder.workprocedure_id
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
and shiftorder.order_status<>'00'
|
||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
IF 输入.flag = "8"
|
||||
QUERY
|
||||
SELECT
|
||||
workprocedure.worksection_type_scode,
|
||||
sum( real_qty ) AS real_qty,
|
||||
sum( plan_qty ) AS plan_qty,
|
||||
shiftorder.produce_date as date,
|
||||
CONVERT ( sum( shiftorder.real_qty ) / sum( shiftorder.plan_qty ), DECIMAL ( 10, 3 ) ) * 100 AS finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
GROUP BY worksection_type_scode,shiftorder.produce_date
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "9"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( real_qty ) AS real_qty
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
GROUP BY worksection_type_scode
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "10"
|
||||
QUERY
|
||||
SELECT
|
||||
shiftorder.material_id,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec,
|
||||
sum( real_qty ) AS real_qty
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
shiftorder.material_id,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec
|
||||
ORDER BY real_qty desc
|
||||
LIMIT 0,10
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
IF 输入.flag = "11"
|
||||
QUERY
|
||||
SELECT
|
||||
shiftorder.produceorder_code,
|
||||
shiftorder.material_id,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec,
|
||||
shiftorder. real_qty,
|
||||
shiftorder.plan_qty,
|
||||
shiftorder.plan_qty -shiftorder. real_qty as gap_qty,
|
||||
shiftorder.produce_date as date
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
and shiftorder.order_status<>'00'
|
||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
||||
and shiftorder. real_qty < shiftorder.plan_qty
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
IF 输入.flag = "12"
|
||||
QUERY
|
||||
SELECT
|
||||
shiftorder.material_id,
|
||||
material.material_code,
|
||||
material.material_name,
|
||||
material.material_spec,
|
||||
sum( real_qty ) AS real_qty
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.end_produce_date <> ""
|
||||
shiftorder.produce_date <= 输入.end_produce_date
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_produce_date <> ""
|
||||
shiftorder.produce_date >= 输入.begin_produce_date
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
shiftorder.material_id,
|
||||
material.material_code,
|
||||
material.material_spec,
|
||||
material.material_name
|
||||
ORDER BY real_qty desc
|
||||
LIMIT 0,9
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "13"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( real_qty ) AS real_qty
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.end_produce_date <> ""
|
||||
shiftorder.produce_date <= 输入.end_produce_date
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_produce_date <> ""
|
||||
shiftorder.produce_date >= 输入.begin_produce_date
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "14"
|
||||
QUERY
|
||||
SELECT
|
||||
|
||||
sum( shiftorder.real_qty ) AS real_qty,
|
||||
sum( shiftorder.plan_qty ) AS plan_qty ,
|
||||
convert(sum( shiftorder.real_qty )/sum( shiftorder.plan_qty ),DECIMAL(10,2))*100 as finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
where
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.worksection_type_scode <> ""
|
||||
workprocedure.worksection_type_scode = 输入.worksection_type_scode
|
||||
ENDOPTION
|
||||
OPTION 输入.end_produce_date <> ""
|
||||
shiftorder.produce_date <= 输入.end_produce_date
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_produce_date <> ""
|
||||
shiftorder.produce_date >= 输入.begin_produce_date
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "15"
|
||||
QUERY
|
||||
SELECT
|
||||
sum( real_qty ) AS real_qty,
|
||||
sum( plan_qty ) AS plan_qty,
|
||||
CONVERT ( sum( shiftorder.real_qty ) / sum( shiftorder.plan_qty ), DECIMAL ( 10, 3 ) ) * 100 AS finish_rate
|
||||
FROM
|
||||
mps_bd_produceshiftorder shiftorder
|
||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
||||
WHERE
|
||||
shiftorder.is_delete='0'
|
||||
OPTION 输入.produce_date <> ""
|
||||
shiftorder.produce_date = 输入.produce_date
|
||||
ENDOPTION
|
||||
OPTION 输入.worksection_type_scode <> ""
|
||||
workprocedure.worksection_type_scode = 输入.worksection_type_scode
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
Binary file not shown.
@@ -38,7 +38,6 @@ import java.util.Map;
|
||||
public class ProduceshiftorderController{
|
||||
private final ProduceshiftorderService produceshiftorderService;
|
||||
private final IPdmProduceWorkorderService iPdmProduceWorkorderService;
|
||||
private final IPdmBiDeviceService pdmBiDeviceService;
|
||||
|
||||
|
||||
@PostMapping("/getDevice")
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -64,18 +65,21 @@ public class EngraveCallService {
|
||||
if (param.size()==0){
|
||||
throw new BadRequestException("请求参数不能为空");
|
||||
}
|
||||
String struct_code = null;
|
||||
StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper<StIvtStructivtBcp>()
|
||||
.eq("struct_code", param.getJSONObject(0).getString("struct_code")));
|
||||
BigDecimal unit_weight = stIvtStructivt.getUnit_weight();
|
||||
if (unit_weight==null){
|
||||
throw new BadRequestException("当前半成品货位库存没有物料单重");
|
||||
}
|
||||
List<String> kzDevice= new ArrayList<>();
|
||||
Map<String, String> map = new HashMap<>();
|
||||
for (Object o : param) {
|
||||
JSONObject item = JSONObject.parseObject(JSON.toJSONString(o));
|
||||
struct_code = item.getString("struct_code");//货位;
|
||||
kzDevice.add(item.getString("device_code"));
|
||||
map.put(item.getString("device_code"),item.getString("weight"));
|
||||
map.put(item.getString("device_code"),String.valueOf(item.getBigDecimal("qty").multiply(unit_weight).intValue()));
|
||||
}
|
||||
kzDevice.remove("A1_KZ_14");
|
||||
StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper<StIvtStructivtBcp>()
|
||||
.eq("struct_code", struct_code));
|
||||
|
||||
// if (!CollectionUtils.isEmpty(kzDevice)){
|
||||
// List<PdmProduceWorkorder> workorders = workorderService.list(new QueryWrapper<PdmProduceWorkorder>()
|
||||
// .eq("workprocedure_id", ENGRAVE_WORKPRODURE)
|
||||
|
||||
Reference in New Issue
Block a user