Merge branch 'master' of http://121.40.234.130:8899/root/wuHanXinRui
This commit is contained in:
@@ -464,12 +464,17 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
|||||||
String is_need_move = bomdlt.getString("is_need_move");
|
String is_need_move = bomdlt.getString("is_need_move");
|
||||||
String bomdtl_material_id = bomdlt.getString("material_id");
|
String bomdtl_material_id = bomdlt.getString("material_id");
|
||||||
String bomdtl_material_code = bomdlt.getString("material_code");
|
String bomdtl_material_code = bomdlt.getString("material_code");
|
||||||
|
String prior_level = bomdlt.getString("prior_level");
|
||||||
|
if (StrUtil.isEmpty(prior_level)) {
|
||||||
|
prior_level = "03";
|
||||||
|
}
|
||||||
if("1".equals(is_need_move)){
|
if("1".equals(is_need_move)){
|
||||||
//查询库存
|
//查询库存
|
||||||
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
|
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
|
||||||
.addParam("material_id",bomdtl_material_id)
|
.addParam("material_id",bomdtl_material_id)
|
||||||
.addParam("workorder_id",workorder_id)
|
.addParam("workorder_id",workorder_id)
|
||||||
.addParam("quality_scode","01")
|
.addParam("quality_scode","01")
|
||||||
|
.addParam("prior_level",prior_level)
|
||||||
.addParam("flag","22")
|
.addParam("flag","22")
|
||||||
.process().getResultJSONArray(0);
|
.process().getResultJSONArray(0);
|
||||||
if(bom_materials.size()==0){
|
if(bom_materials.size()==0){
|
||||||
@@ -1308,12 +1313,17 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
|||||||
}
|
}
|
||||||
String is_need_move = bomdlt.getString("is_need_move");
|
String is_need_move = bomdlt.getString("is_need_move");
|
||||||
String bomdtl_material_id = bomdlt.getString("material_id");
|
String bomdtl_material_id = bomdlt.getString("material_id");
|
||||||
|
String prior_level = bomdlt.getString("prior_level");
|
||||||
|
if (StrUtil.isEmpty(prior_level)) {
|
||||||
|
prior_level = "03";
|
||||||
|
}
|
||||||
if(nedd_qty>0 && "1".equals(is_need_move)){
|
if(nedd_qty>0 && "1".equals(is_need_move)){
|
||||||
//查询库存
|
//查询库存
|
||||||
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
|
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
|
||||||
.addParam("material_id",bomdtl_material_id)
|
.addParam("material_id",bomdtl_material_id)
|
||||||
.addParam("quality_scode","01")
|
.addParam("quality_scode","01")
|
||||||
.addParam("workorder_id",workorder_id)
|
.addParam("workorder_id",workorder_id)
|
||||||
|
.addParam("prior_level",prior_level)
|
||||||
.addParam("flag","22")
|
.addParam("flag","22")
|
||||||
.process().getResultJSONArray(0);
|
.process().getResultJSONArray(0);
|
||||||
if(bom_materials.size()==0){
|
if(bom_materials.size()==0){
|
||||||
@@ -2525,9 +2535,14 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
|||||||
//获取Y1、X1、X2….剩余>0的物料
|
//获取Y1、X1、X2….剩余>0的物料
|
||||||
if(left_qty>0){
|
if(left_qty>0){
|
||||||
if(is_need_move.equals("1")){
|
if(is_need_move.equals("1")){
|
||||||
|
String prior_level = bomdlt.getString("prior_level");
|
||||||
|
if (StrUtil.isEmpty(prior_level)) {
|
||||||
|
prior_level = "03";
|
||||||
|
}
|
||||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||||
.addParam("material_id",bomdtl_material_id)
|
.addParam("material_id",bomdtl_material_id)
|
||||||
.addParam("quality_scode","01")
|
.addParam("quality_scode","01")
|
||||||
|
.addParam("prior_level",prior_level)
|
||||||
.addParam("workorder_id",workorder_id)
|
.addParam("workorder_id",workorder_id)
|
||||||
.addParam("flag","22")
|
.addParam("flag","22")
|
||||||
.process().getResultJSONArray(0);
|
.process().getResultJSONArray(0);
|
||||||
@@ -3426,11 +3441,16 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
|||||||
String bomdtl_material_id = bomdlts_plan.getString("material_id");
|
String bomdtl_material_id = bomdlts_plan.getString("material_id");
|
||||||
double left_qty = bomdlts_plan.getDouble("formula_qty");
|
double left_qty = bomdlts_plan.getDouble("formula_qty");
|
||||||
String is_need_move = bomdlts_plan.getString("is_need_move");
|
String is_need_move = bomdlts_plan.getString("is_need_move");
|
||||||
|
String prior_level = bomdlts_plan.getString("prior_level");
|
||||||
|
if (StrUtil.isEmpty(prior_level)) {
|
||||||
|
prior_level = "03";
|
||||||
|
}
|
||||||
if(is_need_move.equals("1")){
|
if(is_need_move.equals("1")){
|
||||||
//二次分配新料库存
|
//二次分配新料库存
|
||||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||||
.addParam("material_id",bomdtl_material_id)
|
.addParam("material_id",bomdtl_material_id)
|
||||||
.addParam("quality_scode","01")
|
.addParam("quality_scode","01")
|
||||||
|
.addParam("prior_level",prior_level)
|
||||||
.addParam("workorder_id",workorder_id)
|
.addParam("workorder_id",workorder_id)
|
||||||
.addParam("flag","22")
|
.addParam("flag","22")
|
||||||
.process().getResultJSONArray(0);
|
.process().getResultJSONArray(0);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
输入.quality_scode TYPEAS s_string
|
输入.quality_scode TYPEAS s_string
|
||||||
|
输入.prior_level TYPEAS s_string
|
||||||
输入.material_id TYPEAS s_string
|
输入.material_id TYPEAS s_string
|
||||||
输入.material_code TYPEAS s_string
|
输入.material_code TYPEAS s_string
|
||||||
输入.is_need_manage TYPEAS s_string
|
输入.is_need_manage TYPEAS s_string
|
||||||
@@ -186,10 +187,13 @@
|
|||||||
OPTION 输入.quality_scode <> ""
|
OPTION 输入.quality_scode <> ""
|
||||||
structivt.quality_scode = 输入.quality_scode
|
structivt.quality_scode = 输入.quality_scode
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
OPTION 输入.prior_level <> ""
|
||||||
|
structivt.ivt_level <= 输入.prior_level
|
||||||
|
ENDOPTION
|
||||||
OPTION 输入.is_pure <> ""
|
OPTION 输入.is_pure <> ""
|
||||||
stockmaterialext.is_pure = 输入.is_pure
|
stockmaterialext.is_pure = 输入.is_pure
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
ORDER BY structivt.material_id,structivt.pcsn, structivt.sum_qty desc
|
ORDER BY structivt.material_id,structivt.ivt_level desc,structivt.pcsn, structivt.sum_qty desc
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package org.nl.wms.sb.stat.websocket;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.mnt.websocket.MsgType;
|
||||||
|
import org.nl.modules.mnt.websocket.SocketMsg;
|
||||||
|
import org.nl.modules.mnt.websocket.WebSocketServer;
|
||||||
|
import org.nl.wms.pf.service.AutoPfTaskService;
|
||||||
|
import org.nl.wql.WQL;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AutoWebSocketTask {
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
String today = DateUtil.today();
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("flag", "1");
|
||||||
|
map.put("today", "%"+today+"%");
|
||||||
|
|
||||||
|
JSONArray resultJSONArray = WQL.getWO("TASK_AUTOWEBSOCKETTSK").addParamMap(map).process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
SocketMsg socketMsg = new SocketMsg(resultJSONArray, MsgType.INFO);
|
||||||
|
WebSocketServer.sendInfo(socketMsg,"20");
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,163 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 实时查询统计任务
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.today TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
mst.input_time AS input_time,
|
||||||
|
mst.repair_code AS repair_code,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.maintenancecycle
|
||||||
|
WHEN '01' THEN '计划维修'
|
||||||
|
WHEN '02' THEN '临时维修'
|
||||||
|
END
|
||||||
|
) AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '委外维修'
|
||||||
|
WHEN '05' THEN '委外验收'
|
||||||
|
WHEN '06' THEN '结束'
|
||||||
|
WHEN '07' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today))
|
||||||
|
AND ( ISNULL( mst.source_bill_id ) OR mst.source_bill_type = 'WXJH' )
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
st.create_time AS input_time,
|
||||||
|
st.request_code AS repair_code,
|
||||||
|
class.class_name AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
st.is_passed
|
||||||
|
WHEN '0' THEN
|
||||||
|
(
|
||||||
|
CASE st.is_passed
|
||||||
|
WHEN '0' THEN '否'
|
||||||
|
WHEN '1' THEN '是'
|
||||||
|
END
|
||||||
|
)
|
||||||
|
WHEN '1' THEN
|
||||||
|
(
|
||||||
|
CASE mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '委外维修'
|
||||||
|
WHEN '05' THEN '委外验收'
|
||||||
|
WHEN '06' THEN '结束'
|
||||||
|
WHEN '07' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
)
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairRequest st
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON st.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN md_pb_classstandard class ON class.class_id = st.device_faultclass_id
|
||||||
|
LEFT JOIN EM_BI_DeviceRepairMst mst ON mst.source_bill_id = st.request_id
|
||||||
|
WHERE
|
||||||
|
st.is_delete = '0'
|
||||||
|
AND (st.status <> '99' or (st.status = '99' and st.finish_time like 输入.today))
|
||||||
|
AND mst.source_bill_type = 'BXD'
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
mst.input_time AS input_time,
|
||||||
|
mst.maint_code AS repair_code,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.maintenancecycle
|
||||||
|
WHEN '01' THEN '计划保养'
|
||||||
|
WHEN '02' THEN '临时保养'
|
||||||
|
END
|
||||||
|
) AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '结束'
|
||||||
|
WHEN '05' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenanceMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today))
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -47,4 +47,10 @@ public class ReturnOutBillController {
|
|||||||
public ResponseEntity<Object> queryBillDtl(@RequestParam Map whereJson, Pageable page){
|
public ResponseEntity<Object> queryBillDtl(@RequestParam Map whereJson, Pageable page){
|
||||||
return new ResponseEntity<>(returnOutBillService.queryBillDtl(whereJson,page), HttpStatus.OK);
|
return new ResponseEntity<>(returnOutBillService.queryBillDtl(whereJson,page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@GetMapping("/queryWashDtl")
|
||||||
|
@Log("查询软废库存")
|
||||||
|
@ApiOperation("查询软废库存")
|
||||||
|
public ResponseEntity<Object> queryWashDtl(@RequestParam Map whereJson, Pageable page){
|
||||||
|
return new ResponseEntity<>(returnOutBillService.queryWashDtl(whereJson,page), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,4 +30,12 @@ public interface ReturnOutBillService {
|
|||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> queryBillDtl(Map whereJson, Pageable page);
|
Map<String, Object> queryBillDtl(Map whereJson, Pageable page);
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
*
|
||||||
|
* @param whereJson 条件
|
||||||
|
* @param page 分页参数
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> queryWashDtl(Map whereJson, Pageable page);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.utils.SpringContextHolder;
|
import org.nl.utils.SpringContextHolder;
|
||||||
|
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||||
import org.nl.wms.basedata.master.service.ClassstandardService;
|
import org.nl.wms.basedata.master.service.ClassstandardService;
|
||||||
import org.nl.wms.st.core.service.ReturnOutBillService;
|
import org.nl.wms.st.core.service.ReturnOutBillService;
|
||||||
import org.nl.wql.WQL;
|
import org.nl.wql.WQL;
|
||||||
@@ -161,4 +162,19 @@ public class ReturnOutBillServiceImpl implements ReturnOutBillService {
|
|||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> queryWashDtl(Map whereJson, Pageable page) {
|
||||||
|
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||||
|
if (StrUtil.isNotEmpty(map.get("search"))) {
|
||||||
|
map.put("search", "%" + map.get("search") + "%");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotEmpty(map.get("pcsn"))) {
|
||||||
|
map.put("pcsn", "%" + map.get("pcsn") + "%");
|
||||||
|
}
|
||||||
|
map.put("flag", "4");
|
||||||
|
map.put("material_ids", MaterOptTypeEnum.RF.getClass_idStr());
|
||||||
|
JSONObject jo = WQL.getWO("QST_IVT_RETURNOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mb.material_id desc");
|
||||||
|
return jo;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,11 @@
|
|||||||
输入.mater_type TYPEAS f_string
|
输入.mater_type TYPEAS f_string
|
||||||
输入.query_type TYPEAS s_string
|
输入.query_type TYPEAS s_string
|
||||||
输入.searchid TYPEAS s_string
|
输入.searchid TYPEAS s_string
|
||||||
|
输入.is_active TYPEAS s_string
|
||||||
输入.bucketunique TYPEAS s_string
|
输入.bucketunique TYPEAS s_string
|
||||||
输入.pcsn TYPEAS s_string
|
输入.pcsn TYPEAS s_string
|
||||||
输入.storagevehicle_code TYPEAS s_string
|
输入.storagevehicle_code TYPEAS s_string
|
||||||
|
输入.material_ids TYPEAS f_string
|
||||||
[临时表]
|
[临时表]
|
||||||
--这边列出来的临时表就会在运行期动态创建
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
@@ -216,3 +218,55 @@
|
|||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
PAGEQUERY
|
||||||
|
SELECT
|
||||||
|
structivt.*,
|
||||||
|
mb.material_name,
|
||||||
|
mb.material_code,
|
||||||
|
'' AS remark
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
SUM( ivt.canuse_qty ) AS plan_qty,
|
||||||
|
SUM( ivt.ivt_qty ) AS sum_qty,
|
||||||
|
ivt.qty_unit_id,
|
||||||
|
ivt.qty_unit_name,
|
||||||
|
ivt.material_id,
|
||||||
|
ivt.pcsn,
|
||||||
|
ivt.is_active,
|
||||||
|
ivt.ivt_level,
|
||||||
|
ivt.quality_scode
|
||||||
|
FROM
|
||||||
|
st_ivt_structivt ivt
|
||||||
|
GROUP BY
|
||||||
|
ivt.material_id,
|
||||||
|
ivt.pcsn,
|
||||||
|
ivt.is_active,
|
||||||
|
ivt.ivt_level,
|
||||||
|
ivt.quality_scode,
|
||||||
|
ivt.qty_unit_id,
|
||||||
|
ivt.qty_unit_name
|
||||||
|
) structivt
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = structivt.material_id
|
||||||
|
WHERE
|
||||||
|
1 = 1
|
||||||
|
AND structivt.plan_qty > 0
|
||||||
|
OPTION 输入.search <> ""
|
||||||
|
(mb.material_code like 输入.search
|
||||||
|
OR
|
||||||
|
mb.material_name like 输入.search)
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
structivt.pcsn like 输入.pcsn
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.is_active <> ""
|
||||||
|
structivt.is_active = 输入.is_active
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.material_ids <> ""
|
||||||
|
mb.material_type_id in 输入.material_ids
|
||||||
|
ENDOPTION
|
||||||
|
ENDSELECT
|
||||||
|
ENDPAGEQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ export const constantRouterMap = [
|
|||||||
hidden: true,
|
hidden: true,
|
||||||
meta: { title: '扩展屏' }
|
meta: { title: '扩展屏' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/bigScreen/task/stat',
|
||||||
|
component: (resolve) => require(['@/views/wms/sb/stat/task/bigScreen'], resolve),
|
||||||
|
hidden: true,
|
||||||
|
meta: { title: '任务看板' }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/404',
|
path: '/404',
|
||||||
component: (resolve) => require(['@/views/features/404'], resolve),
|
component: (resolve) => require(['@/views/features/404'], resolve),
|
||||||
|
|||||||
128
mes/qd/src/views/wms/sb/stat/task/bigScreen.vue
Normal file
128
mes/qd/src/views/wms/sb/stat/task/bigScreen.vue
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<template>
|
||||||
|
<div style="border: 1px solid #938d8d;margin-left: 10px;margin-right: 10px;">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="grid-content bg-purple"><h2 style="margin-left: 30px;padding-top: 10px;">统计任务看板</h2></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="grid-content bg-purple-light">
|
||||||
|
<h2 style="text-align:right;margin-right: 140px;">{{ getTime }}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="grid-content bg-purple-light">
|
||||||
|
<p style="text-align:right;margin-right: 110px;"><b>{{ getDate }}</b></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
:data="tableData"
|
||||||
|
size="small"
|
||||||
|
style="width: 100%;"
|
||||||
|
border
|
||||||
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
|
>
|
||||||
|
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||||
|
<el-table-column prop="input_time" label="生成时间" />
|
||||||
|
<el-table-column prop="repair_code" label="任务号" />
|
||||||
|
<el-table-column prop="maintenancecycle" label="任务类型" />
|
||||||
|
<!-- <el-table-column prop="" label="部门" />-->
|
||||||
|
<el-table-column prop="device_code" label="设备编码" />
|
||||||
|
<el-table-column prop="device_name" label="设备名称" />
|
||||||
|
<el-table-column prop="invstatus" label="状态" />
|
||||||
|
<el-table-column prop="real_start_date" label="开始时间" />
|
||||||
|
<el-table-column prop="real_end_date" label="结束时间" />
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!--分页组件-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crud from '@/mixins/crud'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'BigscreenTask',
|
||||||
|
mixins: [crud],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
path: 'ws://localhost:8010/webSocket/20',
|
||||||
|
currentDate: new Date(),
|
||||||
|
getTime: '',
|
||||||
|
getDate: '',
|
||||||
|
tableData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 定时器
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
this.settime()// 你所加载数据的方法
|
||||||
|
}, 1000)
|
||||||
|
// 销毁定时器
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
clearInterval(timer)
|
||||||
|
})
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
settime() {
|
||||||
|
const _this = this
|
||||||
|
const yy = new Date().getFullYear()
|
||||||
|
const mm = new Date().getMonth() + 1
|
||||||
|
const dd = new Date().getDate()
|
||||||
|
const hh = new Date().getHours()
|
||||||
|
const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
|
||||||
|
const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
|
||||||
|
_this.getDate = yy + '年' + mm + '月' + dd + '日 ' + '星期' + '日一二三四五六'.charAt(new Date().getDay())
|
||||||
|
_this.getTime = hh + ':' + mf + ':' + ss
|
||||||
|
},
|
||||||
|
// webSocket
|
||||||
|
init: function() {
|
||||||
|
if (typeof (WebSocket) === 'undefined') {
|
||||||
|
alert('您的浏览器不支持socket')
|
||||||
|
} else {
|
||||||
|
// 实例化socket
|
||||||
|
this.socket = new WebSocket(this.path)
|
||||||
|
// 监听socket连接
|
||||||
|
this.socket.onopen = this.open
|
||||||
|
// 监听socket错误信息
|
||||||
|
this.socket.onerror = this.error
|
||||||
|
// 监听socket消息
|
||||||
|
this.socket.onmessage = this.getMessage
|
||||||
|
}
|
||||||
|
},
|
||||||
|
open: function() {
|
||||||
|
console.log('socket连接成功')
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
console.log('连接错误')
|
||||||
|
},
|
||||||
|
getMessage: function(msg) {
|
||||||
|
debugger
|
||||||
|
const data = JSON.parse(msg.data)
|
||||||
|
this.tableData = data.msg
|
||||||
|
},
|
||||||
|
send: function() {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
this.socket.send(params)
|
||||||
|
},
|
||||||
|
close: function() {
|
||||||
|
console.log('socket已经关闭')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -108,6 +108,16 @@
|
|||||||
<span v-if="crud.status.cu > 0" class="crud-opts-right2">
|
<span v-if="crud.status.cu > 0" class="crud-opts-right2">
|
||||||
<!--左侧插槽-->
|
<!--左侧插槽-->
|
||||||
<slot name="left" />
|
<slot name="left" />
|
||||||
|
<el-button
|
||||||
|
slot="left"
|
||||||
|
class="filter-item"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="queryDtl()"
|
||||||
|
>
|
||||||
|
添加库存物料
|
||||||
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
slot="left"
|
slot="left"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@@ -140,7 +150,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="material_name" label="物料名称" align="center" min-width="150px" show-overflow-tooltip />
|
<el-table-column prop="material_name" label="物料名称" align="center" min-width="150px" show-overflow-tooltip />
|
||||||
<el-table-column show-overflow-tooltip prop="pcsn" label="批次号" align="center">
|
<el-table-column show-overflow-tooltip prop="pcsn" width="120" label="批次号" align="center">
|
||||||
<template scope="scope">
|
<template scope="scope">
|
||||||
<el-input v-show="!scope.row.edit" v-model="scope.row.pcsn" size="mini" />
|
<el-input v-show="!scope.row.edit" v-model="scope.row.pcsn" size="mini" />
|
||||||
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
|
<span v-show="scope.row.edit">{{ scope.row.pcsn }}</span>
|
||||||
@@ -218,6 +228,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<AddDtl :dialog-show.sync="dtlShow" @tableChanged="tableChanged" />
|
||||||
<MaterDialog :dialog-show.sync="materShow" :mater-opt-code.sync="materType" @tableChanged2="tableChanged2" />
|
<MaterDialog :dialog-show.sync="materShow" :mater-opt-code.sync="materType" @tableChanged2="tableChanged2" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@@ -225,6 +236,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import CRUD, { crud, form } from '@crud/crud'
|
import CRUD, { crud, form } from '@crud/crud'
|
||||||
import MaterDialog from '@/views/wms/pub/MaterDialog'
|
import MaterDialog from '@/views/wms/pub/MaterDialog'
|
||||||
|
import AddDtl from '@/views/wms/st/core/outbill/wastewashoutbill/AddDtl'
|
||||||
import checkoutbill from '@/api/wms/st/core/outbill/checkoutbill'
|
import checkoutbill from '@/api/wms/st/core/outbill/checkoutbill'
|
||||||
import crudStorattr from '@/api/wms/basedata/st/storattr'
|
import crudStorattr from '@/api/wms/basedata/st/storattr'
|
||||||
import crudRawAssist from '@/api/wms/st/core/inbill/rawassist'
|
import crudRawAssist from '@/api/wms/st/core/inbill/rawassist'
|
||||||
@@ -245,7 +257,7 @@ const defaultForm = {
|
|||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'AddDialog',
|
name: 'AddDialog',
|
||||||
components: { MaterDialog },
|
components: { AddDtl, MaterDialog },
|
||||||
mixins: [crud(), form(defaultForm)],
|
mixins: [crud(), form(defaultForm)],
|
||||||
props: {
|
props: {
|
||||||
dialogShow: {
|
dialogShow: {
|
||||||
@@ -260,6 +272,7 @@ export default {
|
|||||||
materType: '',
|
materType: '',
|
||||||
materShow: false,
|
materShow: false,
|
||||||
flagnow: false,
|
flagnow: false,
|
||||||
|
dtlShow: false,
|
||||||
nowrow: {},
|
nowrow: {},
|
||||||
nowindex: '',
|
nowindex: '',
|
||||||
storlist: [],
|
storlist: [],
|
||||||
@@ -354,6 +367,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
tableChanged(rows) {
|
tableChanged(rows) {
|
||||||
|
// 插入第一条
|
||||||
const tablemap = new Map()
|
const tablemap = new Map()
|
||||||
rows.forEach((item) => {
|
rows.forEach((item) => {
|
||||||
if (this.form.tableData.length !== 0) {
|
if (this.form.tableData.length !== 0) {
|
||||||
@@ -364,18 +378,12 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!this.flagnow) {
|
if (!this.flagnow) {
|
||||||
item.edit = true
|
item.edit = false
|
||||||
item.quality_scode = '02'
|
|
||||||
item.ivt_level = '01'
|
|
||||||
item.is_active = '0'
|
|
||||||
item.bill_status = '10'
|
item.bill_status = '10'
|
||||||
tablemap.set(item.material_id, item)
|
tablemap.set(item.material_id, item)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item.edit = true
|
item.edit = false
|
||||||
item.quality_scode = '02'
|
|
||||||
item.ivt_level = '01'
|
|
||||||
item.is_active = '0'
|
|
||||||
item.bill_status = '10'
|
item.bill_status = '10'
|
||||||
tablemap.set(item.material_id, item)
|
tablemap.set(item.material_id, item)
|
||||||
}
|
}
|
||||||
@@ -385,6 +393,13 @@ export default {
|
|||||||
}
|
}
|
||||||
this.form.detail_count = this.form.tableData.length
|
this.form.detail_count = this.form.tableData.length
|
||||||
},
|
},
|
||||||
|
async queryDtl() {
|
||||||
|
if (this.form.bill_type === '') {
|
||||||
|
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.dtlShow = true
|
||||||
|
},
|
||||||
tableChanged2(row) {
|
tableChanged2(row) {
|
||||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||||
if (this.form.tableData[i].material_id === row.material_id) {
|
if (this.form.tableData[i].material_id === row.material_id) {
|
||||||
|
|||||||
152
mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDtl.vue
Normal file
152
mes/qd/src/views/wms/st/core/outbill/wastewashoutbill/AddDtl.vue
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
title="库存物料选择"
|
||||||
|
append-to-body
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
destroy-on-close
|
||||||
|
:show-close="false"
|
||||||
|
width="1200px"
|
||||||
|
@open="open"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
|
<!--工具栏-->
|
||||||
|
<div class="head-container">
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<el-input
|
||||||
|
v-model="query.search"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="物料编码或名称"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
<el-input
|
||||||
|
v-model="query.pcsn"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="批次号"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
<el-select
|
||||||
|
v-model="query.is_active"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="是否可用"
|
||||||
|
class="filter-item"
|
||||||
|
@change="crud.toQuery"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.is_usable"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<rrOperation />
|
||||||
|
</div>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="multipleTable"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
style="width: 100%;"
|
||||||
|
border
|
||||||
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_code" width="150" label="物料编码" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="pcsn" label="批次" />
|
||||||
|
<el-table-column prop="quality_scode" label="品质类型" align="center" width="110px" :formatter="quality_scodeFormat" />
|
||||||
|
<el-table-column prop="ivt_level" label="库存等级" align="center" width="100px" :formatter="ivt_levelFormat" />
|
||||||
|
<el-table-column prop="is_active" label="是否可用" align="center" width="110px" :formatter="is_activeFormat" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="sum_qty" :formatter="crud.formatNum3" width="120" label="库存重量" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="可用重量" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="重量单位" />
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
||||||
|
<el-button slot="left" type="primary" @click="submit">保存</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import CRUD, { header, presenter } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'AddDtl',
|
||||||
|
components: { rrOperation, pagination },
|
||||||
|
cruds() {
|
||||||
|
return CRUD({ title: '用户', url: 'api/returnoutbill/queryWashDtl',
|
||||||
|
query: { pcsn: '', search: '', is_active: '' },
|
||||||
|
optShow: {
|
||||||
|
add: false,
|
||||||
|
edit: false,
|
||||||
|
del: false,
|
||||||
|
reset: false,
|
||||||
|
download: false
|
||||||
|
}})
|
||||||
|
},
|
||||||
|
dicts: [ 'ST_QUALITY_SCODE', 'ST_IVT_LEVEL', 'is_usable'],
|
||||||
|
mixins: [presenter(), header()],
|
||||||
|
props: {
|
||||||
|
dialogShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
rows: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogShow: {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.dialogVisible = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
close() {
|
||||||
|
this.crud.resetQuery(false)
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
},
|
||||||
|
open() {
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
quality_scodeFormat(row) {
|
||||||
|
return this.dict.label.ST_QUALITY_SCODE[row.quality_scode]
|
||||||
|
},
|
||||||
|
ivt_levelFormat(row) {
|
||||||
|
return this.dict.label.ST_IVT_LEVEL[row.ivt_level]
|
||||||
|
},
|
||||||
|
is_activeFormat(row) {
|
||||||
|
return this.dict.label.is_usable[row.is_active]
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
this.rows = this.$refs.multipleTable.selection
|
||||||
|
if (this.rows.length <= 0) {
|
||||||
|
this.$message('请先勾选物料')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.crud.resetQuery(false)
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('tableChanged', this.rows)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
Reference in New Issue
Block a user