diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/service/impl/PdmWorkTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/service/impl/PdmWorkTaskServiceImpl.java index 8de81df3..0799a926 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/service/impl/PdmWorkTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/service/impl/PdmWorkTaskServiceImpl.java @@ -349,7 +349,7 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService { //判断是否为副桶,如果为副桶判断主桶是否完成 String bucket_type = from_jo.getString("bucket_type"); if (bucket_type.equals("02")){ - JSONObject first_form = WQLObject.getWQLObject("PDM_BI_Formula").query("workorder_code = '"+from_jo.getString("workorder_code")+"' AND bucket_type = '01'").uniqueResult(0); + JSONObject first_form = WQLObject.getWQLObject("PDM_BI_Formula").query("workorder_code = '"+from_jo.getString("workorder_code")+"' AND bucket_type = '01' AND is_delete = '0'").uniqueResult(0); if (!first_form.getString("status").equals("99")){ throw new PdaRequestException("该工令存在未完成的主桶配方,请先完成主桶!"); } @@ -362,7 +362,7 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService { map.put("storagevehicle_id", vehicle.getString("storagevehicle_id")); map.put("storagevehicle_code", vehicle.getString("storagevehicle_code")); //查询该配粉槽是否存在未完成的配方 - JSONObject mst = WQLObject.getWQLObject("PDM_BI_Formula").query("storagevehicle_code = '" + vehicle.getString("storagevehicle_code") + "' AND status < '99'").uniqueResult(0); + JSONObject mst = WQLObject.getWQLObject("PDM_BI_Formula").query("storagevehicle_code = '" + vehicle.getString("storagevehicle_code") + "' AND status < '99' AND is_delete = '0'").uniqueResult(0); if (ObjectUtil.isNotEmpty(mst)) { throw new PdaRequestException("该载具存在未完成的配粉作业!"); } @@ -1303,6 +1303,31 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService { desc = "桶错误!请选择重量更小的桶!"; flag = "4"; } else { + //校验物料、批次、品质类型、等级、是否可用 + String pcsn = dtl_jo.getString("pcsn"); + String quality_scode = dtl_jo.getString("quality_scode"); + String ivt_level = dtl_jo.getString("ivt_level"); + String is_active = dtl_jo.getString("is_active"); + if (StrUtil.isNotEmpty(pcsn)){ + if (!bucket_jo.getString("pcsn").equals(pcsn)){ + throw new PdaRequestException("桶物料批次和当前配方明细批次不一致!"); + } + } + if (StrUtil.isNotEmpty(quality_scode)){ + if (!bucket_jo.getString("quality_scode").equals(quality_scode)){ + throw new PdaRequestException("桶物料品质类型和当前配方明细品质类型不一致!"); + } + } + if (StrUtil.isNotEmpty(ivt_level)){ + if (!bucket_jo.getString("ivt_level").equals(ivt_level)){ + throw new PdaRequestException("桶物料库存等级和当前配方明细库存等级不一致!"); + } + } + if (StrUtil.isNotEmpty(is_active)){ + if (!bucket_jo.getString("is_active").equals(is_active)){ + throw new PdaRequestException("桶物料是否可用和当前配方明细是否可用不一致!"); + } + } if (need_qty < storage_qty) { desc = "物料正确!请拣选投料!"; flag = "2"; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/wql/QPF_SCREEN.wql b/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/wql/QPF_SCREEN.wql index fccd53de..a7c379ee 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/wql/QPF_SCREEN.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/pdm/wql/QPF_SCREEN.wql @@ -143,20 +143,25 @@ round( task.total_qty, 4 ) AS workorder_qty, round( IFNULL( task.put_qty, 0 ), 4 ) AS product_qty, mu.unit_name, - task.create_time AS start_time, + task.start_time, + (case when task.start_time is null then '9999-99-99 99:99:99' else task.start_time end) AS order_time, task.end_time, - ( CASE WHEN task.STATUS = '99' THEN '1' WHEN task.STATUS = '30' THEN '2' ELSE '3' END ) AS color_flag + ( CASE WHEN task.STATUS = '99' THEN '1' WHEN task.STATUS = '30' THEN '2' ELSE '3' END ) AS color_flag, + wt.planstart_time, + task.formula_code FROM pdm_bi_formula task LEFT JOIN md_me_materialbase mb ON mb.material_id = task.material_id LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = mb.base_unit_id - LEFT JOIN pdm_bi_worktask wt ON wt.workorder_id = task.workorder_id AND wt.workprocedure_code = 'GX001' + LEFT JOIN pdm_bi_worktask wt ON wt.workorder_id = task.workorder_id + AND wt.workprocedure_code = 'GX001' + LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = task.workorder_id WHERE - task.create_time like 输入.today - AND - wt.device_id = 输入.device_id - AND - task.is_delete = '0' + ((wt.start_time is null AND wt.planstart_time LIKE 输入.today) OR wt.start_time LIKE 输入.today) + AND wt.device_id = 输入.device_id + AND task.is_delete = '0' + AND wo.is_delete = '0' + AND wo.`status` IN (50,60) UNION @@ -166,20 +171,26 @@ round( task.total_qty, 4 ) AS workorder_qty, round( IFNULL( task.put_qty, 0 ), 4 ) AS product_qty, mu.unit_name, - task.create_time AS start_time, + task.start_time, + (case when task.start_time is null then '9999-99-99 99:99:99' else task.start_time end) AS order_time, task.end_time, - ( CASE WHEN task.STATUS = '99' THEN '1' WHEN task.STATUS = '30' THEN '2' ELSE '3' END ) AS color_flag + ( CASE WHEN task.STATUS = '99' THEN '1' WHEN task.STATUS = '30' THEN '2' ELSE '3' END ) AS color_flag, + wt.planstart_time, + task.formula_code FROM pdm_bi_formula task LEFT JOIN md_me_materialbase mb ON mb.material_id = task.material_id LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = mb.base_unit_id + LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = task.workorder_id LEFT JOIN pdm_bi_worktask wt ON wt.workorder_id = task.workorder_id AND wt.workprocedure_code = 'GX001' - WHERE - task.`status` < '99' - AND - wt.device_id = 输入.device_id - AND - task.is_delete = '0' + WHERE + task.`status` = '30' + AND + wt.device_id = 输入.device_id + AND + task.is_delete = '0' + ORDER BY + order_time,planstart_time,formula_code ENDSELECT ENDQUERY ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/rest/SparePartController.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/rest/SparePartController.java index 21feae60..c7c0c9bf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/rest/SparePartController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/sb/rest/SparePartController.java @@ -12,6 +12,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -109,7 +110,10 @@ public class SparePartController { @PostMapping("/repairs") @Log("报修") @ApiOperation("报修") - public ResponseEntity repairs(@RequestParam Map map, HttpServletRequest request) { + public ResponseEntity repairs(@RequestParam("file") MultipartFile file, @RequestParam Map map, HttpServletRequest request) { + MultipartHttpServletRequest params=((MultipartHttpServletRequest) request); + List files = ((MultipartHttpServletRequest) request) + .getFiles("file"); return new ResponseEntity<>(sparePartService.repairs(map,request),HttpStatus.OK); } 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 52da1d6d..c0b24fb1 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 @@ -241,9 +241,11 @@ public class SparePartServiceImpl implements SparePartService { } JSONArray rows = WQL.getWO("QPDAEM_BI_SPAREPART").addParam("flag", flag).process().getResultJSONArray(0); + JSONObject content = new JSONObject(); + content.put("rows",rows); JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); - returnjo.put("rows", rows); + returnjo.put("content", content); returnjo.put("desc", "操作成功!"); return returnjo; } @@ -302,12 +304,15 @@ public class SparePartServiceImpl implements SparePartService { map.put("flag", "5"); map.put("maintenance_flag", maintenance_flag); map.put("device_code", device_code); - JSONObject rows = WQL.getWO("QPDAEM_BI_SPAREPART").addParamMap(map).process().uniqueResult(0); + JSONArray rows = WQL.getWO("QPDAEM_BI_SPAREPART").addParamMap(map).process().getResultJSONArray(0); + if (ObjectUtil.isEmpty(rows)){ + rows = new JSONArray(); + } JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); returnjo.put("rows", rows); - returnjo.put("desc", "操作成功!"); + returnjo.put("desc", "查询成功!"); return returnjo; } @@ -415,10 +420,12 @@ public class SparePartServiceImpl implements SparePartService { JSONObject jo = JSONObject.parseObject(JSON.toJSONString(jsonObject)); JSONObject row = jo.getJSONObject("row"); JSONArray rows = devicemaintenancemstService.getDtl(row); + JSONObject content = new JSONObject(); + content.put("rows",rows); JSONObject returnjo = new JSONObject(); returnjo.put("code", "1"); returnjo.put("desc", "操作成功!"); - returnjo.put("rows", rows); + returnjo.put("content", content); return returnjo; } @@ -428,9 +435,11 @@ public class SparePartServiceImpl implements SparePartService { throw new PdaRequestException("传入参数不能为空!"); } JSONObject jo = JSONObject.parseObject(JSON.toJSONString(jsonObject)); - JSONObject form = jo.getJSONObject("form"); JSONArray rows = jo.getJSONArray("rows"); - String maint_id = form.getString("maint_id"); + if (rows.size()==0){ + throw new PdaRequestException("至少有一条明细进行确认!"); + } + String maint_id = rows.getJSONObject(0).getString("maint_id"); WQLObject mstTab = WQLObject.getWQLObject("EM_BI_DeviceMaintenanceMst"); WQLObject dtlTab = WQLObject.getWQLObject("EM_BI_DeviceMaintenanceDtl"); @@ -650,7 +659,7 @@ public class SparePartServiceImpl implements SparePartService { MultipartHttpServletRequest params=((MultipartHttpServletRequest) request); List files = ((MultipartHttpServletRequest) request) .getFiles("file"); - + return null; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/instor/service/impl/InStorServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/instor/service/impl/InStorServiceImpl.java index 724d04ec..857451e3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/instor/service/impl/InStorServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/instor/service/impl/InStorServiceImpl.java @@ -519,6 +519,8 @@ public class InStorServiceImpl implements InStorService { }else{ throw new BadRequestException("任务下发失败,请稍后重试!"); } + }else { + throw new PdaRequestException("载具:"+storagevehicle_code_in+"存在未完成的任务!"); } JSONObject returnjo = new JSONObject(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/InbillServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/InbillServiceImpl.java index c870c906..2ba961c9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/InbillServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/InbillServiceImpl.java @@ -206,7 +206,7 @@ public class InbillServiceImpl { JSONArray bill_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").query("base_billdtl_id = '" + bill_id + "' AND bill_status < '99'").getResultJSONArray(0); if (bill_rows.size() == 0) { HashMap bill_map = new HashMap<>(); - bill_map.put("proc_status", "99"); + bill_map.put("proc_status", "09"); pcs_if_purchaseorderproc.update(bill_map, "id = '" + bill_id + "'"); } }