From 01107e8aadfaf1e84a971d8eeb9ab37e1c5569f3 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期五, 01 十二月 2023 09:38:56 +0800 Subject: [PATCH] feat: 部门退回/报废公用接口 --- consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java | 140 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 98 insertions(+), 42 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java index da7ea2e..f621b84 100644 --- a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java +++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java @@ -1,14 +1,20 @@ package com.consum.base.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.util.ReflectUtil; import com.consum.base.BaseController; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.WhBusinessEnum; +import com.consum.base.core.utils.CommonUtil; +import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; -import com.consum.base.pojo.LWhFormProcureGoodsParams; +import com.consum.base.core.utils.PageUtil; +import com.consum.base.pojo.LWhFormProcureGoodsInfoParam; import com.consum.base.pojo.LWhFormProcureParam; -import com.consum.base.pojo.LWhProcureModelParams; -import com.consum.base.pojo.query.FormProcureQryDto; +import com.consum.base.pojo.LWhProcureModelParam; +import com.consum.base.pojo.query.FormProcureQry; import com.consum.base.pojo.response.FormProcureVO; import com.consum.base.pojo.response.FromProcureTemplateInfoVO; import com.consum.base.pojo.response.GoodsModelVO; @@ -16,14 +22,12 @@ import com.consum.base.pojo.response.LWhFormProcureGoodsVO; import com.consum.base.service.BaseGoodsTemplateServiceImpl; import com.consum.base.service.BaseWarehouseServiceImpl; -import com.consum.base.service.FinSysTenantServiceImpl; import com.consum.base.service.LOrgSupplierServiceImpl; import com.consum.base.service.LWhFormProcureCoreService; import com.consum.base.service.LWhFormProcureGoodsService; import com.consum.base.service.LWhFormProcureService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; -import com.consum.base.core.utils.MapUtils; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; @@ -40,7 +44,10 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import java.io.IOException; +import java.io.OutputStream; import java.lang.reflect.Field; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -48,12 +55,13 @@ import java.util.Map; import java.util.Set; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.compress.utils.Lists; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -73,8 +81,6 @@ @Resource private BaseWarehouseServiceImpl baseWarehouseService; @Resource - private FinSysTenantServiceImpl finSysTenantService; - @Resource private CodeGeneratorService codeGeneratorService; @Resource private LWhFormProcureGoodsService lWhFormProcureGoodsService; @@ -93,7 +99,15 @@ * @Description 鏂板 */ @PostMapping("/add") - public ResponseValue add(@RequestBody LWhFormProcureParam param) { + public ResponseValue add() { + LWhFormProcureParam param = CommonUtil.getObjFromReqBody(LWhFormProcureParam.class); + LWhFormProcureParam param2 = new LWhFormProcureParam(); + CommonUtil.copyProperties(param, param2); + param = param2; + return this.add(param); + } + + private ResponseValue add(LWhFormProcureParam param) { Long warehouseId = param.getWarehouseId(); if (param.getWarehouseId() == null) { return ResponseValue.error("浠撳簱ID涓嶈兘涓虹┖"); @@ -102,13 +116,8 @@ FinSysTenantUser sysTenantUser = this.getSysInfo(); String tenantId = sysTenantUser.getTenantId(); String tenantName = sysTenantUser.getTenantName(); -// String tenantId = "100"; -// String tenantName = "娌冲崡鐪佸垎鍏徃"; - // 鍙兘娣诲姞鏈満鏋勪粨搴撶殑杩涜揣鍗� - //?????? - // - List<LWhFormProcureGoodsParams> procureGoods = param.getProcureGoods(); + List<LWhFormProcureGoodsInfoParam> procureGoods = param.getProcureGoods(); if (CollectionUtils.isEmpty(procureGoods)) { return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�"); } @@ -127,7 +136,7 @@ ArrayList<LWhProcureModel> procureModelList = new ArrayList<>(); for (int i = 0; i < procureGoods.size(); i++) { - LWhFormProcureGoodsParams procureGoodT = procureGoods.get(i); + LWhFormProcureGoodsInfoParam procureGoodT = procureGoods.get(i); Long baseCategoryId = procureGoodT.getBaseCategoryId(); Long baseGoodsTemplateId = procureGoodT.getBaseGoodsTemplateId(); String supplier = procureGoodT.getSupplier(); @@ -136,7 +145,7 @@ supplierList.add(supplier); } - List<LWhProcureModelParams> models = procureGoodT.getModels(); + List<LWhProcureModelParam> models = procureGoodT.getModels(); if (CollectionUtils.isEmpty(models)) { return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�"); } @@ -150,7 +159,7 @@ procureGood.setGoodsTemplateName(procureGoodT.getGoodsTemplateName()); procureGood.setSupplier(supplier); procureGood.setSort(i); - for (LWhProcureModelParams modelT : models) { + for (LWhProcureModelParam modelT : models) { Integer counts = modelT.getCounts(); if (counts == null || counts <= 0) { return ResponseValue.error("鍨嬪彿鐨勯噰璐暟閲忓彧鑳戒负姝f暣鏁�"); @@ -170,7 +179,7 @@ } String modelName = (String) tempGoodsInfo.get("modelname"); // 鏌ヨ鍨嬪彿搴撳瓨 - int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null); + int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null); LWhProcureModel model = new LWhProcureModel(); model.setId(NumberGenerator.getLongSequenceNumber()); model.setFromProcureGoodsId(fromProcureGoodsId); @@ -182,6 +191,7 @@ model.setCounts(counts); model.setWorehouseCount(goodsModelNum); model.setSupplier(supplier); + model.setTotalAmount(price * counts); procureModelList.add(model); } procureGoodList.add(procureGood); @@ -223,19 +233,26 @@ * @Description 鍒楄〃鏌ヨ */ @ApiOperation(value = "閲囪喘鍗曞垪琛ㄦ煡璇�", notes = "閲囪喘鍗曞垪琛ㄦ煡璇�") - @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "閲囪喘鏌ヨ鏉′欢", required = true, dataType = "FormProcureQryDto", paramType = "query")}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "param", value = "閲囪喘鏌ヨ鏉′欢", required = true, dataType = "FormProcureQryDto", paramType = "query") + }) @GetMapping("/list") - public ResponseValue queryFormProcureList(FormProcureQryDto param) { + public ResponseValue queryFormProcureList() { + FormProcureQry param = CommonUtil.getObjFromReq(FormProcureQry.class); + FormProcureQry param2 = new FormProcureQry(); + CommonUtil.copyProperties(param, param2); + param = param2; S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - FinSysTenantUser sysInfo = getSysInfo(); - - //鍙兘鏌ヨ鏈骇 鍙婁互涓嬫満鏋勭殑杩涜揣鍗� - //?????? - - GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param); + /*褰撳墠鐧诲綍浜哄彧鑳界湅鍒拌嚜宸辨満鏋勪笅鐨勫垪琛�*/ + FinSysTenantUser sysInfo = this.getSysInfo(); + String tenantId = sysInfo.getTenantId(); + if (param.getAgencyId() == null) { + param.setAgencyId(Long.valueOf(tenantId)); + } + PageUtil genericPager = lWhFormProcureService.queryFormProcureList(param); List<LWhFormProcure> data = genericPager.getDatas(); ArrayList<FormProcureVO> result = new ArrayList<>(); if (!CollectionUtils.isEmpty(data)) { @@ -251,9 +268,9 @@ + "where fpg.WH_FORM_PROCURE_ID =:id group by pm.FROM_PROCURE_GOODS_ID"; Map<String, Object> paramMap = new HashMap<>(); paramMap.put("id", item.getId()); - List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap); + List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); for (Map<String, Object> map : procureModelList) { - FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), FromProcureTemplateInfoVO.class); + FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FromProcureTemplateInfoVO.class); procureTemplateInfoList.add(procureTemplateInfoVO); } fromProcureVO.setFromProcureTemplateInfoList(procureTemplateInfoList); @@ -263,11 +280,13 @@ } try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); - fieldDatas.setAccessible(true); - fieldDatas.set(genericPager, result); +// fieldDatas.setAccessible(true); +// fieldDatas.set(genericPager, result); + ReflectUtil.setFieldValue(genericPager, fieldDatas, result); } catch (Exception e) { e.printStackTrace(); } + genericPager.setDatas(result); return ResponseValue.success(genericPager); } @@ -275,7 +294,11 @@ * @Description 缂栬緫 */ @PostMapping("/edit") - public ResponseValue edit(@RequestBody LWhFormProcureParam param) { + public ResponseValue edit() { + LWhFormProcureParam param = CommonUtil.getObjFromReqBody(LWhFormProcureParam.class); + LWhFormProcureParam param2 = new LWhFormProcureParam(); + CommonUtil.copyProperties(param, param2); + param = param2; ResponseValue delFlag = delById(param.getId()); if (delFlag.getCode() == ResponseValue.CODE_SUCCESS) { return this.add(param); @@ -329,6 +352,9 @@ return ResponseValue.error("閲囪喘鍗昳d涓虹┖"); } LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id)); + if (lWhFormProcure == null) { + return ResponseValue.error("閲囪喘鍗曚笉瀛樺湪"); + } LWhFormProcureExtendVO lWhFormProcureExtendVO = new LWhFormProcureExtendVO(); BeanUtils.copyProperties(lWhFormProcure, lWhFormProcureExtendVO); @@ -337,13 +363,13 @@ lWhFormProcureGoods.setWhFormProcureId(id); List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsService.select(lWhFormProcureGoods); - Field fieldModels = null; - try { - fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } - fieldModels.setAccessible(true); +// Field fieldModels = null; +// try { +// fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); +// } catch (NoSuchFieldException e) { +// e.printStackTrace(); +// } +// fieldModels.setAccessible(true); ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>(); for (LWhFormProcureGoods formProcureGood : formProcureGoods) { LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO(); @@ -366,7 +392,9 @@ GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); goodsModelVOList.add(goodsModelVO); }); - fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); +// fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); + ReflectUtil.setFieldValue(lWhFormProcureGoodsVO, "models", goodsModelVOList); + procureGoodsVOList.add(lWhFormProcureGoodsVO); } lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList); @@ -377,13 +405,41 @@ @ApiOperation(value = "閲囪喘鍗曟槑缁嗘煡璇�", notes = "閲囪喘鍗曟槑缁嗘煡璇�") @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "閲囪喘鍗曟槑缁嗘煡璇�", required = true, dataType = "FormProcureQryDto", paramType = "query")}) @GetMapping("detail/list") - public ResponseValue queryFormProcureDetailList(FormProcureQryDto param) { + public ResponseValue queryFormProcureDetailList() { + FormProcureQry formProcureQry = CommonUtil.getObjFromReq(FormProcureQry.class); + FormProcureQry param2 = new FormProcureQry(); + CommonUtil.copyProperties(formProcureQry, param2); + formProcureQry = param2; + S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } - GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(param); + GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQry); return ResponseValue.success(genericPager); } + + @ApiOperation(value = "閲囪喘鍗曞鍑�", notes = "閲囪喘鍗曞鍑�") + @GetMapping("/list/export") + public void export(Long id, HttpServletResponse response) throws IOException { + TemplateExportParams params = new TemplateExportParams( + "import/閲囪喘鍏ュ簱鍗�.xls"); + + FinSysTenantUser sysInfo = this.getSysInfo(); + String userName = sysInfo.getUserName(); + + Map<String, Object> map = lWhFormProcureService.getExportList(id, userName); + if (CollectionUtils.isEmpty(map)) { + throw new RuntimeException("鏁版嵁涓虹┖"); + } + Workbook workbook = ExcelExportUtil.exportExcel(params, map); + + try (OutputStream outputStream = response.getOutputStream()) { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("閲囪喘鍏ュ簱鍗�.xls", "utf-8")); + workbook.write(outputStream); + workbook.close(); + } + } } -- Gitblit v1.9.1