优化
This commit is contained in:
@@ -287,10 +287,10 @@ public class PerformancemstServiceImpl implements PerformancemstService {
|
|||||||
map1.put("flag", "10");
|
map1.put("flag", "10");
|
||||||
JSONObject jsonAllTotalNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0);
|
JSONObject jsonAllTotalNum = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParamMap(map1).process().uniqueResult(0);
|
||||||
jsonAllTotal.put(json2.getString("assessor_id"),jsonAllTotalNum.getString("num"));
|
jsonAllTotal.put(json2.getString("assessor_id"),jsonAllTotalNum.getString("num"));
|
||||||
|
String eta = "0";
|
||||||
// 计算工时效率:总积分 / 总出勤时间
|
// 计算工时效率:总积分 / 总出勤时间
|
||||||
try {
|
try {
|
||||||
String eta = NumberUtil.div(jsonAllTotalNum.getString("num"), jsonAllTimeNum.getString("num")).toString();
|
eta = NumberUtil.div(jsonAllTotalNum.getString("num"), jsonAllTimeNum.getString("num")).toString();
|
||||||
jsonEta.put(json2.getString("assessor_id"),NumberUtil.round(eta, 2));
|
jsonEta.put(json2.getString("assessor_id"),NumberUtil.round(eta, 2));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
jsonEta.put(json2.getString("assessor_id"),"0");
|
jsonEta.put(json2.getString("assessor_id"),"0");
|
||||||
@@ -318,7 +318,7 @@ public class PerformancemstServiceImpl implements PerformancemstService {
|
|||||||
|
|
||||||
// 与班组平均对比计算结果
|
// 与班组平均对比计算结果
|
||||||
try {
|
try {
|
||||||
String contrast = NumberUtil.sub(jsonEta.getString(json2.getString("assessor_id")), String.valueOf(NumberUtil.div(allPersonTotal, allPersonTime))).toString();
|
String contrast = NumberUtil.sub(eta, String.valueOf(NumberUtil.div(allPersonTotal, allPersonTime))).toString();
|
||||||
jsonContrast.put(json2.getString("assessor_id"),NumberUtil.round(contrast, 2));
|
jsonContrast.put(json2.getString("assessor_id"),NumberUtil.round(contrast, 2));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
jsonContrast.put(json2.getString("assessor_id"),"0");
|
jsonContrast.put(json2.getString("assessor_id"),"0");
|
||||||
@@ -327,8 +327,8 @@ public class PerformancemstServiceImpl implements PerformancemstService {
|
|||||||
|
|
||||||
//查询出有多少个员工 要用到它们的个数
|
//查询出有多少个员工 要用到它们的个数
|
||||||
JSONArray jsonArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParam("flag", "5").process().getResultJSONArray(0);
|
JSONArray jsonArr = WQL.getWO("QL_TEST_PERFORMANCEMST01").addParam("flag", "5").process().getResultJSONArray(0);
|
||||||
json.put(String.valueOf(jsonArr.size() + 2), total);
|
json.put(String.valueOf(jsonArr.size() + 2), NumberUtil.round(total, 2));
|
||||||
json.put(String.valueOf(jsonArr.size() + 1), average);
|
json.put(String.valueOf(jsonArr.size() + 1), NumberUtil.round(average, 2));
|
||||||
are.add(json);
|
are.add(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,25 +87,39 @@
|
|||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
PAGEQUERY
|
PAGEQUERY
|
||||||
SELECT
|
SELECT
|
||||||
pp.*,
|
pp.*,
|
||||||
ext.old_mark,
|
ext.old_mark,
|
||||||
ext.standard_mark,
|
ext.standard_mark,
|
||||||
ext.standard_weight_pft AS standard_weight,
|
ext.standard_weight_pft AS standard_weight,
|
||||||
materialbase.material_type_id,
|
materialbase.material_type_id,
|
||||||
ext.product_series,
|
ext.product_series,
|
||||||
deviceinfo.device_id,
|
deviceinfo.device_id,
|
||||||
deviceinfo.device_name
|
deviceinfo.device_name
|
||||||
FROM
|
FROM
|
||||||
PCS_IF_ProductPlanProc pp
|
PCS_IF_ProductPlanProc pp
|
||||||
LEFT JOIN md_me_materialbase materialbase ON pp.material_id = materialbase.material_id
|
LEFT JOIN md_me_materialbase materialbase ON pp.material_id = materialbase.material_id
|
||||||
LEFT JOIN MD_ME_ProducMaterialExt ext ON pp.material_id = ext.material_id
|
LEFT JOIN MD_ME_ProducMaterialExt ext ON pp.material_id = ext.material_id
|
||||||
INNER JOIN MPS_BD_CapacityTemplateWorkDevice WorkDevice ON concat(ext.product_series) = concat(WorkDevice.product_series_id)
|
INNER JOIN (
|
||||||
LEFT JOIN em_bi_deviceinfo deviceinfo ON deviceinfo.device_id = WorkDevice.device_id
|
SELECT
|
||||||
|
WorkDevice.workprocedure_id,
|
||||||
|
WorkDevice.product_series_id,
|
||||||
|
WorkDevice.captemplate_id,
|
||||||
|
MAX( WorkDevice.device_id ) AS device_id
|
||||||
|
FROM
|
||||||
|
MPS_BD_CapacityTemplateWorkDevice WorkDevice
|
||||||
|
WHERE
|
||||||
|
1 = 1
|
||||||
|
AND WorkDevice.captemplate_id = '1534741977764073472'
|
||||||
|
AND WorkDevice.workprocedure_id = '1472449923327856640'
|
||||||
|
GROUP BY
|
||||||
|
WorkDevice.workprocedure_id,
|
||||||
|
WorkDevice.product_series_id,
|
||||||
|
WorkDevice.captemplate_id
|
||||||
|
) WorkDevice2 ON concat( ext.product_series ) = concat( WorkDevice2.product_series_id )
|
||||||
|
LEFT JOIN em_bi_deviceinfo deviceinfo ON deviceinfo.device_id = WorkDevice2.device_id
|
||||||
WHERE
|
WHERE
|
||||||
1 = 1
|
1 = 1
|
||||||
AND pp.is_proc IN ( '1', '2' )
|
AND pp.is_proc IN ( '1', '2' )
|
||||||
AND WorkDevice.captemplate_id = '1534741977764073472'
|
|
||||||
AND WorkDevice.workprocedure_id = '1472449923327856640'
|
|
||||||
OPTION 输入.is_proc <> ""
|
OPTION 输入.is_proc <> ""
|
||||||
pp.is_proc = 输入.is_proc
|
pp.is_proc = 输入.is_proc
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|||||||
@@ -906,15 +906,15 @@ public class PhysicalMstServiceImpl implements PhysicalMstService {
|
|||||||
JwtUserDto currentUser = (JwtUserDto) SecurityUtils.getCurrentUser();
|
JwtUserDto currentUser = (JwtUserDto) SecurityUtils.getCurrentUser();
|
||||||
Long deptId = currentUser.getDeptId();
|
Long deptId = currentUser.getDeptId();
|
||||||
|
|
||||||
JSONObject oldPhyMst = phyMstTab.query("inspection_id = '" + json.getString("inspection_id") + "'").uniqueResult(0);
|
JSONObject oldPhyMst = phyMstTab.query("is_delete='0' and inspection_id = '" + json.getString("inspection_id") + "'").uniqueResult(0);
|
||||||
JSONArray oldPhydtlArr = phyDtlTab.query("inspection_id = '" + json.getString("inspection_id") + "'").getResultJSONArray(0);
|
JSONArray oldPhydtlArr = phyDtlTab.query("is_delete='0' and inspection_id = '" + json.getString("inspection_id") + "'").getResultJSONArray(0);
|
||||||
// 单据状态必须为确认
|
// 单据状态必须为确认
|
||||||
if (!StrUtil.equals(oldPhyMst.getString("bill_status"), "99")) throw new BadRequestException("单据状态必须为完成!");
|
if (!StrUtil.equals(oldPhyMst.getString("bill_status"), "99")) throw new BadRequestException("单据状态必须为完成!");
|
||||||
|
|
||||||
// 校验是否有相同批次物料的单据正在检测中
|
// 校验是否有相同批次物料的单据正在检测中
|
||||||
String material_id = oldPhyMst.getString("material_id");
|
String material_id = oldPhyMst.getString("material_id");
|
||||||
String pcsn = oldPhyMst.getString("pcsn");
|
String pcsn = oldPhyMst.getString("pcsn");
|
||||||
JSONObject jsonObject = phyMstTab.query("material_id ='" + material_id + "' AND pcsn = '" + pcsn + "' AND bill_status ='30'").uniqueResult(0);
|
JSONObject jsonObject = phyMstTab.query("is_delete='0' and material_id ='" + material_id + "' AND pcsn = '" + pcsn + "' AND bill_status ='30'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(jsonObject)) throw new BadRequestException("此单据有正在检测中的单据");
|
if (ObjectUtil.isNotEmpty(jsonObject)) throw new BadRequestException("此单据有正在检测中的单据");
|
||||||
|
|
||||||
// 新增新的理化单主表
|
// 新增新的理化单主表
|
||||||
@@ -949,7 +949,7 @@ public class PhysicalMstServiceImpl implements PhysicalMstService {
|
|||||||
sheetdtl.put("grade", "");
|
sheetdtl.put("grade", "");
|
||||||
sheetDtlTab.update(sheetdtl);
|
sheetDtlTab.update(sheetdtl);
|
||||||
// 更新一级质检单主表
|
// 更新一级质检单主表
|
||||||
JSONObject sheetMst = sheetMstTab.query("inspection_id = '" + sheetdtl.getString("inspection_id") + "'").uniqueResult(0);
|
JSONObject sheetMst = sheetMstTab.query("is_delete='0' and inspection_id = '" + sheetdtl.getString("inspection_id") + "'").uniqueResult(0);
|
||||||
sheetMst.put("bill_status", "30");
|
sheetMst.put("bill_status", "30");
|
||||||
sheetMst.put("confirm_optid", "");
|
sheetMst.put("confirm_optid", "");
|
||||||
sheetMst.put("confirm_optname", "");
|
sheetMst.put("confirm_optname", "");
|
||||||
|
|||||||
@@ -30,6 +30,13 @@ public class CheckOutBillController {
|
|||||||
return new ResponseEntity<>(checkOutBillService.pageQuery(whereJson,page), HttpStatus.OK);
|
return new ResponseEntity<>(checkOutBillService.pageQuery(whereJson,page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/checkoutbill2")
|
||||||
|
@Log("查询出库单")
|
||||||
|
@ApiOperation("查询出库单")
|
||||||
|
public ResponseEntity<Object> checkoutbill2(@RequestParam Map whereJson, Pageable page){
|
||||||
|
return new ResponseEntity<>(checkOutBillService.pageQuery2(whereJson,page), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/addDtl")
|
@GetMapping("/addDtl")
|
||||||
@Log("查询出库单")
|
@Log("查询出库单")
|
||||||
@ApiOperation("查询出库单")
|
@ApiOperation("查询出库单")
|
||||||
|
|||||||
@@ -15,6 +15,14 @@ public interface CheckOutBillService {
|
|||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> pageQuery(Map whereJson, Pageable page);
|
Map<String, Object> pageQuery(Map whereJson, Pageable page);
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
*
|
||||||
|
* @param whereJson 条件
|
||||||
|
* @param page 分页参数
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> pageQuery2(Map whereJson, Pageable page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询数据分页
|
* 查询数据分页
|
||||||
|
|||||||
@@ -66,6 +66,38 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
|||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> pageQuery2(Map whereJson, Pageable page) {
|
||||||
|
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||||
|
map.put("flag", "1");
|
||||||
|
|
||||||
|
if (StrUtil.isNotEmpty(map.get("bill_code"))) {
|
||||||
|
map.put("bill_code", "%" + map.get("bill_code") + "%");
|
||||||
|
}
|
||||||
|
String deptIds = DataAuthUtil.getDeptStr();
|
||||||
|
map.put("deptIds", deptIds);
|
||||||
|
if (StrUtil.isNotEmpty(map.get("buss_type"))) {
|
||||||
|
map.put("buss_type", whereJson.get("buss_type") + "%");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotEmpty(map.get("io_type"))) {
|
||||||
|
map.put("io_type", map.get("io_type"));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotEmpty(map.get("pcsn"))) {
|
||||||
|
map.put("pcsn", "%" + map.get("pcsn") + "%");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotEmpty(map.get("material_code"))) {
|
||||||
|
map.put("material_code", "%" + map.get("material_code") + "%");
|
||||||
|
}
|
||||||
|
JSONObject jo = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc");
|
||||||
|
JSONArray json = jo.getJSONArray("content");
|
||||||
|
map.put("flag", "11");
|
||||||
|
JSONObject jo2 = WQL.getWO("QST_IVT_CHECKOUTBILL").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jo2.put("bill_code","合计");
|
||||||
|
json.add(jo2);
|
||||||
|
jo.put("content",json);
|
||||||
|
return jo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAddDtl(Map whereJson, Pageable page) {
|
public Map<String, Object> queryAddDtl(Map whereJson, Pageable page) {
|
||||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||||
|
|||||||
@@ -125,6 +125,73 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(outq.total_qty) AS total_qty
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
ios.iostorinv_id AS id,
|
||||||
|
ios.*,
|
||||||
|
user.nick_name AS upload_optname
|
||||||
|
FROM
|
||||||
|
ST_IVT_IOStorInv ios
|
||||||
|
inner join (SELECT
|
||||||
|
invdtl.iostorinv_id
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl invdtl
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = invdtl.material_id
|
||||||
|
where 1=1
|
||||||
|
OPTION 输入.quality_scode <> ""
|
||||||
|
invdtl.quality_scode = 输入.quality_scode
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
invdtl.pcsn like 输入.pcsn
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.material_code <> ""
|
||||||
|
(mb.material_code like 输入.material_code or mb.material_name like 输入.material_code)
|
||||||
|
ENDOPTION
|
||||||
|
group by iostorinv_id) dtlcopy on dtlcopy.iostorinv_id = ios.iostorinv_id
|
||||||
|
LEFT JOIN sys_user user ON user.user_id = ios.upload_optid
|
||||||
|
WHERE 1=1
|
||||||
|
and ios.is_delete='0'
|
||||||
|
OPTION 输入.bill_code <> ""
|
||||||
|
ios.bill_code like 输入.bill_code
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.io_type <> ""
|
||||||
|
ios.io_type = 输入.io_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.buss_type <> ""
|
||||||
|
ios.buss_type like 输入.buss_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.bill_type <> ""
|
||||||
|
ios.bill_type = 输入.bill_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.stor_id <> ""
|
||||||
|
ios.stor_id = 输入.stor_id
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.deptIds <> ""
|
||||||
|
ios.sysdeptid in 输入.deptIds
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.create_mode <> ""
|
||||||
|
ios.create_mode = 输入.create_mode
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.bill_status <> ""
|
||||||
|
ios.bill_status = 输入.bill_status
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.begin_time <> ""
|
||||||
|
ios.input_time >= 输入.begin_time
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.end_time <> ""
|
||||||
|
ios.input_time <= 输入.end_time
|
||||||
|
ENDOPTION
|
||||||
|
) outq
|
||||||
|
where 1=1
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.statistics.service;
|
package org.nl.wms.statistics.service;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class IostordailyServiceImpl implements IostordailyService {
|
|||||||
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", "%" + pcsn + "%");
|
if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", "%" + pcsn + "%");
|
||||||
JSONObject json = WQL.getWO("SendReceiveQuery_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "da.sect_date desc");
|
JSONObject json = WQL.getWO("SendReceiveQuery_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "da.sect_date desc");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 处理所属组织
|
* 处理所属组织
|
||||||
* 1.PG粉所属组织:通过物料编码+批次找工令所属组织来获取
|
* 1.PG粉所属组织:通过物料编码+批次找工令所属组织来获取
|
||||||
@@ -70,6 +71,7 @@ public class IostordailyServiceImpl implements IostordailyService {
|
|||||||
WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表
|
WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表
|
||||||
|
|
||||||
JSONArray contentArr = json.getJSONArray("content");
|
JSONArray contentArr = json.getJSONArray("content");
|
||||||
|
JSONArray ja = new JSONArray();
|
||||||
for (int i = 0; i < contentArr.size(); i++) {
|
for (int i = 0; i < contentArr.size(); i++) {
|
||||||
JSONObject jsonObject = contentArr.getJSONObject(i);
|
JSONObject jsonObject = contentArr.getJSONObject(i);
|
||||||
String material_id = jsonObject.getString("material_id");
|
String material_id = jsonObject.getString("material_id");
|
||||||
@@ -81,10 +83,16 @@ public class IostordailyServiceImpl implements IostordailyService {
|
|||||||
|
|
||||||
if (is_pgf) {
|
if (is_pgf) {
|
||||||
JSONObject jsonWork = workTab.query("material_id = '" + material_id + "' and pcsn = '" + pcsn_1 + "' and is_delete ='0'").uniqueResult(0);
|
JSONObject jsonWork = workTab.query("material_id = '" + material_id + "' and pcsn = '" + pcsn_1 + "' and is_delete ='0'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(jsonWork)) continue;
|
if (ObjectUtil.isEmpty(jsonWork)) {
|
||||||
|
ja.add(jsonObject);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
JSONObject jsonDept = deptTab.query("dept_id = '" + jsonWork.getString("org_id") + "'").uniqueResult(0);
|
JSONObject jsonDept = deptTab.query("dept_id = '" + jsonWork.getString("org_id") + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(jsonDept)) jsonObject.put("dept_name", jsonDept.getString("name"));
|
if (ObjectUtil.isNotEmpty(jsonDept)) {
|
||||||
|
jsonObject.put("dept_name", jsonDept.getString("name"));
|
||||||
|
ja.add(jsonObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_rf) {
|
if (is_rf) {
|
||||||
@@ -94,19 +102,27 @@ public class IostordailyServiceImpl implements IostordailyService {
|
|||||||
String material_code_sub = material_code_1.substring(0, lastIndexOf);
|
String material_code_sub = material_code_1.substring(0, lastIndexOf);
|
||||||
|
|
||||||
JSONArray workArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "3").addParam("material_code", material_code_sub).process().getResultJSONArray(0);
|
JSONArray workArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "3").addParam("material_code", material_code_sub).process().getResultJSONArray(0);
|
||||||
if (ObjectUtil.isEmpty(workArr)) continue;
|
if (ObjectUtil.isEmpty(workArr)) {
|
||||||
|
ja.add(jsonObject);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (workArr.size() > 1) {
|
if (workArr.size() > 1) {
|
||||||
jsonObject.put("is_yellow", "1");
|
jsonObject.put("is_yellow", "1");
|
||||||
JSONObject json_1 = workArr.getJSONObject(0);
|
JSONObject json_1 = workArr.getJSONObject(0);
|
||||||
jsonObject.put("dept_name",json_1.getString("dept_name"));
|
jsonObject.put("dept_name",json_1.getString("dept_name"));
|
||||||
|
ja.add(jsonObject);
|
||||||
} else {
|
} else {
|
||||||
JSONObject json_1 = workArr.getJSONObject(0);
|
JSONObject json_1 = workArr.getJSONObject(0);
|
||||||
jsonObject.put("dept_name",json_1.getString("dept_name"));
|
jsonObject.put("dept_name",json_1.getString("dept_name"));
|
||||||
|
ja.add(jsonObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
map.put("flag", "11");
|
||||||
|
JSONObject jo2 = WQL.getWO("SendReceiveQuery_query_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jo2.put("stor_name","合计");
|
||||||
|
ja.add(jo2);
|
||||||
|
json.put("content",ja);
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,8 +65,14 @@ public class IvtQueryServiceImpl implements IvtQueryService {
|
|||||||
map.put("sects",str);
|
map.put("sects",str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JSONObject json = WQL.getWO("Qivt_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ivt.instorage_time desc");
|
JSONObject jo = WQL.getWO("Qivt_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ivt.instorage_time desc");
|
||||||
return json;
|
JSONArray json = jo.getJSONArray("content");
|
||||||
|
map.put("flag", "11");
|
||||||
|
JSONObject jo2 = WQL.getWO("Qivt_query_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jo2.put("stor_name","合计");
|
||||||
|
json.add(jo2);
|
||||||
|
jo.put("content",json);
|
||||||
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.nl.wql.core.bean.WQLObject;
|
|||||||
import org.nl.wql.util.WqlUtil;
|
import org.nl.wql.util.WqlUtil;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -47,8 +48,14 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JSONObject json = WQL.getWO("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time desc");
|
JSONObject jo = WQL.getWO("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time desc");
|
||||||
return json;
|
JSONArray json = jo.getJSONArray("content");
|
||||||
|
map.put("flag", "11");
|
||||||
|
JSONObject jo2 = WQL.getWO("statistical_report_query_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jo2.put("material_code","合计");
|
||||||
|
json.add(jo2);
|
||||||
|
jo.put("content",json);
|
||||||
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -74,6 +81,12 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
|||||||
map.put("material_code", "%" + map.get("material_code") + "%");
|
map.put("material_code", "%" + map.get("material_code") + "%");
|
||||||
}
|
}
|
||||||
JSONObject jo = WQL.getWO("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc");
|
JSONObject jo = WQL.getWO("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc");
|
||||||
|
JSONArray json = jo.getJSONArray("content");
|
||||||
|
map.put("flag", "22");
|
||||||
|
JSONObject jo2 = WQL.getWO("statistical_report_query_01").addParamMap(map).process().uniqueResult(0);
|
||||||
|
jo2.put("biz_date","合计");
|
||||||
|
json.add(jo2);
|
||||||
|
jo.put("content",json);
|
||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -144,6 +144,107 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(outq.bucket_num) AS bucket_num,
|
||||||
|
sum(outq.ivt_qty) AS ivt_qty,
|
||||||
|
sum(outq.canuse_qty) AS canuse_qty,
|
||||||
|
sum(outq.frozen_qty) AS frozen_qty,
|
||||||
|
sum(outq.warehousing_qty) AS warehousing_qty
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
struct.stor_name,
|
||||||
|
struct.sect_name,
|
||||||
|
struct.struct_code,
|
||||||
|
struct.struct_name,
|
||||||
|
struct.storagevehicle_code,
|
||||||
|
me.material_code,
|
||||||
|
me.material_name,
|
||||||
|
me.material_spec,
|
||||||
|
me.material_model,
|
||||||
|
ivt.quality_scode,
|
||||||
|
ivt.ivt_level,
|
||||||
|
ivt.is_active,
|
||||||
|
ivt.pcsn,
|
||||||
|
ivt.ivt_qty,
|
||||||
|
ivt.canuse_qty,
|
||||||
|
ivt.frozen_qty,
|
||||||
|
ivt.warehousing_qty,
|
||||||
|
ivt.qty_unit_name,
|
||||||
|
ivt.instorage_time,
|
||||||
|
bucket.bucket_num
|
||||||
|
FROM
|
||||||
|
ST_IVT_StructIvt ivt
|
||||||
|
LEFT JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id
|
||||||
|
LEFT JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id
|
||||||
|
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = me.material_type_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
COUNT(*) AS bucket_num,
|
||||||
|
br.storagevehicle_code,
|
||||||
|
br.material_id,
|
||||||
|
br.pcsn,
|
||||||
|
br.is_active,
|
||||||
|
br.ivt_level,
|
||||||
|
br.quality_scode
|
||||||
|
FROM
|
||||||
|
MD_PB_BucketRecord br
|
||||||
|
WHERE 1=1
|
||||||
|
GROUP BY
|
||||||
|
br.storagevehicle_code,
|
||||||
|
br.material_id,
|
||||||
|
br.pcsn,
|
||||||
|
br.is_active,
|
||||||
|
br.ivt_level,
|
||||||
|
br.quality_scode
|
||||||
|
) bucket ON (bucket.storagevehicle_code = struct.storagevehicle_code
|
||||||
|
and bucket.material_id=ivt.material_id
|
||||||
|
and bucket.pcsn=ivt.pcsn
|
||||||
|
and bucket.is_active=ivt.is_active
|
||||||
|
and bucket.ivt_level=ivt.ivt_level
|
||||||
|
and bucket.quality_scode=ivt.quality_scode)
|
||||||
|
WHERE 1=1
|
||||||
|
OPTION 输入.stor_id <> ""
|
||||||
|
struct.stor_id = 输入.stor_id
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.sects <> ""
|
||||||
|
struct.sect_id in 输入.sects
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.material_name <> ""
|
||||||
|
( me.material_name like "%" 输入.material_name "%" or me.material_code like "%" 输入.material_name "%" )
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.storagevehicle_code <> ""
|
||||||
|
(struct.storagevehicle_code like "%" 输入.storagevehicle_code "%")
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.struct_name <> ""
|
||||||
|
( struct.struct_name like "%" 输入.struct_name "%" or struct.struct_code like "%" 输入.struct_name "%" )
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.is_active <> ""
|
||||||
|
ivt.is_active = 输入.is_active
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.ivt_level <> ""
|
||||||
|
ivt.ivt_level = 输入.ivt_level
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.quality_scode <> ""
|
||||||
|
ivt.quality_scode = 输入.quality_scode
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
ivt.pcsn like "%" 输入.pcsn "%"
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.material_model <> ""
|
||||||
|
me.material_model like "%" 输入.material_model "%"
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.classIds <> ""
|
||||||
|
class.class_id in 输入.classIds
|
||||||
|
ENDOPTION
|
||||||
|
) outq
|
||||||
|
where 1=1
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
PAGEQUERY
|
PAGEQUERY
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -127,6 +127,92 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(outq.start_num) AS start_num,
|
||||||
|
sum(outq.in_num) AS in_num,
|
||||||
|
sum(outq.out_num) AS out_num,
|
||||||
|
sum(outq.end_num) AS end_num
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
stor.stor_name,
|
||||||
|
da.sect_date,
|
||||||
|
da.is_active,
|
||||||
|
da.ivt_level,
|
||||||
|
da.pcsn,
|
||||||
|
da.quality_scode,
|
||||||
|
class.class_name,
|
||||||
|
class.class_code,
|
||||||
|
mater.material_id,
|
||||||
|
mater.material_code,
|
||||||
|
mater.material_name,
|
||||||
|
mater.material_model,
|
||||||
|
unit.unit_name,
|
||||||
|
da.start_num,
|
||||||
|
da.in_num,
|
||||||
|
da.out_num,
|
||||||
|
da.end_num,
|
||||||
|
da.more_num,
|
||||||
|
da.less_num
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
sum(start_num) AS start_num,
|
||||||
|
sum(in_num ) AS in_num,
|
||||||
|
sum(out_num ) AS out_num,
|
||||||
|
sum(end_num) AS end_num,
|
||||||
|
sum(more_num) AS more_num,
|
||||||
|
sum(less_num) AS less_num,
|
||||||
|
max(material_id) AS material_id,
|
||||||
|
max(stor_id) AS stor_id,
|
||||||
|
max(sect_date) AS sect_date,
|
||||||
|
max(quality_scode) AS quality_scode,
|
||||||
|
max(pcsn) AS pcsn,
|
||||||
|
max(ivt_level) AS ivt_level,
|
||||||
|
max(is_active) AS is_active
|
||||||
|
FROM
|
||||||
|
ST_IVT_IOStorDaily a
|
||||||
|
GROUP BY
|
||||||
|
a.material_id,
|
||||||
|
a.quality_scode,
|
||||||
|
a.pcsn,
|
||||||
|
a.ivt_level,
|
||||||
|
a.is_active,
|
||||||
|
a.sect_date
|
||||||
|
) AS da
|
||||||
|
LEFT JOIN MD_ME_MaterialBase mater ON da.material_id = mater.material_id
|
||||||
|
LEFT JOIN md_pb_classstandard class ON mater.material_type_id = class.class_id
|
||||||
|
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mater.base_unit_id
|
||||||
|
LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = da.stor_id
|
||||||
|
WHERE 1=1
|
||||||
|
OPTION 输入.stor_id <> ""
|
||||||
|
stor.stor_id = 输入.stor_id
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.begin_time <> ""
|
||||||
|
da.sect_date >= 输入.begin_time
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.end_time <> ""
|
||||||
|
da.sect_date <= 输入.end_time
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.material_code <> ""
|
||||||
|
(mater.material_code like 输入.material_code or
|
||||||
|
mater.material_name like 输入.material_code)
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
(da.pcsn like 输入.pcsn or
|
||||||
|
da.pcsn like 输入.pcsn)
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.classIds <> ""
|
||||||
|
class.class_id in 输入.classIds
|
||||||
|
ENDOPTION
|
||||||
|
) outq
|
||||||
|
where 1=1
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -57,8 +57,9 @@
|
|||||||
SELECT
|
SELECT
|
||||||
MAX( mb.material_code ) AS material_code,
|
MAX( mb.material_code ) AS material_code,
|
||||||
SUM( off.qty ) AS qty,
|
SUM( off.qty ) AS qty,
|
||||||
MAX( off.material_id) AS material_id,
|
off.material_id,
|
||||||
MAX( off.pcsn) AS pcsn,
|
off.pcsn,
|
||||||
|
wo.org_id,
|
||||||
MAX( off.create_time ) AS create_time,
|
MAX( off.create_time ) AS create_time,
|
||||||
MAX( off.create_name ) AS create_name,
|
MAX( off.create_name ) AS create_name,
|
||||||
MAX( wo.planend_time ) AS planend_time,
|
MAX( wo.planend_time ) AS planend_time,
|
||||||
@@ -67,11 +68,11 @@
|
|||||||
MAX( ext.old_mark) AS old_mark
|
MAX( ext.old_mark) AS old_mark
|
||||||
FROM
|
FROM
|
||||||
pdm_bi_procedureoffline off
|
pdm_bi_procedureoffline off
|
||||||
LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_id
|
LEFT JOIN pdm_bi_workorder wo ON (wo.material_id = off.material_id and wo.pcsn = off.pcsn)
|
||||||
LEFT JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
||||||
WHERE
|
WHERE
|
||||||
1=1
|
1=1 and wo.is_delete='0'
|
||||||
OPTION 输入.material_code <> ""
|
OPTION 输入.material_code <> ""
|
||||||
(
|
(
|
||||||
mb.material_code like 输入.material_code
|
mb.material_code like 输入.material_code
|
||||||
@@ -84,7 +85,8 @@
|
|||||||
ENDOPTION
|
ENDOPTION
|
||||||
GROUP BY
|
GROUP BY
|
||||||
off.material_id,
|
off.material_id,
|
||||||
off.pcsn
|
off.pcsn,
|
||||||
|
wo.org_id
|
||||||
HAVING
|
HAVING
|
||||||
1=1
|
1=1
|
||||||
OPTION 输入.begin_time <> ""
|
OPTION 输入.begin_time <> ""
|
||||||
@@ -97,6 +99,59 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(outq.qty) AS qty
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
MAX( mb.material_code ) AS material_code,
|
||||||
|
SUM( off.qty ) AS qty,
|
||||||
|
off.material_id,
|
||||||
|
off.pcsn,
|
||||||
|
wo.org_id,
|
||||||
|
MAX( off.create_time ) AS create_time,
|
||||||
|
MAX( off.create_name ) AS create_name,
|
||||||
|
MAX( wo.planend_time ) AS planend_time,
|
||||||
|
MAX( wo.realend_time ) AS realend_time,
|
||||||
|
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
|
||||||
|
MAX( ext.old_mark) AS old_mark
|
||||||
|
FROM
|
||||||
|
pdm_bi_procedureoffline off
|
||||||
|
LEFT JOIN pdm_bi_workorder wo ON (wo.material_id = off.material_id and wo.pcsn = off.pcsn)
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = off.material_id
|
||||||
|
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = off.material_id
|
||||||
|
WHERE
|
||||||
|
1=1 and wo.is_delete='0'
|
||||||
|
OPTION 输入.material_code <> ""
|
||||||
|
(
|
||||||
|
mb.material_code like 输入.material_code
|
||||||
|
OR
|
||||||
|
mb.material_name like 输入.material_code
|
||||||
|
)
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
off.pcsn = 输入.pcsn
|
||||||
|
ENDOPTION
|
||||||
|
GROUP BY
|
||||||
|
off.material_id,
|
||||||
|
off.pcsn,
|
||||||
|
wo.org_id
|
||||||
|
HAVING
|
||||||
|
1=1
|
||||||
|
OPTION 输入.begin_time <> ""
|
||||||
|
create_time >= 输入.begin_time
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.end_time <> ""
|
||||||
|
create_time <= 输入.end_time
|
||||||
|
ENDOPTION
|
||||||
|
) outq
|
||||||
|
where 1=1
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
PAGEQUERY
|
PAGEQUERY
|
||||||
SELECT
|
SELECT
|
||||||
@@ -176,6 +231,107 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "22"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
sum(outq.out_qty) AS out_qty,
|
||||||
|
sum(outq.in_qty) AS in_qty
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
mst.biz_date,
|
||||||
|
mst.iostorinv_id,
|
||||||
|
mst.bill_type,
|
||||||
|
mst.io_type,
|
||||||
|
mst.stor_name,
|
||||||
|
mst.input_optname,
|
||||||
|
dept.`name`,
|
||||||
|
sup.supp_name,
|
||||||
|
class.class_code,
|
||||||
|
class.class_name,
|
||||||
|
class2.class_code AS parent_class_code,
|
||||||
|
class2.class_name AS parent_class_name,
|
||||||
|
mst.bill_code,
|
||||||
|
mb.material_code,
|
||||||
|
mb.material_name,
|
||||||
|
dtl.pcsn,
|
||||||
|
dtl.qty_unit_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
WHEN io_type = '0' THEN
|
||||||
|
''
|
||||||
|
WHEN io_type = '1'
|
||||||
|
AND bill_type = '010701' THEN
|
||||||
|
CONCAT('-', real_qty)
|
||||||
|
ELSE
|
||||||
|
dtl.real_qty
|
||||||
|
END
|
||||||
|
) AS out_qty,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
WHEN io_type = '1' THEN
|
||||||
|
''
|
||||||
|
WHEN io_type = '0'
|
||||||
|
AND bill_type = '000501' THEN
|
||||||
|
CONCAT('-', real_qty)
|
||||||
|
ELSE
|
||||||
|
dtl.real_qty
|
||||||
|
END
|
||||||
|
) AS in_qty
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||||
|
LEFT JOIN pcs_if_purchaseorderproc proc ON proc.id = dtl.base_billdtl_id
|
||||||
|
LEFT JOIN md_cs_supplierbase sup ON sup.ext_id = proc.VEND_ID
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
LEFT JOIN md_pb_classstandard class ON class.class_id = mb.material_type_id
|
||||||
|
LEFT JOIN md_pb_classstandard class2 ON class2.class_id = class.parent_class_id
|
||||||
|
WHERE
|
||||||
|
1 = 1
|
||||||
|
AND mst.is_delete = '0'
|
||||||
|
OPTION 输入.bill_code <> ""
|
||||||
|
mst.bill_code like 输入.bill_code
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.io_type <> ""
|
||||||
|
mst.io_type = 输入.io_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.buss_type <> ""
|
||||||
|
mst.buss_type like 输入.buss_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.bill_type <> ""
|
||||||
|
mst.bill_type = 输入.bill_type
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.stor_id <> ""
|
||||||
|
mst.stor_id = 输入.stor_id
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.deptIds <> ""
|
||||||
|
mst.sysdeptid in 输入.deptIds
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.bill_status <> ""
|
||||||
|
mst.bill_status = 输入.bill_status
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.begin_time <> ""
|
||||||
|
mst.input_time >= 输入.begin_time
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.end_time <> ""
|
||||||
|
mst.input_time <= 输入.end_time
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.quality_scode <> ""
|
||||||
|
dtl.quality_scode = 输入.quality_scode
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
dtl.pcsn like 输入.pcsn
|
||||||
|
ENDOPTION
|
||||||
|
OPTION 输入.material_code <> ""
|
||||||
|
(mb.material_code like 输入.material_code or mb.material_name like 输入.material_code)
|
||||||
|
ENDOPTION
|
||||||
|
) outq
|
||||||
|
where 1=1
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "3"
|
IF 输入.flag = "3"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="100" align="center" />
|
<el-table-column type="index" label="序号" width="100" align="center" />
|
||||||
<template v-for="(col,index) in cols">
|
<template v-for="(col,index) in cols">
|
||||||
<el-table-column v-if="col" :prop="col.prop" :label="col.label" />
|
<el-table-column v-if="col" :prop="col.prop" width="90" :label="col.label" />
|
||||||
</template>
|
</template>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
|
|||||||
@@ -198,15 +198,15 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="bill_code" width="130" label="订单编码" />
|
<el-table-column prop="bill_code" width="130" label="订单编码" />
|
||||||
<el-table-column show-overflow-tooltip :formatter="stateFormat" width="100" prop="bill_status" label="单据状态" />
|
<el-table-column :formatter="stateFormat" width="100" prop="bill_status" label="单据状态" />
|
||||||
<el-table-column prop="stor_name" label="仓库" width="100" />
|
<el-table-column prop="stor_name" label="仓库" width="100" />
|
||||||
<el-table-column prop="io_type" label="出入库类型" :formatter="ioFormat" min-width="100" show-overflow-tooltip />
|
<el-table-column prop="io_type" label="出入库类型" :formatter="ioFormat" min-width="100" />
|
||||||
<el-table-column show-overflow-tooltip prop="bill_type" :formatter="bill_typeFormat" min-width="120" label="业务类型" />
|
<el-table-column prop="bill_type" :formatter="bill_typeFormat" min-width="120" label="业务类型" />
|
||||||
<el-table-column show-overflow-tooltip width="135" prop="biz_date" label="业务日期" />
|
<el-table-column width="135" prop="biz_date" label="业务日期" />
|
||||||
<el-table-column show-overflow-tooltip :formatter="create_modeFormat" prop="create_mode" label="生成方式" width="100" />
|
<el-table-column :formatter="create_modeFormat" prop="create_mode" label="生成方式" width="100" />
|
||||||
<el-table-column label="明细数" align="center" prop="detail_count" width="100" />
|
<el-table-column label="明细数" align="center" prop="detail_count" width="100" />
|
||||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
<el-table-column label="总重量" align="center" prop="total_qty" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ fun(scope.row.total_qty) }}
|
{{ fun(scope.row.total_qty) }}
|
||||||
</template>
|
</template>
|
||||||
@@ -247,7 +247,7 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
// 每页数据条数
|
// 每页数据条数
|
||||||
size: 20
|
size: 20
|
||||||
},idField: 'iostorinv_id', url: 'api/checkoutbill', crudMethod: { ...checkoutbill },
|
},idField: 'iostorinv_id', url: 'api/checkoutbill/checkoutbill2', crudMethod: { ...checkoutbill },
|
||||||
optShow: {
|
optShow: {
|
||||||
add: false,
|
add: false,
|
||||||
edit: false,
|
edit: false,
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
<el-table-column prop="stor_name" label="仓库" />
|
<el-table-column prop="stor_name" label="仓库" />
|
||||||
<el-table-column prop="sect_name" label="库区" min-width="100" />
|
<el-table-column prop="sect_name" label="库区" min-width="100" />
|
||||||
<el-table-column prop="struct_code" label="货位编码" width="120" />
|
<el-table-column prop="struct_code" label="货位编码" width="120" />
|
||||||
<el-table-column prop="struct_name" label="货位名称" min-width="150" show-overflow-tooltip />
|
<el-table-column prop="struct_name" label="货位名称" min-width="150" />
|
||||||
<el-table-column prop="storagevehicle_code" label="托盘号">
|
<el-table-column prop="storagevehicle_code" label="托盘号">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-link type="warning" @click="openBucket(scope.row)">{{ scope.row.storagevehicle_code }}</el-link>
|
<el-link type="warning" @click="openBucket(scope.row)">{{ scope.row.storagevehicle_code }}</el-link>
|
||||||
@@ -174,11 +174,11 @@
|
|||||||
<el-table-column prop="quality_scode" label="品质类型" :formatter="format_quality_scode" />
|
<el-table-column prop="quality_scode" label="品质类型" :formatter="format_quality_scode" />
|
||||||
<el-table-column prop="ivt_level" label="库存等级" :formatter="format_ivt_level" />
|
<el-table-column prop="ivt_level" label="库存等级" :formatter="format_ivt_level" />
|
||||||
<el-table-column prop="is_active" label="是否可用" :formatter="format_is_active" />
|
<el-table-column prop="is_active" label="是否可用" :formatter="format_is_active" />
|
||||||
<el-table-column prop="bucket_num" :formatter="crud.formatNum0" label="桶数" min-width="80" />
|
<el-table-column prop="bucket_num" :formatter="crud.formatNum0" label="桶数" min-width="100" />
|
||||||
<el-table-column prop="ivt_qty" label="库存重量" :formatter="formatQty" />
|
<el-table-column prop="ivt_qty" label="库存重量" :formatter="formatQty" min-width="100" />
|
||||||
<el-table-column prop="canuse_qty" label="可用重量" :formatter="formatQty" />
|
<el-table-column prop="canuse_qty" label="可用重量" :formatter="formatQty" min-width="100" />
|
||||||
<el-table-column prop="frozen_qty" label="冻结数" :formatter="formatQty" />
|
<el-table-column prop="frozen_qty" label="冻结数" :formatter="formatQty" min-width="100" />
|
||||||
<el-table-column prop="warehousing_qty" label="待入数" :formatter="formatQty" />
|
<el-table-column prop="warehousing_qty" label="待入数" :formatter="formatQty" min-width="100" />
|
||||||
<el-table-column prop="qty_unit_name" label="单位" />
|
<el-table-column prop="qty_unit_name" label="单位" />
|
||||||
<el-table-column prop="instorage_time" label="入库时间" width="135" />
|
<el-table-column prop="instorage_time" label="入库时间" width="135" />
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
@@ -62,6 +62,7 @@
|
|||||||
<el-table-column prop="material_code" label="物料编码" width="150" align="center"/>
|
<el-table-column prop="material_code" label="物料编码" width="150" align="center"/>
|
||||||
<el-table-column prop="old_mark" label="粉料牌号" width="150" align="center"/>
|
<el-table-column prop="old_mark" label="粉料牌号" width="150" align="center"/>
|
||||||
<el-table-column min-width="90" prop="pcsn" label="批次号" align="center"/>
|
<el-table-column min-width="90" prop="pcsn" label="批次号" align="center"/>
|
||||||
|
<el-table-column prop="org_id" :formatter="orgFormat" min-width="105" label="所属组织" />
|
||||||
<el-table-column prop="qty" label="入库重量" :formatter="crud.formatNum3" width="150" align="center"/>
|
<el-table-column prop="qty" label="入库重量" :formatter="crud.formatNum3" width="150" align="center"/>
|
||||||
<el-table-column prop="create_time" label="入库时间" width="150" align="center"/>
|
<el-table-column prop="create_time" label="入库时间" width="150" align="center"/>
|
||||||
<el-table-column prop="create_name" label="操作工" align="center" width="110px"/>
|
<el-table-column prop="create_name" label="操作工" align="center" width="110px"/>
|
||||||
@@ -85,6 +86,7 @@ import crudStorattr from '@/api/wms/basedata/st/storattr'
|
|||||||
import Date from '@/utils/datetime'
|
import Date from '@/utils/datetime'
|
||||||
import StructIvt from '@/views/wms/statistics/outStorQuery/StructIvt'
|
import StructIvt from '@/views/wms/statistics/outStorQuery/StructIvt'
|
||||||
import crudRawAssist from '@/api/wms/st/core/inbill/rawassist'
|
import crudRawAssist from '@/api/wms/st/core/inbill/rawassist'
|
||||||
|
import workorder from '@/api/wms/pdm/workorder'
|
||||||
|
|
||||||
const start = new Date()
|
const start = new Date()
|
||||||
export default {
|
export default {
|
||||||
@@ -119,6 +121,8 @@ export default {
|
|||||||
structshow: false,
|
structshow: false,
|
||||||
currentRow: null,
|
currentRow: null,
|
||||||
storlist: [],
|
storlist: [],
|
||||||
|
sum: 0,
|
||||||
|
Depts: [],
|
||||||
billtypelist: []
|
billtypelist: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -135,6 +139,9 @@ export default {
|
|||||||
crudRawAssist.getType({ 'io_code': '0103', 'io_flag': '01' }).then(res => {
|
crudRawAssist.getType({ 'io_code': '0103', 'io_flag': '01' }).then(res => {
|
||||||
this.billtypelist = res
|
this.billtypelist = res
|
||||||
})
|
})
|
||||||
|
workorder.getDepts().then(res => {
|
||||||
|
this.Depts = res
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onInput() {
|
onInput() {
|
||||||
@@ -143,6 +150,13 @@ export default {
|
|||||||
async queryMater() {
|
async queryMater() {
|
||||||
this.structshow = true
|
this.structshow = true
|
||||||
},
|
},
|
||||||
|
orgFormat(row) {
|
||||||
|
for (const item of this.Depts) {
|
||||||
|
if (item.id === row.org_id) {
|
||||||
|
return item.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
queryTableDtl(rows) {
|
queryTableDtl(rows) {
|
||||||
let devices = ''
|
let devices = ''
|
||||||
for (let i = 0; i < rows.length; i++) {
|
for (let i = 0; i < rows.length; i++) {
|
||||||
|
|||||||
@@ -81,24 +81,20 @@
|
|||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation :permission="permission"/>
|
<crudOperation :permission="permission"/>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table ref="table" :cell-style="cellStyleMst" show-summary :summary-method="getSum" :max-height="590" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
<el-table ref="table" :cell-style="cellStyleMst" :max-height="590" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||||
<el-table-column prop="stor_name" label="仓库"/>
|
<el-table-column prop="stor_name" label="仓库"/>
|
||||||
<el-table-column prop="class_code" label="物料分类编码" width="100px" />
|
<el-table-column prop="class_code" label="物料分类编码" width="100px" />
|
||||||
<el-table-column prop="class_name" label="物料分类名称" width="100px" />
|
<el-table-column prop="class_name" label="物料分类名称" width="100px" />
|
||||||
<el-table-column prop="material_code" label="物料编码" min-width="150" show-overflow-tooltip/>
|
<el-table-column prop="material_code" label="物料编码" min-width="150" />
|
||||||
<el-table-column prop="material_name" label="物料名称" min-width="150" show-overflow-tooltip/>
|
<el-table-column prop="material_name" label="物料名称" min-width="150" />
|
||||||
<el-table-column prop="material_model" label="型号/牌号" min-width="150" show-overflow-tooltip/>
|
<el-table-column prop="material_model" label="型号/牌号" min-width="150" />
|
||||||
<el-table-column prop="unit_name" label="主单位"/>
|
<el-table-column prop="unit_name" label="主单位"/>
|
||||||
<el-table-column prop="pcsn" label="批次号" min-width="120" show-overflow-tooltip/>
|
<el-table-column prop="pcsn" label="批次号" min-width="120" />
|
||||||
<el-table-column prop="dept_name" label="所属组织" min-width="120" show-overflow-tooltip/>
|
<el-table-column prop="dept_name" label="所属组织" min-width="120" />
|
||||||
<!-- <el-table-column prop="quality_scode" label="品质类型" :formatter="formatQualityName" />-->
|
|
||||||
<el-table-column prop="ivt_level" label="质量等级" :formatter="formatIvtName" />
|
<el-table-column prop="ivt_level" label="质量等级" :formatter="formatIvtName" />
|
||||||
<!-- <el-table-column prop="is_active" label="是否可用" :formatter="formatIsName" />-->
|
|
||||||
<el-table-column prop="start_num" label="期初主数量" :formatter="crud.formatNum3" width="100px" />
|
<el-table-column prop="start_num" label="期初主数量" :formatter="crud.formatNum3" width="100px" />
|
||||||
<el-table-column prop="in_num" label="入库主数量" :formatter="crud.formatNum3" width="100px" />
|
<el-table-column prop="in_num" label="入库主数量" :formatter="crud.formatNum3" width="100px" />
|
||||||
<el-table-column prop="out_num" label="出库主数量" :formatter="crud.formatNum3" width="100px" />
|
<el-table-column prop="out_num" label="出库主数量" :formatter="crud.formatNum3" width="100px" />
|
||||||
<!-- <el-table-column prop="less_num" label="其他出" :formatter="crud.formatNum3"/>-->
|
|
||||||
<!-- <el-table-column prop="more_num" label="其他入" :formatter="crud.formatNum3"/>-->
|
|
||||||
<el-table-column prop="end_num" label="结存主数量" :formatter="crud.formatNum3" width="100px" />
|
<el-table-column prop="end_num" label="结存主数量" :formatter="crud.formatNum3" width="100px" />
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
@@ -251,83 +247,6 @@ export default {
|
|||||||
return '否'
|
return '否'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getSum(param) {
|
|
||||||
// 将所有number的字段合计
|
|
||||||
const {columns, data} = param
|
|
||||||
const sums = []
|
|
||||||
let values = []
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 1) {
|
|
||||||
sums[index] = '合计'
|
|
||||||
return
|
|
||||||
}
|
|
||||||
values = data.map(item => Number(item[column.property]))
|
|
||||||
if (column.property === 'start_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'in_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'out_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'end_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'more_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'less_num') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else {
|
|
||||||
sums[index] = '--'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return sums
|
|
||||||
},
|
|
||||||
cellStyleMst({ row, column, rowIndex, columnIndex }) {
|
cellStyleMst({ row, column, rowIndex, columnIndex }) {
|
||||||
if (column.property === 'dept_name') {
|
if (column.property === 'dept_name') {
|
||||||
if (row.is_yellow !== undefined) {
|
if (row.is_yellow !== undefined) {
|
||||||
|
|||||||
Reference in New Issue
Block a user