diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java index 9862c73e..56ee59da 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java @@ -403,6 +403,7 @@ public class WmsToErpServiceImpl implements WmsToErpService { JSONArray ja = WQL.getWO("QERP").setDbname("dataSource1").addParamMap(whereMap).addParam("flag", "5").process().getResultJSONArray(0); log.info("备件入库单导入数据---------:" + ja.toString()); + JSONObject bill_jo = new JSONObject(); for (int i = 0; i < ja.size(); i++) { JSONObject jo = ja.getJSONObject(i); String CGENERALBID = jo.getString("cgeneralbid"); @@ -445,64 +446,16 @@ public class WmsToErpServiceImpl implements WmsToErpService { throw new BadRequestException("备件采购订单状态不符!"); } if (jo.getString("fbillflag").equals("3")) { - //生成入库单 - JSONObject io_mst = new JSONObject(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - String bill_code = CodeUtil.getNewCode("IO_CODE"); - io_mst.put("iostorinv_id", iostorinv_id); - io_mst.put("bill_code", bill_code); - io_mst.put("buss_type", "0007"); - io_mst.put("io_type", "0"); - io_mst.put("bill_type", "000701"); - io_mst.put("biz_date", DateUtil.today()); - JSONObject stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_attachment = '1'").uniqueResult(0); - io_mst.put("stor_id", stor_jo.getString("stor_id")); - io_mst.put("stor_code", stor_jo.getString("stor_code")); - io_mst.put("stor_name", stor_jo.getString("stor_name")); - io_mst.put("total_qty", purchase.getString("QTY")); - io_mst.put("detail_count", "1"); - io_mst.put("bill_status", "10"); - io_mst.put("create_mode", "01"); - io_mst.put("input_optid", "1452555001116364823"); - io_mst.put("input_optname", "mes系统"); - io_mst.put("input_time", DateUtil.now()); - io_mst.put("update_optid", "1452555001116364823"); - io_mst.put("update_optname", "mes系统"); - io_mst.put("update_time", DateUtil.now()); - io_mst.put("is_delete", "0"); - io_mst.put("is_upload", "0"); - io_mst.put("sysdeptid", "1"); - io_mst.put("syscompanyid", "1"); - io_mst.put("bizdeptid", "1"); - WQLObject.getWQLObject("EM_BI_IOStorInv").insert(io_mst); - - //插入明细表 - JSONObject io_dtl = new JSONObject(); - io_dtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); - io_dtl.put("iostorinv_id", iostorinv_id); - io_dtl.put("seq_no", "1"); - io_dtl.put("bill_status", "10"); - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("ext_id = '" + purchase.getString("ITEM_ID") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(mater_jo)) { - log.info("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); - throw new BadRequestException("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); + //判断是否存在该订单的入库单 + if (bill_jo.containsKey(purchase.getString("VBILLCODE"))) { + JSONArray dtl_rows = bill_jo.getJSONArray(purchase.getString("VBILLCODE")); + dtl_rows.add(purchase); + bill_jo.put(purchase.getString("VBILLCODE"), dtl_rows); + } else { + JSONArray rows = new JSONArray(); + rows.add(purchase); + bill_jo.put(purchase.getString("VBILLCODE"), rows); } - io_dtl.put("material_id", mater_jo.getString("material_id")); - io_dtl.put("pcsn", purchase.getString("VBATCHCODE")); - JSONObject qty_jo = WQLObject.getWQLObject("md_pb_measureunit").query("ext_id = '" + purchase.getString("UNIT") + "'").uniqueResult(0); - io_dtl.put("qty_unit_id", qty_jo.getString("measure_unit_id")); - io_dtl.put("qty_unit_name", qty_jo.getString("unit_name")); - io_dtl.put("plan_qty", purchase.getString("QTY")); - io_dtl.put("source_billdtl_id", purchase.getString("id")); - io_dtl.put("source_bill_type", "PO"); - io_dtl.put("source_bill_code", purchase.getString("VBILLCODE")); - io_dtl.put("source_bill_table", "EM_BI_ErpPurchaseIn"); - io_dtl.put("base_billdtl_id", purchase.getString("id")); - io_dtl.put("base_bill_type", "PO"); - io_dtl.put("base_bill_code", purchase.getString("VBILLCODE")); - io_dtl.put("base_bill_table", "EM_BI_ErpPurchaseIn"); - io_dtl.put("remark_ext", purchase.getString("CGENERALHID")); - WQLObject.getWQLObject("EM_BI_IOStorInvDtl").insert(io_dtl); } purchaseIn_wql.insert(purchase); } else { @@ -543,68 +496,89 @@ public class WmsToErpServiceImpl implements WmsToErpService { throw new BadRequestException("备件采购订单状态不符!"); } if (jo.getString("fbillflag").equals("3")) { - //生成入库单 - JSONObject io_mst = new JSONObject(); - String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - String bill_code = CodeUtil.getNewCode("IO_CODE"); - io_mst.put("iostorinv_id", iostorinv_id); - io_mst.put("bill_code", bill_code); - io_mst.put("buss_type", "0007"); - io_mst.put("io_type", "0"); - io_mst.put("bill_type", "000701"); - io_mst.put("biz_date", DateUtil.today()); - JSONObject stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_attachment = '1'").uniqueResult(0); - io_mst.put("stor_id", stor_jo.getString("stor_id")); - io_mst.put("stor_code", stor_jo.getString("stor_code")); - io_mst.put("stor_name", stor_jo.getString("stor_name")); - io_mst.put("total_qty", purchase.getString("QTY")); - io_mst.put("detail_count", "1"); - io_mst.put("bill_status", "10"); - io_mst.put("create_mode", "01"); - io_mst.put("input_optid", "1452555001116364823"); - io_mst.put("input_optname", "mes系统"); - io_mst.put("input_time", DateUtil.now()); - io_mst.put("update_optid", "1452555001116364823"); - io_mst.put("update_optname", "mes系统"); - io_mst.put("update_time", DateUtil.now()); - io_mst.put("is_delete", "0"); - io_mst.put("is_upload", "0"); - io_mst.put("sysdeptid", "1"); - io_mst.put("syscompanyid", "1"); - io_mst.put("bizdeptid", "1"); - WQLObject.getWQLObject("EM_BI_IOStorInv").insert(io_mst); - - //插入明细表 - JSONObject io_dtl = new JSONObject(); - io_dtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); - io_dtl.put("iostorinv_id", iostorinv_id); - io_dtl.put("seq_no", "1"); - io_dtl.put("bill_status", "10"); - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("ext_id = '" + purchase.getString("ITEM_ID") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(mater_jo)) { - log.info("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); - throw new BadRequestException("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); + //判断是否存在该订单的入库单 + if (bill_jo.containsKey(purchase.getString("VBILLCODE"))) { + JSONArray dtl_rows = bill_jo.getJSONArray("rows"); + dtl_rows.add(purchase); + bill_jo.put(purchase.getString("VBILLCODE"), dtl_rows); + } else { + JSONArray rows = new JSONArray(); + rows.add(purchase); + bill_jo.put(purchase.getString("VBILLCODE"), rows); } - io_dtl.put("material_id", mater_jo.getString("material_id")); - io_dtl.put("pcsn", purchase.getString("VBATCHCODE")); - JSONObject qty_jo = WQLObject.getWQLObject("md_pb_measureunit").query("ext_id = '" + purchase.getString("UNIT") + "'").uniqueResult(0); - io_dtl.put("qty_unit_id", qty_jo.getString("measure_unit_id")); - io_dtl.put("qty_unit_name", qty_jo.getString("unit_name")); - io_dtl.put("plan_qty", purchase.getString("QTY")); - io_dtl.put("source_billdtl_id", purchase.getString("id")); - io_dtl.put("source_bill_type", "PO"); - io_dtl.put("source_bill_code", purchase.getString("VBILLCODE")); - io_dtl.put("source_bill_table", "EM_BI_ErpPurchaseIn"); - io_dtl.put("base_billdtl_id", purchase.getString("id")); - io_dtl.put("base_bill_type", "PO"); - io_dtl.put("base_bill_code", purchase.getString("VBILLCODE")); - io_dtl.put("base_bill_table", "EM_BI_ErpPurchaseIn"); - io_dtl.put("remark_ext", purchase.getString("CGENERALHID")); - WQLObject.getWQLObject("EM_BI_IOStorInvDtl").insert(io_dtl); } purchaseIn_wql.update(purchase); } } } + //对JSON进行遍历 + if (ObjectUtil.isNotEmpty(bill_jo)) { + for (String key : bill_jo.keySet()) { + JSONArray rows = bill_jo.getJSONArray(key); + //生成入库单 + JSONObject io_mst = new JSONObject(); + String iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + String bill_code = CodeUtil.getNewCode("IO_CODE"); + io_mst.put("iostorinv_id", iostorinv_id); + io_mst.put("bill_code", bill_code); + io_mst.put("buss_type", "0007"); + io_mst.put("io_type", "0"); + io_mst.put("bill_type", "000701"); + io_mst.put("biz_date", DateUtil.today()); + JSONObject stor_jo = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_attachment = '1'").uniqueResult(0); + io_mst.put("stor_id", stor_jo.getString("stor_id")); + io_mst.put("stor_code", stor_jo.getString("stor_code")); + io_mst.put("stor_name", stor_jo.getString("stor_name")); + io_mst.put("detail_count", rows.size()); + io_mst.put("bill_status", "10"); + io_mst.put("create_mode", "01"); + io_mst.put("input_optid", "1452555001116364823"); + io_mst.put("input_optname", "mes系统"); + io_mst.put("input_time", DateUtil.now()); + io_mst.put("update_optid", "1452555001116364823"); + io_mst.put("update_optname", "mes系统"); + io_mst.put("update_time", DateUtil.now()); + io_mst.put("is_delete", "0"); + io_mst.put("is_upload", "0"); + io_mst.put("sysdeptid", "1"); + io_mst.put("syscompanyid", "1"); + io_mst.put("bizdeptid", "1"); + + double total_qty = 0; + for (int i = 0; i < rows.size(); i++) { + JSONObject purchase = rows.getJSONObject(i); + //插入明细表 + total_qty += purchase.getDoubleValue("QTY"); + JSONObject io_dtl = new JSONObject(); + io_dtl.put("iostorinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); + io_dtl.put("iostorinv_id", iostorinv_id); + io_dtl.put("seq_no", "1"); + io_dtl.put("bill_status", "10"); + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("ext_id = '" + purchase.getString("ITEM_ID") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + log.info("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); + throw new BadRequestException("未查询到外部标识为:" + purchase.getString("ITEM_ID") + "的物料!"); + } + io_dtl.put("material_id", mater_jo.getString("material_id")); + io_dtl.put("pcsn", purchase.getString("VBATCHCODE")); + JSONObject qty_jo = WQLObject.getWQLObject("md_pb_measureunit").query("ext_id = '" + purchase.getString("UNIT") + "'").uniqueResult(0); + io_dtl.put("qty_unit_id", qty_jo.getString("measure_unit_id")); + io_dtl.put("qty_unit_name", qty_jo.getString("unit_name")); + io_dtl.put("plan_qty", purchase.getString("QTY")); + io_dtl.put("source_billdtl_id", purchase.getString("id")); + io_dtl.put("source_bill_type", "PO"); + io_dtl.put("source_bill_code", purchase.getString("VBILLCODE")); + io_dtl.put("source_bill_table", "EM_BI_ErpPurchaseIn"); + io_dtl.put("base_billdtl_id", purchase.getString("id")); + io_dtl.put("base_bill_type", "PO"); + io_dtl.put("base_bill_code", purchase.getString("VBILLCODE")); + io_dtl.put("base_bill_table", "EM_BI_ErpPurchaseIn"); + io_dtl.put("remark_ext", purchase.getString("CGENERALHID")); + WQLObject.getWQLObject("EM_BI_IOStorInvDtl").insert(io_dtl); + } + io_mst.put("total_qty", total_qty); + WQLObject.getWQLObject("EM_BI_IOStorInv").insert(io_mst); + } + } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java index 9c9aa6ed..5b89c36f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/service/impl/SparePartServiceImpl.java @@ -152,8 +152,7 @@ public class SparePartServiceImpl implements SparePartService { dis_jo.put("work_status", "99"); dis_jo.put("qty_unit_id", dtl.getString("qty_unit_id")); dis_jo.put("qty_unit_name", dtl.getString("qty_unit_name")); - JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_attachment = '1'").uniqueResult(0); - JSONObject struct = WQLObject.getWQLObject("st_ivt_structattr").query("stor_id = '" + stor.getString("stor_id") + "' order by sect_code").uniqueResult(0); + JSONObject struct = WQLObject.getWQLObject("st_ivt_structattr").query("sect_id = '" + row.get("sect_id") + "' order by sect_code").uniqueResult(0); dis_jo.put("sect_id", struct.getString("sect_id")); dis_jo.put("sect_code", struct.getString("sect_code")); dis_jo.put("sect_name", struct.getString("sect_name")); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql index cb61d395..2dd095b3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/wql/QPDAEM_BI_SPAREPART.wql @@ -63,6 +63,7 @@ file.device_code, file.device_name, mst.stor_id, + dis.sect_id file.devicerecord_id FROM em_bi_iostorinvdis dis diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql index b284cd96..6b44a981 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPART.wql @@ -65,16 +65,21 @@ IF 输入.flag = "1" PAGEQUERY - SELECT - ios.* + SELECT DISTINCT + ios.*, + dtl.source_bill_code, + (case when dtl.source_bill_type = 'PO' then '备件采购入库' else '' end ) AS source_type_name FROM em_bi_iostorinv ios + LEFT JOIN em_bi_iostorinvdtl dtl ON dtl.iostorinv_id = ios.iostorinv_id WHERE ios.buss_type = 输入.buss_type AND ios.is_delete = '0' OPTION 输入.bill_code <> "" - ios.bill_code like 输入.bill_code + (ios.bill_code like 输入.bill_code + OR + dtl.source_bill_code like 输入.bill_code) ENDOPTION OPTION 输入.bizperson <> "" ios.bizperson like 输入.bizperson @@ -82,7 +87,6 @@ OPTION 输入.deptIds <> "" ios.sysdeptid in 输入.deptIds ENDOPTION - OPTION 输入.stor_id <> "" ios.stor_id = 输入.stor_id ENDOPTION diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPARTOUT.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPARTOUT.wql index cd941d79..b627c2e6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPARTOUT.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/core/wql/QEM_BI_SPAREPARTOUT.wql @@ -482,6 +482,7 @@ OR mb.material_name = 输入.search ) + ENDOPTION ENDSELECT ENDQUERY ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java new file mode 100644 index 00000000..7c57bbf8 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/rest/StatisticalReportController.java @@ -0,0 +1,71 @@ +package org.nl.wms.statistics.rest; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.annotation.Log; +import org.nl.wms.statistics.service.StatisticalReportService; +import org.nl.wms.statistics.service.StifleQueryService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * @author ldjun + * @date 2021-08-19 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "压制性能查询") +@RequestMapping("/api/statistical") +@Slf4j +public class StatisticalReportController { + private final StatisticalReportService statisticalReportService; + + @GetMapping("/productInstor") + @Log("PG粉当月入库查询") + @ApiOperation("PG粉当月入库查询") + public ResponseEntity productInstorQuery(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(statisticalReportService.productInstorQuery(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/ioStorQuery") + @Log("出入库流水") + @ApiOperation("出入库流水") + public ResponseEntity ioStorQuery(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(statisticalReportService.ioStorQuery(whereJson,page), HttpStatus.OK); + } + + @GetMapping("/materPlanQuery") + @Log("粉料计划表") + @ApiOperation("粉料计划表") + public ResponseEntity materPlanQuery(@RequestParam Map whereJson){ + return new ResponseEntity<>(statisticalReportService.materPlanQuery(whereJson), HttpStatus.OK); + } + + @PostMapping("/materPlanDtlQuery") + @Log("粉料计划表明细查询") + @ApiOperation("粉料计划表明细查询") + public ResponseEntity materPlanDtlQuery(@RequestBody Map whereJson){ + return new ResponseEntity<>(statisticalReportService.materPlanDtlQuery(whereJson), HttpStatus.OK); + } + + @GetMapping("/getHeader") + @Log("获取表头") + @ApiOperation("获取表头") + public ResponseEntity getHeader() { + return new ResponseEntity<>(statisticalReportService.getHeader(), HttpStatus.OK); + } + + @GetMapping("/getHeader2") + @Log("获取表头") + @ApiOperation("获取表头") + public ResponseEntity getHeader2() { + return new ResponseEntity<>(statisticalReportService.getHeader2(), HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java new file mode 100644 index 00000000..965b533f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/StatisticalReportService.java @@ -0,0 +1,35 @@ +package org.nl.wms.statistics.service; + +import com.alibaba.fastjson.JSONArray; +import org.springframework.data.domain.Pageable; + +import java.util.Map; + +/** + * @author ldjun + * @description 服务接口 + * @date 2021-08-19 + **/ +public interface StatisticalReportService { + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map productInstorQuery(Map whereJson, Pageable page); + + /** + * 获取表头 + */ + Map ioStorQuery(Map whereJson, Pageable page); + + Map materPlanQuery(Map whereJson); + + Map materPlanDtlQuery(Map whereJson); + + JSONArray getHeader(); + + JSONArray getHeader2(); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java new file mode 100644 index 00000000..764511ce --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java @@ -0,0 +1,281 @@ +package org.nl.wms.statistics.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.exception.BadRequestException; +import org.nl.wms.common.util.DataAuthUtil; +import org.nl.wms.statistics.service.StatisticalReportService; +import org.nl.wms.statistics.service.StifleQueryService; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; +import org.nl.wql.util.WqlUtil; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Service +@RequiredArgsConstructor +@Slf4j +public class StatisticalReportServiceImpl implements StatisticalReportService { + @Override + public Map productInstorQuery(Map whereJson, Pageable page) { + String material_code = MapUtil.getStr(whereJson, "material_code"); + HashMap map = new HashMap<>(); + map.put("flag", "1"); + map.put("begin_time", MapUtil.getStr(whereJson, "begin_time")); + map.put("end_time", MapUtil.getStr(whereJson, "end_time")); + map.put("pcsn", MapUtil.getStr(whereJson, "pcsn")); + if (!StrUtil.isEmpty(material_code)) { + //处理转义字符 + if (material_code.contains("\\")) material_code = material_code.replace("\\", "\\\\\\"); + map.put("material_code", "%" + material_code + "%"); + } + + + JSONObject json = WQL.getWO("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time desc"); + return json; + } + + @Override + public Map ioStorQuery(Map whereJson, Pageable page) { + HashMap map = new HashMap<>(whereJson); + map.put("flag", "2"); + + 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("statistical_report_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "bill_code desc"); + return jo; + } + + @Override + public Map materPlanQuery(Map whereJson) { + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + Date date1 = DateUtil.parse(begin_time); + Date date2 = DateUtil.parse(end_time); + long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY); + JSONArray rows = new JSONArray(); + JSONArray mater_rows = WQL.getWO("statistical_report_query_01").addParam("flag", "3").process().getResultJSONArray(0); + JSONObject jo1 = new JSONObject(); + jo1.put("1", "库存现存量"); + rows.add(jo1); + JSONObject jo2 = new JSONObject(); + jo2.put("1", "排产需求量"); + rows.add(jo2); + JSONObject jo3 = new JSONObject(); + jo3.put("1", "库/需差额量"); + rows.add(jo3); + JSONObject jo4 = new JSONObject(); + jo4.put("1", "待检入库量"); + rows.add(jo4); + JSONObject jo5 = new JSONObject(); + jo5.put("1", "覆盖日期"); + rows.add(jo5); + JSONObject jo6 = new JSONObject(); + jo6.put("1", "合同在途"); + rows.add(jo6); + JSONObject jo7 = new JSONObject(); + jo7.put("1", "最低储备定额"); + rows.add(jo7); + JSONObject jo8 = new JSONObject(); + jo8.put("1", "采购缺口"); + rows.add(jo8); + + for (int i = 0; i < mater_rows.size(); i++) { + JSONObject mater = mater_rows.getJSONObject(i); + String material_id = mater.getString("material_id"); + //1、库存现存量:现有库存 - 开单领料重量 + JSONObject mater_ivt = WQL.getWO("statistical_report_query_01").addParam("flag", "4").addParam("material_id", material_id).process().uniqueResult(0); + //查询开单领料重量 + JSONObject form_qty = WQL.getWO("statistical_report_query_01").addParam("flag", "5").addParam("material_id", material_id).addParam("begin_time",begin_time).addParam("end_time",end_time).process().uniqueResult(0); + + double now_ivt = 0; + double need_qty = 0; + if (ObjectUtil.isNotEmpty(mater_ivt)) { + now_ivt = mater_ivt.getDoubleValue("qty"); + } + if (ObjectUtil.isNotEmpty(form_qty)) { + need_qty = form_qty.getDoubleValue("qty"); + } + BigDecimal canuse_num = NumberUtil.sub(now_ivt - need_qty); + jo1.put(material_id, canuse_num + ""); + + //2、排产需求量(未开工的工令重量+排产未生成工令日计划重量)根据bom计算需要多少原料库存重量: + JSONObject nedd_mater = WQL.getWO("statistical_report_query_01").addParam("flag", "6").addParam("material_id", material_id).process().uniqueResult(0); + double bom_qty = 0; + if (ObjectUtil.isNotEmpty(nedd_mater)) { + bom_qty = nedd_mater.getDoubleValue("qty"); + } + jo2.put(material_id, bom_qty + ""); + + //3、待检入库量:已经到货还未入库+待检重量 + JSONObject num_jo = WQL.getWO("statistical_report_query_01").addParam("flag", "7").addParam("material_id", material_id).process().uniqueResult(0); + //订单数量 + double proc_qty = 0; + //到货重量 + double allqty = 0; + //合同在途 + double notqty = 0; + //待检重量 + double noqty = 0; + //待检+未入库数量 + double noin_qty = 0; + if (ObjectUtil.isNotEmpty(num_jo)) { + proc_qty = num_jo.getDoubleValue("qty"); + allqty = num_jo.getDoubleValue("allqty"); + notqty = num_jo.getDoubleValue("notqty"); + noqty = num_jo.getDoubleValue("noqty"); + noin_qty = num_jo.getDoubleValue("noin_qty"); + if (notqty < 0) { + notqty = 0; + } + } + jo4.put(material_id, noin_qty); + + //4、合同在途:订单量-到货量 + jo6.put(material_id, notqty); + + //5、库/需差额量 :库存现存量-排产需求量 + jo3.put(material_id, Double.parseDouble(canuse_num + "") - bom_qty); + + //7、最低储备定额:物料的安全库存量下限 + JSONObject safe_jo = WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").query("material_id = '" + material_id + "'").uniqueResult(0); + double safe_qty = 0; + if (ObjectUtil.isNotEmpty(safe_jo)) { + safe_qty = safe_jo.getDoubleValue("safe_ivt_down"); + } + jo7.put(material_id, safe_qty); + + //8、采购缺口:库存+待检+在途+最低储备-排产量 + double buy_qty = now_ivt + noqty + notqty + safe_qty - bom_qty; + jo8.put(material_id, String.format("%.3f",buy_qty)); + + //6、覆盖日期:物料库存可坚持到哪一天:库存现存量减每天需求量,哪天<0,取前一天 + for (int j = 1; j <= betweenDay; j++) { + DateTime newDate = DateUtil.offsetDay(date1, j); + //查询该物料当天的需求量 + JSONObject today_qty = WQL.getWO("statistical_report_query_01").addParam("flag", "8").addParam("material_id", material_id).addParam("begin_time",newDate).process().uniqueResult(0); + double need_weight = 0; + if (ObjectUtil.isNotEmpty(today_qty)){ + need_weight = today_qty.getDoubleValue("qty"); + } + if (now_ivt materPlanDtlQuery(Map whereJson) { + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + //查询日期内的排产日计划物料信息 + JSONArray jsonArr = WQL.getWO("statistical_report_query_01").addParam("flag", "9").addParam("begin_time",begin_time).addParam("end_time",end_time).process().getResultJSONArray(0); + JSONArray rows = new JSONArray(); + for (int i = 0; i < jsonArr.size(); i++) { + JSONObject row = jsonArr.getJSONObject(i); + JSONObject bom = WQLObject.getWQLObject("md_pd_productbom").query("material_id = '"+row.get("material_id")+"'").uniqueResult(0); + if (ObjectUtil.isEmpty(bom)){ + throw new BadRequestException("未查询到该产品对应BOM信息"); + } + row.put("1",row.getString("planstart_date")); + row.put("2",row.getString("old_mark")); + row.put("3",row.getString("product_num")); + //查询该物料对应的bom明细 + JSONArray bom_dtl = WQLObject.getWQLObject("md_pd_productbomdtl").query("bom_id = '"+bom.getString("bom_id")+"'").getResultJSONArray(0); + for (int j = 0; j < bom_dtl.size(); j++) { + JSONObject dtl = bom_dtl.getJSONObject(j); + double standard_rate = dtl.getDoubleValue("standard_rate"); + double qty = standard_rate * row.getDoubleValue("product_weight") * 0.01; + row.put(dtl.getString("material_id"),String.format("%.3f",qty)); + } + rows.add(row); + } + JSONObject jo = new JSONObject(); + jo.put("content", rows); + return jo; + } + + @Override + public JSONArray getHeader() { + JSONArray jsonArr = WQL.getWO("statistical_report_query_01").addParam("flag", "3").process().getResultJSONArray(0); + JSONArray jonsResuftArr = new JSONArray(); + JSONObject jsonResuft1 = new JSONObject(); + jsonResuft1.put("prop", "1"); + jsonResuft1.put("label", "原料编码"); + jonsResuftArr.add(jsonResuft1); + for (int i = 0; i < jsonArr.size(); i++) { + JSONObject json = jsonArr.getJSONObject(i); + JSONObject jsonResuft2 = new JSONObject(); + jsonResuft2.put("prop", json.getString("material_id")); + jsonResuft2.put("label", json.getString("material_name")); + jonsResuftArr.add(jsonResuft2); + } + return jonsResuftArr; + } + + @Override + public JSONArray getHeader2() { + JSONArray jsonArr = WQL.getWO("statistical_report_query_01").addParam("flag", "3").process().getResultJSONArray(0); + JSONArray jonsResuftArr = new JSONArray(); + JSONObject jsonResuft1 = new JSONObject(); + jsonResuft1.put("prop", "1"); + jsonResuft1.put("label", "日期"); + JSONObject jsonResuft2 = new JSONObject(); + jsonResuft2.put("prop", "2"); + jsonResuft2.put("label", "牌号"); + JSONObject jsonResuft3 = new JSONObject(); + jsonResuft3.put("prop", "3"); + jsonResuft3.put("label", "批数"); + jonsResuftArr.add(jsonResuft1); + jonsResuftArr.add(jsonResuft2); + jonsResuftArr.add(jsonResuft3); + for (int i = 0; i < jsonArr.size(); i++) { + JSONObject json = jsonArr.getJSONObject(i); + JSONObject jsonResuft4 = new JSONObject(); + jsonResuft4.put("prop", json.getString("material_id")); + jsonResuft4.put("label", json.getString("material_name")); + jonsResuftArr.add(jsonResuft4); + } + return jonsResuftArr; + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql new file mode 100644 index 00000000..b7b9aeb0 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql @@ -0,0 +1,465 @@ +[交易说明] + 交易名: 压制性能分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.begin_time TYPEAS s_string + 输入.end_time TYPEAS s_string + 输入.pcsn TYPEAS s_string + 输入.material_code TYPEAS s_string + 输入.bill_code TYPEAS s_string + 输入.io_type TYPEAS s_string + 输入.buss_type TYPEAS s_string + 输入.bill_type TYPEAS s_string + 输入.stor_id <> "" TYPEAS s_string + 输入.deptIds TYPEAS s_string + 输入.create_mode TYPEAS s_string + 输入.bill_status TYPEAS s_string + 输入.begin_time <> "" TYPEAS s_string + 输入.end_time <> "" TYPEAS s_string + 输入.material_id <> "" TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + MAX( mb.material_code ) AS material_code, + SUM( off.qty ) AS qty, + off.material_id, + off.pcsn, + 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, + ext.old_mark + FROM + pdm_bi_procedureoffline off + LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_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 + WHERE + 1=1 + 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 + HAVING + 1=1 + OPTION 输入.begin_time <> "" + create_time >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + create_time <= 输入.end_time + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + 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 + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT DISTINCT + mb.material_id, + mb.material_name, + class.parent_class_id, + (case when class.class_id = '1503644362192588800' then 1 + when class.class_id = '1503644361664106496' then 2 + when class.class_id = '1503644362788179968' then 4 + when class.class_id = '1503644362234531840' then 5 + else 3 end) AS order_no + FROM + ( + SELECT + wo.material_id + FROM + pdm_bi_workorder wo + WHERE + wo.is_delete = '0' + AND wo.`status` IN ( '10', '20', '30', '40' ) UNION + SELECT + plan.material_id + FROM + mps_bd_productdailyplan plan + WHERE + plan.`status` = '01' + ) a + LEFT JOIN md_pd_productbom bom ON bom.material_id = a.material_id + LEFT JOIN md_pd_productbomdtl dtl ON dtl.bom_id = dtl.bom_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 + ORDER BY order_no + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + SUM( canuse_qty ) AS qty + FROM + st_ivt_structivt + WHERE + 1=1 + OPTION 输入.material_id <> "" + material_id = 输入.material_id + ENDOPTION + GROUP BY + material_id + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + dtl.material_id, + (case when (SUM(dtl.formula_qty) - SUM(dtl.put_qty)) > 0 then (SUM(dtl.formula_qty) - SUM(dtl.put_qty)) else 0 end) AS qty + FROM + pdm_bi_formuladtl dtl + LEFT JOIN pdm_bi_formula mst ON mst.formula_id = dtl.formula_id + LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id + WHERE + mst.is_delete = '0' + AND + mst.`status` IN (20,30) + OPTION 输入.material_id <> "" + dtl.material_id = 输入.material_id + ENDOPTION + OPTION 输入.begin_time <> "" + mst.create_time >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + mst.create_time <= 输入.end_time + ENDOPTION + GROUP BY + material_id + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "6" + QUERY + SELECT + dtl.material_id, + ROUND((b.qty*dtl.standard_rate*0.01),3) AS qty + FROM + ( + SELECT + material_id, + SUM( qty ) AS qty + FROM + ( + SELECT + material_id, + workorder_qty AS qty + FROM + pdm_bi_workorder wo + WHERE + wo.`status` < 50 + AND is_delete = '0' + OPTION 输入.begin_time <> "" + wo.planstart_date >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + wo.planstart_date <= 输入.end_time + ENDOPTION + UNION ALL + SELECT + material_id, + product_weight AS qty + FROM + MPS_BD_ProductDailyPlan plan + WHERE + plan.`status` = '01' + OPTION 输入.begin_time <> "" + plan.planstart_date >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + plan.planstart_date <= 输入.end_time + ENDOPTION + ) a + GROUP BY + a.material_id + ) b + LEFT JOIN md_pd_productbom mst ON mst.material_id = b.material_id + LEFT JOIN md_pd_productbomdtl dtl ON dtl.bom_id = dtl.bom_id + WHERE + 1=1 + OPTION 输入.material_id <> "" + b.material_id = 输入.material_id + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "7" + QUERY + SELECT + ROUND(SUM(a.QTY),3) AS qty, + ROUND(SUM(a.allqty),3) AS allqty, + ROUND(SUM(a.ivt_qty),3) AS noqty, + ROUND(SUM(a.notqty),3) AS notqty, + material_id + FROM + ( + SELECT + oder.QTY, + redtl.allqty, + oder.QTY - redtl.allqty AS notqty, + redtl.allqty - redtl.instor_qty AS noin_qty, + ivt.ivt_qty, + mater.material_id + FROM + PCS_IF_PurchaseOrderProc oder + LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id + LEFT JOIN md_me_materialbase mater ON oder.ITEM_ID = mater.ext_id + LEFT JOIN ( + SELECT + sum( a.receive_qty ) AS allqty, + sum(a.instor_qty) AS instor_qty, + max( a.source_billdtl_id ) AS source_billdtl_id, + max( a.material_id ) AS material_id, + max( a.pcsn ) AS pcsn, + max( a.receive_id ) AS receive_id + FROM + PCS_RC_ReceiveDtl a + LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id + AND a.source_bill_code = p.vbillcode + GROUP BY + a.source_billdtl_id + ) AS redtl ON redtl.source_billdtl_id = oder.id + LEFT JOIN ( + SELECT + sum( t.ivt_qty + t.warehousing_qty ) AS ivt_qty, + max( t.material_id ) AS material_id, + max( t.pcsn ) AS pcsn + FROM + ST_IVT_StructIvt t + LEFT JOIN PCS_RC_ReceiveDtl d ON t.material_id = d.material_id + AND t.pcsn = d.pcsn + WHERE + t.quality_scode = '00' + GROUP BY + t.material_id + ) AS ivt ON ivt.material_id = redtl.material_id + AND ivt.pcsn = redtl.pcsn + LEFT JOIN ( + SELECT + p.input_time, + p.receive_id, + p.is_delete + FROM + PCS_RC_ReceiveMst p + WHERE + p.is_delete = '0' + ORDER BY + p.input_time DESC + LIMIT 1 + ) AS remst ON remst.receive_id = redtl.receive_id + WHERE + oder.dr = '0' + ) a + WHERE + 1=1 + OPTION 输入.flag <> "" + a.material_id = 输入.material_id + ENDOPTION + GROUP BY a.material_id + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "8" + QUERY + SELECT + dtl.material_id, + ROUND((b.qty*dtl.standard_rate*0.01),3) AS qty + FROM + ( + SELECT + material_id, + SUM( qty ) AS qty + FROM + ( + SELECT + material_id, + workorder_qty AS qty + FROM + pdm_bi_workorder wo + WHERE + wo.`status` < 50 + AND is_delete = '0' + OPTION 输入.begin_time <> "" + wo.planstart_time like 输入.begin_time + ENDOPTION + UNION ALL + SELECT + material_id, + product_weight AS qty + FROM + MPS_BD_ProductDailyPlan plan + WHERE + plan.`status` = '01' + OPTION 输入.begin_time <> "" + plan.planstart_date like 输入.begin_time + ENDOPTION + ) a + GROUP BY + a.material_id + ) b + LEFT JOIN md_pd_productbom mst ON mst.material_id = b.material_id + LEFT JOIN md_pd_productbomdtl dtl ON dtl.bom_id = dtl.bom_id + WHERE + 1=1 + OPTION 输入.material_id <> "" + b.material_id = 输入.material_id + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "9" + QUERY + SELECT + plan.planstart_date, + plan.product_num, + ext.old_mark, + plan.product_weight, + plan.material_id + FROM + mps_bd_productdailyplan plan + LEFT JOIN md_me_producmaterialext ext ON ext.material_id = plan.material_id + WHERE + 1=1 + OPTION 输入.begin_time <> "" + plan.planstart_date >= 输入.begin_time + ENDOPTION + OPTION 输入.end_time <> "" + plan.planstart_date <= 输入.end_time + ENDOPTION + ORDER BY + planstart_date + ENDSELECT + ENDQUERY + ENDIF diff --git a/mes/qd/src/api/wms/statistics/report.js b/mes/qd/src/api/wms/statistics/report.js new file mode 100644 index 00000000..3900c4a0 --- /dev/null +++ b/mes/qd/src/api/wms/statistics/report.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/rawUatWcQuery', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/rawUatWcQuery/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/rawUatWcQuery', + method: 'put', + data + }) +} + +export function getHeader(material_type_id) { + return request({ + url: 'api/rawUatWcQuery/getHeader/' + material_type_id, + method: 'get' + }) +} + +export default { add, edit, del, getHeader } diff --git a/mes/qd/src/views/wms/statistics/ioStorQuery2/index.vue b/mes/qd/src/views/wms/statistics/ioStorQuery2/index.vue new file mode 100644 index 00000000..19cc346d --- /dev/null +++ b/mes/qd/src/views/wms/statistics/ioStorQuery2/index.vue @@ -0,0 +1,386 @@ + + + + diff --git a/mes/qd/src/views/wms/statistics/materPlan/index.vue b/mes/qd/src/views/wms/statistics/materPlan/index.vue new file mode 100644 index 00000000..9d106147 --- /dev/null +++ b/mes/qd/src/views/wms/statistics/materPlan/index.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/mes/qd/src/views/wms/statistics/productInstor/index.vue b/mes/qd/src/views/wms/statistics/productInstor/index.vue new file mode 100644 index 00000000..78ff6909 --- /dev/null +++ b/mes/qd/src/views/wms/statistics/productInstor/index.vue @@ -0,0 +1,223 @@ + + + +