This commit is contained in:
2022-06-30 16:05:18 +08:00
12 changed files with 621 additions and 11 deletions

View File

@@ -464,12 +464,17 @@ public class AutoformulaServiceImpl implements AutoformulaService {
String is_need_move = bomdlt.getString("is_need_move");
String bomdtl_material_id = bomdlt.getString("material_id");
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)){
//查询库存
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
.addParam("material_id",bomdtl_material_id)
.addParam("workorder_id",workorder_id)
.addParam("quality_scode","01")
.addParam("prior_level",prior_level)
.addParam("flag","22")
.process().getResultJSONArray(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 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)){
//查询库存
JSONArray bom_materials = WQL.getWO("QPF_AUTOFORMULA01")
.addParam("material_id",bomdtl_material_id)
.addParam("quality_scode","01")
.addParam("workorder_id",workorder_id)
.addParam("prior_level",prior_level)
.addParam("flag","22")
.process().getResultJSONArray(0);
if(bom_materials.size()==0){
@@ -2525,9 +2535,14 @@ public class AutoformulaServiceImpl implements AutoformulaService {
//获取Y1、X1、X2….剩余>0的物料
if(left_qty>0){
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")
.addParam("material_id",bomdtl_material_id)
.addParam("quality_scode","01")
.addParam("prior_level",prior_level)
.addParam("workorder_id",workorder_id)
.addParam("flag","22")
.process().getResultJSONArray(0);
@@ -3426,11 +3441,16 @@ public class AutoformulaServiceImpl implements AutoformulaService {
String bomdtl_material_id = bomdlts_plan.getString("material_id");
double left_qty = bomdlts_plan.getDouble("formula_qty");
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")){
//二次分配新料库存
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
.addParam("material_id",bomdtl_material_id)
.addParam("quality_scode","01")
.addParam("prior_level",prior_level)
.addParam("workorder_id",workorder_id)
.addParam("flag","22")
.process().getResultJSONArray(0);

View File

@@ -15,6 +15,7 @@
#################################################
输入.flag TYPEAS s_string
输入.quality_scode TYPEAS s_string
输入.prior_level TYPEAS s_string
输入.material_id TYPEAS s_string
输入.material_code TYPEAS s_string
输入.is_need_manage TYPEAS s_string
@@ -186,10 +187,13 @@
OPTION 输入.quality_scode <> ""
structivt.quality_scode = 输入.quality_scode
ENDOPTION
OPTION 输入.prior_level <> ""
structivt.ivt_level <= 输入.prior_level
ENDOPTION
OPTION 输入.is_pure <> ""
stockmaterialext.is_pure = 输入.is_pure
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
ENDQUERY
ENDIF

View File

@@ -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();
}
}
}

View File

@@ -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

View File

@@ -47,4 +47,10 @@ public class ReturnOutBillController {
public ResponseEntity<Object> queryBillDtl(@RequestParam Map whereJson, Pageable page){
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);
}
}

View File

@@ -30,4 +30,12 @@ public interface ReturnOutBillService {
* @return Map<String, Object>
*/
Map<String, Object> queryBillDtl(Map whereJson, Pageable page);
/**
* 查询数据分页
*
* @param whereJson 条件
* @param page 分页参数
* @return Map<String, Object>
*/
Map<String, Object> queryWashDtl(Map whereJson, Pageable page);
}

View File

@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.st.core.service.ReturnOutBillService;
import org.nl.wql.WQL;
@@ -161,4 +162,19 @@ public class ReturnOutBillServiceImpl implements ReturnOutBillService {
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;
}
}

View File

@@ -23,9 +23,11 @@
输入.mater_type TYPEAS f_string
输入.query_type TYPEAS s_string
输入.searchid TYPEAS s_string
输入.is_active TYPEAS s_string
输入.bucketunique TYPEAS s_string
输入.pcsn TYPEAS s_string
输入.storagevehicle_code TYPEAS s_string
输入.material_ids TYPEAS f_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
@@ -216,3 +218,55 @@
ENDSELECT
ENDPAGEQUERY
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