diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index bcb28e7f8..9c8ee691b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -1009,6 +1009,10 @@ public class MesToLmsServiceImpl implements MesToLmsService { String demand_limit = detail.getString("Attribute4");//客户需求抗拉下限 String standard_limit = detail.getString("Attribute5");//内控标准抗拉下限 String actual_value = detail.getString("Attribute6");//生产实际抗拉值 + String Attribute7 = detail.getString("7");//生产实际抗拉值 + if (ObjectUtil.isNotEmpty(Attribute7) && Attribute7.equals("1")){ + sub_type = "2"; + } //查询库内是否存在相同的子卷号 JSONObject container_jo = WQLObject.getWQLObject("PDM_BI_SubPackageRelation").query("container_name = '" + ContainerName + "'").uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index d23d95a2d..d27689c44 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -149,6 +149,17 @@ public class ProductInstorServiceImpl implements ProductInstorService { mst_jo.put("bill_type", "0006"); } } + for (int i = 0; i < box_rows.size(); i++) { + HashMap box_row = box_rows.get(i); + sub_type = box_row.get("sub_type"); + if (ObjectUtil.isNotEmpty(sub_type)){ + if (sub_type.equals("2")){ + //如果为改切的包装关系则变为改切入库 + mst_jo.put("bill_type", "0007"); + break; + } + } + } //查询成品库仓库 JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0); mst_jo.put("stor_id", stor.getString("stor_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java index 94d5fa0e9..d95bfa81d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/CoolPointIvtController.java @@ -2,6 +2,7 @@ package org.nl.wms.pdm.ivt.rest; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -72,4 +73,13 @@ public class CoolPointIvtController { public ResponseEntity coolRegionIOQueryAll(@RequestParam Map whereJson, Pageable page){ return new ResponseEntity<>(coolpointivtService.coolRegionIOQueryAll(whereJson,page),HttpStatus.OK); } + + @PostMapping("/uploadMes") + @Log("手动回传MES") + @ApiOperation("手动回传MES") + public ResponseEntity uploadMes(@RequestBody JSONObject form){ + coolpointivtService.uploadMes(form); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java index 3dc66f566..8ae4a1914 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/CoolPointIvtService.java @@ -1,6 +1,7 @@ package org.nl.wms.pdm.ivt.service; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.pdm.ivt.service.dto.CoolPointIvtDto; import org.springframework.data.domain.Pageable; @@ -69,4 +70,6 @@ public interface CoolPointIvtService { * @return */ Map coolRegionIOQueryAll(Map whereJson, Pageable page); + + void uploadMes(JSONObject form); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java index 56729f9fa..9b7f6a303 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/CoolPointIvtServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -15,8 +16,11 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.modules.wql.util.WqlUtil; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; +import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.pdm.ivt.service.CoolPointIvtService; import org.nl.wms.pdm.ivt.service.dto.CoolPointIvtDto; import org.springframework.data.domain.Pageable; @@ -175,4 +179,27 @@ public class CoolPointIvtServiceImpl implements CoolPointIvtService { return json; } + @Override + public void uploadMes(JSONObject form) { + //调用回传MES的半成品入库接口 + // 将入冷却信息发送给mes + JSONObject param = new JSONObject(); + String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + String container_name = form.getString("container_name"); + if (StrUtil.isEmpty(container_name)){ + throw new BadRequestException("母卷号不能为空!"); + } + param.put("iContainerName", container_name); + param.put("iArrivalTime", DateUtil.now()); + param.put("iWarehouse", 2); + param.put("UserName", userName); + param.put("PassWord", passWord); + + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollSemiFGInboundComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param); + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index 3d0f8ed7c..0706d3f17 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls differ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java index 19a109e26..15e1b850f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java @@ -119,9 +119,9 @@ public class OutTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(jsonTask)) { if (StrUtil.equals(status, "0")) { - // 任务为下发之后就不允许取消 - if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.START_AND_POINT.getCode())) { - throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已下发,不可取消"); + // 任务为执行之后就不允许取消 + if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) { + throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消"); } // 更新删除字段 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java index 20a1c21b0..41fb7c382 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/InbillServiceImpl.java @@ -105,14 +105,17 @@ public class InbillServiceImpl { dis_table.update(dis_row); String pcsn = dis_row.getString("pcsn"); - JSONObject sub_jo = sub_table.query("container_name = '"+pcsn+"'").uniqueResult(0); + JSONObject sub_jo = sub_table.query("container_name = '"+pcsn+"' AND package_box_sn = '"+dis_row.getString("box_no")+"'").uniqueResult(0); if (ObjectUtil.isEmpty(sub_jo)){ throw new BadRequestException("未查询到子卷号为:"+pcsn+"对应的包装关系!"); } JSONObject mst_jo = mst_table.query("iostorinv_id = '" + dis_row.getString("iostorinv_id") + "'").uniqueResult(0); - sub_jo.put("io_code",mst_jo.getString("bill_code")); + sub_jo.put("bill_code",mst_jo.getString("bill_code")); + sub_jo.put("bill_id",mst_jo.getString("iostorinv_id")); + sub_jo.put("bill_type",mst_jo.getString("bill_type")); + sub_jo.put("io_type","0"); sub_jo.put("insert_time",DateUtil.now()); - sub_jo.put("record_id",IdUtil.getSnowflake(1, 1)); + sub_jo.put("record_id",IdUtil.getSnowflake(1, 1).nextId()); sub_record.insert(sub_jo); //回写明细表实际数量 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java index 889aeae53..a5325809d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ChangeServiceImpl.java @@ -53,6 +53,9 @@ public class ChangeServiceImpl implements ChangeService { if (StrUtil.isNotEmpty(map.get("buss_type"))) { map.put("buss_type", whereJson.get("buss_type") + "%"); } + if (StrUtil.isNotEmpty(map.get("pcsn"))) { + map.put("pcsn", (String) whereJson.get("pcsn")); + } //获取人员对应的仓库 UserStorServiceImpl userStorService = new UserStorServiceImpl(); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHANGE.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHANGE.wql index d9114ff71..4cffdd9f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHANGE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHANGE.wql @@ -64,18 +64,22 @@ IF 输入.flag = "1" PAGEQUERY - SELECT + SELECT DISTINCT cg.changeinv_id AS id, cg.* FROM - st_ivt_structivtchange cg + st_ivt_structivtchange cg + LEFT JOIN st_ivt_structivtchangedtl dtl ON cg.changeinv_id = dtl.changeinv_id WHERE 1 = 1 AND cg.is_delete = '0' and cg.stor_id in 输入.in_stor_id OPTION 输入.bill_code <> "" - cg.bill_code like 输入.bill_code + cg.bill_code like 输入.bill_code + ENDOPTION + OPTION 输入.pcsn <> "" + dtl.pcsn = 输入.pcsn ENDOPTION OPTION 输入.buss_type <> "" cg.buss_type like 输入.buss_type diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index 02e684182..6962911b9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -1436,7 +1436,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { .getResultJSONArray(0); //若存在记录,则不可取消该出库明细对应的任何分配记录 if (dtl.size() != 0) { - throw new BadRequestException("存在出库明细对应任务执行中或完成!"); + throw new BadRequestException("存在出库明细对应任务下发、执行中或完成!"); } double plan_qty = dis.getDoubleValue("plan_qty"); //更新库存 @@ -1565,7 +1565,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { .getResultJSONArray(0); //若存在记录,则不可取消该出库明细对应的任何分配记录 if (dtl.size() != 0) { - throw new BadRequestException("存在出库明细对应任务执行中或完成!"); + throw new BadRequestException("存在出库明细对应任务下发、执行中或完成!"); } double plan_qty = dis.getDoubleValue("plan_qty"); //更新库存 @@ -4143,6 +4143,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { WQLObject sectTab = WQLObject.getWQLObject("st_ivt_sectattr"); // 子卷包装关系表 WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); + //包装关系出入库记录表 + WQLObject sub_record = WQLObject.getWQLObject("pdm_bi_subpackagerelationrecord"); String iostorinv_id = form.getString("iostorinv_id"); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -4239,6 +4241,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } subTab.update(jsonSub); + //插入包装关系出入库记录表 + jsonSub.put("bill_code",jo_mst.getString("bill_code")); + jsonSub.put("bill_id",jo_mst.getString("iostorinv_id")); + jsonSub.put("bill_type",jo_mst.getString("bill_type")); + jsonSub.put("io_type","1"); + jsonSub.put("insert_time",DateUtil.now()); + jsonSub.put("record_id",IdUtil.getSnowflake(1, 1).nextId()); + sub_record.insert(jsonSub); + // 更新分配明细执行状态为 - 99 JSONObject jsonDis = wo_dis.query("iostorinvdis_id = '" + dis.getString("iostorinvdis_id") + "'").uniqueResult(0); jsonDis.put("work_status", "99"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql index 7a3fab5a6..9a1c43722 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql @@ -434,7 +434,7 @@ WHERE 1 = 1 AND dis.work_status = '01' - AND task.task_status IN ('02', '03', '99') + AND task.task_status IN ('02', '03','05','06','99') OPTION 输入.iostorinvdtl_id <> "" dis.iostorinvdtl_id = 输入.iostorinvdtl_id ENDOPTION diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java index 5fa3fd9ca..6f516bd06 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/InBillQueryController.java @@ -41,6 +41,13 @@ public class InBillQueryController { return new ResponseEntity<>(inBillQueryService.queryAll(whereJson, page, product_area), HttpStatus.OK); } + @GetMapping(value = "/query2") + @Log("查询") + @ApiOperation("查询") + public ResponseEntity query2(@RequestParam Map whereJson, Pageable page, String[] product_area) { + return new ResponseEntity<>(inBillQueryService.queryAll2(whereJson, page, product_area), HttpStatus.OK); + } + @PostMapping @Log("新增") @ApiOperation("新增") @@ -71,4 +78,11 @@ public class InBillQueryController { public void download(@RequestParam Map map, HttpServletResponse response, String[] product_area) throws IOException { inBillQueryService.download(map, response, product_area); } + + @Log("导出数据2") + @ApiOperation("导出数据2") + @GetMapping(value = "/download2") + public void download2(@RequestParam Map map, HttpServletResponse response, String[] product_area) throws IOException { + inBillQueryService.download2(map, response, product_area); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java index d46f630d0..e3617ac97 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/rest/OutBillQueryController.java @@ -40,6 +40,13 @@ public class OutBillQueryController { return new ResponseEntity<>(outBillQueryService.queryAll(whereJson, page, bill_types), HttpStatus.OK); } + @GetMapping(value = "/query2") + @Log("新查询") + @ApiOperation("新查询") + public ResponseEntity query2(@RequestParam Map whereJson, Pageable page, String[] bill_types) { + return new ResponseEntity<>(outBillQueryService.queryAll2(whereJson, page, bill_types), HttpStatus.OK); + } + @PostMapping @Log("新增") @ApiOperation("新增") @@ -67,7 +74,14 @@ public class OutBillQueryController { @Log("导出数据") @ApiOperation("导出数据") @GetMapping(value = "/download") - public void download(@RequestParam Map map, HttpServletResponse response) throws IOException { - outBillQueryService.download(map, response); + public void download(@RequestParam Map map, HttpServletResponse response, String[] bill_types) throws IOException { + outBillQueryService.download(map, response,bill_types); + } + + @Log("导出数据2") + @ApiOperation("导出数据2") + @GetMapping(value = "/download2") + public void download2(@RequestParam Map map, HttpServletResponse response, String[] bill_types) throws IOException { + outBillQueryService.download2(map, response,bill_types); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/InBillQueryService.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/InBillQueryService.java index af2a08899..b9b7706c4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/InBillQueryService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/InBillQueryService.java @@ -26,6 +26,8 @@ public interface InBillQueryService { */ Map queryAll(Map whereJson, Pageable page, String[] product_area); + Map queryAll2(Map whereJson, Pageable page, String[] product_area); + /** * 查询所有数据不分页 * @@ -56,4 +58,6 @@ public interface InBillQueryService { void deleteAll(Long[] ids); void download(Map map, HttpServletResponse response, String[] product_area) throws IOException; + + void download2(Map map, HttpServletResponse response, String[] product_area) throws IOException; } \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java index 062c7e9a8..b1af33782 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/OutBillQueryService.java @@ -26,6 +26,8 @@ public interface OutBillQueryService { */ Map queryAll(Map whereJson, Pageable page, String[] bill_types); + Map queryAll2(Map whereJson, Pageable page, String[] bill_types); + /** * 查询所有数据不分页 * @@ -55,5 +57,7 @@ public interface OutBillQueryService { */ void deleteAll(Long[] ids); - void download(Map map, HttpServletResponse response) throws IOException; + void download(Map map, HttpServletResponse response, String[] bill_types) throws IOException; + + void download2(Map map, HttpServletResponse response, String[] bill_types) throws IOException; } \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java index 692a2a96b..b8362afa2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java @@ -51,6 +51,7 @@ public class InBillQueryServiceImpl implements InBillQueryService { String end_time = MapUtil.getStr(whereJson, "end_time"); String is_virtual = MapUtil.getStr(whereJson, "is_virtual"); String classes = MapUtil.getStr(whereJson, "classes"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); String is_all = MapUtil.getStr(whereJson, "is_all"); String thickness_request = MapUtil.getStr(whereJson, "thickness_request"); @@ -65,6 +66,69 @@ public class InBillQueryServiceImpl implements InBillQueryService { map.put("with", with); map.put("is_virtual", is_virtual); map.put("classes", classes); + map.put("pcsn", pcsn); + map.put("thickness_request", thickness_request); + + // 处理时间 + if (ObjectUtil.isNotEmpty(begin_time) && ObjectUtil.isNotEmpty(end_time)) { + String begin_time_today = begin_time.substring(0, 10); + String end_time_today = end_time.substring(0, 10); + + + // 开始时间 + String today_begin_time = begin_time_today + " 08:00:00"; + + // 结束时间:19:59:59 + DateTime parse = DateUtil.parse(end_time_today); + String substring = DateUtil.offsetDay(parse, 1).toString().substring(0, 10); + + String today_end_time = substring + " 07:59:59"; + + map.put("begin_time", today_begin_time); + map.put("end_time", today_end_time); + } + + + if (ObjectUtil.isNotEmpty(product_area)) { + String areas = "("; + for (int i = 0; i < product_area.length; i++) { + if (i != product_area.length - 1) { + areas += "'" + product_area[i] + "',"; + } else { + areas += "'" + product_area[i] + "')"; + } + } + map.put("areas", areas); + } + JSONObject json = WQL.getWO("ST_IVT_INBILLQUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.confirm_time DESC,dis.box_no"); + return json; + } + + @Override + public Map queryAll2(Map whereJson, Pageable page, String[] product_area) { + String stor_id = MapUtil.getStr(whereJson, "stor_id"); + String bill_type = MapUtil.getStr(whereJson, "bill_type"); + String with = MapUtil.getStr(whereJson, "with"); // 厚度*幅宽 + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + String is_virtual = MapUtil.getStr(whereJson, "is_virtual"); + String classes = MapUtil.getStr(whereJson, "classes"); + String is_all = MapUtil.getStr(whereJson, "is_all"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); + String thickness_request = MapUtil.getStr(whereJson, "thickness_request"); + + JSONObject map = new JSONObject(); + if ("0".equals(is_all)) { + map.put("flag", "5"); + } else { + map.put("flag", "6"); + } + map.put("stor_id", stor_id); + map.put("bill_type", bill_type); + map.put("with", with); + map.put("pcsn", pcsn); + map.put("is_virtual", is_virtual); + map.put("classes", classes); map.put("thickness_request", thickness_request); // 处理时间 @@ -148,6 +212,7 @@ public class InBillQueryServiceImpl implements InBillQueryService { String end_time = MapUtil.getStr(map, "end_time"); String is_virtual = MapUtil.getStr(map, "is_virtual"); String classes = MapUtil.getStr(map, "classes"); + String pcsn = MapUtil.getStr(map, "pcsn"); String is_all = MapUtil.getStr(map, "is_all"); String thickness_request = MapUtil.getStr(map, "thickness_request"); @@ -160,6 +225,7 @@ public class InBillQueryServiceImpl implements InBillQueryService { mapParam.put("stor_id", stor_id); mapParam.put("bill_type", bill_type); mapParam.put("with", with); + mapParam.put("pcsn", pcsn); mapParam.put("is_virtual", is_virtual); mapParam.put("classes", classes); mapParam.put("thickness_request", thickness_request); @@ -260,4 +326,129 @@ public class InBillQueryServiceImpl implements InBillQueryService { } FileUtil.downloadExcel(list, response); } + + @Override + public void download2(Map map, HttpServletResponse response, String[] product_area) throws IOException { + String stor_id = MapUtil.getStr(map, "stor_id"); + String bill_type = MapUtil.getStr(map, "bill_type"); + String with = MapUtil.getStr(map, "with"); // 厚度*幅宽 + String begin_time = MapUtil.getStr(map, "begin_time"); + String end_time = MapUtil.getStr(map, "end_time"); + String is_virtual = MapUtil.getStr(map, "is_virtual"); + String classes = MapUtil.getStr(map, "classes"); + String pcsn = MapUtil.getStr(map, "pcsn"); + String is_all = MapUtil.getStr(map, "is_all"); + String thickness_request = MapUtil.getStr(map, "thickness_request"); + + JSONObject mapParam = new JSONObject(); + if ("0".equals(is_all)) { + mapParam.put("flag", "5"); + } else { + mapParam.put("flag", "6"); + } + mapParam.put("stor_id", stor_id); + mapParam.put("bill_type", bill_type); + mapParam.put("with", with); + mapParam.put("pcsn", pcsn); + mapParam.put("is_virtual", is_virtual); + mapParam.put("classes", classes); + mapParam.put("thickness_request", thickness_request); + + // 处理时间 + if (ObjectUtil.isNotEmpty(begin_time) && ObjectUtil.isNotEmpty(end_time)) { + String begin_time_today = begin_time.substring(0, 10); + String end_time_today = end_time.substring(0, 10); + + + // 开始时间 + String today_begin_time = begin_time_today + " 08:00:00"; + + // 结束时间:19:59:59 + DateTime parse = DateUtil.parse(end_time_today); + String substring = DateUtil.offsetDay(parse, 1).toString().substring(0, 10); + + String today_end_time = substring + " 07:59:59"; + + mapParam.put("begin_time", today_begin_time); + mapParam.put("end_time", today_end_time); + } + + if (ObjectUtil.isNotEmpty(product_area)) { + String areas = "("; + for (int i = 0; i < product_area.length; i++) { + if (i != product_area.length - 1) { + areas += "'" + product_area[i] + "',"; + } else { + areas += "'" + product_area[i] + "')"; + } + } + mapParam.put("areas", areas); + } + + JSONArray resultJSONArray = WQL.getWO("ST_IVT_INBILLQUERY").addParamMap(mapParam).process().getResultJSONArray(0); + List> list = new ArrayList<>(); + if ("0".equals(is_all)){ + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject json = resultJSONArray.getJSONObject(i); + Map mp = new LinkedHashMap<>(); + mp.put("日期", (json.getString("confirm_time_class").substring(0,10)).replace("-","/")); + mp.put("班次", json.getString("classes")); + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("客户编码", json.getString("customer_name")); + mp.put("规格", json.getString("thickness_request")); + mp.put("尺寸(mm)(客户要求幅宽)", json.getString("width_standard")); + mp.put("实际尺寸(mm)(实际幅宽)", json.getString("width")); + String box_name = json.getString("box_name"); + if (StrUtil.isNotEmpty(box_name)){ + String[] s = box_name.split("木箱"); + String s1 = s[1]; + String[] split = s1.split("\\|"); + mp.put("木箱规格/尺寸", split[1]+"*"+split[2]); + }else { + mp.put("木箱规格/尺寸", ""); + } + mp.put("毛重合计", NumberUtil.round(StrUtil.isEmpty(json.getString("box_weight")) ? "0" : json.getString("box_weight"), 1)); + mp.put("净重(KG)", NumberUtil.round(StrUtil.isEmpty(json.getString("net_weight")) ? "0" : json.getString("net_weight"), 1)); + mp.put("卷数", json.getString("quanlity_in_box")); + mp.put("品级", "A"); + mp.put("小卷号", json.getString("pcsn")); + mp.put("箱号", json.getString("box_no")); + mp.put("母卷号", json.getString("parent_container_name")); + mp.put("基重(g/m³)(面密度)", NumberUtil.round(StrUtil.isEmpty(json.getString("mass_per_unit_area")) ? "0" : json.getString("mass_per_unit_area"), 1)); + mp.put("居中度(mm)", "±1"); + mp.put("塌边(mm)", "≤10"); + mp.put("米数(长度)", NumberUtil.round(StrUtil.isEmpty(json.getString("length")) ? "0" : json.getString("length"), 1)); + mp.put("管件类型", json.getString("paper_type")); + mp.put("管件编码", json.getString("paper_code")); + mp.put("管件描述", json.getString("paper_name")); + mp.put("生产实际抗拉值", json.getString("actual_value")); + mp.put("内控标准抗拉下限", json.getString("standard_limit")); + mp.put("客户需求抗拉下限", json.getString("demand_limit")); + mp.put("生产日期", json.getString("date_of_production").replace("-","/")); + mp.put("入库日期", json.getString("confirm_time").substring(0,10).replace("-","/")); + list.add(mp); + } + }else { + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject json = resultJSONArray.getJSONObject(i); + Map mp = new LinkedHashMap<>(); + mp.put("序号", String.valueOf(i+1)); + mp.put("日期", (json.getString("confirm_time_class").substring(0,10)).replace("-","/")); + mp.put("班次", json.getString("classes")); + mp.put("库区", json.getString("sect_name")); + mp.put("客户编码", json.getString("customer_name")); + mp.put("销售订单及行号", json.getString("sale_order_name")); + mp.put("生产日期", json.getString("date_of_production").replace("-","/")); + mp.put("箱号", json.getString("box_no")); + mp.put("生产批号", (json.getString("confirm_time").substring(0,10)).replace("-","").trim()); + mp.put("规格", json.getString("specification")); + mp.put("净重", NumberUtil.round(json.getString("net_weight"), 1)); + mp.put("等级", "A"); + mp.put("备注", ""); + list.add(mp); + } + } + FileUtil.downloadExcel(list, response); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index 0d6b3051b..591517987 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -42,6 +42,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String with = MapUtil.getStr(whereJson, "with"); // 厚度*幅宽 String begin_time = MapUtil.getStr(whereJson, "begin_time"); String end_time = MapUtil.getStr(whereJson, "end_time"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); String customer_name = MapUtil.getStr(whereJson, "customer_name"); JSONObject map = new JSONObject(); @@ -56,6 +57,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { } map.put("with",with); map.put("begin_time",begin_time); + map.put("pcsn",pcsn); map.put("end_time",end_time); if (ObjectUtil.isNotEmpty(customer_name)) map.put("customer_name","%"+customer_name+"%"); @@ -63,6 +65,36 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { return json; } + @Override + public Map queryAll2(Map whereJson, Pageable page, String[] bill_types) { + String stor_id = MapUtil.getStr(whereJson, "stor_id"); + + String with = MapUtil.getStr(whereJson, "with"); // 厚度*幅宽 + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); + String customer_name = MapUtil.getStr(whereJson, "customer_name"); + + JSONObject map = new JSONObject(); + map.put("flag", "2"); + map.put("stor_id",stor_id); + if (ObjectUtil.isNotEmpty(bill_types)){ + StringJoiner joiner = new StringJoiner(",","(",")"); + for (String type : bill_types){ + joiner.add("'"+type+"'"); + } + map.put("bill_type",joiner.toString()); + } + map.put("with",with); + map.put("begin_time",begin_time); + map.put("end_time",end_time); + map.put("pcsn",pcsn); + if (ObjectUtil.isNotEmpty(customer_name)) map.put("customer_name","%"+customer_name+"%"); + + JSONObject json = WQL.getWO("ST_IVT_OUTBILLQUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time DESC,dis.box_no"); + return json; + } + @Override public List queryAll(Map whereJson) { WQLObject wo = WQLObject.getWQLObject("sch_base_point"); @@ -101,20 +133,91 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { } @Override - public void download(Map map, HttpServletResponse response) throws IOException { + public void download(Map map, HttpServletResponse response, String[] bill_types) throws IOException { String stor_id = MapUtil.getStr(map, "stor_id"); String bill_type = MapUtil.getStr(map, "bill_type"); String with = MapUtil.getStr(map, "with"); // 厚度*幅宽 String begin_time = MapUtil.getStr(map, "begin_time"); + String pcsn = MapUtil.getStr(map, "pcsn"); String end_time = MapUtil.getStr(map, "end_time"); String customer_name = MapUtil.getStr(map, "customer_name"); JSONObject mapParam = new JSONObject(); mapParam.put("flag", "1"); mapParam.put("stor_id",stor_id); - mapParam.put("bill_type",bill_type); + if (ObjectUtil.isNotEmpty(bill_types)){ + StringJoiner joiner = new StringJoiner(",","(",")"); + for (String type : bill_types){ + joiner.add("'"+type+"'"); + } + mapParam.put("bill_type",joiner.toString()); + } mapParam.put("with",with); mapParam.put("begin_time",begin_time); + mapParam.put("pcsn",pcsn); + mapParam.put("end_time",end_time); + if (ObjectUtil.isNotEmpty(customer_name)) mapParam.put("customer_name","%"+customer_name+"%"); + + JSONArray resultJSONArray = WQL.getWO("ST_IVT_OUTBILLQUERY").addParamMap(mapParam).process().getResultJSONArray(0); + + List> list = new ArrayList<>(); + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject json = resultJSONArray.getJSONObject(i); + Map mp = new LinkedHashMap<>(); + + mp.put("仓库", json.getString("stor_name")); + if (ObjectUtil.isNotEmpty(bill_type) && bill_type.equals("1004")){ + mp.put("移入仓库", json.getString("in_stor_name")); + } + mp.put("库区", json.getString("sect_name")); + mp.put("交货单号", json.getString("vbeln")); + mp.put("物流公司", json.getString("cust_name")); + mp.put("运费", json.getString("estimated_freight")); + mp.put("木箱号", json.getString("box_no")); + mp.put("物料编码", json.getString("material_code")); + mp.put("物料名称", json.getString("material_name")); + mp.put("子卷号", json.getString("pcsn")); + mp.put("sap批次", json.getString("sap_pcsn")); + mp.put("净重", json.getString("net_weight")); + mp.put("单位", json.getString("qty_unit_name")); + mp.put("客户编码", json.getString("customer_name")); + mp.put("发货客户名称", json.getString("customer_description")); + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("出库日期", json.getString("input_time")); + mp.put("产品规格", json.getString("width")); + mp.put("产品厚度", json.getString("thickness")); + mp.put("单位面积", json.getString("mass_per_unit_area")); + mp.put("制单人", json.getString("input_optname")); + mp.put("备注", json.getString("remark")); + list.add(mp); + } + FileUtil.downloadExcel(list, response); + + } + + @Override + public void download2(Map map, HttpServletResponse response, String[] bill_types) throws IOException { + String stor_id = MapUtil.getStr(map, "stor_id"); + String bill_type = MapUtil.getStr(map, "bill_type"); + String with = MapUtil.getStr(map, "with"); // 厚度*幅宽 + String begin_time = MapUtil.getStr(map, "begin_time"); + String pcsn = MapUtil.getStr(map, "pcsn"); + String end_time = MapUtil.getStr(map, "end_time"); + String customer_name = MapUtil.getStr(map, "customer_name"); + + JSONObject mapParam = new JSONObject(); + mapParam.put("flag", "2"); + mapParam.put("stor_id",stor_id); + if (ObjectUtil.isNotEmpty(bill_types)){ + StringJoiner joiner = new StringJoiner(",","(",")"); + for (String type : bill_types){ + joiner.add("'"+type+"'"); + } + mapParam.put("bill_type",joiner.toString()); + } + mapParam.put("with",with); + mapParam.put("pcsn",pcsn); + mapParam.put("begin_time",begin_time); mapParam.put("end_time",end_time); if (ObjectUtil.isNotEmpty(customer_name)) mapParam.put("customer_name","%"+customer_name+"%"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql index 591ec7b12..eceac5df6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql @@ -19,6 +19,7 @@ 输入.with TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string + 输入.pcsn TYPEAS s_string 输入.is_virtual TYPEAS s_string 输入.classes TYPEAS s_string 输入.thickness_request TYPEAS s_string @@ -110,7 +111,12 @@ LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id WHERE b.io_type = '0' - AND b.bill_type = 输入.bill_type + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION AND b.bill_status = '99' GROUP BY pcsn @@ -236,7 +242,12 @@ LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id WHERE b.io_type = '0' - AND b.bill_type = 输入.bill_type + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION AND b.bill_status = '99' GROUP BY pcsn @@ -365,7 +376,12 @@ LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id WHERE b.io_type = '0' - AND b.bill_type = 输入.bill_type + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION AND b.bill_status = '99' GROUP BY pcsn @@ -493,7 +509,12 @@ LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id WHERE b.io_type = '0' - AND b.bill_type = 输入.bill_type + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION AND b.bill_status = '99' GROUP BY pcsn @@ -559,4 +580,298 @@ ENDSELECT ENDPAGEQUERY - ENDIF \ No newline at end of file + ENDIF + + IF 输入.flag = "5" + PAGEQUERY + SELECT DISTINCT + mst.stor_name, + dis.sect_name, + dis.struct_code, + dis.struct_name, + mst.bill_type, + dis.box_no, + mater.material_code, + mater.material_name, + mb.material_name AS box_name, + dis.pcsn, + sub.sap_pcsn, + sub.net_weight, + dis.qty_unit_name, + sub.customer_name, + sub.quanlity_in_box, + sub.customer_description, + sub.sale_order_name, + mst.input_time, + mst.confirm_time, + sub.date_of_production, + mst.input_optname, + sub.width, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, + sub.thickness, + sub.box_weight, + sub.length, + sub.thickness_request, + sub.width_standard, + sub.mass_per_unit_area, + sub.demand_limit, + sub.standard_limit, + sub.actual_value, + (case when plan.parent_container_name <> '' then plan.parent_container_name else plan.restruct_container_name end) AS parent_container_name, + mst.remark, + (case when DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' then '白班' + when (( + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + OR + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + )) then '晚班' end) AS classes, + CONCAT( sub.box_length,'*',sub.box_width,'*',sub.box_high) AS box_size, + CASE + + WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + THEN mst.confirm_time + WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day) + END AS confirm_time_class + + FROM + ( + SELECT + MIN( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '0' + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + + UNION + + SELECT + MIN( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '0' + OPTION 输入.bill_type = "0001" + b.bill_type = '0007' + ENDOPTION + OPTION 输入.bill_type = "0001" + (b.bill_type = '0001' OR b.bill_type = '0007') + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no AND sub.bill_id = dis.iostorinv_id + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(parent_container_name) AS parent_container_name, + MAX(restruct_container_name) AS restruct_container_name, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name + LEFT JOIN md_me_materialbase mb ON mb.material_code = sub.box_type + WHERE + mst.io_type = '0' + AND mst.is_delete = '0' + AND mst.bill_status = '99' + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.is_virtual = "0" + sect.sect_type_attr <> '09' + ENDOPTION + OPTION 输入.is_virtual = "1" + sect.sect_type_attr = '09' + ENDOPTION + OPTION 输入.areas <> "" + LEFT(sub.container_name,2) IN 输入.areas + ENDOPTION + OPTION 输入.thickness_request <> "" + sub.thickness_request = 输入.thickness_request + ENDOPTION + + OPTION 输入.bill_type = "0001" + IFNULL(sub.sub_type,'') = '' + ENDOPTION + + OPTION 输入.bill_type = "0007" + sub.sub_type = '2' + ENDOPTION + + + OPTION 输入.begin_time <> "" + mst.confirm_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.confirm_time <= 输入.end_time + ENDOPTION + + OPTION 输入.with <> "" + CONCAT( sub.thickness_request,'*',sub.width) = 输入.with + ENDOPTION + + OPTION 输入.classes = "1" + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' + ENDOPTION + + OPTION 输入.classes = "2" + ( + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + OR + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + ) + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "6" + PAGEQUERY + SELECT DISTINCT + MAX(mst.stor_name) AS stor_name, + MAX(dis.sect_name) AS sect_name, + MAX(dis.struct_code) AS struct_code, + MAX(dis.struct_name) AS struct_name, + MAX(mst.bill_type) AS bill_type, + MAX(mater.material_code) AS material_code, + MAX(mater.material_name) AS material_name, + MAX(dis.qty_unit_name) AS qty_unit_name, + MAX(sub.customer_description) AS customer_description, + MAX(mst.input_optname) AS input_optname, + MAX(mst.remark) AS remark, + mst.iostorinv_id, + dis.box_no, + MAX(sub.customer_name) AS customer_name, + MAX(sub.sale_order_name) AS sale_order_name, + MAX(sub.date_of_production) AS date_of_production, + SUM(sub.net_weight) AS net_weight, + MAX(mst.input_time) AS input_time, + MAX(mst.confirm_time) AS confirm_time, + CONCAT_WS('',MAX(sub.thickness_request),'*',MAX(sub.width)) AS specification, + CONCAT( MAX(sub.box_length),'*',MAX(sub.box_width),'*',MAX(sub.box_high)) AS box_size, + (case when DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' then '白班' + when (( + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + OR + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + )) then '晚班' end) AS classes, + CASE + WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + THEN mst.confirm_time + WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day) + END AS confirm_time_class + + FROM + ( + SELECT + MIN( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '0' + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no AND sub.bill_id = dis.iostorinv_id + WHERE + mst.io_type = '0' + AND mst.is_delete = '0' + AND mst.bill_status = '99' + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.is_virtual = "0" + sect.sect_type_attr <> '09' + ENDOPTION + OPTION 输入.is_virtual = "1" + sect.sect_type_attr = '09' + ENDOPTION + OPTION 输入.areas <> "" + LEFT(sub.container_name,2) IN 输入.areas + ENDOPTION + OPTION 输入.thickness_request <> "" + sub.thickness_request = 输入.thickness_request + ENDOPTION + OPTION 输入.bill_type <> "" + mst.bill_type = 输入.bill_type + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.confirm_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.confirm_time <= 输入.end_time + ENDOPTION + + OPTION 输入.with <> "" + CONCAT( sub.thickness_request,'*',sub.width) = 输入.with + ENDOPTION + + OPTION 输入.classes = "1" + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' + ENDOPTION + + OPTION 输入.classes = "2" + ( + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59' + OR + DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59' + ) + ENDOPTION + GROUP BY + mst.iostorinv_id, + dis.box_no + + ENDSELECT + ENDPAGEQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index f615dba74..0832cde63 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -17,6 +17,7 @@ 输入.stor_id TYPEAS s_string 输入.bill_type TYPEAS f_string 输入.with TYPEAS s_string + 输入.pcsn TYPEAS s_string 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string 输入.customer_name TYPEAS s_string @@ -74,7 +75,22 @@ mst.remark, stor.stor_name AS in_stor_name FROM - st_ivt_iostorinvdis dis + ( + SELECT + MAX( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '1' + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id LEFT JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code @@ -127,4 +143,107 @@ ENDSELECT ENDPAGEQUERY - ENDIF \ No newline at end of file + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + mst.stor_name, + dis.sect_name, + mst.bill_type, + dtl.vbeln, + base.cust_name, + mst.estimated_freight, + dis.box_no, + mater.material_code, + mater.material_name, + dis.pcsn, + sub.sap_pcsn, + sub.net_weight, + dis.qty_unit_name, + sub.customer_name, + sub.customer_description, + sub.sale_order_name, + mst.input_time, + sub.width, + sub.thickness, + sub.mass_per_unit_area, + mst.input_optname, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, + mst.remark, + stor.stor_name AS in_stor_name + FROM + ( + SELECT + MAX( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '1' + OPTION 输入.bill_type <> "" + b.bill_type = 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id + LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = mst.out_stor_id + INNER JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no AND sub.bill_id = mst.iostorinv_id + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name + WHERE + mst.io_type = '1' + AND mst.is_delete = '0' + AND mst.bill_status = '99' + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.bill_type <> "" + mst.bill_type IN 输入.bill_type + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.input_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.input_time <= 输入.end_time + ENDOPTION + + OPTION 输入.with <> "" + CONCAT(sub.width,'*',sub.thickness) = 输入.with + ENDOPTION + + OPTION 输入.customer_name <> "" + (sub.customer_name LIKE 输入.customer_name OR + sub.customer_description LIKE 输入.customer_name) + ENDOPTION + + ENDSELECT + ENDPAGEQUERY + ENDIF \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/Dialog.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/Dialog.vue new file mode 100644 index 000000000..beb163763 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/Dialog.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/coolpointivt.js b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/coolpointivt.js index 64fbbcfc3..3bfda7354 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/coolpointivt.js +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/coolpointivt.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function uploadMes(data) { + return request({ + url: 'api/stIvtCoolpointivt/uploadMes', + method: 'post', + data + }) +} + +export default { add, edit, del, uploadMes } diff --git a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue index c692308e3..dd9922795 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/ivt/coolpointivt/inventory.vue @@ -141,7 +141,19 @@ - + + + 回传MES + + @@ -282,6 +294,7 @@ + @@ -292,12 +305,13 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import Dialog from '@/views/wms/pdm/ivt/coolpointivt/Dialog.vue' const defaultForm = { ivt_id: null, point_code: null, full_point_code: null, container_name: null, workorder_id: null, full_vehicle_code: null, empty_point_code: null, empty_vehicle_code: null, region_id: null, pcsn: null, ivt_qty: null, qty_unit_id: null, instorage_time: null, product_area: null, point_location: null, sort_seq: null, is_used: null, remark: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, full_point_status: null, cool_ivt_status: null, empty_point_status: null } export default { name: 'Inventory', dicts: ['sch_full_point_status', 'sch_empty_point_status', 'sch_cool_ivt_status', 'is_used', 'point_location', 'product_area'], - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { Dialog, pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -319,6 +333,8 @@ export default { return { permission: { }, + dialogShow: false, + openParam: null, rules: { full_point_status: [ { required: true, message: '满轴位状态不能为空', trigger: 'blur' } @@ -340,7 +356,15 @@ export default { [CRUD.HOOK.beforeRefresh]() { return true }, - + uploadMES() { + debugger + const _selectData = this.$refs.table.selection + if (_selectData.length !== 1) { + return this.crud.notify('请选择一个点位进行回传!', CRUD.NOTIFICATION_TYPE.INFO) + } + this.openParam = _selectData[0] + this.dialogShow = true + }, hand(value) { this.crud.toQuery() } diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/change/index.vue b/lms/nladmin-ui/src/views/wms/st/inStor/change/index.vue index bee44b788..071a2a2af 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/change/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/change/index.vue @@ -46,6 +46,15 @@ @keyup.enter.native="crud.toQuery" /> + + + - + + + diff --git a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue index 6d5b985d4..c6e36677d 100644 --- a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue @@ -75,6 +75,14 @@ @keyup.enter.native="crud.toQuery" /> + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 导出 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + diff --git a/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue index e5caf53ef..7d49f8268 100644 --- a/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index.vue @@ -76,6 +76,15 @@ @keyup.enter.native="crud.toQuery" />
+ + + @@ -189,7 +198,7 @@ export default { crud.downloadLoading = true const data = { 'stor_id': this.crud.query.stor_id, - 'bill_type': this.crud.query.bill_type, + 'bill_types': this.crud.query.bill_types, 'with': this.crud.query.with, 'customer_name': this.crud.query.customer_name } diff --git a/lms/nladmin-ui/src/views/wms/stat/outbillquery/index2.vue b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index2.vue new file mode 100644 index 000000000..413adcd1c --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/stat/outbillquery/index2.vue @@ -0,0 +1,224 @@ + + + +