From 1a47064b23289335510172f173fbe46df9f1e7c5 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Tue, 13 Jun 2023 17:10:49 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E6=8F=90=E4=BA=A4=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E9=A1=B5=E9=9D=A2=EF=BC=8C=E5=AF=BC=E5=85=A5?= =?UTF-8?q?excel=E7=9A=84=E6=97=B6=E5=80=99=E5=B0=86=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=AF=BC=E5=87=BA=E5=88=B0excel=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmProduceWorkorderController.java | 31 +++-- .../IPdmProduceWorkorderService.java | 1 + .../impl/IPdmProduceWorkorderServiceImpl.java | 121 ++++++++++-------- mes/qd/src/api/data.js | 13 +- .../product_manage/workorder/UploadDialog.vue | 9 ++ .../product_manage/workorder/reportDialog.vue | 2 +- .../workorder/reportDialog3.vue | 84 +++++++----- 7 files changed, 162 insertions(+), 99 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java index f3232273..e1683602 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java @@ -30,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -83,6 +84,7 @@ public class PdmProduceWorkorderController { iPdmProduceWorkorderService.down(param); return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/unSubmits") @Log("工单取消下发") @ApiOperation("工单取消下发") @@ -95,9 +97,9 @@ public class PdmProduceWorkorderController { @ApiOperation("删除工单管理") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { - if (ids != null && ids.length > 0){ + if (ids != null && ids.length > 0) { iPdmProduceWorkorderService.update(new UpdateWrapper() - .set("is_delete",true) + .set("is_delete", true) .in("workorder_id", Arrays.asList(ids))); } return new ResponseEntity<>(HttpStatus.OK); @@ -107,7 +109,7 @@ public class PdmProduceWorkorderController { @Log("根据工序查询没有工单的设备") @ApiOperation("根据工序查询没有工单的设备") public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { - return new ResponseEntity<>(TableDataInfo.build(deviceService.getNotWorkDeviceByWorkproceduceId(param)),HttpStatus.CREATED); + return new ResponseEntity<>(TableDataInfo.build(deviceService.getNotWorkDeviceByWorkproceduceId(param)), HttpStatus.CREATED); } @PostMapping("/forceFinish") @@ -122,9 +124,9 @@ public class PdmProduceWorkorderController { @Log("excel导入") @ApiOperation("excel导入") public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { - RedissonUtils.lock(()->{ - iPdmProduceWorkorderService.excelImport(file,request, response); - },"工单导入",null); + RedissonUtils.lock(() -> { + iPdmProduceWorkorderService.excelImport(file, request, response); + }, "工单导入", null); return new ResponseEntity<>(HttpStatus.OK); } @@ -156,25 +158,32 @@ public class PdmProduceWorkorderController { @ApiOperation("报工数修改") @SaIgnore public ResponseEntity reportQuery(@RequestBody ReportQuery param) { - if (!SecurityUtils.getCurrentUserId().equals("1")){ + if (!SecurityUtils.getCurrentUserId().equals("1")) { param.setUser_id(SecurityUtils.getCurrentUserId()); } - return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(param)),HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.reportQuery(param)), HttpStatus.OK); } @GetMapping("/reportQuery2") @Log("报工数修改") @ApiOperation("报工数修改") @SaIgnore - public ResponseEntity reportQuery2(ReportQuery param ,PageQuery pageQuery) { + public ResponseEntity reportQuery2(ReportQuery param, PageQuery pageQuery) { Page page = PageHelper - .startPage(pageQuery.getPage()+1, pageQuery.getSize()) + .startPage(pageQuery.getPage() + 1, pageQuery.getSize()) .setOrderBy("workorder_code desc,seq_number asc"); param.setOrderby("true"); List list = iPdmProduceWorkorderService.reportQuery(param); TableDataInfo build = TableDataInfo.build(list); build.setTotalElements(page.getTotal()); - return new ResponseEntity<>(build,HttpStatus.OK); + return new ResponseEntity<>(build, HttpStatus.OK); + } + + @Log("导出数据") + @ApiOperation("导出数据") + @PostMapping(value = "/download") + public void download(@RequestBody Map map, HttpServletResponse response) throws IOException { + iPdmProduceWorkorderService.download(map, response); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java index 300519fb..1f22a4e8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java @@ -133,5 +133,6 @@ public interface IPdmProduceWorkorderService extends IService reportQuery(ReportQuery query); + void download(Map map, HttpServletResponse response) throws IOException; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 1d488e2d..5cef8469 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -29,6 +29,7 @@ import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.*; import org.nl.common.utils.api.RestBusinessTemplate; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.FileUtil; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService; @@ -108,8 +109,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()).setOrderBy("ShiftOrder.workorder_code desc"); @@ -248,21 +249,23 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl> read = excelReader.read(); - // 循环获取的数据 - List data = new ArrayList<>(); - List errlist = new ArrayList<>(); + ExcelReader excelReader = ExcelUtil.getReader(inputStream, "推弯计划表"); + List> read = excelReader.read(); + // 循环获取的数据 + List data = new ArrayList<>(); + Map errorMap = new HashMap(); row: for (int i = 0; i < read.size(); i++) { - Map errorMap = new HashMap(); List list = read.get(i); - if (ObjectUtil.isEmpty(list)) {continue;} + if (ObjectUtil.isEmpty(list)) { + continue; + } PdmProduceWorkorder workorder = new PdmProduceWorkorder(); packageForm(workorder); for (int j = 0; j < list.size(); j++) { String col = String.valueOf(list.get(j)); - 解析cell:{ //如果是第一行 为生产日期 + 解析cell: + { //如果是第一行 为生产日期 if (i == 0 && j == 0) { continue row; } @@ -276,20 +279,20 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl material_specs = materialbaseService.list(new QueryWrapper().eq("material_spec", col)); if (CollectionUtils.isEmpty(material_specs)) { - errorMap.put("第" + j + "行", col+"物料规格对应物料信息不存在"); + errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "物料规格对应物料信息不存在"); } else { Optional first = material_specs.stream().filter(mdMeMaterialbase -> mdMeMaterialbase.getMaterial_code().contains("S") && Pattern.matches("^[0-9]*$", mdMeMaterialbase.getMaterial_name().substring(mdMeMaterialbase.getMaterial_name().length() - 1)) ).findFirst(); if (!first.isPresent()) { - errorMap.put("第" + j + "行", col+"物料规格对应物料信息不存在"); + errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "物料规格对应物料信息不存在"); } workorder.setMaterial_id(first.get().getMaterial_id()); } @@ -297,7 +300,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workprocedure_name", col)); if (ObjectUtil.isEmpty(workprocedure)) { - errorMap.put("第" + j + "行", col+"工序名称是否正确"); + errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + "工序名称是否正确"); } else { workorder.setWorkprocedure_id(workprocedure.getWorkprocedure_id()); } @@ -315,7 +318,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("person_name", col)); if (ObjectUtil.isEmpty(user)) { - errorMap.put("第" + j + "行", col+" 操作工没有账号"); + errorMap.put("第" + (i + 1) + "行,第" + (j + 1) + "列", col + " 操作工没有账号"); } else { workorder.setCurrent_produce_person_id(user.getUser_id()); } @@ -324,27 +327,29 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl resp = wmsToAcsService.order(array); if (HttpStatus.BAD_REQUEST.equals(resp.get("status"))) { - throw new BadRequestException(resp.get("message")!=null?String.valueOf(resp.get("message")):"acs反馈异常"); + throw new BadRequestException(resp.get("message") != null ? String.valueOf(resp.get("message")) : "acs反馈异常"); } return RestBusinessTemplate.execute(() -> resp); } @@ -440,16 +445,16 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); // if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) { // throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工"); // } - Assert.notNull(workorder,"当前工单不存在"); + Assert.notNull(workorder, "当前工单不存在"); PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper() .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportEnum.REPORT_STATUS.code("生成"))); - Assert.notNull(one,param.getString("workorder_id") + "当前工单没有生成状态的报工记录"); + Assert.notNull(one, param.getString("workorder_id") + "当前工单没有生成状态的报工记录"); workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty"))); if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) { workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode()); @@ -465,16 +470,16 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .set("report_qty", param.getBigDecimal("report_qty")) .set("report_status", ReportEnum.REPORT_STATUS.code("报工")) - .set("needproduct_qty", Math.max(0,workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue())) + .set("needproduct_qty", Math.max(0, workorder.getPlan_qty().intValue() - workorder.getReport_qty().intValue())) .eq("macoperate_id", one.getMacoperate_id())); return one.getMacoperate_id(); } @Override public void unqualReport(JSONObject param) { - Assert.notNull(new Object[]{param, param.get("report_qty"),param.getString("workorder_id")}, "请求参数不能为空"); + Assert.notNull(new Object[]{param, param.get("report_qty"), param.getString("workorder_id")}, "请求参数不能为空"); PdmProduceWorkorder workorder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); - Assert.notNull(workorder,"当前工单不存在"); + Assert.notNull(workorder, "当前工单不存在"); workorder.setRepare_qty(param.getBigDecimal("nok_qty")); workorder.setRepare_qty(param.getBigDecimal("repare_qty")); workorder.setReal_qty(null); @@ -510,8 +515,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl packageWorkorderQty(List record, List itemRecord) { List ids = itemRecord.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList()); List oldRecord = record.stream().filter(item -> ids.contains(item.getMacoperate_id())).collect(Collectors.toList()); - long old_report_qty = oldRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum(); - long new_report_qty = itemRecord.stream().mapToLong(a->a.getReport_qty().longValue()).sum(); + long old_report_qty = oldRecord.stream().mapToLong(a -> a.getReport_qty().longValue()).sum(); + long new_report_qty = itemRecord.stream().mapToLong(a -> a.getReport_qty().longValue()).sum(); List list = new ArrayList<>(); Map report_qty = new HashMap<>(); report_qty.put("field", "report_qty"); @@ -520,6 +525,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl map = new HashMap<>(whereJson); + int i = 1; + List> excel_lst = new ArrayList<>(); + for (Map.Entry entry : map.entrySet()) { + Map mp = new LinkedHashMap<>(); + mp.put("序号", i); + mp.put("错误信息", entry.getKey() + entry.getValue()); + excel_lst.add(mp); + i++; + } + FileUtil.downloadExcel(excel_lst, response); + } + @Override public List reportQuery(ReportQuery query) { - Assert.notNull(query,"参数不能为空"); - if (query.getIs_report()){ + Assert.notNull(query, "参数不能为空"); + if (query.getIs_report()) { query.setReport_status("'1','2'"); } List list = reportRecordService.reportQuery(query); Map hashMap = new HashMap<>(); - int i =0; + int i = 0; for (Map map : list) { - String code = (String)map.get("workorder_code"); - if (hashMap.get(code)==null){ - hashMap.put(code,code); - i =0; + String code = (String) map.get("workorder_code"); + if (hashMap.get(code) == null) { + hashMap.put(code, code); + i = 0; } i++; - map.put("seq_number",i); + map.put("seq_number", i); } return list; } @@ -579,22 +600,22 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .eq("macoperate_id", param.getString("macoperate_id"))); PdmProduceWorkorder workorder = this.getOne(new QueryWrapper() .eq("workorder_id", record.getWorkorder_id())); - if (!workorder.getIs_canupdate_update()){ + if (!workorder.getIs_canupdate_update()) { throw new BadRequestException("当前工单设置为不允许修改报工记录"); } UpdateWrapper updateWrapper = new UpdateWrapper<>(); - if (param.getBigDecimal("nok_qty")!=null){ - updateWrapper.set("nok_qty",param.getBigDecimal("nok_qty")); + if (param.getBigDecimal("nok_qty") != null) { + updateWrapper.set("nok_qty", param.getBigDecimal("nok_qty")); } - if (param.getBigDecimal("repare_qty")!=null){ - updateWrapper.set("repare_qty",param.getBigDecimal("repare_qty")); + if (param.getBigDecimal("repare_qty") != null) { + updateWrapper.set("repare_qty", param.getBigDecimal("repare_qty")); } - updateWrapper.set("report_qty",param.getBigDecimal("report_qty")); + updateWrapper.set("report_qty", param.getBigDecimal("report_qty")); reportRecordService.update(updateWrapper .eq("macoperate_id", param.getString("macoperate_id"))); } diff --git a/mes/qd/src/api/data.js b/mes/qd/src/api/data.js index 989cb232..2de1e0e0 100644 --- a/mes/qd/src/api/data.js +++ b/mes/qd/src/api/data.js @@ -7,15 +7,24 @@ export function initData(url, params) { params.end_time = params.createTime[1] } return request({ - url: url + '?' + qs.stringify(params, { indices: false }), + url: url + '?' + qs.stringify(params, {indices: false}), method: 'get' }) } export function download(url, params) { return request({ - url: url + '?' + qs.stringify(params, { indices: false }), + url: url + '?' + qs.stringify(params, {indices: false}), method: 'get', responseType: 'blob' }) } + +export function download2(url, data) { + return request({ + url: url, + method: 'post', + data: data, + responseType: 'blob' + }) +} diff --git a/mes/qd/src/views/wms/product_manage/workorder/UploadDialog.vue b/mes/qd/src/views/wms/product_manage/workorder/UploadDialog.vue index d7526503..64be13f8 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/UploadDialog.vue +++ b/mes/qd/src/views/wms/product_manage/workorder/UploadDialog.vue @@ -40,6 +40,8 @@